0

私は首謀者のゲームを作っていますが、始めたばかりでつまずきにぶつかりました。ユーザーがゲーム内のペグの数を選択できるようにし、ユーザーがコードを推測できるようにする必要があります。推測の長さをチェックして、彼らが選んだペグの数と同じであることを確認しようとしています. これまでの私のコードは次のとおりです。

def pegs():
    numberOfPegs = input("Please enter the number of pegs in the game between 3 and 8 ")
    if numberOfPegs < 3:
        return ("Make sure you enter a number between 3 and 8")
    elif numberOfPegs > 8:
        return ("Make sure you enter a number between 3 and 8")
    else:
        return ("Thank you, you are playing with", numberOfPegs, "pegs")



def checker():

    guess = raw_input("Please enter your guess as letters ")
    if len(guess) != pegs:
        print "Wrong number!"
    else:
        return 1

print pegs()
print "\n"
print checker()

また、入力した推測の文字数が選択したペグの数と同じであり、その理由がわからない場合でも、checker() は常に「間違った数」を返します。

ありがとう!

4

2 に答える 2

1

pegs() の戻り行は、その値を保存してプログラムの最上位から再度使用できるように、ペグの数を返す必要があります。

def pegs():
    ...
    return numberOfPegs

戻る前に、必要なものを関数に出力させます。次に、メイン プログラムで次のようにします。

npegs = pegs()
checker(npegs)   # send the number of pegs to the checker function

チェッカーを適切に定義します。

def checker(pegs):
    ...

編集して追加: Pythonでのスコープのこの説明を確認してください。

于 2013-11-10T10:46:29.723 に答える
0
def get_pegs():
    numberOfPegs = input("Please enter the number of pegs in the game between 3 and 8 ")
    if numberOfPegs < 3:
        print ("Make sure you enter a number between 3 and 8");
        return 0;
    elif numberOfPegs > 8:
        print ("Make sure you enter a number between 3 and 8");
        return 0;
    else:
        print ("Thank you, you are playing with ", numberOfPegs, " pegs");
        return numberOfPegs;

def checker(pegs):

    guess = raw_input("Please enter your guess as letters ")
    if len(guess) != pegs:
        print "Wrong number!"
    else:
        print "Number ok";    #for debugging, remove later
        return 1

pegs =  get_pegs();
print "\n"
result = checker(pegs);
于 2013-11-10T10:56:09.070 に答える