summaryrefslogtreecommitdiff
path: root/Pathfinding Visualizer/Assets/Scripts
diff options
context:
space:
mode:
Diffstat (limited to 'Pathfinding Visualizer/Assets/Scripts')
-rw-r--r--Pathfinding Visualizer/Assets/Scripts/PathNode.cs17
-rw-r--r--Pathfinding Visualizer/Assets/Scripts/Pathfinder.cs18
2 files changed, 27 insertions, 8 deletions
diff --git a/Pathfinding Visualizer/Assets/Scripts/PathNode.cs b/Pathfinding Visualizer/Assets/Scripts/PathNode.cs
index 8682070..9cd37fe 100644
--- a/Pathfinding Visualizer/Assets/Scripts/PathNode.cs
+++ b/Pathfinding Visualizer/Assets/Scripts/PathNode.cs
@@ -16,8 +16,8 @@ using UnityEngine;
public char lastMove; // for output/animation
public int distanceTraveled; // for calculating f(n) value
public double heuristic;
- public static double fn; // distance traveled + heuristic value
- bool canSample; // for expansion
+ public double fn; // distance traveled + heuristic value
+ //bool canSample; // for expansion
// construct node :)
public Node(Node parent, Vector2Int agent, List<Vector2Int> samples, char lastMove, int distanceTraveled, double heuristic)
@@ -50,8 +50,8 @@ 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 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 );
@@ -117,14 +117,17 @@ using UnityEngine;
// check that agent is not trying to move into an obstacle
for (int i = 0; i < Pathfinder.obstacles.Count(); i++)
{
- if (Pathfinder.obstacles[i].x == position.x && Pathfinder.obstacles[i].y == position.y)
+ if (Pathfinder.obstacles[i].x.Equals(position.x) && Pathfinder.obstacles[i].y.Equals(position.y))
return false;
}
- // check that agent is not stepping out of the world
- if (!((position.y >= 0) && (position.y <= Pathfinder.height - 1) && (position.x >= 0) && (position.x <= Pathfinder.width - 1)))
+ if ((position.y < 0) || (position.y > Pathfinder.height - 1) || (position.x < 0) || (position.x > Pathfinder.width - 1))
return false;
+ // check that agent is not stepping out of the world
+ // if (!((position.y >= 0) && (position.y <= Pathfinder.height - 1) && (position.x >= 0) && (position.x <= Pathfinder.width - 1)))
+ // return false;
+
return true;
}
diff --git a/Pathfinding Visualizer/Assets/Scripts/Pathfinder.cs b/Pathfinding Visualizer/Assets/Scripts/Pathfinder.cs
index 212d6d2..b7f820e 100644
--- a/Pathfinding Visualizer/Assets/Scripts/Pathfinder.cs
+++ b/Pathfinding Visualizer/Assets/Scripts/Pathfinder.cs
@@ -60,6 +60,7 @@ public class Pathfinder
Node initialState = new Node(null, agent, samples, '0', 0, 0);
List<Node> result = new List<Node>();
+ // Run AStar
if (algorithm == 0)
{
result = StartAStar(initialState);
@@ -96,6 +97,7 @@ public class Pathfinder
// check whether we are in goal state
if (currentNode.samples.Count() == 0)
{
+ Debug.Log("Gottem");
while (currentNode.parent != null)
{
solution.Add(currentNode);
@@ -108,7 +110,7 @@ public class Pathfinder
// if not, expand children and continue
List<Node> children = currentNode.expand(-1);
- if (heuristic.Equals("h0"))
+ if (heuristic == 0)
h0(children);
/* else if (heuristic.Equals("h1"))
h1(children);
@@ -124,6 +126,20 @@ public class Pathfinder
return solution;
}
+
+/* private Node GetLowestNode(List<Node> NodeList)
+ {
+ Node lowest = NodeList[0];
+ for (int i = 1; i < NodeList.Count; i++)
+ {
+ if (NodeList[i].fn < lowest.fn)
+ {
+ lowest = NodeList[i];
+ }
+ }
+ return lowest;
+ }*/
+
// HEURISTICS FOR ASTAR
public static List<Node> h0(List<Node> children)
{