# game_system **Repository Path**: dragon_2C/game_system ## Basic Information - **Project Name**: game_system - **Description**: 基于 C/C++ 与 SDL2和easys 图形库开发的两款经典小游戏合集,贪吃蛇侧重 C 语言基础应用,五子棋融入 C++ 特性,实现从核心逻辑到可视化交互的全流程开发,适合展示基础编程能力与图形化开发实践。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-26 - **Last Updated**: 2025-09-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 🎮 项目简介 本项目独立开发两款经典益智小游戏,通过分语言特性设计实现技术栈的针对性应用: 贪吃蛇:以 C 语言为核心,聚焦结构体封装、数组操作与指针优化,搭配 SDL2 实现图形化交互; 五子棋:融合 C 语言算法与 C++ 特性,用二维数组管理棋盘,借助 STL 容器存储历史记录,加入随机落子 AI 提升可玩性。 整体采用模块化设计,通过 Git 版本控制与 MinGW 编译环境,确保开发流程规范与跨平台兼容性。 🛠️ 技术栈 核心语言:C 语言(基础逻辑、结构体、数组、指针)、C++(STL vector、命名空间、iostream) 图形库:SDL2(键盘响应、鼠标交互、图形渲染、界面绘制) 开发工具:MinGW(编译环境)、Git(版本控制) 数据结构:结构体(封装游戏状态)、二维数组(棋盘管理)、vector 容器(历史记录存储) 🎯 核心功能 1. 贪吃蛇(C 语言主导) 用 结构体 封装游戏核心状态:蛇身坐标、食物位置、当前得分、游戏运行状态; 以 数组 存储蛇身节点,通过 指针 优化数据访问效率,实现蛇身移动、增长逻辑; 基于 SDL2 实现:键盘方向键控制蛇的移动方向、实时图形渲染(蛇身、食物、得分文本); 引入 C++ iostream 辅助输入输出处理,搭配边界碰撞与蛇身自撞判定逻辑。 2. 五子棋(C++ 特性融合) C 语言实现核心算法:二维数组管理 15×15 棋盘数据,结构体记录落子坐标、玩家身份与胜负状态; 胜负判定逻辑:遍历横、竖、斜向 4 个方向,检测连续 5 子同色即判定胜利; C++ 特性应用:用 STL vector 存储历史落子记录,支持悔棋功能;通过 命名空间 隔离棋盘、AI、渲染等模块; SDL2 交互与 AI:鼠标点击落子、实时绘制棋盘与棋子,内置随机落子 AI 对手,适配单人游戏场景。 3. 工程管理与优化 采用 Git 进行版本控制,记录开发全流程,支持回溯与协作; 基于 MinGW 编译环境配置,提供清晰的编译指令与依赖说明; 模块化代码设计:功能拆分明确(逻辑层、渲染层、交互层),命名空间隔离避免冲突,提升代码可读性与维护性。 📦 快速开始 环境依赖 安装 MinGW 编译环境(确保 gcc/g++ 可用); 配置 SDL2 图形库(包含头文件与链接库,具体见 README.md 配置指南); 克隆仓库: bash git clone https://gitee.com/你的用户名/仓库名.git 编译与运行 进入项目根目录,执行编译脚本(或手动编译,以贪吃蛇为例): bash g++ snake.cpp -o snake.exe -IC:/SDL2/include -LC:/SDL2/lib -lSDL2main -lSDL2 运行生成的可执行文件(snake.exe / gobang.exe)即可启动对应游戏。 📋 项目结构