Skip to content

Commit f3659d4

Browse files
committed
Añade dibujado del laberinto al modificar el array inferior
1 parent 59bc5b7 commit f3659d4

1 file changed

Lines changed: 65 additions & 3 deletions

File tree

utils/maze-wall-placer.html

Lines changed: 65 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ <h4 class="title">Maze Layout</h4>
128128
<div class="row mb-5">
129129
<div class="col">
130130
<h4 class="title">Maze Array</h4>
131-
<textarea name="maze-array" id="maze-array" rows="4" class="form-control p-4" readonly></textarea>
131+
<textarea name="maze-array" id="maze-array" rows="4" class="form-control bg-light p-4"></textarea>
132132
</div>
133133
</div>
134134

@@ -530,7 +530,7 @@ <h4 class="title">Maze Array</h4>
530530

531531
let pos = 0;
532532

533-
for (let row = rows-1; row >= 0; row--) {
533+
for (let row = rows - 1; row >= 0; row--) {
534534
for (let col = 0; col < cols; col++) {
535535
let cell = maze_table.rows[row].cells[col];
536536
let cell_value = 0;
@@ -550,13 +550,63 @@ <h4 class="title">Maze Array</h4>
550550
pos++;
551551
}
552552
}
553-
for(let i = pos; i < 16*16; i++){
553+
for (let i = pos; i < 16 * 16; i++) {
554554
maze_array[i] = 0;
555555
}
556556

557557
document.getElementById("maze-array").value = JSON.stringify(maze_array);
558558
};
559559

560+
let updateBordersFromArray = function (maze_array) {
561+
let maze_table = document.getElementById("maze-table");
562+
let rows = maze_table.rows.length;
563+
let cols = maze_table.rows[0].cells.length;
564+
565+
const VISITED_BIT = 1;
566+
const EAST_BIT = 2;
567+
const SOUTH_BIT = 4;
568+
const WEST_BIT = 8;
569+
const NORTH_BIT = 16;
570+
571+
let pos = 0;
572+
try {
573+
for (let row = rows - 1; row >= 0; row--) {
574+
for (let col = 0; col < cols; col++) {
575+
let cell = maze_table.rows[row].cells[col];
576+
let cell_value = maze_array[pos];
577+
578+
if (cell_value & NORTH_BIT) {
579+
cell.classList.add("border-top");
580+
} else {
581+
cell.classList.remove("border-top");
582+
}
583+
if (cell_value & SOUTH_BIT) {
584+
cell.classList.add("border-bottom");
585+
} else {
586+
cell.classList.remove("border-bottom");
587+
}
588+
if (cell_value & WEST_BIT) {
589+
cell.classList.add("border-left");
590+
} else {
591+
cell.classList.remove("border-left");
592+
}
593+
if (cell_value & EAST_BIT) {
594+
cell.classList.add("border-right");
595+
} else {
596+
cell.classList.remove("border-right");
597+
}
598+
pos++;
599+
}
600+
}
601+
} catch (e) {
602+
let rows = document.getElementById("rows").value;
603+
let cols = document.getElementById("cols").value;
604+
drawMaze(rows, cols);
605+
}
606+
607+
608+
};
609+
560610

561611
(function () {
562612

@@ -572,6 +622,18 @@ <h4 class="title">Maze Array</h4>
572622
drawMaze(rows, cols);
573623
});
574624

625+
document.getElementById("maze-array").addEventListener("change", function (e) {
626+
let value = e.target.value;
627+
try {
628+
updateBordersFromArray(JSON.parse(value.trim()));
629+
} catch (e) {
630+
alert(e.message);
631+
let rows = document.getElementById("rows").value;
632+
let cols = document.getElementById("cols").value;
633+
drawMaze(rows, cols);
634+
}
635+
});
636+
575637

576638
})();
577639
</script>

0 commit comments

Comments
 (0)