Files
Gobang-Game/include/gui.h
T
Serendipity 0baab8bec6 feat(gui): 添加主菜单和游戏模式选择界面
- 新增 GUI 主菜单,支持玩家对战、人机对战、复盘模式和设置选项
- 新增游戏设置对话框,可配置棋盘大小、禁手、计时器和 AI 难度
- 重构 GUI 游戏窗口,集成悔棋、保存和返回菜单功能
- 更新 Makefile 以支持 PowerShell 并添加新源文件编译
- 调整窗口尺寸为 1000x800 以提供更好的游戏体验
2026-03-17 15:41:48 +08:00

84 lines
1.3 KiB
C

/**
* @file gui.h
* @brief 图形化用户界面头文件
* @note 使用Raylib库实现五子棋的图形化界面
* @author 刘航宇
* @date 2025-01-15
*/
#ifndef GUI_H
#define GUI_H
#include "gobang.h"
#include "config.h"
#include "globals.h"
// GUI函数声明
/**
* @brief 初始化GUI
* @details 初始化Raylib图形库和游戏界面组件
* @return 成功返回0,失败返回-1
*/
int init_gui();
/**
* @brief 清理GUI资源
* @details 关闭窗口
*/
void cleanup_gui();
/**
* @brief 渲染游戏画面
* @details 完整的游戏画面渲染流程
*/
void render_game();
/**
* @brief 处理事件
* @details 处理所有Raylib事件并执行相应操作
* @return 继续运行返回1,退出返回0
*/
int handle_events();
/**
* @brief 绘制棋盘
*/
void draw_board();
/**
* @brief 绘制棋子
*/
void draw_stones();
/**
* @brief 绘制UI元素
*/
void draw_ui_elements();
/**
* @brief 屏幕坐标转棋盘坐标
*/
int screen_to_board(int screen_x, int screen_y, int *board_x, int *board_y);
/**
* @brief 显示消息
*/
void show_message(const char *message);
/**
* @brief 启动玩家对战模式
*/
void start_pvp_game_gui();
/**
* @brief 启动人机对战模式
*/
void start_pve_game_gui();
/**
* @brief 启动复盘模式
*/
void start_replay_gui();
#endif // GUI_H