Select Git revision
MotorizedFireFighter.java
Forked from
COUETOUX Basile / FirefighterStarter
123 commits ahead of the upstream repository.
CHERCHEM Sarah authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
MotorizedFireFighter.java 1.44 KiB
package model.ExtinguishFire;
import model.Board.BoardElement;
import util.Position;
import util.TargetStrategy;
import java.util.*;
public class MotorizedFireFighter extends FireFighter{
private final TargetStrategy targetStrategy = new TargetStrategy();
public MotorizedFireFighter(Position position) {
super(position);
}
@Override
public String getType() {
return "MotorizedFireFighter";
}
@Override
public String toString() {
return null;
}
/**
* Déplace le pompier motorisé en deux étapes maximum vers un feu.
*
* @param firePositions Les positions des feux.
* @param neighbors Les positions voisines accessibles.
* @return La nouvelle position du pompier.
*/
public Position move(Set<Position> firePositions, Map<Position, List<Position>> neighbors) {
// Première étape
Position firstStep = targetStrategy.neighborClosestToTarget(getPosition(), firePositions, neighbors);
if (firstStep == null) {
return getPosition(); // Aucun déplacement possible
}
// Deuxième étape
Position secondStep = targetStrategy.neighborClosestToTarget(firstStep, firePositions, neighbors);
// Mise à jour de la position
Position newPosition = (secondStep != null) ? secondStep : firstStep;
setPosition(newPosition); // Mettre à jour la position interne
return newPosition;
}
}