1

私は学校で Python を使い始めており、宿題としてハングマン ゲームを作成する必要があります。私の唯一の問題は、常にすべてをインデントしようとするように見えることです。

私のコードは次のとおりです。

import random
global guess

def checkGuess():
    turns = 5
    n = 0
    guess = input('Please guess a letter:')
    guesslen = len(guess)
    while len(guess) > n:
        if guesslen >1:
            print ('Please only guess a single letter.')
            checkGuess()
        elif guess in secretWord:
            print (guess)
            n = n+1
            checkGuess()
        elif guess not in secret:
            turns -= 1
            print ('Nope.')
            print (turns), 'more turns'
            if turns < 5: print ('        OMMMMMD')
            if turns < 5: print ('       MMMMMMMMM')
            if turns < 5: print ('      =MMMMMMMMM?')
            if turns < 5: print ('      ,MMMMMMMMM:')
            if turns < 5: print ('       MMMMMMMMM')
            if turns < 5: print ('        .MMMMM,')
            if turns < 5: print ('                       ')
            if turns < 3: print ('  ZMMMMMMMMMMMMMMMMM7L')
            if turns < 3: print (' MMMMMMMMMMMMMMMMMMMMM')
            if turns < 3: print ('MMMMMMMMMMMMMMMMMMMMMMM')
            if turns < 3: print ('MMMMMMMMMMMMMMMMMMMMMMM')
            if turns < 3: print ('MMMMIMMMMMMMMMMMMMIMMMM')
            if turns < 3: print ('MMMM DMMMMMMMMMMMM MMMM')
            if turns < 3: print ('MMMM DMMMMMMMMMMMM MMMM')
            if turns < 3: print ('MMMM DMMMMMMMMMMMM MMMM')
            if turns < 3: print ('MMMM DMMMMMMMMMMMM MMMM')
            if turns < 3: print ('MMMM DMMMMMMMMMMMM MMMM')
            if turns < 3: print ('MMMM DMMMMMMMMMMMM MMMM')
            if turns < 3: print ('MMMM DMMMMMMMMMMMM MMMM')
            if turns < 3: print ('MMMM DMMMMMMMMMMMM MMMM')
            if turns < 3: print ('MMMM DMMMMMMMMMMMM MMMM')
            if turns < 3: print (' ZD  DMMMMM?MMMMMM  DO')
            if turns < 2: print ('     DMMMMM MMMMMM')
            if turns < 2: print ('     DMMMMM MMMMMM')
            if turns < 2: print ('     DMMMMM MMMMMM')
            if turns < 2: print ('     DMMMMM MMMMMM')
            if turns < 2: print ('     DMMMMM MMMMMM')
            if turns < 2: print ('     DMMMMM MMMMMM')
            if turns < 2: print ('     DMMMMM MMMMMM')
            if turns < 2: print ('     DMMMMM MMMMMM')
            if turns < 1: print ('     DMMMMM MMMMMM')
            if turns < 1: print ('     DMMMMM MMMMMM')
            if turns < 1: print ('     DMMMMM MMMMMM')
            if turns < 1: print ('     DMMMMM MMMMMM')
            if turns < 1: print ('     DMMMMM MMMMMM')
            if turns < 1: print ('      MMMM+ ?MMMM')
            if turns == 0:
            print ('The answer is'), (secretWord)

print('H A N G M A N')
secretWord = random.choice (['crocodile','elephant','penguin','pelican', 'leopard', 'hamster', 'lion',])
i = ('')
g = len(secretWord) <--- THIS IS THE LINE WHERE THE PROBLEM IS
length = 0
print (secretWord)
while g > length:
    i = i + (' _')
    length = length + 1
print(i)
guess = ('')
checkGuess()

このウェブサイトや他のサイトで既に提案されているすべての方法を試しました。誰でも助けることができますか?

4

2 に答える 2

7

実際問題は 57 行目です。ifステートメントがありますが、その内容をインデントしていません。

        if turns == 0:
        print ('The answer is'), (secretWord)

する必要があります

        if turns == 0:
            print ('The answer is'), (secretWord)
于 2012-04-08T13:43:21.843 に答える
2

問題:

  1. あなたは推測を追跡しません

  2. ターンと推測にはグローバルを使用し、ターンと推測の変数は関数の外にある必要があります

  3. while(guess)> n は if(guess) > n である必要があります

  4. 入力の代わりに raw_input を使用する

  5. 勝利サイクルにguesses.append(guess)を追加する

  6. 推測が単語​​を生成するかどうかを確認します。

    並べ替えられた場合 (リスト (秘密の単語))==並べ替えられた (リスト (推測)):

  7. すべての変数名、secret - secretWord を台無しにしました。

  8. 後にインデントを追加

    ターン == 0 の場合:

  9. if turn == 0: ... この「else: checkGuess()」のようなelseブロックを追加します

于 2012-04-08T13:57:45.107 に答える