我正在参加基于 Python 的计算机科学入门课程。我正在进行的一个项目是使用 Python 海龟图形制作一个刽子手游戏。我希望这段代码能够做的是写出用户猜对的单词的字母,并在用户猜错时绘制刽子手的某个部分。现在,当用户正确猜出一个字母时,程序正在写该字母,但位置不正确,有时根本不写。
在我当前的版本中,我有一个 for 循环迭代当前单词的字母。如果用户猜测的字母与单词中的字母相同,则海龟 (word_typer) 会将该字母写在屏幕上的正确位置。我在 while 循环中有这个 for 循环,其中我还有变量“place”来跟踪正在写入的字母,但这似乎仍然不起作用。
wrong_guesses = 0
guess_letter = ""
wrong_letters = 0
play = input("The theme of this hangman is chemistry! Would you like to play? y/n ")
def run():
global play, wrong_guesses, current_word, wrong_letters
if (play.lower() == 'y'):
new_word()
place = 0
while (wrong_guesses < 6):
guess_letter = input('Please guess a letter ')
letters_guessed.append(guess_letter)
for letter in current_word:
if guess_letter == letter:
word_typer.penup()
word_typer.goto(30 * place, 0)
word_typer.write(guess_letter, font=("Arial", 20, "bold"))
place += 1
for i in current_word:
if guess_letter != i:
wrong_letters += 1
if wrong_letters == len(current_word):
wrong_guesses += 1
draw_hangman()
else:
print("Maybe next time!")
嗯,我没有从您发布的代码中找到足够的信息,您可以发送整个代码吗?
我还设法以一种可以正常工作的方式修改代码(它缺少一些变量)。
wrong_guesses = 0
guess_letter = ""
wrong_letters = 0
letters_guessed = [] #stores the letter which are guessed by users
play = input("The theme of this hangman is chemistry! Would you like to play? y/n ")
def run():
global wrong_guesses, current_word, wrong_letters
if (play.lower() == 'y'):
new_word() #should generate a new word and add it to current_word
place = 0
while (wrong_guesses < len(curent_word)):
guess_letter = input('Please guess a letter ')
letters_guessed.append(guess_letter)
for letter in current_word:
if letter == guess_letter:
word_typer.penup()
word_typer.goto(30 * place, 0)
word_typer.write(guess_letter, font=("Arial", 20, "bold"))
place += 1
elif letter != guess_letter:
wrong_letters += 1
希望这段代码对您有帮助!