Trying to port some of the code into objects to clean up the sketch.js file.
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
|
||||
class Cell {
|
||||
|
||||
constructor(x, y, cellWidth){
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.walls = [true, true, true, true];
|
||||
this.selected = false;
|
||||
this.visited = false;
|
||||
this.cellWidth = cellWidth;
|
||||
this.searched = false;
|
||||
this.finalPath = false;
|
||||
this.parent = undefined;
|
||||
this.end = false;
|
||||
this.start = false;
|
||||
}
|
||||
|
||||
get top(){
|
||||
return this.walls[0];
|
||||
}
|
||||
|
||||
set setTop(removed){
|
||||
this.walls[0] = removed;
|
||||
}
|
||||
|
||||
get left(){
|
||||
return this.walls[1];
|
||||
}
|
||||
|
||||
set setLeft(removed){
|
||||
this.walls[1] = removed;
|
||||
}
|
||||
|
||||
get bottom(){
|
||||
return this.walls[2];
|
||||
}
|
||||
|
||||
set setBottom(removed){
|
||||
this.walls[2] = removed;
|
||||
}
|
||||
|
||||
get right(){
|
||||
return this.walls[3];
|
||||
}
|
||||
|
||||
set setRight(removed){
|
||||
this.walls[3] = removed;
|
||||
}
|
||||
|
||||
show(){
|
||||
let x = this.x * this.cellWidth;
|
||||
let y = this.y * this.cellWidth;
|
||||
|
||||
stroke(0);
|
||||
|
||||
if (this.top) line(x, y, x + this.cellWidth, y);
|
||||
if (this.right) line(x + this.cellWidth, y, x + this.cellWidth, y + this.cellWidth);
|
||||
if (this.bottom) line(x + this.cellWidth, y + this.cellWidth, x, y + this.cellWidth);
|
||||
if (this.left) line(x, y, x, y + this.cellWidth);
|
||||
|
||||
if (this.visited) {
|
||||
fill(255, 0, 0);
|
||||
noStroke();
|
||||
rect(x, y, this.cellWidth, this.cellWidth);
|
||||
}
|
||||
|
||||
if(this.searched){
|
||||
fill(210, 180, 140);
|
||||
noStroke();
|
||||
rect(x, y, this.cellWidth, this.cellWidth);
|
||||
}
|
||||
|
||||
if (this.selected) {
|
||||
fill(50, 125, 0);
|
||||
noStroke();
|
||||
rect(x, y, this.cellWidth, this.cellWidth);
|
||||
}
|
||||
|
||||
if(this.finalPath){
|
||||
fill(173, 216, 230);
|
||||
noStroke();
|
||||
rect(x, y, this.cellWidth, this.cellWidth);
|
||||
}
|
||||
|
||||
if(this.start){
|
||||
text("Start", x, y + cellWidth / 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user