From a3ddf1f349f48ced1cbbbd4f0fa50bc905a2997e Mon Sep 17 00:00:00 2001 From: MEHDI <mehdi.belhachemi@etu-univ.amu.fr> Date: Sun, 24 Nov 2024 19:14:38 +0100 Subject: [PATCH] mehdi : added Mountain class --- src/main/java/controller/Controller.java | 3 +++ src/main/java/model/FireFighter.java | 10 ++++++++++ src/main/java/model/ModelElement.java | 4 +++- src/main/java/model/Montain.java | 12 ++++++++++++ src/main/java/view/ViewElement.java | 2 +- 5 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 src/main/java/model/Montain.java diff --git a/src/main/java/controller/Controller.java b/src/main/java/controller/Controller.java index 19a03ee..ac18882 100644 --- a/src/main/java/controller/Controller.java +++ b/src/main/java/controller/Controller.java @@ -94,6 +94,9 @@ public class Controller { if (squareState.contains(ModelElement.ROAD)) { return ViewElement.ROAD; } + if (squareState.contains(ModelElement.MOUNTAIN)) { + return ViewElement.MOUNTAIN; + } return ViewElement.EMPTY; } diff --git a/src/main/java/model/FireFighter.java b/src/main/java/model/FireFighter.java index f07b2f8..b656cf7 100644 --- a/src/main/java/model/FireFighter.java +++ b/src/main/java/model/FireFighter.java @@ -6,6 +6,7 @@ import util.TargetStrategy; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; @@ -29,17 +30,26 @@ public class FireFighter extends Extinguisher { Position currentPosition = this.getPosition(); Position newPosition = targetStrategy.neighborClosestToFire(currentPosition, firefighterBoard.getFires().keySet(), this.neighbour.getNeighbors()); + this.setPosition(newPosition); modifiedPositions.add(currentPosition); modifiedPositions.add(newPosition); extinguish(firefighterBoard,newPosition); + + for (Position neighbor : this.neighbour.getNeighbors().get(newPosition)) { extinguish(firefighterBoard,neighbor); modifiedPositions.add(neighbor); } + for(Obstacle obstacle : firefighterBoard.getObstacles().values()){ + if(obstacle instanceof Montain){ + modifiedPositions.remove(obstacle.getPosition()); + } + } + return modifiedPositions; } diff --git a/src/main/java/model/ModelElement.java b/src/main/java/model/ModelElement.java index 94616d5..4fdb6d9 100644 --- a/src/main/java/model/ModelElement.java +++ b/src/main/java/model/ModelElement.java @@ -10,7 +10,8 @@ public enum ModelElement { FIREFIGHTER(10), FIRE(10), CLOUD(10), - ROAD(5); + ROAD(5), + MOUNTAIN(5); private final int initialNumber; @@ -30,6 +31,7 @@ public enum ModelElement { case ROAD -> new Road(position); case FIREFIGHTER -> new FireFighter(position); case CLOUD -> new Cloud(position); + case MOUNTAIN -> new Montain(position); default -> throw new IllegalArgumentException("Unknown ModelElement: " + this); }; diff --git a/src/main/java/model/Montain.java b/src/main/java/model/Montain.java new file mode 100644 index 0000000..af69b26 --- /dev/null +++ b/src/main/java/model/Montain.java @@ -0,0 +1,12 @@ +package model; + +import util.Position; + +public class Montain extends Obstacle{ + public Montain(Position position) { + super(position); + element = ModelElement.MOUNTAIN; + } + + +} diff --git a/src/main/java/view/ViewElement.java b/src/main/java/view/ViewElement.java index c7fad49..7cc0683 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.LIGHTSKYBLUE),ROAD(Color.GRAY), EMPTY(Color.WHITE); + FIREFIGHTER(Color.BLUE), FIRE(Color.RED),CLOUD(Color.LIGHTSKYBLUE),ROAD(Color.GRAY),MOUNTAIN(Color.BROWN), EMPTY(Color.WHITE); final Color color; ViewElement(Color color) { this.color = color; -- GitLab