def generateRollsForMethods(rollMethods): rolls = {k: {} for k in rollMethods.keys()} for k in rollMethods.keys(): rolls[k] = {k: 0 for k in range(3, 19)} for (methodKey, rollMethod) in rollMethods.iteritems(): numDice = rollMethod["numDice"] method = rollMethod["method"] for roll in generateArrangements((1, 2, 3, 4, 5, 6), numDice): statValue = sum(method(roll)) rolls[methodKey][statValue] += numArrangements(roll)
def calcTCTPdistribution(): numStats = 6 statRange = range(3, 19) perfect = numStats * max(statRange) tctps = {k: 0 for k in range(0, perfect - 3 * numStats + 1)} for stats in generateArrangements(statRange, numStats): TCTP = perfect - sum(stats) tctps[TCTP] += numArrangements(stats) # pprint.pprint(tctps) print "TCTP\tCount" for (tctp, count) in tctps.iteritems(): print str(tctp), "\t", count