public void Search_BackwardPath_PathFound() { /* ##__ * 10#_ * 2#6_ * 345_ */ var target = new WeightedGridGraph(10, 10); target.Walls.Add(new Point(1, 2)); target.Walls.Add(new Point(2, 1)); target.Walls.Add(new Point(1, 0)); target.Walls.Add(new Point(0, 0)); var result = WeightedPathfinder.Search(target, new Point(1, 1), new Point(2, 2)); Assert.AreEqual(7, result.Count()); Assert.AreEqual(new Point(1, 1), result[0]); Assert.AreEqual(new Point(0, 1), result[1]); Assert.AreEqual(new Point(0, 2), result[2]); Assert.AreEqual(new Point(0, 3), result[3]); Assert.AreEqual(new Point(1, 3), result[4]); Assert.AreEqual(new Point(2, 3), result[5]); Assert.AreEqual(new Point(2, 2), result[6]); }
public void Search_ForwardPath_PathFound() { /* * ____ * _01_ * _#2_ */ var target = new WeightedGridGraph(10, 10); target.Walls.Add(new Point(1, 2)); var result = WeightedPathfinder.Search(target, new Point(1, 1), new Point(2, 2)); Assert.AreEqual(3, result.Count()); Assert.AreEqual(new Point(1, 1), result[0]); Assert.AreEqual(new Point(2, 1), result[1]); Assert.AreEqual(new Point(2, 2), result[2]); }
public void Search_NoWay_PathNull() { /* * _#__ #0#_ * _#x_ * ____ */ var target = new WeightedGridGraph(10, 10); target.Walls.Add(new Point(1, 2)); target.Walls.Add(new Point(2, 1)); target.Walls.Add(new Point(1, 0)); target.Walls.Add(new Point(0, 1)); var result = WeightedPathfinder.Search(target, new Point(1, 1), new Point(2, 2)); Assert.AreEqual(null, result); }
public void Search_AllowDiagonal_PathFound() { /* ##__ * _0#_ * _#1_ * ____ */ var target = new WeightedGridGraph(10, 10, true); target.Walls.Add(new Point(1, 2)); target.Walls.Add(new Point(2, 1)); target.Walls.Add(new Point(1, 0)); target.Walls.Add(new Point(0, 0)); var result = WeightedPathfinder.Search(target, new Point(1, 1), new Point(2, 2)); Assert.AreEqual(2, result.Count()); Assert.AreEqual(new Point(1, 1), result[0]); Assert.AreEqual(new Point(2, 2), result[1]); }
public void FindPath(MapTile destination) { if (!Cooldown.Done) { return; } MapTile source = Curio.GetMainTile(); if (source != null) { Setup(); var path = WeightedPathfinder.Search(Graph, new Point(source.X, source.Y), new Point(destination.X, destination.Y)); if (path != null) { Path = path; } else { Cooldown.Time = 0; } } }
public List <Node> Search(Node start, Node goal) => WeightedPathfinder.Search(this, start, goal);
public List <Node> Search(Node start, Node goal, Node previous) { startNode = start; previousNode = previous; return(WeightedPathfinder.Search(this, start, goal)); }