如何在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
相关产品推荐
相关产品推荐

