Damn it works

This commit is contained in:
BOTLester 2020-05-08 00:35:53 +02:00
parent 3e034cf958
commit e1b4dec764
3 changed files with 38 additions and 15 deletions

View File

@ -41,7 +41,7 @@ class Astar
} }
// Get all adjacent nodes // Get all adjacent nodes
private List<Nodes> GetAdjacentNodes(Vector2 currentPos) public List<Nodes> GetAdjacentNodes(Vector2 currentPos)
{ {
var adjacentNodes = new List<Nodes>() var adjacentNodes = new List<Nodes>()

View File

@ -59,25 +59,49 @@ class AI
{ {
PriorityQueueC5 queue = new PriorityQueueC5(); PriorityQueueC5 queue = new PriorityQueueC5();
int score = 0; int score = 0;
int count = 0;
int testsize = 2;
Vector2 newTarget; Vector2 newTarget;
while (true)
{
for (int x = 0; x < Size.X; x++) for (int x = 0; x < Size.X; x++)
for (int y = 0; y < Size.Y; y++) for (int y = 0; y < Size.Y; y++)
{ {
if (farm.getCrop(x, y).getStatus() >= 2 && tractorPos != new Vector2(x, y)) if (farm.getCrop(x, y).getStatus() >= 2 && tractorPos != new Vector2(x, y))
{ {
if (farm.getCrop(x, y).getStatus() == 4 && farm.getCrop(x, y).getCropTimer() != 1) if (farm.getCrop(x, y).getStatus() == 3 && farm.getCrop(x, y).getCropTimer() != 1)
{ {
if (housePos == tractorPos)
{
score = calculateSoilScore(x, y);
queue.AddToQueue(x, y, score);
count++;
}
//do nothing //do nothing
} }
else else
{ {
score = calculateSoilScore(x, y); score = calculateSoilScore(x, y);
queue.AddToQueue(x, y, score); queue.AddToQueue(x, y, score);
count++;
} }
} }
} }
if (count > 0)
break;
else if (tractorPos != housePos)
return housePos;
/*
else if (tractorPos == housePos)
{
List<Nodes> temp = astar.GetAdjacentNodes(tractorPos);
return temp[0].getCords();
}
*/
}
newTarget = GetMinFNode(5, queue); newTarget = GetMinFNode(Math.Min(testsize, count), queue);
return newTarget; return newTarget;
} }

View File

@ -23,7 +23,6 @@ class SmartTractor
getTargetPosition(ai.newTarget()); getTargetPosition(ai.newTarget());
astar.update(farm.getCrops(), Size, tractorPos / (tileSize + Spacing), housePos / (tileSize + Spacing), Target / (tileSize + Spacing), Rotation); astar.update(farm.getCrops(), Size, tractorPos / (tileSize + Spacing), housePos / (tileSize + Spacing), Target / (tileSize + Spacing), Rotation);
return astar.FindPath(true); return astar.FindPath(true);
} }