为我自己开发了一个hangman游戏,我真的被困在了一个地方,一旦在一个单词中找到了一个正确的字母,它就会保存在那个索引位置,我正试图用return语句在Tkinter的gui中实现它,在这里使用print,这样循环就不会结束。不过,我将只显示用于替换word中字母的代码,而不是整个游戏代码,以尽量避免混淆任何人
主要问题-找不到保存用户在word中输入的字母的方法,每次它返回新的输出
import random
underlines = []
def random_gen_word():
list_of_words = ['happy']
begin = 0
end = len(list_of_words) - 1
global random_word
random_word = list_of_words[random.randint(begin, end)]
return random_word
saved_random_word = random_gen_word().upper()
def user_input_for_game():
while True:
underlines = ["_"] * len(saved_random_word)
user_input = input("Enter text: ").upper()
if user_input in saved_random_word:
# # below for loop will index every letter i = x from the random word
# # if statement for checking if input was the letter in the word
for i, x in enumerate(saved_random_word):
if x == user_input:
underlines.insert(i, user_input)
# removes underline once a letter is found in underlines/word
underlines.pop()
print(underlines)
print(user_input_for_game())
这是因为
underlines
在while循环中被重新初始化。另外,您不需要使用insert()
和pop()
来更新underlines
,只需使用underlines[i]
来更新所需的字符即可。最后,您可以使用random.choice()
来简单地random_gen_word()
以下是修改后的代码:
它没有保存,因为您在循环开始时一直重置它(
underlines
)。把它放在前面,像这样:试运行:
编辑:在函数外部可以有一个
underlines
变量:只要在
user_input_for_game
中有一个参数,并在最后返回更新的下划线相关问题 更多 >
编程相关推荐