xxxxxxxxxx
95
var clicks=0;
var won=false;
var 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]
];
function setup() {
createCanvas(400, 400);
stroke(255, 0, 0);
}
function draw() {
background(255,0,0);
drawGrid();
checkWin();
stroke(255,0,0);
fill(255,0,0);
}
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,col-1)===true) flipLight(row,col-1);
if(isValid(row,col+1)===true) flipLight(row,col+1);
if(isValid(row+1,col)===true) flipLight(row+1,col);
checkWin();
clicks++;
}
function flipLight(r, c){
grid[r][c]=!grid[r][c];
}
function isValid(r, c){
if(r>4||r<0||c>4||c<0)return false;
return true;
}
function drawGrid(){
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(255);
rect(x, y, 80, 80);
}
}
function checkWin(){
var off=0;
won=false;
for (var r = 0; r < grid.length; r++){
for (var c = 0; c < grid[r].length; c++) {
if(grid[r][c]===false)
off++;
}
}
if (clicks>=2 && off===25){
stroke(255);
fill(255);
textSize(30);
text("You won!",145,200);
text("Click r to Restart",110,230);
won=true;
}
}
function autoWin(){
for (var r = 0; r < grid.length; r++){
for (var c = 0; c < grid[r].length; c++) {
grid[r][c]=false;
}
}
}
function newPattern(){
for (var r = 0; r < grid.length; r++){
for (var c = 0; c < grid[r].length; c++) {
if(Math.random()<0.25) grid[r][c]=true;
else grid[r][c]=false;
}
}
}
function keyPressed(){
if(key==="r"&&won==true){
newPattern();
}
}