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

如何在Python编写的随机姓名抽取小游戏中添加轮次功能?

随机姓名抽取游戏添加轮次功能实现方案

核心修改思路

  • 优化原有无效的num_players变量逻辑,不再硬编码固定5名玩家,支持自定义玩家数量
  • 新增轮次配置入口,可自定义抽取轮次,也可调整为每轮手动确认是否继续的模式
  • 新增每轮独立抽取逻辑,支持单独展示每轮获胜者
  • 保留原有计分逻辑,也可根据需要扩展为统计不同玩家的累计获胜次数

完整修改后代码

from random import randint

# 基础配置输入
print("===== 随机姓名抽取游戏 =====")
num_players = int(input('请输入参与玩家的数量: '))
total_rounds = int(input('请输入要抽取的总轮次: '))

# 循环录入玩家姓名,不用固定写死5个输入项
names = []
for i in range(num_players):
    name = input(f'请输入第{i+1}位玩家的姓名: ')
    names.append(name)

# 输出所有参与玩家
print('\n参与游戏的所有玩家:')
print('、'.join(names))

# 按配置轮次执行抽取
score = 0
for round_num in range(1, total_rounds + 1):
    print(f'\n===== 第{round_num}轮抽取结果 =====')
    # 随机生成对应玩家的下标
    win_index = randint(0, num_players - 1)
    winner = names[win_index]
    print(f'本轮获胜者:{winner}')
    score += 1
    print(f'当前已完成抽取轮次:{score}')

input('\n按回车键退出程序 ')

可选扩展:每轮手动确认是否继续

如果不需要提前指定总轮次,想要实现每轮结束手动选择是否继续下一轮的效果,把上述代码中按轮次抽取的部分替换为下方代码即可:

# 替换轮次抽取部分的代码
score = 0
while True:
    score += 1
    print(f'\n===== 第{score}轮抽取结果 =====')
    win_index = randint(0, num_players - 1)
    winner = names[win_index]
    print(f'本轮获胜者:{winner}')
    is_continue = input('是否继续下一轮?输入y继续,输入其他字符即可退出: ')
    if is_continue.lower() != 'y':
        break

内容的提问来源于stack exchange,提问作者Dan The Man

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 22:15:00