#22 James
#25 juddatlas 一个示范代码:
function generateMinefield(width, height, mineCount) {
// 中文数字数组
const chineseNumbers = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];
// 初始化棋盘
const minefield = [];
for (let i = 0; i < height; i++) {
minefield.push(new Array(width).fill(0)); // 初始化为0,表示未揭开
}
// 随机放置雷
let minesPlaced = 0;
while (minesPlaced < mineCount) {
const x = Math.floor(Math.random() * width);
const y = Math.floor(Math.random() * height);
if (minefield[y][x] !== '雷') {
minefield[y][x] = '雷';
minesPlaced++;
}
}
// 计算数字格子
for (let y = 0; y < height; y++) {
for (let x = 0; x < width; x++) {
if (minefield[y][x] === '雷') continue;
let count = 0;
for (let dx = -1; dx <= 1; dx++) {
for (let dy = -1; dy <= 1; dy++) {
const nx = x + dx;
const ny = y + dy;
if (nx >= 0 && nx < width && ny >= 0 && ny < height && minefield[ny][nx] === '雷') {
count++;
}
}
}
minefield[y][x] = chineseNumbers[count];
}
}
return minefield;
}
function printMinefield(minefield) {
minefield.forEach(row => {
console.log(row.map(cell => {
return cell === '雷' ? '||雷||' : `||${cell}||`; // 输出地图
//return cell === '雷' ? '[?](http:// "雷")' : `[?](http:// "${cell}")`; // 输出地图
}).join(' '));
});
}
// 输入参数
const width = 10;
const height = 10;
const mineCount = 25;
// 生成并打印扫雷棋盘
const minefield = generateMinefield(width, height, mineCount);
printMinefield(minefield);
结果:
raw:
[console/log] ||一|| ||二|| ||二|| ||二|| ||雷|| ||二|| ||二|| ||二|| ||一|| ||零||
[console/log] ||二|| ||雷|| ||雷|| ||四|| ||四|| ||五|| ||雷|| ||雷|| ||二|| ||零||
[console/log] ||二|| ||雷|| ||四|| ||雷|| ||雷|| ||雷|| ||雷|| ||雷|| ||三|| ||零||
[console/log] ||二|| ||二|| ||三|| ||二|| ||四|| ||五|| ||雷|| ||雷|| ||二|| ||零||
[console/log] ||三|| ||雷|| ||三|| ||一|| ||二|| ||雷|| ||四|| ||三|| ||三|| ||二||
[console/log] ||雷|| ||雷|| ||雷|| ||一|| ||三|| ||雷|| ||四|| ||二|| ||雷|| ||雷||
[console/log] ||二|| ||三|| ||二|| ||一|| ||二|| ||雷|| ||三|| ||雷|| ||三|| ||二||
[console/log] ||零|| ||零|| ||零|| ||零|| ||一|| ||一|| ||二|| ||一|| ||一|| ||零||
[console/log] ||一|| ||一|| ||一|| ||零|| ||零|| ||零|| ||零|| ||零|| ||一|| ||一||
[console/log] ||一|| ||雷|| ||一|| ||零|| ||零|| ||零|| ||零|| ||零|| ||一|| ||雷||
RESULT: undefined
[console/log] 一 二 二 二 雷 二 二 二 一 零
[console/log] 二 雷 雷 四 四 五 雷 雷 二 零
[console/log] 二 雷 四 雷 雷 雷 雷 雷 三 零
[console/log] 二 二 三 二 四 五 雷 雷 二 零
[console/log] 三 雷 三 一 二 雷 四 三 三 二
[console/log] 雷 雷 雷 一 三 雷 四 二 雷 雷
[console/log] 二 三 二 一 二 雷 三 雷 三 二
[console/log] 零 零 零 零 一 一 二 一 一 零
[console/log] 一 一 一 零 零 零 零 零 一 一
[console/log] 一 雷 一 零 零 零 零 零 一 雷
RESULT: undefined