Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import _random
- import math
- rnd = _random.Random()
- def getrandint(m):
- return math.ceil(rnd.random()*m)
- def d(N):
- return getrandint(N)
- def handcb():
- return d(6)
- def simturn(numattacks, adv, ac, hitmod, dmgdice, dmgmod):
- dmg = 0
- for i in range(numattacks):
- hitroll = 0
- if adv:
- hitroll = max(d(20), d(20))
- else:
- hitroll = d(20)
- if hitroll == 20:
- dmg += dmgdice() + dmgdice() + dmgmod
- elif hitroll != 1 and hitroll >= ac - hitmod:
- dmg += dmgdice() + dmgmod
- return dmg
- def simdpr(runnumber, params):
- tests = [0]*runnumber
- for i in range(runnumber):
- tests[i] = simturn(*params)
- return sum(tests)/runnumber
- def runforacs(runnumber, params, ACarr):
- runprm = params
- dpr = []
- for ac in ACarr:
- runprm[2] = ac
- dpr.append(simdpr(runnumber, runprm))
- return dpr
- ACtests = range(10, 30)
- teststrength = 100000
- ginvisprm = [3, True, 15, 10, handcb, 5]
- ginvisprm_sharp = [3, True, 15, 5, handcb, 15]
- swiftprm = [4, False, 15, 10, handcb, 5]
- swiftprm_sharp = [4, False, 15, 5, handcb, 15]
- #print(simturn(*ginvisprm))
- #print(simdpr(teststrength, ginvisprm))
- f = open('bardquiver/output.txt', 'a+')
- f.write('AC\t'+'\t'.join(map(str,ACtests))+'\n')
- f.write('GI\t'+'\t'.join(map(str,runforacs(teststrength, ginvisprm, ACtests)))+'\n')
- f.write('GIS\t'+'\t'.join(map(str,runforacs(teststrength, ginvisprm_sharp, ACtests)))+'\n')
- f.write('SQ\t'+'\t'.join(map(str,runforacs(teststrength, swiftprm, ACtests)))+'\n')
- f.write('SQS\t'+'\t'.join(map(str,runforacs(teststrength, swiftprm_sharp, ACtests)))+'\n')
- f.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement