mirror of
https://github.com/LHY0125/Gobang-Game.git
synced 2026-05-09 18:09:46 +08:00
Update main.c and add project requirements
This commit is contained in:
@@ -0,0 +1,59 @@
|
|||||||
|
项目要求文档 - 五子棋游戏
|
||||||
|
|
||||||
|
1. 项目概述
|
||||||
|
- 开发一个基于C语言的五子棋游戏,支持本地多人、AI对战和网络对战模式。
|
||||||
|
- 游戏应运行在Windows环境下,支持命令行界面。
|
||||||
|
- 包括游戏配置、记录保存和复盘功能。
|
||||||
|
|
||||||
|
2. 功能需求
|
||||||
|
- **游戏模式**:
|
||||||
|
- 单人模式:玩家 vs AI
|
||||||
|
- 双人模式:本地两人对战
|
||||||
|
- 网络模式:通过TCP/IP进行远程对战
|
||||||
|
- **棋盘和规则**:
|
||||||
|
- 默认15x15棋盘,支持自定义大小(5-25)
|
||||||
|
- 支持禁手规则选项
|
||||||
|
- 先手黑子,五连珠获胜
|
||||||
|
- **AI功能**:
|
||||||
|
- 实现AI算法,支持不同难度级别(1-5级)
|
||||||
|
- AI应能计算最佳落子位置
|
||||||
|
- 支持Alpha-Beta剪枝算法和威胁检测
|
||||||
|
- **配置管理**:
|
||||||
|
- 支持修改棋盘大小、禁手规则、计时器、网络端口等
|
||||||
|
- 配置保存到INI文件
|
||||||
|
- 默认配置和重置功能
|
||||||
|
- 统一的输入验证机制
|
||||||
|
- **游戏记录**:
|
||||||
|
- 自动保存对局记录到CSV文件
|
||||||
|
- 支持复盘功能,查看历史对局
|
||||||
|
- 记录包含时间戳、玩家信息、棋局步骤等
|
||||||
|
- **用户界面**:
|
||||||
|
- 命令行界面显示棋盘
|
||||||
|
- 支持坐标输入落子(数字格式:行 列)
|
||||||
|
- 显示当前玩家、计时、游戏状态等信息
|
||||||
|
- 菜单系统和配置界面
|
||||||
|
- **网络功能**:
|
||||||
|
- 支持服务器/客户端模式
|
||||||
|
- 实时传输棋子位置
|
||||||
|
- 超时和断线处理
|
||||||
|
- 支持端口配置
|
||||||
|
|
||||||
|
3. 技术要求
|
||||||
|
- 使用C语言开发
|
||||||
|
- Windows平台,包含Winsock网络库(-lws2_32链接)
|
||||||
|
- 模块化设计:分离游戏逻辑、AI、配置、网络、UI等模块
|
||||||
|
- 错误处理和统一的输入验证
|
||||||
|
- 支持跨平台编译(Windows/Linux)
|
||||||
|
|
||||||
|
4. 非功能需求
|
||||||
|
- 性能:响应时间<1秒(AI计算除外)
|
||||||
|
- 可维护性:代码模块化,注释清晰
|
||||||
|
- 兼容性:Windows 11,支持GCC编译器
|
||||||
|
- 可扩展性:易于添加新的AI算法和游戏模式
|
||||||
|
|
||||||
|
5. 交付物
|
||||||
|
- 源代码文件(.c/.h文件)
|
||||||
|
- 配置文件(gobang_config.ini)
|
||||||
|
- 记录文件夹(records/)
|
||||||
|
- 文档:README.md、AI增强指南、架构重构指南、网络功能说明、图标指南等
|
||||||
|
- 代码统计报告和项目简介
|
||||||
@@ -1,3 +1,15 @@
|
|||||||
|
/**
|
||||||
|
* @file main.c
|
||||||
|
* @brief 五子棋游戏主函数文件
|
||||||
|
* @note 本文件包含了游戏的主循环、模式选择和游戏初始化等功能
|
||||||
|
* @brief 将以下指令复制到powershell
|
||||||
|
* gcc -std=c17 -o gobang.exe *.c -lws2_32
|
||||||
|
.\gobang.exe
|
||||||
|
* @detail gcc 为编译器,添加了-lws2_32链接Windows网络库
|
||||||
|
* @detail 编译指令:gcc -std=c17 -o gobang.exe *.c -lws2_32
|
||||||
|
* @detail 运行指令:.\gobang.exe
|
||||||
|
*/
|
||||||
|
|
||||||
#include "game_mode.h"
|
#include "game_mode.h"
|
||||||
#include "ui.h"
|
#include "ui.h"
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
@@ -7,13 +19,6 @@
|
|||||||
#include <direct.h>
|
#include <direct.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief 将指令复制到powershell
|
|
||||||
* gcc -std=c17 -o gobang.exe *.c -lws2_32
|
|
||||||
.\gobang.exe
|
|
||||||
* gcc 为编译器,添加了-lws2_32链接Windows网络库
|
|
||||||
*/
|
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
// 设置控制台编码为UTF-8
|
// 设置控制台编码为UTF-8
|
||||||
|
|||||||
Reference in New Issue
Block a user