首页 > 解决方案 > 对于“get_roll”函数,我将如何拆分用户的输入,例如“1d3”,即 3 面骰子的 1 次掷骰,作为随机整数?

问题描述

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

标签: python

解决方案


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))

推荐阅读