繁体   English   中英

掷骰子脚本 Python

[英]Rolling dice script Python

感谢您阅读本文。

我试图“重置”下面的脚本,每次用户在掷骰子句子上回答“否”时,脚本都会回到开头。 但是,我不知道出了什么问题。 该脚本包括选择您要滚动的骰子并获得一个随机数。 现在,我无法运行脚本,不再工作了。

import random


def d4():
    rolagemD4 = str(random.randint(1, 4))
    retorno = input("resultado do d4: " + rolagemD4 + "\n Gostaria de rolar outro D4, Sim(S) ou Não(N)?")
    if (retorno == "S") or (retorno == "Sim") or (retorno == "sim"):
        rolagemD4 = 0
        d4()
    if (retorno == "N") or (retorno == "Não") or (retorno == "Nao") or (retorno == "nao"):
        principal()

def d6():
    rolagemD6 = str(random.randint(1, 6))
    retorno = input("resultado do d6: " + rolagemD6 + "\n Gostaria de rolar outro D6, Sim(S) ou Não(N)?")
    if (retorno == "S") or (retorno == "Sim") or (retorno == "sim"):
        rolagemD6 = 0
        d6()
    if (retorno == "N") or (retorno == "Não") or (retorno == "Nao") or (retorno == "nao"):
        principal()

def d8():
    rolagemD8 = str(random.randint(1, 8))
    retorno = input("resultado do d8: " + rolagemD8 + "\n Gostaria de rolar outro D8, Sim(S) ou Não(N)?")
    if (retorno == "S") or (retorno == "Sim") or (retorno == "sim"):
        rolagemD8 = 0
        d8()
    if (retorno == "N") or (retorno == "Não") or (retorno == "Nao") or (retorno == "nao"):
        principal()

def d10():
    rolagemD10 = str(random.randint(1, 10))
    retorno = input("resultado do d10: " + rolagemD10 + "\n Gostaria de rolar outro D10, Sim(S) ou Não(N)?")
    if (retorno == "S") or (retorno == "Sim") or (retorno == "sim"):
        rolagemD10 = 0
        d10()
    if (retorno == "N") or (retorno == "Não") or (retorno == "Nao") or (retorno == "nao"):
        principal()

def d12():
    rolagemD12 = str(random.randint(1, 12))
    retorno = input("resultado do d12: " + rolagemD12 + "\n Gostaria de rolar outro D12, Sim(S) ou Não(N)?")
    if (retorno == "S") or (retorno == "Sim") or (retorno == "sim"):
        rolagemD12 = 0
        d12()
    if (retorno == "N") or (retorno == "Não") or (retorno == "Nao") or (retorno == "nao"):
        principal()

def d20():
    rolagemD20 = str(random.randint(1, 20))
    retorno = input("resultado do d20: " + rolagemD20 + "\n Gostaria de rolar outro D20, Sim(S) ou Não(N)?")
    if (retorno == "S") or (retorno == "Sim") or (retorno == "sim"):
        rolagemD20 = 0
        d20()
    if (retorno == "N") or (retorno == "Não") or (retorno == "Nao") or (retorno == "nao"):
        principal()

def d100():
    rolagemD100 = str(random.randint(1, 100))
    retorno = input("resultado do d100: " + rolagemD100 + "\n Gostaria de rolar outro D100, Sim(S) ou Não(N)?")
    if (retorno == "S") or (retorno == "Sim") or (retorno == "sim"):
        rolagemD100 = 0
        d100()
    if (retorno == "N") or (retorno == "Não") or (retorno == "Nao") or (retorno == "nao"):
        principal()

def principal():
    print("Gostaria de jogar dados? : ")
    print("1: dado de 4 faces")
    print("2: dado de 6 faces")
    print("3: dado de 8 faces")
    print("4: dado de 10 faces")
    print("5: dado de 12 faces")
    print("6: dado de 20 faces")
    print("7: dado de 100 faces \n")
    print("8: Não quero jogar dados")

    choice = input()

    principal()

    if choice == "1": d4()
    if choice == "2": d6()
    if choice == "3": d8()
    if choice == "4": d10()
    if choice == "5": d12()
    if choice == "6": d20()
    if choice == "7": d100()
    if choice == "8": exit()
    else :
        print ("Opção Não cadastrada, selecione uma válida \n")
        principal()
import random
def d(face):
    rolagem = str(random.randint(1, face))
    retorno = input("resultado do d"+str(face)+": " + rolagem + "\n Gostaria de rolar outro D"+str(face)+", Sim(S) ou Não(N)?")
    if (retorno == "S") or (retorno == "Sim") or (retorno == "sim"):
        rolagem = 0
        d(face)
    if (retorno == "N") or (retorno == "Não") or (retorno == "Nao") or (retorno == "nao"):
        principal()

def principal():
    print("Gostaria de jogar dados? : ")
    faces=[4,6,8,10,12,20,100]
    for index,value in enumerate(faces):
       print(str(index+1)+": dado de "+str(value)+" faces")
    print("8: Não quero jogar dados"+"\n")

    choice = int(input("Pick one"))
    print(choice)
    
    if 1<= choice <8: 
        d(faces[choice-1])
    else if choice ==8: 
        exit()
    else :
        print ("Opção Não cadastrada, selecione uma válida \n")
        principal()
    

您可以对其进行返工,以便您只需要 1 function 就可以通过面值。 选择后的 principal() 进行了无限循环。 为所有面孔制作了一个列表,以便您可以访问它们

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM