xxxxxxxxxx
77
let grid = [];
const s = 10;
function setup() {
createCanvas(400, 400);
for (let j = 0; j < 40; j++) {
grid.push([])
for(let i = 0; i < 40; i++) {
grid[j].push(floor(random(2,6)))
}
}
}
function draw() {
background(220);
for (let j = 0; j < 40; j++) {
for(let i = 0; i < 40; i++) {
let col;
if (grid[j][i] == 0) {
col = color(255)
} else if (grid[j][i] == 1) {
col = color(0)
} else if (grid[j][i] == 2){
col = color(255, 0, 0)
} else if (grid[j][i] == 3){
col = color(0, 255, 0)
} else if (grid[j][i] == 4){
col = color(0, 0, 255)
} else if (grid[j][i] == 5){
col = color(255, 255, 0)
}
fill(col)
rect(i*s, j*s, s, s)
}
}
if (mouseIsPressed) {
grid[floor(mouseY/s)][floor(mouseX/s)] = 1;
}
}
function keyPressed() {
let i = floor(mouseX/s);
let j = floor(mouseY/s);
if (key == 'a') {
dfs(i, j, grid[j][i], 2);
} else if (key == ' ') {
dfs(i, j, grid[j][i], 0);
} else if (key == 's') {
dfs(i, j, grid[j][i], 3);
} else if (key == 'd') {
dfs(i, j, grid[j][i], 4);
} else if (key == 'w'){
dfs(i, j, grid[j][i], 5);
}
}
function dfs(i, j, toFillCol, fillingCol) {
if (i >= width/10 || i < 0 || j >= height/10 || j < 0) {
return;
}
console.log(j);
if (grid[j][i] !== toFillCol) {
return;
}
grid[j][i] = fillingCol;
dfs(i + 1, j, toFillCol, fillingCol);
dfs(i - 1, j, toFillCol, fillingCol);
dfs(i, j + 1, toFillCol, fillingCol);
dfs(i, j - 1, toFillCol, fillingCol);
}