xxxxxxxxxx
109
function make2DArray(cols, rows) {
let arr = new Array(cols);
for(let i = 0; i < arr.length; i++){
arr[i] = new Array(rows);
for(let j = 0; j < arr[i].length; j++){
arr[i][j] = 0;
}
}
return arr;
}
let w;
let grid;
let nextGrid;
let neighbors;
let cols, rows;
let state;
let rule;
let nb;
function setup() {
createCanvas(400, 400);
w = 2;
cols = width / w;
rows = height / w;
grid = make2DArray(cols, rows);
// for(i = 0; i < rows; i++){
// for(j = 0; j < cols; j++){
// grid[i][j] = floor(random(2));
// }
// }
for(i = 0; i < rows; i++){
for(j = 0; j < cols; j++){
if(i % -j == true){
grid[i][j] = 1;
}
}
}
rule = [1, 0, 0, 1, 0, 0, 1, 1]
neighbors = [];
grid[floor(random(rows))][floor(random(cols))] = 1;
noStroke();
// strokeWeight(w);
}
function draw() {
background(220);
nextGrid = grid;
// for(i = 0; i < rows; i++){
// for(j = 0; j < cols; j++){
// state = grid[i][j];
// fill(state * 100);
// rect(i * w, j * w, w);
// }
// }
for(i = 0; i < rows; i++){
for(j = 0; j < cols; j++){
state = grid[i][j];
fill(state * 150);
// stroke(state * 100);
rect(i * w, j * w, w);
if(i > 0 && i < rows - 1){
neighbors[0] = grid[i - 1][j];
neighbors[1] = grid[i][j];
neighbors[2] = grid[i + 1][j];
} else if(i == 0 && j > 0){
neighbors[0] = grid[rows - 1][j - 1];
neighbors[1] = grid[i][j];
neighbors[2] = grid[i + 1][j];
} else if(i == 0 && j == 0){
neighbors[0] = grid[rows - 1][cols - 1];
neighbors[1] = grid[i][j];
neighbors[2] = grid[i + 1][j];
} else if(i == rows - 1 && j < cols - 1){
neighbors[2] = grid[0][j + 1];
neighbors[0] = grid[i - 1][j];
neighbors[1] = grid[i][j];
} else if(i == rows - 1 && j == cols - 1){
neighbors[2] = grid[0][0];
neighbors[0] = grid[i - 1][j];
neighbors[1] = grid[i][j];
}
if(neighbors[0] == 0 && neighbors[1] == 0 && neighbors[2] == 0) {
nextGrid[i][j] = 0;
} else if(neighbors[0] == 0 && neighbors[1] == 0 && neighbors[2] == 1){
nextGrid[i][j] = 1;
} else if(neighbors[0] == 0 && neighbors[1] == 1 && neighbors[2] == 1){
nextGrid[i][j] = 0;
} else if(neighbors[0] == 1 && neighbors[1] == 1 && neighbors[2] == 1){
nextGrid[i][j] = 0;
} else if(neighbors[0] == 1 && neighbors[1] == 0 && neighbors[2] == 1){
nextGrid[i][j] = 1;
} else if(neighbors[0] == 1 && neighbors[1] == 1 && neighbors[2] == 0){
nextGrid[i][j] = 1;
} else if(neighbors[0] == 1 && neighbors[1] == 0 && neighbors[2] == 0){
nextGrid[i][j] = 0;
} else if(neighbors[0] == 0 && neighbors[1] == 1 && neighbors[2] == 0){
nextGrid[i][j] = 1;
}
}
}
grid = nextGrid;
}