Python实现三局两胜石头剪刀布游戏开发指南
📅 2026/7/31 8:05:44
👁️ 次浏览
1. 项目概述这个三局两胜制的石头剪刀布小游戏实现起来比想象中更有门道。作为一个经典的概率游戏它看似简单却蕴含着随机数生成、条件判断、循环控制等多个编程基础知识点。我在实际开发过程中发现要完整实现玩家和电脑每轮都出拳累计胜利两次即结束的核心逻辑需要考虑不少细节问题。2. 核心逻辑设计2.1 游戏规则建模首先我们需要明确游戏的基本规则映射石头 → 数字0剪刀 → 数字1布 → 数字2胜负判定遵循以下规则石头(0) 胜 剪刀(1)剪刀(1) 胜 布(2)布(2) 胜 石头(0)相同则为平局2.2 程序流程设计完整的游戏流程应该包含初始化双方得分0:0开始一轮游戏玩家输入选择0/1/2电脑随机生成选择0/1/2比较双方选择判断胜负更新得分检查是否有方达到2分是 → 结束游戏否 → 继续下一轮3. 关键代码实现3.1 随机数生成电脑的出拳需要使用随机数生成。在Python中可以使用random模块import random computer_choice random.randint(0, 2)这里需要注意random.randint()是包含两端点的所以能生成0、1、2三个有效值。3.2 胜负判断逻辑胜负判断可以通过简单的数学运算实现result (player_choice - computer_choice) % 3 if result 0: print(平局) elif result 1: print(电脑获胜) else: print(玩家获胜)这个算法的巧妙之处在于利用模运算将9种可能的出拳组合简化为3种结果情况。3.3 得分统计与游戏结束判断需要设置两个变量分别记录玩家和电脑的得分player_score 0 computer_score 0 while player_score 2 and computer_score 2: # 游戏逻辑... if 玩家获胜: player_score 1 elif 电脑获胜: computer_score 14. 完整实现代码以下是完整的Python实现import random def determine_winner(player, computer): if player computer: return 0 # 平局 elif (player - computer) % 3 1: return -1 # 电脑赢 else: return 1 # 玩家赢 def play_game(): player_score 0 computer_score 0 while player_score 2 and computer_score 2: print(f当前比分 - 玩家:{player_score} 电脑:{computer_score}) player_choice int(input(请出拳 (0-石头, 1-剪刀, 2-布): )) while player_choice not in [0, 1, 2]: player_choice int(input(输入无效请重新输入 (0-石头, 1-剪刀, 2-布): )) computer_choice random.randint(0, 2) print(f电脑出: {computer_choice}) result determine_winner(player_choice, computer_choice) if result 1: print(玩家获胜) player_score 1 elif result -1: print(电脑获胜) computer_score 1 else: print(平局) print(f最终比分 - 玩家:{player_score} 电脑:{computer_score}) if player_score 2: print(恭喜玩家赢得比赛) else: print(电脑赢得了比赛) play_game()5. 常见问题与优化建议5.1 输入验证在实际测试中发现必须对玩家的输入进行严格验证while True: try: choice int(input(请出拳 (0-石头, 1-剪刀, 2-布): )) if choice in [0, 1, 2]: break else: print(请输入0、1或2) except ValueError: print(请输入数字)5.2 增加可读性可以为数字选择添加文字说明choices {0: 石头, 1: 剪刀, 2: 布} print(f电脑出: {choices[computer_choice]})5.3 扩展功能可以考虑添加以下扩展功能游戏历史记录胜率统计多回合比赛图形界面版本6. 性能优化思考虽然这个小游戏对性能要求不高但有些优化点值得注意随机数生成效率Python的random模块对于这种小游戏已经足够高效循环控制使用while循环比分判断比for循环更合适内存使用不需要保存所有回合记录只需累计分数我在实际开发中发现使用字典来映射胜负关系可以使代码更易读win_rules { 0: 1, # 石头胜剪刀 1: 2, # 剪刀胜布 2: 0 # 布胜石头 } if computer_choice win_rules[player_choice]: print(玩家获胜) elif player_choice win_rules[computer_choice]: print(电脑获胜) else: print(平局)这种实现方式虽然不如数学方法简洁但逻辑更加直观明了。
那天下午,窗外雨下得挺大,办公室里的空调嗡嗡作响。我盯着屏幕上那个蓝色的独立基础模型,心里直打鼓。客户催得急,说下周就要出图,但我知道,光靠点几下鼠标是出不来好结果的。很多人觉得用 geo5独立基础 软件就是点点按钮,输入数据,然后“咔哒”一声,结果就出来了。要…
📅 2026/7/31 8:05:31
1. 问题现象深度解析:当你的Arduino Uno“罢工”时 刚接触Arduino的朋友,十有八九都遇到过这个让人心头一紧的场景:满怀期待地写好代码,点击“上传”按钮,结果IDE底部的状态栏不是显示“上传成功”,而是弹出…
📅 2026/7/31 8:04:44
1. 问题定位:从“突然不能上网”说起 虚拟机网络突然中断,这事儿我估计每个用VMware玩Linux的朋友都遇到过。上一秒还在 yum update 或者 apt upgrade ,下一秒 ping 8.8.8.8 就石沉大海,那种感觉就像正聊得火热突然被拔了网…
📅 2026/7/31 8:04:44
一、现象:同一域名在不同DNS服务器上的TTL表现迥异在日常网络运维中,我们常会遇到一个有趣的现象:对同一域名(如www.jd.com)使用不同的公共DNS服务器进行解析,返回的TTL(Time to Live࿰…
📅 2026/8/1 7:35:01
1. 企业级Skill开发的核心价值 在数字化转型浪潮中,企业开发定制化Skill(技能模块)已成为提升业务敏捷性的关键手段。不同于个人开发者的小型技能开发,企业级Skill需要兼顾系统集成、权限管理、审计追踪等复杂需求。以某零售企业为…
📅 2026/8/1 7:35:01
本文着重研究了一个基于springboot 的无人超市管理系统的开发与实践。文中首先探讨了无人超市管理的关键作用及其在可持续发展方面的重要性,进而论述了采用 VUE框架进行平台开发的理由。文章接着详细介绍了 JAVA语言的优势并讨论了为什么选择 springboot框架来支持 …
📅 2026/8/1 7:35:01
MongoDB的安装1、在Windows系统上安装MongoDB1.1、安装MongoDB1.2、配置环境变量1.3、其他安装形式1.4、常见问题和注意事项1.4.1、服务无法启动1.4.2、单点发行1.4.3、平台支持1.4.4、虚拟化2、在Linux系统上安装MongoDB2.1、使用yum方式安装MongoDB2.2、卸载MongoDB2.3、使用…
📅 2026/8/1 7:35:01
1. 从“手动重复”到“一键完成”:为什么你需要了解WPS JS宏?如果你经常和WPS表格打交道,大概率遇到过这样的场景:每天都要从一堆格式混乱的原始数据里,手动筛选出特定项目,然后复制粘贴到另一个表格&#…
📅 2026/8/1 7:35:01
如何快速获取百度网盘提取码:技术爱好者的完整解决方案 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey
还在为百度网盘资源获取而烦恼吗?每次…
📅 2026/8/1 7:34:01
AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言
HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…
📅 2026/8/1 0:00:26
无损视频剪辑终极指南:如何实现快速高效的多媒体处理 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut
在数字媒体创作领域,视频编辑处理的质量损…
📅 2026/8/1 0:00:30
1. 本科生论文写作的AI辅助现状本科毕业论文是每个大学生必须跨越的一道坎。记得我当年写论文时,光是文献检索就花了整整两周时间,打印的参考文献堆满了半个书桌。如今AI技术的发展为学术写作带来了革命性变化,合理使用这些工具可以节省80%以…
📅 2026/8/1 0:00:30
更多请点击:
https://codechina.net
第一章:AI帮助理解数学概念 人工智能正以前所未有的方式重塑数学学习的路径。通过自然语言处理与符号计算的深度融合,AI不仅能解析抽象定义,还能将定理、证明和几何直觉转化为可交互、可验证的…
📅 2026/8/1 1:20:16
1. 项目背景与核心价值去年参与的一个短剧项目让我深刻体会到传统创作流程的痛点:编剧团队花了三周打磨剧本,角色设计反复修改了七版,最后成片时又因为演员档期问题不得不临时调整分镜。这种低效的创作模式在快节奏的内容行业越来越难以为继。…
📅 2026/8/1 1:20:19
remix-i18next TypeScript类型安全实践:确保翻译键与类型定义同步 【免费下载链接】remix-i18next The easiest way to translate your React Router framework mode apps 项目地址: https://gitcode.com/gh_mirrors/re/remix-i18next
在开发多语言应用时&am…
📅 2026/8/1 1:20:17
AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言
HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…
📅 2026/8/1 0:00:26
无损视频剪辑终极指南:如何实现快速高效的多媒体处理 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut
在数字媒体创作领域,视频编辑处理的质量损…
📅 2026/8/1 0:00:30
1. 本科生论文写作的AI辅助现状本科毕业论文是每个大学生必须跨越的一道坎。记得我当年写论文时,光是文献检索就花了整整两周时间,打印的参考文献堆满了半个书桌。如今AI技术的发展为学术写作带来了革命性变化,合理使用这些工具可以节省80%以…
📅 2026/8/1 0:00:30