我必须做一个代码,我需要创建一个让用户猜测方程的游戏。在每次猜测结束后,我必须显示用户已经猜到了多少等式。例如,如果等式是1 + 2 * 3 + 4并且用户猜测等式有3,则程序会说你的猜测是正确的,到目前为止你猜测的等式是---- 3--(破折号代表等式中有多少个字符。如果用户猜到2,我需要他们到目前为止猜测的等式为--2-3--但我不能让它们累积。
我正在使用的功能是
def guessing1():
'''
the player is asked to make a guess and the result is printed
'''
wrongguesses=0
if (guess1 in randomFormula):
print "Your guess is correct!"
wrongguesses=0
else:
print "Your guess is wrong!"
wrongguesses +=1
if (wrongguesses== max_guesses):
print "Sorry, you've reached the maximum number of wrong guesses."
print "Better luck next time!"
playagain=raw_input("Do you want to play again? y-yes, n-no: ")
if (playagain== n):
print "The game is over."
def formSoFar1():
a=''
for i in range (len(randomFormula)):
if (randomFormula[i] == guess1):
a += randomFormula[i]
else:
a+= "-"
print "The formula you have guessed so far is: ",a
当我调用函数时,我改变此代码的任何方式,我得到一个错误或它没有使用之前的猜测。我不确定该怎么做。
答案 0 :(得分:0)
我知道这不会直接解决你的问题,但我会回过头来。
我强烈建议您写出完成目标所需的逻辑。在纸上做到这一点,并随意指出箭头指向相关的内容,实现目标需要什么标准,以及程序的整体想法实际上是什么。
这样做有助于阐明您想要解决的实际问题,以及如何去做。
所以你的第一个问题是,你想做什么?
看来你想创建一个类似游戏的刽子手,但是使用的是论坛,而不是字母。
第二件事,你想要跟踪用户的成就和失败的进展。
胜负取决于第二部分,所以这告诉了我们一些事情。
有几种方法可以做到这一点,但一种简单的方法是使用while循环。
为什么要循环?它允许您在多次执行任务时检查条件。
您想要检查用户没有赢或输的条件。像这样的东西
user_strikes = 0
formula = "1+2*3+4"
user_progress = "" # this will be updated
while game_over is False and user_strikes < STRIKES_ALLOWED:
# output "make a guess" or something
if guess in answer:
# update user_progress
# perhaps check if user_progress is equal to the formula, then set game_over to True if it is.
else:
# update user_strikes. Check here if it's equal to STRIKES_ALLOWED and output a message, since the while loop will end after that iteration.
# here you can check if game_over is True (user won), if strikes is equal to STRIKES_ALLOWED, and do logic based on that
# there are quite a few ways to do this.
要记住的其他事项: 记住用户已经猜到的数字,符号等。如果他们一遍又一遍地猜测2,可能会打印出来#34;已经猜到了#34;或类似的东西。 您可以只使用一个设置为数字的变量,而不是检查处理游戏状态的多个变量。检查该数字的值,并将该操作作为基础。所以game_state = 1 #game赢了; game_state = 2 #game lost等等。
对于你的实际问题,似乎你在想关闭。使用闭包对您来说可能是有益的,所以请随时阅读它们并确定情况是否需要它们。
要完成,我强烈建议您尝试找出您遇到的问题。从这里开始,您可以大大节省时间和精力,找出解决问题的正确方法。