导读
关于本系列
这个系列适合谁、怎么阅读、如何在本地运行代码。
- 会一些 C++,正在做或想做游戏的开发者
- 用过引擎自带的寻路、物理,想知道底层原理的客户端程序员
- 准备面试或在学数据结构与算法、希望找到“实际用途”的同学
每篇文章的结构
Section titled “每篇文章的结构”- 问题引入:用一个游戏场景说明要解决什么问题
- 直觉理解:先用图解讲清思路,暂时不放代码
- 交互演示:亲手操作,单步观察
- 逐步实现:C++ 代码分步推进
- 复杂度与陷阱:常见 bug、边界情况、性能
- 实战应用:在真实游戏 / 引擎中如何使用
- 练习与延伸阅读
每个演示下方都有一条工具栏:
| 按钮 | 作用 |
|---|---|
| 播放 / 暂停 | 自动执行算法 |
| 单步 | 暂停并只执行一步,适合仔细观察 |
| 重置 | 回到算法初始状态(保留你对地图的编辑) |
| 速度 | 从 1/8× 到 32× 调节执行速度 |
演示画面里的文字统一用英文,例如 expanded(已展开的节点数)、frontier(边界大小)。
在本地运行代码
Section titled “在本地运行代码”所有代码都在仓库的 cpp/ 目录中,使用 CMake 构建,图形部分基于 raylib(首次构建会自动下载)。
-
桌面端:编译全部演示并运行单元测试
终端窗口 ./scripts/test-cpp.sh./build/desktop/demo_bfs # 运行 BFS 演示桌面端快捷键:
Space播放 / 暂停,N单步,R重置,+/-调速,T切换亮暗主题。 -
Web 端:用 Emscripten 编译成 WebAssembly(输出到
public/demos/)终端窗口 brew install emscripten # 仅首次npm run demos:build -
启动网站
终端窗口 npm run dev
© 2026 XuYi · 原文 https://algo.xuyi.dev/guide/about/
文章采用 CC BY-NC-SA 4.0 许可,转载请署名并附原文链接;代码以 MIT 协议开源。