Added furth UI behavior tweaks, removed a script and moved the p5.min.js into the repo.

This commit is contained in:
2020-05-19 14:29:10 -05:00
parent dc292305fb
commit 163c028145
4 changed files with 34 additions and 6 deletions
+18 -4
View File
@@ -25,14 +25,25 @@
<script> <script>
function updateCanvasWidth(){ function updateCanvasWidth(){
let w = document.getElementById('canvasWidthTextbox').value; let w = document.getElementById('canvasWidthTextbox').value;
toggleReuseMazeCheckbox(false);
resizeCanvas(w, height); resizeCanvas(w, height);
} }
function updateCanvasHeight(){ function updateCanvasHeight(){
let h = document.getElementById('canavasHeightTextbox').value; let h = document.getElementById('canavasHeightTextbox').value;
toggleReuseMazeCheckbox(false);
resizeCanvas(width, h); resizeCanvas(width, h);
} }
function updateCellWidth(){
toggleReuseMazeCheckbox(false);
}
function toggleReuseMazeCheckbox(enabled){
document.getElementById("reuseMaze").checked = enabled;
document.getElementById("reuseMaze").disabled = !enabled;
}
function toggleForm(enabled){ function toggleForm(enabled){
document.getElementById("canvasProperties").disabled = !enabled; document.getElementById("canvasProperties").disabled = !enabled;
document.getElementById("algo").disabled = !enabled; document.getElementById("algo").disabled = !enabled;
@@ -41,8 +52,12 @@
} }
function rerun(){ function rerun(){
if (!document.getElementById("reuseMaze").checked) toggleForm(false);
if (!document.getElementById("reuseMaze").checked) {
createNewMaze(document.getElementById("cellWidthInput").value); createNewMaze(document.getElementById("cellWidthInput").value);
toggleReuseMazeCheckbox(true);
}
frameRate(Number(document.getElementById("genFrameRate").value));
algo = {}; algo = {};
maze.resetMazeState(); maze.resetMazeState();
maze.updateMazeDisplay(); maze.updateMazeDisplay();
@@ -52,8 +67,7 @@
<script src="maze-solver.js"></script> <script src="maze-solver.js"></script>
<script src="cell.js"></script> <script src="cell.js"></script>
<script src="gen-maze.js"></script> <script src="gen-maze.js"></script>
<script src="../p5.js"></script> <script src="p5.min.js"></script>
<script src="../addons/p5.sound.min.js"></script>
<script src="sketch.js"></script> <script src="sketch.js"></script>
</head> </head>
@@ -81,7 +95,7 @@
</fieldset> </fieldset>
<fieldset id="misc" disabled="disabled"> <fieldset id="misc" disabled="disabled">
<legend>Misc.</legend> <legend>Misc.</legend>
<label for="cellWidthInput">Cell Width: </label><input type="number" id="cellWidthInput" value="50" /> <label for="cellWidthInput">Cell Width: </label><input type="number" id="cellWidthInput" value="50" onchange="updateCellWidth()"/>
</fieldset> </fieldset>
<button id="runButton" type="button" onClick="rerun()" disabled>Re-run</button> <button id="runButton" type="button" onClick="rerun()" disabled>Re-run</button>
</form> </form>
+11
View File
@@ -2,6 +2,9 @@ class MazeSolver {
constructor(startingCell, targetCell, searchedColor = [210, 180, 140], finalPathColor = [173, 216, 230]){ constructor(startingCell, targetCell, searchedColor = [210, 180, 140], finalPathColor = [173, 216, 230]){
this.frontier = []; this.frontier = [];
this.explored = []; this.explored = [];
this.startingCellColor = [255, 0, 0];
this.endingCellColor = [0, 0, 255];
this.finalPathColor = finalPathColor; this.finalPathColor = finalPathColor;
this.targetCell = targetCell; this.targetCell = targetCell;
this.startingCell = startingCell; this.startingCell = startingCell;
@@ -20,8 +23,16 @@ class MazeSolver {
highlightFinalPath(maze){ highlightFinalPath(maze){
let tmp = this.explored.pop(); let tmp = this.explored.pop();
tmp.color = this.endingCellColor;
tmp = tmp.parent;
while(tmp != undefined){ while(tmp != undefined){
tmp.color = this.finalPathColor; tmp.color = this.finalPathColor;
if(tmp.parent == undefined)
tmp.color = this.startingCellColor;
tmp = tmp.parent; tmp = tmp.parent;
} }
Vendored
+3
View File
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -28,7 +28,7 @@ function draw() {
maze.resetMazeState(); maze.resetMazeState();
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")
@@ -36,7 +36,7 @@ function draw() {
//else if(selectedAlgo == "a*") //else if(selectedAlgo == "a*")
print("Maze generation done"); print("Maze generation done");
frameRate(Number(solvingFramerate)); frameRate(Number(document.getElementById("solvingFrameRate").value));
} }
else if (maze.mazeGenDone && algo.frontier.length > 0){ else if (maze.mazeGenDone && algo.frontier.length > 0){
algo.solve(maze); algo.solve(maze);