# ✊ 剪子包袱锤游戏(石头剪刀布) 经典的石头剪刀布游戏,支持人机对战! ## 🎮 游戏规则 ### 基本规则 - **石头** 赢 **剪子** - 石头可以砸坏剪子 - **包袱** 赢 **石头** - 包袱可以包住石头 - **剪子** 赢 **包袱** - 剪子可以剪破包袱 - 相同手势为**平局** ### 游戏流程 1. 玩家选择手势(石头/包袱/剪子) 2. 电脑随机选择手势 3. 比较双方手势,判断胜负 4. 统计战绩,继续或结束游戏 ## 🚀 快速开始 ### 方法 1:运行启动文件 ```bash python play_rps.py ``` ### 方法 2:直接运行游戏 ```bash python rps_game.py ``` ## 🎯 游戏操作 ### 输入方式(三种任选) | 手势 | 数字 | 字母 | 中文 | |------|------|------|------| | 石头 | 1 | r | 石头 | | 包袱 | 2 | p | 包袱 | | 剪子 | 3 | s | 剪子 | ### 示例 ``` 请选择手势: 1. 石头 (r/1) 2. 包袱 (p/2) 3. 剪子 (s/3) 你的选择:r # 或者输入 1,或者输入 石头 ``` ## 📖 游戏流程示例 ``` ============================================================ ✊ 剪子包袱锤 ✌️ ============================================================ 游戏规则: - 石头赢剪子 - 包袱赢石头 - 剪子赢包袱 - 相同手势为平局 ============================================================ 请输入你的名字:小明 你好,小明!让我们开始游戏吧! ------------------------------------------------------------ 第 1 局 ------------------------------------------------------------ 请选择手势: 1. 石头 (r/1) 2. 包袱 (p/2) 3. 剪子 (s/3) 你的选择:石头 🤖 电脑正在思考... 👤 小明:石头 🤖 电脑:剪子 ✅ 小明 赢了!石头 赢 剪子 📊 统计:小明 1 胜 / 电脑 0 胜 / 平局 0 场 是否继续游戏?(y/n): y ``` ## 🎲 概率说明 ### 电脑出拳概率 电脑使用**真随机**选择器,每个手势的概率均为: - 石头:33.33% - 包袱:33.33% - 剪子:33.33% ### 理论胜率 - 玩家胜率:33.33% - 电脑胜率:33.33% - 平局概率:33.33% ## 🏆 技巧提示 ### 心理学策略 虽然电脑是随机的,但人类玩家有规律可循: 1. **首局倾向** - 男性倾向出石头,女性倾向出剪子 2. **连胜模式** - 赢家倾向于保持相同手势 3. **连败模式** - 输家倾向于换手势 4. **平局模式** - 平局后倾向于出能赢上次的手势 ### 高级技巧 - **观察对手习惯** - 记录对手偏好 - **随机化策略** - 避免被对手预测 - **心理战术** - 故意透露虚假信息 ### 温馨提示 ⚠️ 这只是一个娱乐游戏,请勿当真! ⚠️ 电脑完全随机,没有 AI 学习功能! ## 📊 统计功能 游戏提供详细的统计数据: - 总游戏局数 - 玩家胜利场次 - 电脑胜利场次 - 平局场次 - 胜率百分比 - 表现评价 ## 🎨 游戏特色 ✅ 简单易懂的规则 ✅ 多种输入方式(数字/字母/中文) ✅ 友好的用户界面 ✅ 实时统计显示 ✅ 胜率计算 ✅ 智能输入验证 ✅ 完整的游戏流程 ✅ 鼓励性评价系统 ✅ 支持随时退出(Ctrl+C) ## 💡 扩展建议 未来可以添加的功能: - [ ] 三局两胜制 - [ ] 五局三胜制 - [ ] 连胜统计 - [ ] 历史记录 - [ ] 排行榜系统 - [ ] 多种难度(简单/中等/困难) - [ ] 成就系统 - [ ] 音效和动画 - [ ] 双人对战模式 ## 🔧 技术实现 ### 核心技术 - **enum 模块** - 手势枚举 - **random 模块** - 真随机数生成 - **输入验证** - 确保用户输入合法 - **异常处理** - 优雅处理中断和错误 - **统计计算** - 实时数据追踪 ### 克制关系 ```python beats = { Move.ROCK: Move.SCISSORS, # 石头赢剪子 Move.PAPER: Move.ROCK, # 包袱赢石头 Move.SCISSORS: Move.PAPER # 剪子赢包袱 } ``` ### 代码结构 ``` RockPaperScissorsGame ├── __init__() # 初始化游戏状态 ├── display_title() # 显示标题 ├── get_player_name() # 获取玩家名字 ├── get_player_move() # 获取玩家手势 ├── get_computer_move() # 获取电脑手势 ├── determine_winner() # 判断胜负 ├── play_round() # 玩一轮 ├── check_continue() # 检查是否继续 ├── show_final_stats() # 最终统计 └── run() # 主流程 ``` ## 📝 版本历史 ### v1.0.0 - ✅ 基础游戏功能 - ✅ 多种输入方式 - ✅ 统计功能 - ✅ 用户界面优化 - ✅ 输入验证 - ✅ 异常处理 ## 🎓 学习价值 通过这个游戏可以学习: - Python 基础语法 - 枚举类型使用 - 随机数生成 - 用户输入处理 - 游戏循环设计 - 状态管理 - 数据追踪 - 字典数据结构 ## 🌍 文化背景 ### 历史起源 - 起源于中国汉朝(公元前 206 年 - 公元 220 年) - 最初是酒令游戏 - 后传播到日本、韩国等东亚国家 - 现已成为全球知名的游戏 ### 不同名称 - **中国**:石头剪刀布 - **日本**:じゃんけん (Jan-ken-pon) - **韩国**:가위바위보 (Kawi Bawi Bo) - **英语国家**:Rock Paper Scissors ### 有趣事实 - 2005 年,日本机器人用高速相机在 20 毫秒内识别手势并获胜 - 2011 年,东京大学机器人保持 100% 胜率 - 世界石头剪刀布协会每年举办世界锦标赛 ## 📄 许可证 MIT License ## 🎉 开始游戏 ```bash # 无需安装额外依赖 python play_rps.py ``` 祝你好运!✊✌️🖐️🍀