Skip to content
Snippets Groups Projects
Commit 3d1739f6 authored by ousseyn01's avatar ousseyn01
Browse files

For Route and Rocaille

parent 7543f733
No related branches found
No related tags found
No related merge requests found
Pipeline #41916 failed
......@@ -94,6 +94,12 @@ public class Controller {
if(squareState.contains(ModelElement.MOUNTAIN)){
return ViewElement.MOUNTAIN;
}
if(squareState.contains(ModelElement.ROUTE)){
return ViewElement.ROUTE;
}
if(squareState.contains(ModelElement.ROCAILLE)){
return ViewElement.ROCAILLE;
}
return ViewElement.EMPTY;
}
......
......@@ -23,6 +23,8 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
private final Random randomGenerator = new Random();
private NextGenerationUpdater nextGenerationUpdater;
private List<TerrainElement> terrainElements;
public FirefighterBoard(int columnCount, int rowCount, int initialFireCount, int initialFirefighterCount, int initialCloudCount, int initialMountainCount) {
......@@ -48,6 +50,17 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
// Initialisation des Updaters
nextGenerationUpdater = new NextGenerationUpdater(fire, clouds, firefighters, mountains, neighbors);
terrainElements = new ArrayList<>();
for (int i = 0; i < 5; i++) {
Position position = randomPosition();
terrainElements.add(new Route(position));
}
for (int i = 0; i < 5; i++) {
Position position = randomPosition();
terrainElements.add(new Rocaille(position));
}
}
public void initializeElements() {
......@@ -55,6 +68,8 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
clouds = new ArrayList<>();
mountains = new ArrayList<>();
Set<Position> firePositions = new HashSet<>();
for (int index = 0; index < initialCloudCount; index++) {
clouds.add(new Cloud(randomPosition(), neighbors));
}
......@@ -112,6 +127,16 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
if (fire.getFirePositions().contains(position))
result.add(ModelElement.FIRE);
for (TerrainElement element : terrainElements) {
if (element.getPosition().equals(position)) {
if (element instanceof Route) {
result.add(ModelElement.ROUTE);
} else if (element instanceof Rocaille) {
result.add(ModelElement.ROCAILLE);
}
}
}
return result;
}
......@@ -151,6 +176,8 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
case FIREFIGHTER -> firefighters.add(new Firefighter(position));
case CLOUD -> clouds.add(new Cloud(position, neighbors));
case MOUNTAIN -> mountains.add(new Mountain(position));
case ROUTE -> terrainElements.add(new Route(position));
case ROCAILLE -> terrainElements.add(new Rocaille(position));
}
}
}
......
package model;
public enum ModelElement {
FIREFIGHTER, FIRE, CLOUD, MOUNTAIN
FIREFIGHTER, FIRE, CLOUD, MOUNTAIN, ROUTE, ROCAILLE
}
......@@ -2,7 +2,6 @@ package model;
import util.Position;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
......
package model.update;
import model.Cloud;
import model.Fire;
import model.Firefighter;
import model.Mountain;
import model.*;
import util.Position;
import java.util.List;
......@@ -17,7 +14,8 @@ public class NextGenerationUpdater {
private final Map<Position, List<Position>> neighbors;
private int step;
public NextGenerationUpdater(Fire fire, List<Cloud> clouds, List<Firefighter> firefighters, List<Mountain> mountains, Map<Position, List<Position>> neighbors) {
public NextGenerationUpdater(Fire fire, List<Cloud> clouds, List<Firefighter> firefighters, List<Mountain> mountains,
Map<Position, List<Position>> neighbors) {
this.fire = fire;
this.clouds = clouds;
this.firefighters = firefighters;
......@@ -34,6 +32,7 @@ public class NextGenerationUpdater {
modifiedPositions.addAll(fire.spreadFire(Mountain.getMountainPositions(mountains)));
}
// Gestion des nuages
for (Cloud cloud : clouds) {
cloud.move();
cloud.protectFromFire(fire);
......
......@@ -3,7 +3,7 @@ package view;
import javafx.scene.paint.Color;
public enum ViewElement {
FIREFIGHTER(Color.BLUE), FIRE(Color.RED), CLOUD(Color.LIGHTGREY),MOUNTAIN(Color.CHOCOLATE), EMPTY(Color.WHITE);
FIREFIGHTER(Color.BLUE), FIRE(Color.RED), CLOUD(Color.LIGHTGREY),MOUNTAIN(Color.CHOCOLATE),ROUTE(Color.BLACK), ROCAILLE(Color.MAROON), EMPTY(Color.WHITE);
final Color color;
ViewElement(Color color) {
this.color = color;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment