项目要求文档 - 五子棋游戏 (v8.3)

1. 项目概述
   - 开发一个基于C语言的五子棋游戏，支持本地多人、AI对战和网络对战模式。
   - v8.3版本（当前版本）引入了IUP图形库，实现了轻量级、跨平台的图形界面。
   - v8.2版本完善了专业安装包制作体系，提供企业级的软件分发解决方案。
   - v8.0版本实现双版本架构：支持命令行界面和GUI图形化界面。
   - 包括游戏配置、记录保存、复盘功能和专业安装包。
   - 提供现代化的可视化用户体验和传统控制台体验。

2. 功能需求
   - **游戏模式**：
     - 单人模式：玩家 vs AI
     - 双人模式：本地两人对战
     - 网络模式：通过TCP/IP进行远程对战
   - **棋盘和规则**：
     - 默认15x15棋盘，支持自定义大小（5-25）
     - 支持禁手规则选项
     - 先手黑子，五连珠获胜
   - **AI功能**：
     - 实现AI算法，支持不同难度级别（1-5级）
     - AI应能计算最佳落子位置
     - 支持Alpha-Beta剪枝算法和威胁检测
   - **配置管理**：
     - 支持修改棋盘大小、禁手规则、计时器、网络端口等
     - 配置保存到INI文件
     - 默认配置和重置功能
     - 统一的输入验证机制
   - **游戏记录**：
     - 自动保存对局记录到CSV文件
     - 支持复盘功能，查看历史对局
     - 记录包含时间戳、玩家信息、棋局步骤等
   - **用户界面**：
     - **控制台界面**：传统命令行界面显示棋盘
     - **图形化界面**（v8.3新增IUP）：基于IUP的轻量级GUI界面
     - **鼠标交互**：支持点击落子操作
     - **窗口管理**：自动居中、响应式设计
     - **事件驱动**：流畅的用户交互体验
     - 支持坐标输入落子（数字格式：行 列）
     - 显示当前玩家、计时、游戏状态等信息
     - 菜单系统和配置界面
   - **网络功能**：
     - 支持服务器/客户端模式
     - 实时传输棋子位置
     - 超时和断线处理
     - 支持端口配置

3. 技术要求
   - 使用C语言开发
   - Windows平台，包含Winsock网络库（-lws2_32链接）
   - **IUP图形库**（v8.3新增）：用于GUI界面开发，替代原SDL3方案
   - **双版本架构**：控制台版本和GUI版本并行支持
   - 模块化设计：分离游戏逻辑、AI、配置、网络、UI、GUI等模块
   - **安装包制作**：支持Inno Setup和NSIS专业安装程序
   - **构建系统**：使用Makefile管理编译流程
   - 错误处理和统一的输入验证
   - 支持跨平台编译（Windows/Linux）

4. 非功能需求
   - 性能：响应时间<1秒（AI计算除外）
   - 可维护性：代码模块化，注释清晰
   - 兼容性：Windows 11，支持GCC编译器
   - 可扩展性：易于添加新的AI算法和游戏模式
   - 部署便捷：依赖库本地化，开箱即用

5. 交付物
   - 源代码文件（.c/.h文件）
   - 配置文件（gobang_config.ini）
   - 记录文件夹（records/）
   - 文档：README.md、AI增强指南、架构重构指南、网络功能说明、图标指南等
   - 代码统计报告和项目简介
