v1.0.0 — 项目启动
- 创建 Visual Studio 解决方案
ConeralsOnWebUI - 两个项目:
Conerals.Core(C++ DLL):游戏核心逻辑ConeralsOnWebUI(C# WinUI 3):图形界面
- 确定架构:C++ 核心编译为 DLL,C# 通过 P/Invoke 回调通信
v1.0.1 — 环境配置与跨语言调用验证
- 解决 WinUI 3 在 Windows 10 上
0x80070005权限错误,切换为非打包模式 - 配置
/utf-8编译选项,启用 C++14 标准 - 验证 P/Invoke:C++ 导出
Add,C# 调用并显示结果
v1.0.2 — 地图生成移植
- 将原项目
mainGenerals.h核心逻辑移植进 DLL:block、movement结构体MakeGeneralsMap:随机生成国王、山、城市FloodFillTheMap:连通性检查Ask:视野判定(九宫格规则)
- 导出
Conerals_InitGame、Conerals_GetMapSnapshot - C# 用
Canvas+Rectangle渲染 10×10 地图 - 地图居中显示
v1.0.3 — 键盘操作与人类移动
- 导出
Conerals_HumanMove,C# 方向键 →HumanMove RootGrid.PreviewKeyDown解决空格被 WinUI 吞噬的问题- 黄色光标显示当前选中格子
v1.0.4 — 回合推进与战斗结算
- 导出
Conerals_AdvanceTurn - 把原
Generals()循环拆成三段:ApplyMove/CheckDeath/AddArmiesByTurn - 空格/回车推进一回合
v1.0.5 — 视野系统
Conerals_GetMapSnapshot内部走Ask,实现九宫格视野遮挡- 不可见格子显示为黑色 /
??? - C# 渲染区分
'?'、'B'、'M'、'K'、'C'、'L'
v1.0.6 — AI 集成
- 静态 include 所有 AI 头文件,
GetAIMove按名字分发 人机、Explorer、DeepSeek、example1、example2、Developer、Cmyan可选- 人类 vs AI 完整对局可玩
v1.1.0 — 开始页与设置页
- 侧栏
NavigationView:游戏 / 设置 StartPage:玩家 1 / 玩家 2 下拉框选 AISettingsPage:地图尺寸(10×10 / 20×20 / 30×30)- 引入
CommunityToolkit.WinUI.Controls.SettingsControls美化设置卡片
v1.1.1 — 游戏结束弹窗与返回
- 每回合检查胜负,弹出
ContentDialog - 人类赢显示“胜利”,AI 赢显示“失败”
- 结束弹窗只有一个“确定”按钮
- 左上角“返回”按钮回开始页
v1.1.2 — UI 细节
- 格子尺寸随地图大小动态调整(10×10 → 50px,20×20 → 35px,30×30 → 25px)
- 大本营显示兵力(
$3、$28) - 地图每次随机(
time(nullptr)种子)
v1.2.0 — 自动推进与配置持久化
- 设置页新增:
- 自动推进(开关)
- 回合间隔(200~3000ms 滑块)
DispatcherTimer每 N 毫秒调AdvanceTurn- 自动推进关闭时“回合间隔”卡片置灰
- 用
AppConfig.cs保存到%LOCALAPPDATA%\ConeralsOnWebUI\config.json - 启动时自动恢复上次选择
v1.3.0 — 主题切换
- 设置页新增“外观 / 主题”:跟随系统 / 浅色 / 深色
- 每个
Page应用RequestedTheme ContentDialog显式设置RequestedTheme,弹窗也跟随
v1.4.0 — 接管控制与多人对战
- 游戏页顶栏新增“接管控制”按钮
- AI vs AI 时显示,弹窗选择观战 / 玩家 1 / 玩家 2
- 接管后人类可操作该玩家,接管一次后按钮永久置灰
- 设置页新增“玩家人数”(2 / 3 / 4)
- 开始页动态显示 3、4 号位下拉框
- 顶栏显示所有玩家的名字 + 颜色点,死亡后显示“(已死亡)”
v1.4.1 — 顶栏改进与退出
- 顶栏显示玩家名字 + 色点 + 回合数
- “返回”改为“退出”,点击弹确认对话框
- 游戏页进入时隐藏侧栏,退出时恢复
v1.4.2 — 游戏节奏微调
- 加兵频率加快:
- 国王/城市:每 1 回合 +1
- 领土:每 25 回合 +1
- T 键回大本营:光标跳回自己的国王
- 空格 / 回车推进回合
v1.5.0 — 法律信息、恢复默认与图标
- 设置页新增:
- 法律信息:用户协议、隐私协议、开源许可(点击跳转 GitHub)
- 使用条款说明(文本卡片)
- 恢复默认设置:一键重置所有选项
- 窗口图标:
appicon.ico设置到AppWindow - exe 图标:
.csproj的<ApplicationIcon> - 侧栏“游戏”图标:
Segoe MDL2 Assets手柄字符 - 窗口默认尺寸 1200×800
v1.5.1 — 修复
- 修复
StartPage.xaml.cs与SettingsPage.xaml.cs类名错乱导致的满屏“二义性”错误 - 修复
GamePage.xaml.cs字段区语法错误导致的 40 条级联错误 - 修复 AI vs AI 观战模式下接管后再切换时 AI 下线问题
- 修复运行时 DLL 加载失败、copy 命令失败等历史遗留问题
当前版本:v1.5.1
未来计划(未实现)
- 局域网联机
- AI 难度分级
- 出兵 / 占领动画
- 玩家状态侧边栏
- 本地排行榜
- 新手指引
- 更多 AI 加回来(Gemini、laser、PhiCore 等)
- 游戏回放
- 音效
这是什么项目?