mirror of
https://github.com/LHY0125/Gobang-Game.git
synced 2026-06-30 18:45:56 +08:00
96a94aaddf
- 构建系统:Makefile 迁移至 CMakeLists.txt,支持 cJSON 和 WinHTTP - 项目结构:src/ 按功能拆分为 core/、gui/、network/、record/、llm/ 子目录 - 新功能:集成大模型 AI(WinHTTP + cJSON,兼容 OpenAI 协议),支持异步请求 - 渲染修复:IupDraw* 替换为 Windows GDI,修复画布黑屏问题 - 网络修复:ENet 初始化幂等化,实现真实 get_local_ip() (Winsock) - 代码质量:删除死代码 (dfs/count_threats_in_direction),修复头文件守卫, sprintf→snprintf 防溢出,strncpy 安全终止,GDI 资源泄漏修复 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
47 lines
2.6 KiB
C
47 lines
2.6 KiB
C
/**
|
|
* @file globals.c
|
|
* @author 刘航宇(3364451258@qq.com、15236416560@163.com、lhy3364451258@outlook.com)
|
|
* @brief 全局变量定义和初始化文件
|
|
* @note 集中管理所有全局变量的定义和初始化,提高代码可维护性
|
|
*/
|
|
|
|
#include "globals.h"
|
|
#include "config.h"
|
|
|
|
// ==================== 游戏核心变量定义 ====================
|
|
int BOARD_SIZE = DEFAULT_BOARD_SIZE; // 实际使用的棋盘尺寸
|
|
int board[MAX_BOARD_SIZE][MAX_BOARD_SIZE] = {0}; // 棋盘状态存储数组(默认棋盘全空为0)
|
|
Step steps[MAX_STEPS]; // 存储所有落子步骤的数组
|
|
const int direction[4][2] = {{1, 0}, {0, 1}, {1, 1}, {1, -1}}; // 四个方向:向下、向右、右下、左下
|
|
int step_count = 0; // 当前步数计数器
|
|
|
|
// ==================== 游戏配置变量定义 ====================
|
|
bool use_forbidden_moves = DEFAULT_USE_FORBIDDEN_MOVES; // 是否启用禁手规则
|
|
int use_timer = DEFAULT_USE_TIMER; // 是否启用计时器
|
|
int time_limit = DEFAULT_TIME_LIMIT; // 每回合的时间限制(秒)
|
|
int network_port = DEFAULT_NETWORK_PORT; // 网络端口
|
|
int network_timeout = NETWORK_TIMEOUT_MS; // 网络超时时间
|
|
|
|
// ==================== AI相关变量定义 ====================
|
|
double defense_coefficient = DEFAULT_DEFENSE_COEFFICIENT; // 防守系数
|
|
int ai_difficulty = 3; // AI难度 (1-5)
|
|
|
|
// ==================== LLM大模型相关变量定义 ====================
|
|
int llm_use = DEFAULT_LLM_USE; // 是否使用LLM
|
|
char llm_endpoint[MAX_LLM_ENDPOINT_LEN] = DEFAULT_LLM_ENDPOINT; // API地址
|
|
char llm_api_key[MAX_LLM_API_KEY_LEN] = DEFAULT_LLM_API_KEY; // API Key
|
|
char llm_model[MAX_LLM_MODEL_LEN] = DEFAULT_LLM_MODEL; // 模型名
|
|
|
|
// ==================== 网络相关变量定义 ====================
|
|
NetworkGameState network_state = {0}; // 网络游戏状态
|
|
|
|
// ==================== GUI相关变量定义 ====================
|
|
int current_player_gui = PLAYER; // GUI当前玩家
|
|
int game_over = 0; // 游戏结束标志
|
|
char status_message[256] = "五子棋游戏 - 黑子先行"; // 状态消息
|
|
|
|
// ==================== 记录相关变量定义 ====================
|
|
int player1_final_score = 0; // 玩家1最终得分
|
|
int player2_final_score = 0; // 玩家2最终得分
|
|
int scores_calculated = 0; // 评分计算标志
|
|
char winner_info[50] = "平局或未完成"; // 存储胜负信息
|