如何修改已打印字符串?刽子手(Hangman)游戏界面更新求助
刽子手(Hangman)游戏优化方案:动态更新显示内容
维护动态显示列表
别直接打印固定的下划线字符串,用一个列表保存当前显示状态,初始时列表元素全是下划线,长度和目标单词一致。每次用户猜中字母,就遍历目标单词,把对应位置的下划线替换成该字母,之后每次都重新打印这个列表拼接成的字符串。刷新控制台实现界面更新
每次用户输入后,先清空控制台再重新打印所有游戏状态,不同系统的清屏命令可以做兼容处理:- Windows系统用
os.system('cls') - Linux/macOS系统用
os.system('clear')
清屏后重新输出刽子手图形、已猜字母列表、当前的下划线/已猜中字母组合,就能实现“刷新”的效果。
- Windows系统用
参考代码片段
import os target_word = "hangman" display_list = ["_"] * len(target_word) guessed_letters = [] while True: # 跨系统清屏 os.system('cls' if os.name == 'nt' else 'clear') # 打印当前的单词显示状态 print(" ".join(display_list)) # 打印已猜过的字母 print(f"已猜字母: {', '.join(guessed_letters) if guessed_letters else '无'}") # 获取用户输入 user_guess = input("请输入一个字母: ").strip().lower() if user_guess in guessed_letters: print("这个字母已经猜过了!") input("按回车继续...") continue guessed_letters.append(user_guess) # 更新显示列表 if user_guess in target_word: for index, char in enumerate(target_word): if char == user_guess: display_list[index] = user_guess # 这里可补充游戏胜利/失败的判断逻辑
内容的提问来源于stack exchange,提问作者user17627774
相关产品推荐
相关产品推荐

