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

现有Bingo宾果卡片生成代码,如何实现叫号输入及对应空格标记功能

宾果游戏新增号码标记功能实现

需求说明

  • 原有代码已实现宾果卡片随机生成、打印功能
  • 新增需求:支持用户输入被叫号码后,将卡片上对应数字的位置标记为空白

完整可运行代码

import random

def generate_card():
    """
    生成宾果卡片,以字典格式存储各列数字
    """
    card = {
        "B": [],
        "I": [],
        "N": [],
        "G": [],
        "O": [],
    }
    min_num = 1
    max_num = 15  # B列对应数字范围1-15
    for letter in card:
        # 每个列随机取5个不重复数字
        card[letter] = random.sample(range(min_num, max_num + 1), 5)
        min_num += 15
        max_num += 15  # 每列数字范围递增15
        if letter == "N":
            card[letter][2] = "X"  # N列第三个位置为免费空位,默认标记
    return card

def print_card(card):
    """
    打印宾果卡片
    参数:
        card (dict): 要打印的宾果卡片对象
    """
    for letter in card:
        print(letter, end="\t")
        for num in card[letter]:
            print(num, end="\t")
        print("\n")
    print("\n")

def mark_called_number(card, called_num):
    """
    标记被叫号码,对应位置改为空白
    参数:
        card (dict): 宾果卡片对象
        called_num (int): 被叫号码,范围1-75
    返回:
        bool: 是否成功标记
    """
    # 先判断号码所属列
    if 1 <= called_num <= 15:
        col = "B"
    elif 16 <= called_num <= 30:
        col = "I"
    elif 31 <= called_num <= 45:
        col = "N"
    elif 46 <= called_num <= 60:
        col = "G"
    elif 61 <= called_num <= 75:
        col = "O"
    else:
        print("号码无效,请输入1-75之间的数字")
        return False
    
    # 查找号码位置并标记
    if called_num in card[col]:
        idx = card[col].index(called_num)
        card[col][idx] = ""
        print(f"已成功标记号码{called_num}")
        return True
    else:
        print(f"当前卡片无号码{called_num}")
        return False

def main():
    print("欢迎游玩宾果游戏!")
    card = generate_card()
    print("\n您的宾果卡片如下:\n")
    print_card(card)
    print("请输入被叫号码,输入quit可退出游戏:")
    while True:
        input_content = input(">> ").strip()
        if input_content.lower() == "quit":
            print("游戏结束,感谢游玩")
            break
        try:
            called_num = int(input_content)
            mark_called_number(card, called_num)
            print("\n更新后的卡片:")
            print_card(card)
        except ValueError:
            print("输入格式错误,请输入有效数字或quit")

if __name__ == "__main__":
    main()

功能说明

  • 程序启动后自动生成符合规则的宾果卡片,N列中心位置默认显示X作为免费标记
  • 支持用户输入1-75之间的被叫号码,匹配成功后对应位置自动替换为空白
  • 输入错误格式的内容会提示重输,输入quit即可退出程序

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 15:54:05