跳转到内容

导读

关于本系列

这个系列适合谁、怎么阅读、如何在本地运行代码。

  • 会一些 C++,正在做或想做游戏的开发者
  • 用过引擎自带的寻路、物理,想知道底层原理的客户端程序员
  • 准备面试或在学数据结构与算法、希望找到“实际用途”的同学
  1. 问题引入:用一个游戏场景说明要解决什么问题
  2. 直觉理解:先用图解讲清思路,暂时不放代码
  3. 交互演示:亲手操作,单步观察
  4. 逐步实现:C++ 代码分步推进
  5. 复杂度与陷阱:常见 bug、边界情况、性能
  6. 实战应用:在真实游戏 / 引擎中如何使用
  7. 练习与延伸阅读

每个演示下方都有一条工具栏:

按钮 作用
播放 / 暂停 自动执行算法
单步 暂停并只执行一步,适合仔细观察
重置 回到算法初始状态(保留你对地图的编辑)
速度 从 1/8× 到 32× 调节执行速度

演示画面里的文字统一用英文,例如 expanded(已展开的节点数)、frontier(边界大小)。

所有代码都在仓库的 cpp/ 目录中,使用 CMake 构建,图形部分基于 raylib(首次构建会自动下载)。

  1. 桌面端:编译全部演示并运行单元测试

    终端窗口
    ./scripts/test-cpp.sh
    ./build/desktop/demo_bfs # 运行 BFS 演示

    桌面端快捷键:Space 播放 / 暂停,N 单步,R 重置,+ / - 调速,T 切换亮暗主题。

  2. Web 端:用 Emscripten 编译成 WebAssembly(输出到 public/demos/)

    终端窗口
    brew install emscripten # 仅首次
    npm run demos:build
  3. 启动网站

    终端窗口
    npm run dev

© 2026 XuYi · 原文 https://algo.xuyi.dev/guide/about/
文章采用 CC BY-NC-SA 4.0 许可,转载请署名并附原文链接;代码以 MIT 协议开源。