Added more user control over the maze generation.
This commit is contained in:
+3
-1
@@ -41,6 +41,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function rerun(){
|
function rerun(){
|
||||||
|
if (!document.getElementById("reuseMaze").checked)
|
||||||
|
createNewMaze(document.getElementById("cellWidthInput").value);
|
||||||
algo = {};
|
algo = {};
|
||||||
maze.resetMazeState();
|
maze.resetMazeState();
|
||||||
maze.updateMazeDisplay();
|
maze.updateMazeDisplay();
|
||||||
@@ -65,7 +67,7 @@
|
|||||||
<label for="canvasWidthTextbox" >Canvas Size Width: </label><input type="number" id="canvasWidthTextbox" value="500" onchange="updateCanvasWidth()"/>
|
<label for="canvasWidthTextbox" >Canvas Size Width: </label><input type="number" id="canvasWidthTextbox" value="500" onchange="updateCanvasWidth()"/>
|
||||||
<label for="canvasHeightTextbox"> Height: </label><input type="number" id="canavasHeightTextbox" value="500" onchange="updateCanvasHeight()"/><br/>
|
<label for="canvasHeightTextbox"> Height: </label><input type="number" id="canavasHeightTextbox" value="500" onchange="updateCanvasHeight()"/><br/>
|
||||||
<label for="genFrameRate">Framerate During Maze Generation: </label><input type="number" id="genFrameRate" min="1" max="144" step="1" value="30" /><br />
|
<label for="genFrameRate">Framerate During Maze Generation: </label><input type="number" id="genFrameRate" min="1" max="144" step="1" value="30" /><br />
|
||||||
<label for="solvingFrameRate">Framerate During Maze Solving: </label><input type="number" id="solvingFrameRate" min="1" max="144" step="1" value="30" /><br />
|
<label for="solvingFrameRate">Framerate During Maze Solving: </label><input type="number" id="solvingFrameRate" min="1" max="144" step="1" value="15" /><br />
|
||||||
<input id="reuseMaze" type="checkbox" checked="true" /><label for="reuseMaze">Reuse current maze on next run (uncheck to generate a new maze)</label>
|
<input id="reuseMaze" type="checkbox" checked="true" /><label for="reuseMaze">Reuse current maze on next run (uncheck to generate a new maze)</label>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<fieldset id="algo" name="algo" disabled="disabled">
|
<fieldset id="algo" name="algo" disabled="disabled">
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
var cellWidth = 50;
|
|
||||||
var frontier = [];
|
var frontier = [];
|
||||||
var explored = [];
|
var explored = [];
|
||||||
var currentNode = {};
|
var currentNode = {};
|
||||||
@@ -6,10 +5,16 @@ var maze = {};
|
|||||||
var algo = {};
|
var algo = {};
|
||||||
|
|
||||||
function setup() {
|
function setup() {
|
||||||
var canvas = createCanvas(500, 500);
|
var canvas = createCanvas(500, 500);
|
||||||
canvas.parent('sketch-holder');
|
canvas.parent('sketch-holder');
|
||||||
maze = new Maze(width, height, cellWidth, "Depth");
|
|
||||||
frameRate(30);
|
createNewMaze(document.getElementById("cellWidthInput").value);
|
||||||
|
|
||||||
|
frameRate(Number(document.getElementById("genFrameRate").value));
|
||||||
|
}
|
||||||
|
|
||||||
|
function createNewMaze(cellWidth){
|
||||||
|
maze = new Maze(width, height, Number(cellWidth));
|
||||||
}
|
}
|
||||||
|
|
||||||
function draw() {
|
function draw() {
|
||||||
@@ -24,17 +29,17 @@ function draw() {
|
|||||||
maze.resetMazeState();
|
maze.resetMazeState();
|
||||||
//maze.updateMazeDisplay();
|
//maze.updateMazeDisplay();
|
||||||
let selectedAlgo = document.getElementById("searchAlgo").value;
|
let selectedAlgo = document.getElementById("searchAlgo").value;
|
||||||
|
let solvingFramerate = document.getElementById("solvingFrameRate").value;
|
||||||
if(selectedAlgo == "depthFirst")
|
if(selectedAlgo == "depthFirst")
|
||||||
algo = new DepthFirstSolver(maze.grid[0], maze.grid[maze.index(7, 7)]);
|
algo = new DepthFirstSolver(maze.grid[0], maze.grid[maze.index(7, 7)]);
|
||||||
else if(selectedAlgo == "breadthFirst")
|
else if(selectedAlgo == "breadthFirst")
|
||||||
algo = new BreadthFirstSolver(maze.grid[0], maze.grid[maze.index(7,7)]);
|
algo = new BreadthFirstSolver(maze.grid[0], maze.grid[maze.index(7,7)]);
|
||||||
//else if(selectedAlgo == "a*")
|
//else if(selectedAlgo == "a*")
|
||||||
|
|
||||||
print("Maze generation done");
|
print("Maze generation done");
|
||||||
frameRate(10);
|
frameRate(Number(solvingFramerate));
|
||||||
}
|
}
|
||||||
else if (maze.mazeGenDone && algo.frontier.length > 0){
|
else if (maze.mazeGenDone && algo.frontier.length > 0){
|
||||||
//algo.breadthFirstNextCell(maze);
|
|
||||||
algo.solve(maze);
|
algo.solve(maze);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
|||||||
Reference in New Issue
Block a user