Commit Graph

83 Commits

Author SHA1 Message Date
Serendipity 966ecaef3d chore: bump version to 2.0.1 v2.0.1 2026-05-31 13:56:24 +08:00
Serendipity a16041cd67 fix: 计时器改为双方独立象棋钟 + 超时自动判负
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-31 13:53:47 +08:00
Serendipity 063a181a6e fix: AI 使用 Arc 实现真正的后台线程执行,不阻塞 Tauri 命令线程池
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-31 13:53:06 +08:00
Serendipity 3331d567c0 refactor: 提取 refreshBoard status 计算逻辑提高可读性 2026-05-31 13:52:10 +08:00
Serendipity 4ed66377d2 feat: 实现认输和保存棋谱功能
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-31 13:47:50 +08:00
Serendipity dddfd035c6 feat: 接入 LLM AI 引擎到 GUI,GameConfig 支持 useLlm 切换 AI 类型
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-31 13:46:45 +08:00
Serendipity 75c980e2b6 feat: 添加棋盘大小选择器 (9x9 ~ 19x19)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-31 13:45:02 +08:00
Serendipity c1c64b0155 perf: AI 搜索移到独立后台线程避免阻塞 GUI
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-31 13:43:25 +08:00
Serendipity e7a32ef8df fix: 补全 i18n 国际化,消除所有硬编码中文
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-31 13:43:02 +08:00
Serendipity 955396a74d feat: 添加 env_logger 基础日志系统
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-31 13:41:06 +08:00
Serendipity ec4aae37d9 fix: 棋谱日期从 Unix 时间戳改为 ISO 8601 可读格式 2026-05-31 13:40:28 +08:00
Serendipity 3bbbe73b1f test: 添加前端核心逻辑和棋盘渲染单元测试
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-31 13:40:21 +08:00
Serendipity ac62da2ad8 feat: 添加 React Error Boundary 组件防止渲染异常白屏 2026-05-31 13:40:05 +08:00
Serendipity e1bf667519 fix: 禁用未完成的网络对战入口,标注开发中 2026-05-31 13:40:02 +08:00
Serendipity 43d50bd9b2 docs: 修正 CONTRIBUTING.md 中不存在的 tests/ e2e/ 目录引用 2026-05-31 13:39:52 +08:00
Serendipity cd9c3a79ab fix: 修复悔棋奇数步崩溃及空历史错误语义 (NoHistory)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-31 13:38:04 +08:00
Serendipity 8c3289e631 chore: 删除未使用的 get_board IPC 命令,修复 clippy needless_range_loop 警告
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-31 13:36:42 +08:00
Serendipity dd84ff95d5 feat: 添加图标文件,支持不同分辨率的应用界面 2026-05-31 13:28:40 +08:00
Serendipity 5598f72cf7 docs: 添加 CLAUDE.md 项目文档
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-31 13:20:05 +08:00
Serendipity 834d61f896 fix: 移除 GameMode 的 camelCase 重命名,修复前端传 Local/VsAi 无法匹配
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-31 13:09:11 +08:00
Serendipity 0b8130a71f fix: main.tsx 导入 i18n 初始化模块,修复界面显示原始 key
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-31 13:06:02 +08:00
Serendipity 90de72d67a fix: 打包目标改为 NSIS,移除需要 WiX 的 MSI
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-31 13:04:49 +08:00
Serendipity 605e01803f docs: 重写 README 并更新 .gitignore 适配 v2.0 架构
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-31 12:57:27 +08:00
Serendipity ffcc7a7675 fix: 代码审查修复 — serde camelCase/CSP/TS检查/replay/undo/AI禁手/星位/未使用依赖
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-31 12:51:53 +08:00
Serendipity bb4f393229 chore: 删除旧 C+IUP 代码,仅保留 Rust+Tauri+React v2.0 代码 2026-05-31 12:48:37 +08:00
Serendipity 4126b9f74c docs: 开源文件 — LICENSE/CHANGELOG/CODE_OF_CONDUCT/CONTRIBUTING/SECURITY/README
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-31 00:29:00 +08:00
Serendipity e395ea424b feat(frontend): App 路由集成 + 木纹风格 CSS
App.tsx 添加 menu/game/replay 三页面路由切换,MainMenu 新增
onReplayStart 属性区分对局与回放入口。App.css 实现经典木纹
视觉风格(深棕底色、米黄文字、皮革纹理按钮),index.css 基础
重置。修复 tsconfig 中 erasableSyntaxOnly 无效选项并安装
@types/node。
2026-05-31 00:27:34 +08:00
Serendipity 0138d80f2a feat(frontend): 对局视图 + 回放视图 + 计时器 hook 2026-05-31 00:25:41 +08:00
Serendipity a4b3b5c380 feat(frontend): 菜单组件 — 主菜单/本地双人/AI设置/网络/加载棋谱
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-31 00:25:19 +08:00
Serendipity 6d8a62eca5 feat(frontend): Canvas 棋盘渲染 — 木纹风格, 棋子渐变, 最后一手高亮
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-31 00:22:47 +08:00
Serendipity eeafa92e90 feat(frontend): 类型定义 + i18n 中英双语 + Zustand store
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-31 00:20:32 +08:00
Serendipity 36f6b15b8e feat(gui): Tauri IPC 命令 — new_game/place_piece/undo/ai_move/get_board/get_game_state
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-31 00:18:07 +08:00
Serendipity a17fba8ff5 feat: Tauri + React + Vite + TypeScript 前端脚手架
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-31 00:14:31 +08:00
Serendipity 820f35f444 feat(core): LLM AI — OpenAI 兼容 API 调用 + prompt/parse
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-31 00:09:44 +08:00
Serendipity 6a78631ad4 feat(core): 网络模块 — GameMessage 协议定义 + NetworkSession
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-31 00:05:58 +08:00
Serendipity 4dc837a29a feat(core): 棋谱记录 — JSON 序列化/反序列化 + 复盘重建
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-31 00:04:42 +08:00
Serendipity 556ee39a28 feat(core): AI Alpha-Beta 搜索 — Negamax + 剪枝 + 启发式排序
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-31 00:03:38 +08:00
Serendipity 5230adacde feat(core): AI 棋形评分模块 — 连五/活四/冲四/活三等棋形打分
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-31 00:00:48 +08:00
Serendipity 963fc78007 feat(core): 禁手规则 — 长连/双三/双四检测
实现黑棋禁手检测(is_forbidden),包含:
- 长连禁手(超过5子连珠)
- 双三禁手(同时形成两个活三)
- 双四禁手(同时形成两个活四)
- 白棋不受禁手规则限制

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 23:59:19 +08:00
Serendipity 4e336308ab feat(core): 棋盘引擎 — 不可变 Board, 落子/胜负/悔棋/候选位
实现不可变风格的 Board 结构体,place()/undo() 返回新 Board。
包含 bounds 检查、四方向五连胜负判定、悔棋历史管理、
空棋盘天元候选等功能。新增 11 个单元测试全部通过。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 23:55:21 +08:00
Serendipity fd307addc8 feat(core): 定义基础类型 — Position, Color, CellState, Move, GameConfig
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 23:51:00 +08:00
Serendipity 1e0d5f0c43 feat: 初始化 Cargo workspace + core crate 脚手架
创建 Rust 工作区,包含 core(纯游戏逻辑)和 gui(Tauri 占位)两个 crate。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 23:49:50 +08:00
Serendipity 1d2cd15fe9 docs: Gobang v2.0 详细实施计划 — 17 任务逐步构建
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 23:44:45 +08:00
Serendipity 214acaf0fe docs: Gobang v2.0 Rust 重写设计规格
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 23:34:22 +08:00
Serendipity c6053585d4 fix(gui): 增大主菜单窗口尺寸防止内容截断
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-02 16:02:59 +08:00
Serendipity e41e856fe0 feat(gui): 经典木纹风格 UI 视觉美化
- 配色方案:暖木色棋盘、米白窗口背景、深棕按钮,统一视觉语言
- 主菜单:IupFrame 分组(选择模式/功能),主按钮深棕底白字
- 棋盘渲染:渐变棋子(3层同心圆模拟立体感)、坐标标注(A-O/1-15)、
  蓝色圆环最后落子标记、深色棋盘边框、加大星位天元
- 侧边面板:IupFrame 包裹对局信息,按钮统一样式
- 设置页面:IupFrame 分组(基本/AI/大模型),按钮样式统一
- 网络/复盘对话框:IupFrame 分组,配色和按钮样式统一
- 全局字体:SimHei 11 作为默认字体

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-02 15:57:06 +08:00
Serendipity bf21efbbc0 rename: ENet 库目录重命名为 libs/ENET
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-02 15:41:48 +08:00
Serendipity b616a4662b rename: IUP 库目录重命名为 libs/IUP
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-02 15:39:42 +08:00
Serendipity 96a94aaddf feat: 集成大模型AI、重构构建系统并修复多项代码质量问题
- 构建系统: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>
2026-05-02 15:32:54 +08:00
Serendipity f897536a45 refactor(config): 更新时间限制为30分钟并调整配置文件存储格式
refactor(globals): 移除不必要的GUI运行状态标志
refactor(gui): 更新注释以反映使用IUP库
refactor(ai): 修改威胁检测逻辑以提升威胁等级
refactor(config): 修改加载和保存配置的时间限制逻辑
refactor(network): 更新默认网络端口常量
refactor(record): 移除冗余注释并增强复盘步骤的合法性检查
2026-05-02 12:24:27 +08:00