xxxxxxxxxx
54
let cells = [];
const cellSize = 2;
let currentRow = 0;
function setup() {
createCanvas(500, 400);
background("black");
const numCells = width / cellSize;
for (let i = 0; i < numCells; i++) {
cells[i] = round(random(0, 2));
}
cells[round(numCells / 2)] = 1;
}
function draw() {
fill("white");
noStroke();
translate(0, currentRow * cellSize);
currentRow++;
for (let i = 0; i < cells.length; i++) {
if (cells[i] == 0) {
fill("black");
rect(i * cellSize, 0, cellSize, cellSize);
} else if (cells[i] == 2) {
fill("white");
ellipse(i * cellSize, 0, cellSize, cellSize);
} else {
noFill();
stroke("white");
rect(i * cellSize, 0, cellSize / i, cellSize);
}
}
let newCells = [];
for (let i = 0; i < cells.length; i++) {
const leftleft = cells[i - 2] ?? 0;
const left = cells[i - 1] ?? 0;
const middle = cells[i];
const right = cells[i + 1] ?? 0;
const rightright = cells[i + 2] ?? 0;
const sum = left + middle + right + leftleft + rightright;
if (sum == 2 || sum < 3) {
newCells[i] = 1;
} else if (sum <= 5) {
newCells[i] = 2;
} else {
newCells[i] = 0;
}
}
cells = newCells;
// translate(10,3);
}