0

ダイスローラープログラムに問題があります(今のところテキストですが、最終的にはグラフィカルです)。私が使用しているIDE、Wing IDE 101 4.1以外では機能しません。表示されるエラーが速すぎて読めませんが、スクリーンショットを撮ってみます。(スクリーンショットが撮れたら、この記事を編集します。)

プログラムは次のとおりです。

import random


#variables

available_dice = "D20"
main_pgm_start = False

#definitions of functions

def diePick():
    print("Pick a die. Your choices are: ", available_dice)
    print("")
    which_dice = input("")

    if which_dice == "D20" or which_dice == "d20":
        rollD20()    
    else:
        print("Error: Please try again")
        print("")
        diePick()    

def rollD20():
    print("Rolling D20 .... ")
    print("")
    d20_result = random.randrange(1, 20)
    print("You have rolled a ", d20_result)
    print("")
    print("Would you like to roll again?")
    print("")
    y = input("")
    if y == "y" or y == "Y" or y == "yes" or y == "Yes":
        print("")        
        diePick()



def MainProgram():
    print("Benjamin Ward's Random D&D Dice Roller")
    print("")
    x = input("  Press Enter to Continue")
    print("")
    diePick()


MainProgram()
4

2 に答える 2

-1

input() が期待どおりに機能するとは思いません。input はテキスト行を読み取り、それを (Python として) 実行します。

あなたが望むのは、の線に沿ったものだと思いますstdin.readline()。それを使用するには、上部にある必要があり、すべての出現箇所をにfrom sys import stdin置き換えます。これにより、最後に改行が返されることにも注意してください。これを考慮する必要があります。inputsys.readline()

于 2013-06-29T00:42:52.077 に答える