### Adjust these settings based on the combat that you want to simulate number_of_attacker_gf = 3 number_of_attacker_generals = 2 attacker_has_gen_synthesis = False attacker_is_sardak_norr = True number_of_defender_gf = 3 number_of_defender_generals = 0 defender_has_gen_synthesis = True defender_is_sardak_norr = False combat_on_defenders_home = True ### Do not edit anything below this line! import random atk = [0] * (number_of_attacker_gf + 1) tie = 0 dfn = [0] * (number_of_defender_gf + 1) a_bonus, d_bonus = 0, 0 if attacker_has_gen_synthesis: a_bonus += 1 if attacker_is_sardak_norr: a_bonus += 1 if number_of_defender_generals > 0: d_bonus += 1 if defender_has_gen_synthesis: d_bonus += 1 if defender_is_sardak_norr: d_bonus += 1 def d10(bonus = 0): return random.randrange(10) + 1 + bonus print "Simulating", for i in xrange(1000): if i % 100 == 0: print ".", attackers, defenders = number_of_attacker_gf, number_of_defender_gf turn = 0 while attackers > 0 and defenders > 0: turn += 1 atk_dice = [d10(a_bonus) for _ in range(attackers)] #attack rolls atk_dice = [d for d in atk_dice if d >= 8] # only hits num_rerolls = min(2 * number_of_attacker_generals, attackers - len(atk_dice)) gen_dice = [d10(a_bonus) for _ in range(num_rerolls)] #general re-rolls gen_dice = [d for d in gen_dice if d >= 8] # only hits atk_dice += gen_dice if defender_has_gen_synthesis and combat_on_defenders_home: atk_dice = [d for _ in atk_dice if d10() < 5] def_dice = [d10(d_bonus) for _ in range(defenders)] #defense rolls def_dice = [d for d in def_dice if d >= 8] # only hits attackers -= len(def_dice) defenders -= len(atk_dice) atk[attackers] += 1 dfn[defenders] += 1 if attackers == defenders: tie += 1 print "\n" print "Attacker wins: ", dfn[0], " times" print "Defender wins: ", atk[0], " times" print print "Detailed results:" print atk print tie print dfn
Run
Reset
Share
Import
Link
Embed
Language▼
English
中文
Python Fiddle
Python Cloud IDE
Follow @python_fiddle
Browser Version Not Supported
Due to Python Fiddle's reliance on advanced JavaScript techniques, older browsers might have problems running it correctly. Please download the latest version of your favourite browser.
Chrome 10+
Firefox 4+
Safari 5+
IE 10+
Let me try anyway!
url:
Go
Python Snippet
Stackoverflow Question