我如何检测我的刽子手游戏(Python)中的重复输入!

时间:2017-06-17 09:55:29

标签: python

我正面临着如何在我的Hangman游戏中检测重复输入的问题。请帮我! 这是我的代码:(首先我称之为游戏功能。我使用while循环)     def checkValidGuess():

    if guessword in guess:
        print("Repeat")

    elif guessword in num:
        print("You can only input letter a-z")
        print("Try again")

    elif len(guessword) >1:
        print("You can only guess one letter at a time!")
        print("Try again")
def checkPlayerWord():
    if guessall == word:
        print("Well done")
    else:
        print("Uh oh!")
def checkLetterInWords():
    if guessword.lower() in word:
        print("Well done!",guessword,"is in my word")
    elif guessword.lower() not in word and guessword.lower() not in num:
        print("Try again")


choose = input("Enter your choice:")
readFileWords()
time =10
word = getRandomWord()
while time !=0 and word:
    print("You have", time, "guesses left.")
    guessword = input("Guess a letter or enter '0''to guess the word:")#This is user input to guess the letter 
    num = ["1","2","3","4","5","6","7","8","9"]
    guess=[]
    checkValidGuess()
    if guessword =="0":
        guessall = input("What is the word: ")
        checkPlayerWord()
    else:
        checkLetterInWords()

1 个答案:

答案 0 :(得分:0)

您可以尝试以下代码:

def checkValidGuess():

    if guessword in guess:
        print("Repeat")

    elif guessword in num:
        print("You can only input letter a-z")
        print("Try again")

    elif len(guessword) > 1:
        print("You can only guess one letter at a time!")
        print("Try again")


def checkPlayerWord():
    if guessall == word:
        print("Well done")
    else:
        print("Uh oh!")


def checkLetterInWords():
    if guessword.lower() in word:
        print("Well done!", guessword, "is in my word")
    elif guessword.lower() not in word and guessword.lower() not in num:
        print("Try again")


choose = input("Enter your choice:")
readFileWords()
time = 10
word = getRandomWord()
guess = [] # list to store the input values
while time != 0 and word:
    print("You have", time, "guesses left.")
    guessword = input("Guess a letter or enter '0''to guess the word:")  # This is user input to guess the letter    
    num = ["1", "2", "3", "4", "5", "6", "7", "8", "9"]
    checkValidGuess()
    guess.append(guessword) # appending the input to list
    if guessword == "0":
        guessall = input("What is the word: ")
        checkPlayerWord()
    else:
        checkLetterInWords()

guess = []必须在循环之外声明,否则每次迭代都会创建一个新的list