生成迷宫
通过变种的prim算法,(如果看作没有边权的prim算法的话,事实上我认为更像不分层级的广搜)
建新一个labyrinth类,然后通过constructor中的canvasT绑定一个canvas控件,同样调整替他参数,最后render
class Labyrinth {
constructor(canvasT, horizontalBlocks, verticalBlocks, lengthBlocks) {
this.canvasT = canvasT;
this.horizontalBlocks = horizontalBlocks * 2 + 1;
this.verticalBlocks = verticalBlocks * 2 + 1;
this.lengthBlocks = lengthBlocks * 1;
this.sign = horizontalBlocks * verticalBlocks;
this.horizontalLength = this.horizontalBlocks * this.lengthBlocks;
this.verticalLength = this.verticalBlocks * this.lengthBlocks;
this.canvasT.width = this.horizontalLength;
this.canvasT.height = this.verticalLength;
this.data = new Array(this.verticalBlocks);
this.isvisitted = new Array(this.verticalBlocks);
for (let i = 0; i < this.verticalBlocks; i++) {
this.isvisitted[i] = new Array(this.horizontalBlocks);
this.data[i] = new Array(this.horizontalBlocks);
for (let j = 0; j < this.horizontalBlocks; j++) {
this.data[i][j] = 0;
this.isvisitted[i][j] = 0;
}
}
this.ctx = this.canvasT.getContext("2d")