Skip to content
Snippets Groups Projects
Commit 004aad73 authored by ousseyn01's avatar ousseyn01
Browse files

Implementation of firefighter for moving to the best position without touching Mountain

parent d3558510
No related branches found
No related tags found
No related merge requests found
......@@ -24,9 +24,30 @@ public class Firefighter {
this.position = position;
}
public Position moveToBestPosition(TargetStrategy targetStrategy, Set<Position> firePositions, Map<Position, List<Position>> neighbors) {
/*public Position moveToBestPosition(TargetStrategy targetStrategy, Set<Position> firePositions, Map<Position, List<Position>> neighbors) {
return targetStrategy.neighborClosestToFire(position, firePositions, neighbors);
}*/
public Position moveToBestPosition(Set<Position> firePositions, Map<Position, List<Position>> neighbors, Set<Position> mountains) {
Position currentPosition = getPosition();
Position bestPosition = currentPosition;
int minDistance = Integer.MAX_VALUE;
for (Position neighbor : neighbors.get(currentPosition)) {
if (mountains.contains(neighbor)) continue; // Ignore les montagnes
// Rechercher le feu le plus proche depuis le voisin
for (Position firePosition : firePositions) {
int distance = Math.abs(firePosition.row() - neighbor.row()) + Math.abs(firePosition.column() - neighbor.column());
if (distance < minDistance) {
minDistance = distance;
bestPosition = neighbor;
}
}
}
return bestPosition; // Retourne la meilleure position parmi les voisines
}
public void extinguish(Position position, Set<Position> firePositions) {
firePositions.remove(position);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment