forked from s425077/PotatoPlan
A* workin, broke the rest
This commit is contained in:
parent
6e4199eb47
commit
dfbe50ee10
@ -41,10 +41,22 @@ class Astar
|
|||||||
new Nodes(new Vector2(currentPos.X - 1, currentPos.Y)),
|
new Nodes(new Vector2(currentPos.X - 1, currentPos.Y)),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
for (int i = 3; i >=0; i--)
|
||||||
|
{
|
||||||
|
if (adjacentNodes[i].getCords().X < 0 || adjacentNodes[i].getCords().Y < 0)
|
||||||
|
adjacentNodes.Remove(adjacentNodes[i]);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (adjacentNodes[i].getCords().X > Size.X || adjacentNodes[i].getCords().Y > Size.Y)
|
||||||
|
adjacentNodes.Remove(adjacentNodes[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return adjacentNodes.Where(
|
return adjacentNodes.Where(
|
||||||
item => crops[(int)item.getCords().X, (int)item.getCords().Y].Status != 0).ToList();
|
item => crops[(int)item.getCords().X, (int)item.getCords().Y].Status != 0).ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public int ComputeHScore(Vector2 currentNode, Vector2 endNote)
|
public int ComputeHScore(Vector2 currentNode, Vector2 endNote)
|
||||||
{
|
{
|
||||||
return (int)(Math.Abs(endNote.X - currentNode.X) + Math.Abs(endNote.Y - currentNode.Y));
|
return (int)(Math.Abs(endNote.X - currentNode.X) + Math.Abs(endNote.Y - currentNode.Y));
|
||||||
@ -52,7 +64,7 @@ class Astar
|
|||||||
|
|
||||||
public Path FindPath()
|
public Path FindPath()
|
||||||
{
|
{
|
||||||
Path path = null;
|
Path path = new Path();
|
||||||
PriorityQueue openList = new PriorityQueue();
|
PriorityQueue openList = new PriorityQueue();
|
||||||
PriorityQueue closedList = new PriorityQueue();
|
PriorityQueue closedList = new PriorityQueue();
|
||||||
Nodes startPos = new Nodes (tractorPos);
|
Nodes startPos = new Nodes (tractorPos);
|
||||||
@ -102,7 +114,7 @@ class Astar
|
|||||||
path.AddNode(current);
|
path.AddNode(current);
|
||||||
current = current.getParent();
|
current = current.getParent();
|
||||||
}
|
}
|
||||||
|
path.FlipArray();
|
||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,10 +34,10 @@ class Path
|
|||||||
public void FlipArray()
|
public void FlipArray()
|
||||||
{
|
{
|
||||||
int j = Count;
|
int j = Count;
|
||||||
Nodes[] temp = nodes;
|
Nodes[] tempp = nodes;
|
||||||
for (int i = 0; i < Count; i++)
|
for (int i = 0; i < Count; i++)
|
||||||
{
|
{
|
||||||
nodes[i] = temp[j];
|
nodes[i] = tempp[j - 1];
|
||||||
j--;
|
j--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -31,8 +31,8 @@ class SmartTractor
|
|||||||
//To the fields
|
//To the fields
|
||||||
getTargetPosition(r.Next(0, (int)Size.X), r.Next(0, (int)Size.Y));
|
getTargetPosition(r.Next(0, (int)Size.X), r.Next(0, (int)Size.Y));
|
||||||
}
|
}
|
||||||
astar.FindPath();
|
//astar.FindPath();
|
||||||
return path;
|
return astar.FindPath();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user