我试图设计一个饥饿的游戏使用简单的时间循环和如果其他语句。
游戏规则:
1.从单词列表中选择随机单词。
2.用户在选择单词时被告知,并要求用户提供第一次猜测。
3.如果用户的猜测是正确的,则该字母是控制台,并通知用户剩余多少字母
,
1.导入随机2.导入字符串3.dog hungman():4.word=“狗”、“猴子”、"key“、"money”、“蜂蜜”5.used_letters = [] 6.word =wordsrandom.randrange(len(字)) 7.lives=5 8,而len(word) >0和lives > 0: 9猜测=输入(“请猜字母:") 10.如果‘猜测’在单词中:11打印(猜测,12.used_letters.appened(猜测)13.如果used_letters.len == word.len: 14.打印(“祝贺,您猜对了字母:",单词)15.其他: 16.remaining_letters = word.len - used_letters.len 17打印(”您有“,remaining_letters,18.其他: 19.lives = lives -1 20.如果lives == 0: 21,请打印(“对不起!你没有更多的生命可以继续游戏了“22.打印(”正确的单词是:“正确的单词是:”23.突破口24)其他:打印(“你有",”生活“,”左“)26,饥饿者()
程序应该要求用户输入,这将存储在guess
变量。如果用户给出的字母是单词字符串中的一个字母,则代码提示给定输入是正确的,并将该字母追加到used_letters列表中。否则,它将显示剩余字母的长度,以避免用户输入错误。此外,如果用户不能正确猜到信,他或她也将失去1条生命。
但是,根据我在第8行while循环之后的代码,控件转到第18行,尽管我提供了正确的字母作为用户输入。第10行至第17行完全丢弃。我找不到这种性质的原因。
请在这方面帮助我。
谢谢
发布于 2021-01-19 20:29:25
您的代码中有几个问题。你提到的是因为第10行的引号。
if guess in word:
在第12行中,有一个错误
used_letters.append(guess)
要获得列表的长度,应该使用函数len()。
if len(used_letters) == len(word)
最后,在正确答案的情况下,退出循环是有问题的。你应该用
while len(word) > len(used_letters) and lives > 0:
https://stackoverflow.com/questions/65798644
复制相似问题