diff options
| author | Simon O'Shea <osheas1@wit.edu> | 2023-08-08 21:53:26 -0400 |
|---|---|---|
| committer | Simon O'Shea <osheas1@wit.edu> | 2023-08-08 21:53:26 -0400 |
| commit | ce148072ef18fb0b33b0c9f3bef5629601f1d48f (patch) | |
| tree | 729be79d3908d8739220da25bf570de4749118a4 /Pathfinding Visualizer/Assets | |
| parent | 82a6c82fe1080f84761fbae9d0472f4705899749 (diff) | |
everything is a mess
Diffstat (limited to 'Pathfinding Visualizer/Assets')
| -rw-r--r-- | Pathfinding Visualizer/Assets/Scripts/PathNode.cs | 8 | ||||
| -rw-r--r-- | Pathfinding Visualizer/Assets/Scripts/Pathfinder.cs | 18 |
2 files changed, 15 insertions, 11 deletions
diff --git a/Pathfinding Visualizer/Assets/Scripts/PathNode.cs b/Pathfinding Visualizer/Assets/Scripts/PathNode.cs index 9cd37fe..c69e821 100644 --- a/Pathfinding Visualizer/Assets/Scripts/PathNode.cs +++ b/Pathfinding Visualizer/Assets/Scripts/PathNode.cs @@ -50,10 +50,10 @@ using UnityEngine; //////////////////////////////////// // store coordinates for all potential moves to be checked - Vector2Int up = new Vector2Int( this.agent.y + 1, this.agent.x ); - Vector2Int down = new Vector2Int( this.agent.y - 1, this.agent.x ); - Vector2Int left = new Vector2Int( this.agent.y, this.agent.x - 1 ); - Vector2Int right = new Vector2Int( this.agent.y, this.agent.x + 1 ); + Vector2Int up = new Vector2Int( this.agent.x, this.agent.y + 1 ); + Vector2Int down = new Vector2Int( this.agent.x, this.agent.y - 1 ); + Vector2Int left = new Vector2Int( this.agent.x - 1, this.agent.y ); + Vector2Int right = new Vector2Int( this.agent.x + 1, this.agent.y); // make sure going up doesn't go outside world-bounds or into obstacle if (isOpen(up)) diff --git a/Pathfinding Visualizer/Assets/Scripts/Pathfinder.cs b/Pathfinding Visualizer/Assets/Scripts/Pathfinder.cs index b7f820e..9d5332c 100644 --- a/Pathfinding Visualizer/Assets/Scripts/Pathfinder.cs +++ b/Pathfinding Visualizer/Assets/Scripts/Pathfinder.cs @@ -21,6 +21,8 @@ public class Pathfinder public static int height; public static int width; + public Stack<Node> result; + public Pathfinder(LogicGrid world, Vector2Int a, List<Vector2Int> o, List<Vector2Int> s, int algo, int heu) { @@ -58,25 +60,27 @@ public class Pathfinder public void StartWork() { Node initialState = new Node(null, agent, samples, '0', 0, 0); - List<Node> result = new List<Node>(); + result = new Stack<Node>(); // Run AStar if (algorithm == 0) { result = StartAStar(initialState); - Debug.Log(" "); - for(int i = 0; i < result.Count; i++) + Debug.Log(" "); + + int count = result.Count; + for(int i = 0; i < count; i++) { - Node n = result[i]; + Node n = result.Pop(); Debug.Log("Agent at: " + n.agent.x + ", " + n.agent.y); Debug.Log(n.lastMove); } } } - public static List<Node> StartAStar(Node initialState) + public static Stack<Node> StartAStar(Node initialState) { - List<Node> solution = new List<Node>(); + Stack<Node> solution = new Stack<Node>(); List<Node> open = new List<Node>(); @@ -100,7 +104,7 @@ public class Pathfinder Debug.Log("Gottem"); while (currentNode.parent != null) { - solution.Add(currentNode); + solution.Push(currentNode); currentNode = currentNode.parent; } |
