Skip to content
Snippets Groups Projects
Commit 20e24e55 authored by Yanis OUALAN's avatar Yanis OUALAN
Browse files

Merge branch 'melissa' of etulab.univ-amu.fr:o22010261/firefighterstarter into melissa

parents 5060d1ac d8a3bf45
No related branches found
No related tags found
No related merge requests found
Pipeline #39136 failed
gradlew 100755 → 100644
File mode changed from 100755 to 100644
......@@ -19,6 +19,7 @@ public class SimulatorApplication extends javafx.application.Application {
private static final int BOX_HEIGHT = 25;
public static final int INITIAL_FIRE_COUNT = 3;
public static final int INITIAL_FIREFIGHTER_COUNT = 6;
public static final int INITIAL_CLOUD_COUNT = 6;
private Stage primaryStage;
private Parent view;
......@@ -44,7 +45,7 @@ public class SimulatorApplication extends javafx.application.Application {
view = loader.load();
Controller controller = loader.getController();
controller.initialize(BOX_WIDTH, BOX_HEIGHT, COLUMN_COUNT, ROW_COUNT,
INITIAL_FIRE_COUNT, INITIAL_FIREFIGHTER_COUNT);
INITIAL_FIRE_COUNT, INITIAL_FIREFIGHTER_COUNT, INITIAL_CLOUD_COUNT);
}
private void showScene() {
......
......@@ -5,6 +5,11 @@ import static java.util.Objects.*;
import java.util.ArrayList;
import java.util.List;
import static java.util.Objects.*;
import java.util.ArrayList;
import java.util.List;
import javafx.animation.Animation;
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
......
......@@ -4,6 +4,8 @@ import java.util.List;
import util.Position;
import util.Position;
/**
* This interface represents a generic board for modeling various state-based
* systems.
......
package model;
import java.util.ArrayList;
import java.util.List;
import javafx.scene.paint.Color;
import util.Position;
public class EmptySquare implements Entity{
private Position position;
private final Color viewColor = Color.WHITE;
private int age;
public EmptySquare(Position p){
this.position = p;
this.age = -999;
}
public EmptySquare(Position p, int age){
this.position = p;
this.age = age;
}
@Override
public List<Position> nextTurn(Board<Entity> board) {
return new ArrayList<Position>();
}
@Override
public Position getPosition() {
return position;
}
@Override
public void setPosition(Position p) {
this.position = p;
}
public Color getViewColor(){
return this.viewColor;
}
@Override
public int getAge() {
return this.age;
}
@Override
public void incrementAge() {
age = age + 1;
}
}
......@@ -5,6 +5,11 @@ import java.util.List;
import javafx.scene.paint.Color;
import util.Position;
import java.util.List;
import javafx.scene.paint.Color;
import util.Position;
public interface Entity {
/**
* Exécute un tour de jeu, en vérifiant les cases adjacentes pour des instances de Fire.
......
......@@ -6,6 +6,7 @@ import java.util.List;
import javafx.scene.paint.Color;
import util.Position;
import util.PositionUtil;
import util.PositionUtil;
public class Fire implements Entity {
Board<Square> b;
......
......@@ -6,6 +6,7 @@ import java.util.List;
import javafx.scene.paint.Color;
import util.Position;
import util.PositionUtil;
import util.PositionUtil;
public class FireFighter implements Entity {
private int age;
......
......@@ -3,12 +3,16 @@ package model;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
import java.util.Random;
import util.Matrix;
import util.Position;
import util.PositionUtil;
import util.PositionUtil;
public class FireFighterScenario extends EntityScenario implements Board<Square> {
......@@ -116,6 +120,9 @@ public class FireFighterScenario extends EntityScenario implements Board<Square>
return matrix.getRows();
}
public int columnCount() {
return matrix.getColumns();
public int columnCount() {
return matrix.getColumns();
}
......
......@@ -3,5 +3,9 @@ package model;
import util.Matrix;
public interface Scenario {
<<<<<<< HEAD
public void initScenario(Matrix<Square> matrix);
=======
public void initScenario(Matrix<Entity> matrix);
>>>>>>> d8a3bf456f5b3471a26e38f4c2d9f5ccef27b158
}
package model;
import javafx.scene.paint.Color;
import util.Position;
import util.PositionUtil;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class cloud implements Entity{
private int age;
private final Color viewColor = Color.GREY;
private Position position;
Board<Entity> b;
public cloud (Position position, Board<Entity> b, int age){
this.age = age;
this.position = position;
this.b = b;
}
@Override
public List<Position> nextTurn(Board<Entity> b) {
List<Position> positions = new ArrayList<>();
// Générer les positions adjacentes valides
List<Position> possibleMoves = PositionUtil.generateAllAdjacentPositions(position, b);
// Sélectionner une position aléatoire parmi les mouvements possibles
Position next_pos = possibleMoves.get(new Random().nextInt(possibleMoves.size()));
// Vérifier l'état de la nouvelle position
ArrayList<Entity> nextEntities = b.getState(next_pos);
positions.add(position);
positions.add(next_pos);
// Si la nouvelle position contient un feu, éteindre le feu
if (nextEntities.contains(Fire.class)) {
extinguish(List.of(next_pos), b);
}
b.setState(this, next_pos);
// Retourner la position mise à jour pour affichage ou suivi
return positions;
}
private List<Position> extinguish(List<Position> next_pos, Board<Entity> b) {
List<Position> extinguishedPositions = new ArrayList<>();
if (b.getState(next_pos.get(0)).contains(Fire.class)) {
b.clearCase(next_pos.get(0));
extinguishedPositions.add(next_pos.get(0));
}
return extinguishedPositions;
}
@Override
public Position getPosition() {
return position;
}
@Override
public void setPosition(Position p) {
this.position = p;
}
@Override
public int getAge() {
return this.age;
}
@Override
public void incrementAge() {
this.age += 1;
}
@Override
public Color getViewColor() {
return viewColor;
}
}
......@@ -2,6 +2,7 @@ module firefighter {
requires javafx.controls;
requires javafx.fxml;
requires javafx.graphics;
requires java.sql;
opens controller to javafx.fxml;
exports app;
opens app to javafx.fxml;
......
package util;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.NoSuchElementException;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment