MultiplayerMinesweeper/dist/world/generator.js

43 lines
1.2 KiB
JavaScript

import * as util from "../util.js";
const searchLoc =
// [
// [0, 2],
// [-1, 1], [0, 1], [1, 1],
// [-2,0], [-1, 0],/*Start*/[1, 0], [2,0],
// [-1,-1], [0,-1], [1,-1],
// [0,-2]
//
// ]
[
[-1, 1], [0, 1], [1, 1],
[-1, 0], [1, 0],
[-1, -1], [0, -1], [1, -1]
];
export function generate(avoidX, avoidY, world) {
var minesPlanted = 0;
while (minesPlanted < world.mines || !(minesPlanted <= world.width * world.height - 15)) {
const x = util.randomNumber(0, world.width);
const y = util.randomNumber(0, world.height);
var suitable = true;
searchLoc.forEach(loc => {
const tempx = x + loc[0];
const tempy = y + loc[1];
if (tempx === avoidX && tempy === avoidX) {
suitable = false;
}
});
if (x == avoidX && y == avoidY) {
suitable = false;
}
if (world.data[x][y].type == 5) {
suitable = false;
}
if (suitable) {
world.data[x][y].type = 5;
minesPlanted++;
}
}
world.isGenerated = true;
return world;
}