Skip to content
Snippets Groups Projects
Commit 9d23ba40 authored by RADELLAH Badr's avatar RADELLAH Badr
Browse files

Lors de cette première séance, j'ai travaillé sur la refactorisation du code...

Lors de cette première séance, j'ai travaillé sur la refactorisation du code existant en déléguant les responsabilités des pompiers et des feux à des classes séparées (Firefighter et Fire). J'ai également amélioré l'architecture du code en isolant mieux la logique de gestion des feux et des pompiers dans leurs propres classes respectives, afin de rendre le code plus modulaire et conforme aux principes SOLID, notamment le principe de responsabilité unique.
Pour la prochaine séance e préparerai également un diagramme de classe détaillant l'organisation actuelle du code et Implémentation des nuages mobiles qui éteignent les feux
parent 5955641f
No related branches found
No related tags found
No related merge requests found
Pipeline #38503 passed
Showing
with 68 additions and 0 deletions
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
#Sat Nov 09 17:23:07 CET 2024
gradle.version=8.10.2
package model;
import util.Position;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
public class Fire {
private Set<Position> positions;
public Fire(Set<Position> initialPositions) {
this.positions = initialPositions;
}
public Set<Position> getPositions() {
return positions;
}
public List<Position> spread(Set<Position> neighbors) {
// Logique de propagation de l'incendie
List<Position> newFirePositions = new ArrayList<>(neighbors);
positions.addAll(newFirePositions);
return newFirePositions;
}
public void extinguish(Position position) {
positions.remove(position);
}}
\ No newline at end of file
package model;
import util.Position;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import model.TargetStrategy;
public class Firefighter {
private List<Position> positions;
private TargetStrategy targetStrategy;
public Firefighter(List<Position> initialPositions, TargetStrategy targetStrategy) {
this.positions = initialPositions;
this.targetStrategy = targetStrategy;
}
public List<Position> moveToClosestFire(Set<Position> firePositions, Map<Position, List<Position>> neighbors) {
List<Position> modifiedPositions = new ArrayList<>();
List<Position> newPositions = new ArrayList<>();
for (Position position : positions) {
Position newPosition = targetStrategy.neighborClosestToFire(position, firePositions, neighbors);
newPositions.add(newPosition);
modifiedPositions.add(position);
modifiedPositions.add(newPosition);
}
this.positions = newPositions;
return modifiedPositions;
}
public List<Position> getPositions() {
return positions;
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment