From 81195f0f25a7b5864b63529db36a3ec908a27f6b Mon Sep 17 00:00:00 2001 From: ousseyn01 <ousseyn.ndiaye9@gmail.com> Date: Fri, 29 Nov 2024 21:19:38 +0100 Subject: [PATCH] Refractor of classes --- src/main/java/model/Fire.java | 25 +++++++++++-------- src/main/java/model/Firefighter.java | 17 +++---------- src/main/java/view/ViewElement.java | 2 +- src/test/java/model/FirefighterBoardTest.java | 4 +-- 4 files changed, 21 insertions(+), 27 deletions(-) diff --git a/src/main/java/model/Fire.java b/src/main/java/model/Fire.java index 8540201..fa159ae 100644 --- a/src/main/java/model/Fire.java +++ b/src/main/java/model/Fire.java @@ -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); } } diff --git a/src/main/java/model/Firefighter.java b/src/main/java/model/Firefighter.java index 3b93fda..43fc7e5 100644 --- a/src/main/java/model/Firefighter.java +++ b/src/main/java/model/Firefighter.java @@ -1,43 +1,33 @@ 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); } diff --git a/src/main/java/view/ViewElement.java b/src/main/java/view/ViewElement.java index 8fe842b..733d916 100644 --- a/src/main/java/view/ViewElement.java +++ b/src/main/java/view/ViewElement.java @@ -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; diff --git a/src/test/java/model/FirefighterBoardTest.java b/src/test/java/model/FirefighterBoardTest.java index 6db4184..7089edb 100644 --- a/src/test/java/model/FirefighterBoardTest.java +++ b/src/test/java/model/FirefighterBoardTest.java @@ -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(); -- GitLab