Trying to port some of the code into objects to clean up the sketch.js file.

This commit is contained in:
2020-05-18 23:48:17 -05:00
commit 2fbcc0b345
4 changed files with 423 additions and 0 deletions
+89
View File
@@ -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);
}
}
}