9×9 / 10 雷的经典扫雷,单文件零依赖,左键翻开、右键标旗。
两个必须做对的细节
1. 首点保护:不能在开局前就把雷布好——否则第一下就可能踩雷,
体验极差。正确做法是第一次点击之后才布雷,并且排除点击格及其周围 8 格:
if (!started) { placeMines(r, c); started = true; }
2. 空白扩散(flood fill):翻开的格子周围雷数为 0 时,
要自动把周围一片都翻开,否则要手动点几十下:
const stack = [[r, c]]; // 用栈做深度优先扩散
while (stack.length) {
const [y, x] = stack.pop();
if (cell.near === 0 && !cell.mine) // 空格才继续扩散
for (相邻格子) stack.push(...);
}
数字颜色
1-8 用不同颜色区分(蓝/绿/红/紫/橙/青/白/灰),这是扫雷的传统配色,
扫一眼就知道大概情况,比全是黑字好用得多。
想加难度
改开头的 ROWS / COLS / MINES 三个常量即可,
比如 16, 30, 99 就是 Windows 高级难度。
授权:本站原创,按 MIT 风格授权——可以随便下载、修改、商用、二次分发,
不用署名,也不担保任何风险。源码里有完整中文注释,改起来不费劲。
楼主 · 2026-09-28 15:34 · 浏览 2

