Add 经典贪吃蛇游戏 - Pygame 实现的精美贪吃蛇小游戏

This commit is contained in:
traetest
2026-04-13 01:57:04 +08:00
parent ab57f0cd33
commit 4bcce60d32
4 changed files with 617 additions and 0 deletions
+225
View File
@@ -0,0 +1,225 @@
# 🐍 Python 经典贪吃蛇游戏
一个使用 Python 和 Pygame 开发的经典贪吃蛇游戏,画面精美,操作简单有趣!
## ✨ 游戏特性
### 🎮 核心玩法
- **经典规则** - 控制蛇移动,吃到食物变长
- **渐进难度** - 每吃 5 个食物速度加快
- **精美画面** - 现代化 UI 设计,蛇有眼睛动画
- **流畅操作** - 支持方向键和 WASD 双控制方案
### 🎨 视觉效果
- 深蓝色背景 + 网格线
- 绿色蛇身,带眼睛动画
- 红色圆形食物,带高光和阴影
- 半透明游戏结束/暂停界面
- 实时分数和速度显示
### 🎯 游戏功能
- 暂停/继续功能(P 键)
- 游戏结束后快速重开(空格键)
- 优雅退出(ESC 键)
- 碰撞检测(墙壁和自己)
- 速度系统(10-25 FPS)
## 📦 安装依赖
```bash
pip install -r game_requirements.txt
```
或者单独安装:
```bash
pip install pygame>=2.5.0
```
## 🚀 快速开始
### 方法 1:运行启动文件
```bash
python play_game.py
```
### 方法 2:直接运行游戏
```bash
python snake_game.py
```
## 🎮 游戏操作
| 按键 | 功能 |
|------|------|
| ↑ / W | 向上移动 |
| ↓ / S | 向下移动 |
| ← / A | 向左移动 |
| → / D | 向右移动 |
| P | 暂停/继续游戏 |
| 空格 | 游戏结束后重新开始 |
| ESC | 退出游戏 |
## 📖 游戏规则
1. **目标** - 控制蛇吃到尽可能多的食物
2. **得分** - 每个食物 = 10 分
3. **加速** - 每吃 5 个食物(50 分),速度提升 2 档
4. **失败条件**:
- 蛇头撞到墙壁
- 蛇头撞到自己的身体
5. **最大速度** - 25 FPS(初始速度 10 FPS)
## 🏆 技巧提示
### 新手技巧
- 开始时速度较慢,熟悉操作
- 提前规划路线,不要急转弯
- 尽量保持在屏幕中央活动
### 进阶技巧
- 利用墙壁反弹改变方向
- 预留足够的转弯空间
- 高速时小幅调整方向
- 观察蛇头眼睛判断方向
### 高分策略
- 采用"之"字形路线清理食物
- 避免把自己逼入死角
- 保持蛇身紧凑,留出空间
- 后期以生存为主,不要贪心
## 🎨 游戏画面
```
┌────────────────────────────────────────┐
│ Score: 120 Speed: 14 │
├────────────────────────────────────────┤
│ │
│ ●●●●● (蛇) │
│ ● │
│ ● │
│ ●●●● │
│ ● │
│ ● 🍎 (食物) │
│ │
│ │
└────────────────────────────────────────┘
```
## 🔧 自定义配置
### 修改窗口大小
编辑 `snake_game.py` 中的初始化参数:
```python
game = SnakeGame(width=1000, height=800, cell_size=25)
```
### 修改颜色
编辑 `snake_game.py` 中的颜色字典:
```python
self.colors = {
'background': (15, 23, 42), # 背景色
'snake_head': (34, 197, 94), # 蛇头颜色
'snake_body': (22, 163, 74), # 蛇身颜色
'food': (239, 68, 68), # 食物颜色
# ... 更多颜色
}
```
### 修改初始速度
```python
self.speed = 15 # 改为 15 FPS
```
## 🐛 常见问题
### Q: 游戏窗口打不开?
A: 确保已安装 Pygame:`pip install pygame`
### Q: 按键没反应?
A: 确保游戏窗口处于焦点状态,点击窗口后再操作
### Q: 游戏太慢/太快?
A: 修改 `self.speed = 10` 调整初始速度
### Q: 想要更大/更小的蛇?
A: 修改 `cell_size = 20` 调整格子大小
## 🎯 扩展计划
- [ ] 添加音效和背景音乐
- [ ] 多种难度选择
- [ ] 排行榜系统
- [ ] 多种蛇皮肤
- [ ] 双人模式
- [ ] 特殊道具(加速、减速、穿墙)
- [ ] 地图编辑器
- [ ] 录像回放功能
## 💻 技术实现
### 核心技术
- **Pygame** - 游戏引擎和渲染
- **网格系统** - 基于网格的移动和碰撞检测
- **队列数据结构** - 蛇身管理
- **事件驱动** - 键盘输入处理
### 性能优化
- 只重绘变化的部分
- 使用矩形碰撞检测
- 帧率控制保证流畅性
### 代码结构
```
SnakeGame
├── __init__() # 初始化
├── reset_game() # 重置游戏
├── _generate_food() # 生成食物
├── _handle_events() # 处理事件
├── _update() # 更新状态
├── _check_collision() # 碰撞检测
├── _draw_grid() # 绘制网格
├── _draw_snake() # 绘制蛇
├── _draw_food() # 绘制食物
├── _draw_score() # 绘制分数
├── _draw_game_over() # 游戏结束画面
├── _draw_paused() # 暂停画面
├── draw() # 总绘制
└── run() # 主循环
```
## 📝 版本历史
### v1.0.0
- ✅ 基础游戏功能
- ✅ 精美 UI 界面
- ✅ 蛇眼睛动画
- ✅ 暂停/继续功能
- ✅ 速度系统
- ✅ 碰撞检测
## 🎓 学习价值
通过这个游戏可以学习:
- Pygame 基础使用
- 游戏循环设计
- 碰撞检测算法
- 事件处理机制
- 面向对象编程
- 动画原理
## 📄 许可证
MIT License
## 🎉 开始游戏
```bash
# 安装依赖
pip install -r game_requirements.txt
# 运行游戏
python play_game.py
```
祝你玩得开心!🐍🎮