# snake **Repository Path**: guo-jiachang494/snake ## Basic Information - **Project Name**: snake - **Description**: 贪吃蛇游戏( c++) - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-14 - **Last Updated**: 2025-12-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 贪吃蛇游戏 (Snake Game) 一个使用SFML库开发的多人贪吃蛇游戏,支持单人模式与局域网对战模式。 ## 功能特性 ### 游戏模式 - **单人模式**:与两个AI对手竞争,挑战最高分 - **局域网模式**:支持多人在线对战(功能预留,UI已实现) ### 游戏特点 - **智能AI对手**: - AI1(蓝色):专注于追逐食物 - AI2(紫色):优先躲避玩家,再追逐食物 - **流畅的游戏体验**: - 屏幕环绕机制(从一侧穿出,从另一侧进入) - 实时分数显示 - 友好的图形界面 - **响应式控制**: - WASD键控制方向 - 鼠标点击选择游戏模式 ### 技术特点 - 使用SFML图形库实现2D渲染 - 面向对象的游戏设计 - 智能AI路径算法 - 碰撞检测系统 ## 安装步骤 ### 环境要求 - Windows操作系统 - Visual Studio 2022或更高版本 - SFML图形库(Simple and Fast Multimedia Library) ### 安装SFML 1. 从[SFML官网](https://www.sfml-dev.org/download.php)下载适用于Visual Studio的版本 2. 解压到合适的位置(例如:`C:\SFML`) 3. 设置环境变量:`SFML_ROOT=C:\SFML`(替换为实际路径) ### 编译项目 1. 打开Visual Studio Developer Command Prompt或"x64 Native Tools Command Prompt for VS 2022" 2. 导航到项目目录:`cd e:\dev\snake` 3. 运行构建脚本:`build.bat` 4. 编译成功后,可执行文件将生成在项目目录下 ### 快速编译 ```bash # 在Visual Studio Developer Command Prompt中执行 cl /EHsc /Fe:snake.exe snake1\snake.cpp /I"%SFML_ROOT%\include" /link /LIBPATH:"%SFML_ROOT%\lib" sfml-graphics.lib sfml-window.lib sfml-system.lib sfml-network.lib ``` ## 游戏操作 ### 开始游戏 1. 运行`snake.exe`启动游戏 2. 在主界面选择游戏模式: - 单击"SINGLE PLAYER"按钮开始单人游戏 - "ONLINE MODE"按钮为预留功能 ### 控制方式 - **W**:向上移动 - **A**:向左移动 - **S**:向下移动 - **D**:向右移动 - **X**:退出游戏 ### 游戏规则 - 控制绿色蛇吃食物(红色方块)来增长 - 每吃一个食物得10分 - 避免撞到墙壁、自己的身体或其他蛇 - 游戏支持屏幕环绕(从一侧穿出,从另一侧进入) ## 项目结构 ``` snake/ ├── README.md # 项目说明文档 ├── build.bat # 构建脚本 ├── snake1.sln # Visual Studio解决方案文件 ├── snake1/ # 源代码目录 │ ├── main.cpp # 主程序(已注释的旧版本) │ ├── snake.cpp # 游戏核心实现 │ ├── snake1.vcxproj # Visual Studio项目文件 │ ├── snake1.vcxproj.filters │ └── snake1.vcxproj.user └── x64/Debug/ # 编译输出目录 ├── snake1.exe # 可执行文件 └── snake1.pdb # 调试信息 ``` ## 开发说明 ### 代码结构 - **Point结构体**:表示二维坐标点 - **Direction枚举**:定义移动方向 - **Game类**:游戏核心逻辑,包含: - 游戏状态管理 - 蛇的移动与碰撞检测 - AI决策算法 - 图形渲染 ### AI算法 - **AI1(追逐型)**:计算到食物的最短路径,优先沿距离较大的轴向移动 - **AI2(躲避型)**:当与玩家距离小于等于3格时优先躲避,否则按AI1逻辑行动 ### 待实现功能 - 局域网多人对战模式 - 难度等级选择 - 更多游戏模式(如障碍物模式、限时模式等) - 音效与背景音乐 ## 常见问题 ### 编译错误 - **找不到cl.exe**:确保在Visual Studio Developer Command Prompt中运行构建脚本 - **找不到SFML库**:检查SFML_ROOT环境变量是否正确设置,确保SFML库路径存在 ### 运行问题 - **缺少DLL**:确保SFML的DLL文件在系统PATH中或与可执行文件在同一目录 - **字体显示问题**:程序会自动尝试加载系统字体,如失败将使用默认字体 ## 贡献指南 欢迎提交Issue和Pull Request来改进游戏! 1. Fork本项目 2. 创建特性分支:`git checkout -b feature/新功能` 3. 提交更改:`git commit -am '添加新功能'` 4. 推送分支:`git push origin feature/新功能` 5. 提交Pull Request ## 许可证 本项目采用MIT许可证,详见LICENSE文件。 ## 致谢 - [SFML](https://www.sfml-dev.org/) - 简单快速的多媒体库 - [Visual Studio](https://visualstudio.microsoft.com/) - 开发环境