let cols, rows; let cellSize = 10; // Tamaño de la celda let maze = []; function setup() { createCanvas(500, 500); cols = floor(width / cellSize); // Número de columnas rows = floor(height / cellSize); // Número de filas // Inicializar el laberinto con celdas llenas de 1 (paredes) for (let y = 0; y < rows; y++) { let mazeRow = []; // Cambié 'row' por 'mazeRow' for (let x = 0; x < cols; x++) { mazeRow.push(1); // 1 representa pared } maze.push(mazeRow); } generateMazeSidewinder(); // Generar el laberinto noLoop(); // Detener el bucle de dibujo } function generateMazeSidewinder() { for (let y = 0; y < rows; y++) { let run = []; // "run" es la lista de celdas actuales for (let x = 0; x < cols; x++) { maze[y][x] = 1; // Inicializar todas las celdas como paredes // Agregar la celda actual al "run" run.push([x, y]); const carveEast = Math.random() > 0.5; // Decidir si ir hacia el este const isAtEasternEdge = x === cols - 1; const isAtNorthernEdge = y === 0; // Si elige ir hacia el este o está en el borde este if (carveEast && !isAtEasternEdge) { maze[y][x + 1] = 0; // Carvar hacia el este } // Si no, ir hacia el norte else if (!isAtNorthernEdge) { const randomCell = run[Math.floor(Math.random() * run.length)]; const [rx, ry] = randomCell; maze[ry][rx] = 0; // Carvar hacia el norte run = []; // Reiniciar el "run" } } } } function draw() { background(255); // Fondo blanco // Dibujar el laberinto for (let y = 0; y < rows; y++) { for (let x = 0; x < cols; x++) { if (maze[y][x] === 1) { // Si es una pared fill(0); // Color negro para las paredes noStroke(); rect(x * cellSize, y * cellSize, cellSize, cellSize); } } } }
juego scape room 2
viernes, 6 de diciembre de 2024 en 9:19
Publicado por Matias Delera 0 comentarios
Suscribirse a:
Entradas (Atom)