xxxxxxxxxx
91
let grid = [
[false, false, false, false, false],
[false, false, false, false, false],
[true, false, true, false, true],
[false, false, false, false, false],
[false, false, false, false, false]
]
let cOffset = 0;
let myFont;
let colr = 150;
let dir = 1; // pulsing
let acc = 5;
function setup() {
createCanvas(400, 400);
stroke(163, 230, 156);
strokeWeight(10);
colorMode(HSL);
myFont = loadFont('font/cubic.ttf');
}
function draw() {
var won = true;
for (var r = 0; r < grid.length; r++)
for (var c = 0; c < grid[r].length; c++)
if(grid[r][c] === true)
won = false;
if (won === true){
background(163, 230, 156);
fill(255);
textFont(myFont);
textAlign(CENTER);
textSize(70);
text("You", 150, 150);
text("win!", 250, 250);
}else
drawGrid();
}
function mousePressed() {
let col = int(mouseX / 80);
let row = int(mouseY / 80);
flipLight(row,col);
if(isValid(row - 1, col) === true){
flipLight(row - 1, col);
}
if(isValid(row + 1, col) === true){
flipLight(row + 1, col);
}
if(isValid(row, col - 1) === true){
flipLight(row, col - 1);
}
if(isValid(row, col + 1) === true){
flipLight(row, col + 1);
}
}
function flipLight(r, c){
grid[r][c] = !grid[r][c];
}
function isValid(r, c){
if (r < 0)
return false;
if (r > 4)
return false;
if (c < 0)
return false;
if (c > 4)
return false;
return true;
}
function drawGrid(){
if (colr > 255 || colr < 0){
dir = dir * -1;
}
colr = colr + (acc * dir); // for the pulsing colors
for (var r = 0; r < grid.length; r++)
for (var c = 0; c < grid[r].length; c++) {
let x = c * 80;
let y = r * 80;
if (grid[r][c] === false)
fill(0);
else
fill(colr);
rect(x, y, 80, 80, 15);
}
}