import random
def get_damage(attack, defense):
if get_roll(attack) > get_roll(defense):
return get_roll(attack) - get_roll(defense)
else:
return 0
def get_roll(rollstring):
def main_menu():
x = int(input("How many rolls do you want to take?: "))
z = 0
list = []
for roll in range(0,x):
print("Input attack and defense roll", roll + 1, ": ", end="")
y = input()
list = list + y.split(",")
for element in range(0, x):
attack = list[z]
defense = list[z+1]
print ("Attack: ", attack, "Defense: ", defense, "Damage: ", get_damage(attack, defense))
z = z + 2
main_menu()样本输出
How many rolls do you want to take? 3
Input attack and defense roll 1: 1d3,1d3
Input attack and defense roll 2: 1d6,1d3
Input attack and defense roll 3: 1d6,1d10
Attack:1d3, Defense:1d3 : Damage: 0
Attack:1d6, Defense:1d3 : Damage: 2
Attack:1d6, Defense:1d10 : Damage: 0发布于 2020-12-06 11:26:04
您可以像这样使用random.randint:
import random
def get_damage(attack, defense):
if attack > defense:
return attack - defense
else:
return 0
def get_roll(rollstring):
repeat = int(rollstring.split('d')[0])
torandom = int(rollstring.split('d')[1])
for i in range(repeat):
result = random.randint(repeat, torandom)
return result
def main_menu():
x = int(input("How many rolls do you want to take?: "))
z = 0
list = []
for roll in range(0,x):
print("Input attack and defense roll", roll + 1, ": ", end="")
y = input()
list = list + y.split(",")
for element in range(0, x):
attack = list[z]
defense = list[z+1]
attack = get_roll(attack)
defense = get_roll(defense)
print ("Attack: ", attack, "Defense: ", defense, "Damage: ", get_damage(attack, defense))
z = z + 2
main_menu()我修复了你的一些代码。
发布于 2020-12-06 10:23:17
import random
rollstring = '5d5'
num_rolls, sides = rollstring.split('d')
rolls = []
for roll in range(int(num_rolls)):
rolls.append(random.choice(range(int(sides))))
print(rolls)
print(sum(rolls))https://stackoverflow.com/questions/65164040
复制相似问题