let cArray;
let col, row;
let size = 40;
let nopeArray = [];
function setup() {
createCanvas(windowWidth, windowHeight);
r = random(150, 255);
g = random(150, 255);
b = random(150, 255);
size = random(120, 200);
row = int(height / (size + 6));
col = int(width / (size + 6));
cArray = [];
nopeArray = [];
rectMode(CENTER);
cnt = 0;
truei = int(random(0, row));
truej = int(random(0, col));
for (let i = 0; i < row; i++) {
for (let j = 0; j < col; j++) {
if (i == truei && j == truej) {
theone = true;
theonei = cnt;
} else {
theone = false;
}
cArray[cnt] = {
x: size / 1.5 + j * (size + 5),
y: size / 1.5 + i * (size + 5),
truth: theone,
checked: false
};
nopeArray[cnt] = {
x: random(-20, width - 50),
y: random(0, height - 20),
r: random(100, 255),
g: random(0, 50),
b: random(0, 50),
size: random(12, 100)
};
cnt++;
}
}
}
function draw() {
background(r, g, b);
nChecked = 0;
for (let i = 0; i < cArray.length; i++) {
if (cArray[i].checked) {
nChecked++;
}
}
if (nChecked == cArray.length) {
cArray[floor(random(0, cArray.length - 0.001))].checked = false;
}
for (let i = 0; i < cArray.length; i++) {
noStroke();
fill(r - 100, g - 100, b - 100, 210);
rect(cArray[i].x + 0.5, cArray[i].y + 0.5, size + 1, size + 1, 2, 2, 2, 2);
if (cArray[i].checked) {
if (cArray[i].truth) {
fill(100, 222, 112);
} else {
fill(200, 0, 0);
}
} else {
fill(r + 20, g + 20, b + 20);
}
rect(cArray[i].x, cArray[i].y, size, size, 2, 2, 2, 2);
}
for (let i = 0; i < cArray.length; i++) {
if (cArray[i].checked) {
if (cArray[i].truth) {
fill(100, 222, 112);
stroke(100, 222, 112);
textSize(120);
text("nope", width / 2, height / 2);
} else {
fill(nopeArray[i].r, nopeArray[i].g, nopeArray[i].b);
stroke(nopeArray[i].r, nopeArray[i].g, nopeArray[i].b);
textSize(nopeArray[i].size);
if (cArray[theonei].checked) {
text("nope", nopeArray[i].x, nopeArray[i].y);
} else {
text(
"nope",
nopeArray[i].x +
100 * Math.cos(((frameCount / 2000) * nopeArray[i].size) / 3),
nopeArray[i].y +
100 * Math.sin(((frameCount / 2000) * nopeArray[i].size) / 3)
);
}
}
}
}
}
function mousePressed() {
for (let i = 0; i < cArray.length; i++) {
if (
mouseX >= cArray[i].x - size / 2 &&
mouseX <= cArray[i].x + size / 2 &&
mouseY >= cArray[i].y - size / 2 &&
mouseY <= cArray[i].y + size / 2
) {
cArray[i].checked = !cArray[i].checked;
}
}
}
function windowResized() {
setup();
}