def __init__(self, attBonusRange=range(5), defTargetRange=range(4,13), vantage=None): rl(Attacks) self.repetitions = 100 self.attBonusRange = attBonusRange self.defTargetRange = defTargetRange self.vantage = vantage self.tests = {} count = 0 for attBonus in attBonusRange: self.tests[attBonus] = {} for defTarget in defTargetRange: attempts = [Attacks.Attack(targetDefence=defTarget,attackBonus=attBonus,vantage=vantage) for x in range(self.repetitions)] successes = [attempt.hitResult for attempt in attempts].count(True) failures = [attempt.hitResult for attempt in attempts].count(False) percent = successes/self.repetitions self.tests[attBonus][defTarget] = {'attempts':attempts,'successes':successes,'failures':failures,'percent':percent} count = count + 1 sys.stdout.write("Test progress: %d \r" % (count)) sys.stdout.flush()