卡在创建掷骰子上



我正在创建一个D&D掷骰子供我使用,但我遇到了一个问题。我希望能够掷出荒谬数量的骰子。因此,我需要知道数量部分应该在哪里结束,以及骰子的类型部分应该从哪里开始。[我按以下方式键入卷:2d8(数量 d 类型(]。当我尝试使用 .index(( 函数查找"d"字符时,我无法让它正常运行。感谢您的时间,即使您只是阅读本文。

import random
def rollDice(quant, type):
    Troll = 0
    for roll in range(quant):
        Troll += (random.randrange(type) + 1)
    print("You rolled: " + str(Troll))
def check(user):
    sep = user.lower().index('d') #I get the problem when I use this
    try:
        quant = int(user[0:sep])
        type = int(user[sep:])
        if type in (4, 6, 8, 10, 12, 20, 100):
            rollDice(quant, type)
        else:
            print("Not valid dice type!")
    except:
        print("Invalid Input!")
while True:
    print("To exit type [EXIT]")
    user = input("Enter what you want to roll[e.x: 2d8]: ")
    if user.upper() == "EXIT":
        exit()
    else:
        check(user)
解决此问题

的简单方法:

def check(user):
    try:
        quant = int(user.lower().split('d')[0])
        type = int(user.lower().split('d')[1])
        if type in (4, 6, 8, 10, 12, 20, 100):
            rollDice(quant, type)
        else:
            print("Not valid dice type!")
    except:
        print("Invalid Input!")

最新更新