Python实现条件满足后按顺序输出列表下一项(猜词游戏提示)
单词猜谜游戏顺序提示实现方案
实现思路
完全不需要写大量if判断,两个改动就能解决提示重复、代码冗余的问题:
- 用字典存储秘密词和对应提示列表的映射关系,后续新增猜词只需要往字典里加键值对,核心逻辑不用动
- 直接用当前的猜词尝试次数作为列表索引,按顺序取提示,初始展示第一条,每猜错一次索引+1展示下一条,从根源上避免提示重复
优化后代码
import random # 统一维护所有秘密词和对应提示,新增猜词直接加键值对即可 word_hint_map = { "Duck": ["Hint: It's a bird", "Hint: it swims", "Hint: It loves to be in a row"] } secret_word = random.choice(list(word_hint_map.keys())) current_hint_list = word_hint_map[secret_word] # 猜词上限和提示数量自动对齐,刚好每次猜错对应一条新提示 guess_limit = len(current_hint_list) user_guess = "" guess_count = 0 while user_guess != secret_word and guess_count < guess_limit: # 用尝试次数当下标取提示,顺序输出不会重复 print(current_hint_list[guess_count]) user_guess = input("Guess the secret word: ").strip() guess_count += 1 print("You Win!" if user_guess == secret_word else "YOU LOSE IDIOT")
逻辑说明
- 循环首次执行时
guess_count为0,自动输出第一条提示,等待玩家输入 - 玩家猜错后
guess_count加1,下一轮循环自动读取下一条提示,完全符合顺序输出提示的要求 - 没有任何针对特定单词的if判断,后续要加新的猜词(比如Cat、Dog相关的题目),只需要在
word_hint_map里新增对应的键和提示列表就行,不用修改循环、判断部分的代码 - 去掉了原代码里冗余的无用变量、重复判断,代码更简洁易维护
内容的提问来源于stack exchange,提问作者Kreg_Haus
相关产品推荐
相关产品推荐

