You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Hangman游戏添加整词猜测功能?附现有代码求助

实现Hangman游戏的完整单词猜测功能

要添加「提前猜测完整单词」的功能,只需要在原代码的输入处理环节增加判断逻辑,区分用户输入的是单个字母还是完整单词,然后分别处理即可。具体修改如下:

关键修改点

  • 调整输入提示,明确告知用户可以选择输入单个字母或完整单词
  • 增加长度判断:若输入长度和目标单词一致,判定为完整单词猜测;若长度为1则按单字母处理,否则提示用户输入格式错误
  • 完整单词猜测的处理逻辑:猜对直接触发胜利,猜错则增加错误次数(无需将完整单词加入已用字母列表)
  • 优化已用字母列表的更新逻辑:仅当输入是单个字母时,才将其加入已用字母列表

修改后的完整代码

import random

# 假设这些常量是你定义的示例,可根据实际需求调整
WORDS = ["PYTHON", "HANGMAN", "DEVELOPER", "PROGRAM"]
MAX_WRONG = 6
HANGMAN = [
    """
      +---+
          |
          |
          |
         ===
    """,
    """
      +---+
      O   |
          |
          |
         ===
    """,
    """
      +---+
      O   |
      |   |
          |
         ===
    """,
    """
      +---+
      O   |
     /|   |
          |
         ===
    """,
    """
      +---+
      O   |
     /|\\  |
          |
         ===
    """,
    """
      +---+
      O   |
     /|\\  |
     /    |
         ===
    """,
    """
      +---+
      O   |
     /|\\  |
     / \\  |
         ===
    """
]

def game_play():
    word = random.choice(WORDS)

    # 用短横线代替单词中的每个字母
    current_guess = "-" * len(word)

    # 错误猜测计数器
    wrong_guesses = 0

    # 已使用字母追踪列表
    used_letters = []

    while wrong_guesses < MAX_WRONG and current_guess != word:
        print(HANGMAN[wrong_guesses])
        print("你已使用过的字母: ", used_letters)
        print("当前单词进度: ", current_guess)
    
        # 修改输入提示,告知用户可选输入类型
        guess = input("请输入单个字母猜测,或直接输入完整单词尝试:")
        guess = guess.upper()
    
        # 处理输入格式错误:既不是单个字母也不是和单词长度一致的输入
        while len(guess) != 1 and len(guess) != len(word):
            print(f"输入格式错误!请输入单个字母,或长度为{len(word)}的完整单词")
            guess = input("请重新输入:")
            guess = guess.upper()

        # 如果是单字母猜测,检查是否已使用过
        if len(guess) == 1:
            while guess in used_letters:
                print("你已经猜过字母", guess)
                guess = input("请重新输入单个字母: ")
                guess = guess.upper()
            # 加入已用字母列表
            used_letters.append(guess)

        # 检查猜测结果
        if len(guess) == len(word):
            # 完整单词猜测逻辑
            if guess == word:
                print("恭喜你直接猜中了完整单词!")
                current_guess = word  # 直接设置为正确单词,触发胜利条件
            else:
                print("很遗憾,这个单词不对!")
                wrong_guesses += 1
        else:
            # 保留原有的单字母猜测逻辑
            if guess in word:
                print("猜中字母了!")
        
                # 更新当前猜测进度
                new_current_guess = ""
                for letter in range(len(word)):
                    if guess == word[letter]:
                        new_current_guess += guess
                    else:
                        new_current_guess += current_guess[letter]
                    
                current_guess = new_current_guess
            else:
                print("这个字母不在单词里!")
                wrong_guesses += 1
        
    # 游戏结束逻辑
    if wrong_guesses == MAX_WRONG:
        print(HANGMAN[wrong_guesses])
        print("你被吊死了!")
        print("正确单词是:", word)
    
    else:
        print("你赢了!!")

game_play()

代码说明

  1. 输入提示更新:明确告诉用户两种输入选项,避免操作混淆
  2. 输入格式校验:过滤无效输入,引导用户输入符合要求的内容
  3. 模式区分:通过输入长度和目标单词长度的对比,自动切换单字母/完整单词猜测模式
  4. 完整单词处理:猜对直接结束游戏,猜错仅增加错误次数,不干扰已用字母列表
  5. 原有逻辑保留:单字母猜测的功能完全保留,确保原有玩法不受影响

内容的提问来源于stack exchange,提问作者luc_1101

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 12:36:31