# 贪吃蛇小游戏项目文档

## 一、设计背景和目标

该项目旨在通过 Python 的 `turtle` 图形模块实现一个经典贪吃蛇游戏。目标是提升初学者对事件驱动、坐标控制、对象管理和图形界面开发的理解能力。

------

## 二、设计思路

- 使用 `turtle` 模块创建蛇头、蛇身和食物；
- 利用键盘监听绑定方向键控制移动；
- 使用坐标距离判断吃到食物和碰撞；
- 分数统计与更新通过 `Turtle` 文字写入实现；
- 主循环中实时更新游戏状态并刷新界面。

------

## 三、作品创新点

- **完全自主编写代码逻辑**：蛇身增长、移动、碰撞处理、得分系统均为原创实现；
- **无AI生成参与**：本项目所有关键逻辑为人工手写，强调基本算法思维；
- **低门槛图形编程实践**：适合初学者快速上手的图形化互动程序。

------

## 四、材料清单和相关要求

- **操作系统**：Windows / macOS / Linux
- **编程语言**：Python 3.x
- **依赖库**：内置 `turtle`、`random`、`time`，无需额外安装

------

## 五、制作过程（配图示意建议用截图）

1. **搭建界面**：初始化画布和窗口属性。
2. **创建对象**：实例化蛇头、食物和得分板。
3. **绑定按键**：使用 `onkey` 实现方向控制。
4. **主循环逻辑**：包括边界检测、吃食物、得分、增长等。
5. **蛇身逻辑管理**：更新蛇身位置及检测自碰撞。

------

## 六、成果展示与使用说明

### 外观图片示意（建议贴截图）

- 主界面：绿色背景、蛇为方块、食物为红色圆点。

### 接线图与流程图（程序无硬件）

```mermaid
flowchart TD
    Start[游戏开始] --> Init[初始化界面与变量]
    Init --> Listen[监听键盘]
    Listen --> Loop[主循环更新]
    Loop --> |碰撞边界| Reset1[重置游戏]
    Loop --> |吃到食物| Grow[增加蛇身 + 得分]
    Grow --> Update1[更新分数]
    Loop --> |蛇撞自己| Reset2[重置游戏]
    Loop --> Move[蛇头与蛇身移动]
    Move --> Loop
```

### 功能介绍

- 支持上下左右控制移动
- 吃到食物自动加分并增长蛇身
- 撞墙或自撞后自动重置
- 分数实时显示，记录最高分

### 使用说明

运行 Python 脚本后，通过方向键控制蛇头移动，目标是不断吃食物而不撞墙或碰自己身体。

