2015-02-09 87 views
0

如果您在第一次尝试时没有正确猜测出该号码,程序将运行,直到您猜测用完为止,无论您是否猜对了正确的号码。我的while循环或者语句有问题吗?第一次猜测后,猜谜游戏无法识别正确的答案

while True: 
    try: 
     Guessed_number = int(raw_input("What is your guess? \n")) 
    except ValueError: 
     print("Sorry, that is not a valid guess. Please guess again.") 
     continue 
    else: 
     break 
def Number_guesser(Guessed_number): 
    guesses= 3 
    while guesses > 0: 

    if Random_number == Guessed_number: 
     print "Congratualations! You won :)" 
     break 

    elif Guessed_number > Random_number: 
     print "You guessed higher than the number. Try again! \n" 
     print Random_number 
     Guessed_number= raw_input() 
     guesses= guesses-1 

    elif Guessed_number < Random_number: 
     print "You guessed lower than the number. Try again! \n" 
     Guessed_number= raw_input() 
     guesses= guesses-1 

    if guesses == 3: 
     print "You have 3 guesses left!" 

    elif guesses == 2: 
     print "You have 2 guesses left!" 

    elif guesses == 1: 
     print "You have 1 guess left!" 

    elif guesses == 0: 
     print "You ran out of guesses :(\n The correct answer was........*drum roll*" 
     print Random_number 
print Number_guesser(Guessed_number)` 
+3

您的缩进绝对不正确(或粘贴它的方式),这对python程序至关重要。 – 2015-02-09 18:08:20

+0

首先,每次调用Number_guesser函数时,您都将'guesses'重新定义为3。这看起来不是你基于进一步下去的逻辑的意图。 接下来,您可以在'Number_guesser'函数中获得更多输入,但只能这样做一次。 – 2015-02-09 18:11:21

回答

1

我发现每当我提示玩家再次猜测时,我的raw_input都需要是一个整数。

Guessed_number= int(raw_input()) 
+0

我很高兴你明白了这个问题!但是,清理代码有相当多的工作要做。看看[这个要点](https://gist.github.com/NotTheEconomist/d5198882e5d87dcb434a)的一些其他想法。 – 2015-02-09 18:29:06