Застрял в создании Dice-Roller - PullRequest
0 голосов
/ 08 апреля 2019

Я создаю D & D Dice-Roller для меня, и у меня есть проблема.Я хочу быть в состоянии бросить абсурдное количество кубиков.Поэтому мне нужно знать, где должна заканчиваться часть количества и где должна начинаться часть типа кости.[Я печатаю рулон следующим образом: 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)

1 Ответ

0 голосов
/ 09 апреля 2019

Простой способ исправить это:

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!")
...