Skip to content
Snippets Groups Projects
Commit 81195f0f authored by ousseyn01's avatar ousseyn01
Browse files

Refractor of classes

parent ca7e2a77
Branches
No related tags found
No related merge requests found
......@@ -2,26 +2,31 @@ package model;
import util.Position;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.*;
public class Fire {
private Set<Position> firePositions;
private Map<Position, List<Position>> neighbors;
// private int step =0;
private static Set<Position> firePositions;
private static Map<Position, List<Position>> neighbors;
public Fire(Set<Position> firePositions, Map<Position, List<Position>> neighbors) {
this.firePositions = firePositions;
this.neighbors = neighbors;
}
public Set<Position> getFirePositions() {
public Position getPosition(){
return firePositions.iterator().next();
}
public void setPosition(Position p){
this.firePositions.add(p);
}
public static Set<Position> getFirePositions() {
return firePositions;
}
public List<Position> spreadFire(Set<Position> mountains) {
public static List<Position> spreadFire(Set<Position> mountains) {
List<Position> newFires = new ArrayList<>();
for (Position firePosition : firePositions) {
for (Position neighbor : neighbors.get(firePosition)) {
......@@ -34,7 +39,7 @@ public class Fire {
return newFires;
}
public void extinguishFire(Position neighbor) {
public static void extinguishFire(Position neighbor) {
firePositions.remove(neighbor);
}
}
package model;
import model.TargetStrategy;
import util.Position;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class Firefighter implements BoardElement {
public class Firefighter {
private Position position;
public Firefighter(Position position) {
//this.firefighterPositions = firefighterPositions;
this.position = position;
//this.neighbors = neighbors;
}
@Override
public Position getPosition() {
return position;
}
@Override
public void setPosition(Position position) {
this.position = position;
}
/*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
if (mountains.contains(neighbor)) continue;
for (Position firePosition : firePositions) {
int distance = Math.abs(firePosition.row() - neighbor.row()) + Math.abs(firePosition.column() - neighbor.column());
if (distance < minDistance) {
......@@ -47,10 +37,9 @@ public class Firefighter implements BoardElement {
}
}
return bestPosition; // Retourne la meilleure position parmi les voisines
return bestPosition;
}
public void extinguish(Position position, Set<Position> firePositions) {
firePositions.remove(position);
}
......
......@@ -3,7 +3,7 @@ package view;
import javafx.scene.paint.Color;
public enum ViewElement {
FIREFIGHTER(Color.BLUE), FIRE(Color.RED), CLOUD(Color.GREY),MOUNTAIN(Color.CHOCOLATE), EMPTY(Color.WHITE);
FIREFIGHTER(Color.BLUE), FIRE(Color.RED), CLOUD(Color.LIGHTGREY),MOUNTAIN(Color.CHOCOLATE), EMPTY(Color.WHITE);
final Color color;
ViewElement(Color color) {
this.color = color;
......
......@@ -15,12 +15,12 @@ public class FirefighterBoardTest {
}
@Test
void testRowCount(){
Board<List<ModelElement>> board = new FirefighterBoard(20, 10, 3, 3, 3, 3);
Board<List<ModelElement>> board = new FirefighterBoard(20, 10, 3, 5, 3, 3);
assertThat(board.rowCount()).isEqualTo(10);
}
@Test
void testStepNumber(){
Board<List<ModelElement>> board = new FirefighterBoard(20, 10, 3, 3, 3, 3);
Board<List<ModelElement>> board = new FirefighterBoard(20, 10, 3, 5, 3, 3);
for(int index = 0; index < 10; index++){
assertThat(board.stepNumber()).isEqualTo(index);
board.updateToNextGeneration();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment