子手获胜条件

我无法获取代码来触发获胜条件,我不知道自己缺少什么。 该游戏使用Python乌龟画出子手,但这是游戏(实际上是功能)在我输了之后停止但在获胜时没有停止的部分:

def startGame():
    word_list = ["cat","dog","fly","hi","bye","five","four"]
    word = word_list[random.randint(0,6)]
    allowedGuesses = 5
    guessesSoFar = 0
    lettersUsedSoFar = ''
    guss_word = ['_' for x in word]
    name = input("What is your name? ")
    print("Hello," + name,",it's time to play HangMan!")
    print(guss_word)

    while guessesSoFar < allowedGuesses:
        guess = input("Guess a Letter!:")
        if guess in word:
            guess == lettersUsedSoFar
            guss_word[word.index(guess)] = guess
            print(guss_word)
            print("Yes!" + guess + " is in the word")
            print("Your Guesses So Far:" + lettersUsedSoFar)
        else:
            lettersUsedSoFar = lettersUsedSoFar + guess + ","
            guessesSoFar = guessesSoFar + 1
            drawHangman(guessesSoFar)
            print(guss_word)
            print("Oops!" + guess + " is not in the word")
            print("Your Guesses So Far:" + lettersUsedSoFar)

startGame()
niejiangmin123 回答:子手获胜条件

一个明显的错误是这一行:

guess == lettersUsedSoFar

不执行任何操作。 (幸运的是)

您需要进行测试以确定用户是否赢了。由于guss_word以所有下划线字符开头,因此测试可能是其中是否还有下划线:

if '_' not in guss_word:
    # Winner!  (Now get out of program.)
else:
    # Good answer but keep playing

以下是我通过此修复,样式更改和代码优化对程序的重做:

from random import choice

WORD_LIST = ["cat","dog","fly","hi","bye","five","four"]

ALLOWED_GUESSES = 5

def drawHangman(count):
    pass

def startGame():

    name = input("What is your name? ")
    print("Hello," + name,",it's time to play HangMan!")

    guessesSoFar = 0
    letters_used = ''

    word = choice(WORD_LIST)
    incomplete_word = ['_' for x in word]
    print(*incomplete_word)

    while guessesSoFar < ALLOWED_GUESSES:
        letter = input("Guess a letter: ")

        if letter in word:
            incomplete_word[word.index(letter)] = letter
            print(*incomplete_word)

            if '_' not in incomplete_word:
                print("You win!")
                break
            else:
                print("Yes!",letter + " is in the word.")
        else:
            if letter not in letters_used:
                letters_used += letter
            guessesSoFar += 1
            drawHangman(guessesSoFar)
            print(*incomplete_word)
            print("Oops!",letter + " is not in the word")

        print("Your guesses so far:",','.join(letters_used))

startGame()

无论是返工还是您的原始作品,都没有明确定义他们如何处理重复的字母,例如“ here”中的“ e”。

本文链接:https://www.f2er.com/3169752.html

大家都在问