我有一个艰难的时间与这个猜数字分配。我好像做不对,需要一些帮助。"再玩一次"选项不起作用,因为当你赢得游戏并选择"是"再次玩游戏时,它不会重新开始游戏,而是继续你的下一个猜测数字(例如:猜测数字1,猜测数字2……)。但是当你输了,它会回到第一部分,问你"你想尝试多少次"。那我怎么才能得到你赢的那部分呢?另外,有没有人能给我一些建议,告诉我如何改进提示选项?此外,我需要插入任何def ():的东西吗?因为我不确定我们在这个作业中是否达到了这一点。所以请帮帮我。谢谢。
# This is a guess the number game.
import random
answer = "yes"
number = random.randint(1, 10)
while answer == 'yes':
tries = 0
guess = 0
guessnumber = 0
tries = int(input("How many tries would you like? "))
tries2 = tries
while guessnumber != tries2:
guessnumber += 1
guess = int(input("Enter guess number " + str(guessnumber) + ": "))
if guess < number:
print("You guessed too low")
hint = input("Would you like a hint, yes or no?: ")
if hint == "no":
continue
print("The number is less than", number + 1)
if guess > number:
print("You guessed too high")
hint = input("Would you like a hint, yes or no?: ")
if hint == "no":
continue
print("The number is greater than", number - 1)
if guess == number:
tries = str(tries)
print("YOU WON!")
answer = input("Play again? Yes/No? ") `enter code here`
if answer == 'no':
break
if guess != number:
number = str(number)
print("GAME OVER!!! The number I was thinking of was " + number)
answer = input("Play again? Yes/No? ")
if answer == "no":
break
以下几点:
随机的。Randint(1,1)表示生成1到1之间的随机整数。它总是给出1.
当"tries"只设置一次时,为什么会有一个副本?
Python中的缩进很重要。它改变了if/elif/else分支的计算方式。所以(guess> number)和(guess == number)检查的条件是(guess <数字)这是不可能的。假设这些状态:(guess><Number),> Number)和(guess == Number)是互斥的,并且比较相同的变量,最好将后面的if块更改为elifs。
"GAME OVER"应该只在尝试耗尽后触发,所以它不能在(guessnumber <)循环。
# This is a guess the number game.
import random
answer = "yes"
number = random.randint(1, 100)
while answer != 'no':
guess = 0
guessnumber = 0
tries = int(input("How many tries would you like? "))
while guessnumber < tries:
guessnumber += 1
guess = int(input("Enter guess number " + str(guessnumber) + ": "))
if guess < number:
print("You guessed too low")
hint = input("Would you like a hint, yes or no?: ")
if hint == "no":
continue
print("The number is less than", number + 1)
elif guess > number:
print("You guessed too high")
hint = input("Would you like a hint, yes or no?: ")
if hint == "no":
continue
print("The number is greater than", number - 1)
elif guess == number:
print("YOU WON!")
answer = input("Play again? Yes/No? ") #enter code here
break
if (guess != number) and (guessnumber >= tries):
number = str(number)
print("GAME OVER!!! The number I was thinking of was " + number)
answer = input("Play again? Yes/No? ")
最简单的方法是使用函数。这是一些可能的伪代码:
def game():
tries = 0
guess = 0
...
if guess != number:
number = str(number)
print("GAME OVER!!! The number I was thinking of was " + number)
answer = "yes"
while answer == 'yes':
game()
answer = input("Play again? Yes/No? ")
函数有助于将问题分解为更小、更易于维护的部分。对于这段代码,当然可以在代码中重置变量,但不建议这样做。
注:理解游戏是什么是有可能的,但最好是写一个描述,而不是只写"任务"。问题越明确,你就越有可能得到答案。