Files

245 lines
5.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ✊ 剪子包袱锤游戏(石头剪刀布)
经典的石头剪刀布游戏,支持人机对战!
## 🎮 游戏规则
### 基本规则
- **石头** 赢 **剪子** - 石头可以砸坏剪子
- **包袱** 赢 **石头** - 包袱可以包住石头
- **剪子** 赢 **包袱** - 剪子可以剪破包袱
- 相同手势为**平局**
### 游戏流程
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
```
祝你好运!✊✌️🖐️🍀