1
0
Fork 0
mirror of https://github.com/dancojocaru2000/ai-project-idastar.git synced 2025-02-22 16:39:35 +02:00

Improved marking and pathfinding

This commit is contained in:
Kenneth Bruen 2021-12-07 10:51:46 +02:00
parent 70fb7dcf9f
commit 1f8dda0d66
Signed by: kbruen
GPG key ID: C1980A470C3EE5B1

View file

@ -13,6 +13,7 @@ namespace IdaStar
START, START,
DESTINATION, DESTINATION,
PATH, PATH,
GOOD_PATH,
} }
public static class CellStateUtil { public static class CellStateUtil {
@ -24,6 +25,7 @@ namespace IdaStar
'S' => CellState.START, 'S' => CellState.START,
'F' => CellState.DESTINATION, 'F' => CellState.DESTINATION,
'P' => CellState.PATH, 'P' => CellState.PATH,
'G' => CellState.GOOD_PATH,
_ => throw new NotImplementedException(), _ => throw new NotImplementedException(),
}; };
@ -34,6 +36,7 @@ namespace IdaStar
CellState.START => 'S', CellState.START => 'S',
CellState.DESTINATION => 'F', CellState.DESTINATION => 'F',
CellState.PATH => 'P', CellState.PATH => 'P',
CellState.GOOD_PATH => 'G',
_ => throw new NotImplementedException(), _ => throw new NotImplementedException(),
}; };
@ -199,12 +202,15 @@ namespace IdaStar
min = neighbourF; min = neighbourF;
} }
if (min == 0) { if (min == 0) {
// if (_board[current.Row][current.Column] == CellState.PATH) {
// _board[current.Row][current.Column] = CellState.GOOD_PATH;
// }
break; break;
} }
if (_board[neighbour.Row][neighbour.Column] == CellState.PATH) { // if (_board[neighbour.Row][neighbour.Column] == CellState.PATH) {
_board[neighbour.Row][neighbour.Column] = CellState.EMPTY; // _board[neighbour.Row][neighbour.Column] = CellState.EMPTY;
} // }
} }
@ -213,6 +219,7 @@ namespace IdaStar
var threshold = heuristic(startPoint, destinationPoint); var threshold = heuristic(startPoint, destinationPoint);
while (threshold != 0) { while (threshold != 0) {
Reset();
var newThreshold = search(startPoint, 0, threshold); var newThreshold = search(startPoint, 0, threshold);
if (newThreshold == 0) { if (newThreshold == 0) {
threshold = 0; threshold = 0;