xxxxxxxxxx
55
let cells = [];
const cellSize = 2;
let currentRow = 0;
function setup() {
createCanvas(500, 500);
background("black");
strokeWeight(0.3);
const numCells = width / cellSize;
for (let i = 0; i < numCells; i++) {
cells[i] = 0;
}
cells[round(numCells / 2)] = 0;
}
function draw() {
fill("white");
noStroke();
translate(0, cellSize * currentRow);
currentRow++;
for (let i = 0; i < cells.length; i++) {
if (cells[i] == 1) {
fill("black");
ellipse(i * cellSize, 0, cellSize, cellSize);
// rotate(2);
} else if (cells[i] == 2) {
fill("black");
stroke("black");
ellipse(i * cellSize, 0, cellSize, cellSize);
} else {
fill("white");
rect(i * cellSize, 0, cellSize, cellSize);
}
}
let newCells = [];
for (let i = 0; i < cells.length; i++) {
let sum = 2;
let nSize = 4;
for (let n = -nSize; n <= nSize; n++) {
sum = sum + (cells[i + n] ?? 0);
}
if (sum % 1 || sum % 4) {
newCells[i] = 2;
} else if (sum < 2) {
newCells[i] = 1;
} else {
newCells[i] = 0;
}
}
cells = newCells;
}