Python hangman,当检查字母时,结果总是错误的



我最近正在学习Python,我正在尝试制作一款刽子手游戏。我遵循了教程:https://www.youtube.com/watch?v=pFvSb7cb_Us并根据我的喜好修改了代码。然而,当试图查看玩家是否输入了正确的字母时,结果总是错误的。我确实注意到了这一点,因为我没有让它检查每一封信,但我的每一次尝试都以错误告终。有人能帮我吗?

如果我的问题问错了,也请原谅,我是斯塔克夫弗洛的新手。

这是检查字母的部分:

lengthWordToGuess = len(randomWord)
amountWrong = 0
currentGuess = 0
currentLettersGuessed = []
currentLettersRight = 0
while(amountWrong != 6 and currentLettersRight != lengthWordToGuess):
print("nLetters guessed so far: ")
for letter in currentLettersGuessed:
print(letter, end=" ")
letterGuessed = input("nGuess a letter")
#guessed right
if(randomWord[currentGuess] == letterGuessed):
hangmanVisualPrint(amountWrong)
currentGuess += 1
currentLettersGuessed.append(letterGuessed)
currentLettersRight = giveWord(currentLettersGuessed)
#guessed wrong
else:
amountWrong += 1
currentLettersGuessed.append(letterGuessed)

hangmanVisualPrint(amountWrong)

currentLettersRight = giveWord(currentLettersGuessed)

不用担心,我也是个新手。因此python有一个很酷的特性,您可以使用in关键字链接来检查变量是否在列表中。因此,您可以重写代码以检查if(letterGussed in correctLetters),其中correctLetters可以是完整的单词或字符列表。在此之前,您可以检查if(letterGuessed in alreadyGuessed),并抛出一个响应,这样他们就可以猜两次同一个字母。您也可以使用循环来检查列表或字符串中的每个字母。

请从控制台向我们显示错误代码。这通常是一个很好的指标,表明我们应该关注哪条线

接下来,你为什么不上传所有的代码?这样可能更有意义。

然后,在任何地方使用print("(语句,并可视化代码出错的地方。我通常在IF语句之前放一个print((。

最后,确保input((和randomWord[currentGuess]中的数据类型相同。例如,int 5可能并不总是等于char"5"或字符串"5"。

还有一件事,当涉及到新程序员时,他们往往会在字符串索引方面遇到困难。也许你在"example"中检查了错误的字母,因为你可能在比较"x",但input((给出了"e"。

最新更新