Backtracking Algorithm Visualization

八皇后 · 回溯算法可视化

在 8 × 8 棋盘上放置八个互不攻击的皇后。左侧 FBASIC 程序由解释器逐条执行,右侧读取真实变量和数组,观察“尝试 → 检查 → 放置 → 回溯”的全过程。

回溯算法 · FBASIC

READY

        

执行说明

点击播放或单步,从第 1 行开始搜索。


      

8 × 8 棋盘

READY
尝试位置:0 冲突次数:0 回溯次数:0 执行步数:0 当前行:— 已找到:0 / 92 解
已放置尝试位置冲突皇后撤销位置
尚未发现解

为什么要回溯?

每行只放一个皇后,用数组 Q(R) 记录列号。变量 R、C、J 表示当前行、尝试列和被检查的行。同列或行差等于列差的绝对值时发生攻击。

找到安全位置后搜索下一行;后续搜索结束时撤销本行皇后,再尝试下一列。走完八行就得到一个解。八皇后共有 92 个解(旋转、镜像后的排列分别计数),其中有 12 个基本解。

FBASIC 使用 1–8 的行、列编号,Q(R)=0 表示未放置。GOTO 实现迭代回溯;快速求解仍逐条执行同一程序,只跳过动画等待。

评论与讨论

评论保存在 GitHub Issues,登录 GitHub 后即可参与讨论。

评论暂未开放,站点管理员尚未配置 GitHub OAuth。

前往 GitHub Issues