ConeralsOnWebUI 更新日志

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:
    • blockmovement 结构体
    • MakeGeneralsMap:随机生成国王、山、城市
    • FloodFillTheMap:连通性检查
    • Ask:视野判定(九宫格规则)
  • 导出 Conerals_InitGameConerals_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 按名字分发
  • 人机ExplorerDeepSeekexample1example2DeveloperCmyan 可选
  • 人类 vs AI 完整对局可玩

v1.1.0 — 开始页与设置页

  • 侧栏 NavigationView游戏 / 设置
  • StartPage:玩家 1 / 玩家 2 下拉框选 AI
  • SettingsPage:地图尺寸(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.csSettingsPage.xaml.cs 类名错乱导致的满屏“二义性”错误
  • 修复 GamePage.xaml.cs 字段区语法错误导致的 40 条级联错误
  • 修复 AI vs AI 观战模式下接管后再切换时 AI 下线问题
  • 修复运行时 DLL 加载失败、copy 命令失败等历史遗留问题

当前版本:v1.5.1


未来计划(未实现)

  • 局域网联机
  • AI 难度分级
  • 出兵 / 占领动画
  • 玩家状态侧边栏
  • 本地排行榜
  • 新手指引
  • 更多 AI 加回来(Gemini、laser、PhiCore 等)
  • 游戏回放
  • 音效
1
所有评论 1

这是什么项目?

0