首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >简单的hangman游戏使用while和if-else循环不能正确迭代。

简单的hangman游戏使用while和if-else循环不能正确迭代。
EN

Stack Overflow用户
提问于 2021-01-19 19:59:58
回答 1查看 48关注 0票数 0

我试图设计一个饥饿的游戏使用简单的时间循环和如果其他语句。

游戏规则:

1.从单词列表中选择随机单词。

2.用户在选择单词时被告知,并要求用户提供第一次猜测。

3.如果用户的猜测是正确的,则该字母是控制台,并通知用户剩余多少字母

  1. ,用户将只得到5条生命来玩游戏。

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行完全丢弃。我找不到这种性质的原因。

请在这方面帮助我。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-19 20:29:25

您的代码中有几个问题。你提到的是因为第10行的引号。

代码语言:javascript
运行
复制
if guess in word:

在第12行中,有一个错误

代码语言:javascript
运行
复制
used_letters.append(guess)

要获得列表的长度,应该使用函数len()。

代码语言:javascript
运行
复制
if len(used_letters) == len(word)

最后,在正确答案的情况下,退出循环是有问题的。你应该用

代码语言:javascript
运行
复制
while len(word) > len(used_letters) and lives > 0:
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65798644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档