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

Ajout initializer pour les différent scenario

parent bbdf6418
No related branches found
No related tags found
No related merge requests found
Pipeline #41648 passed
......@@ -113,7 +113,7 @@
-fx-background-color: #3a3a3a;
}
.button:pressed, .button:default:hover:pressed {
.button:default:hover:pressed {
-fx-background-color: white;
-fx-text-fill: #1d1d1d;
}
......
......@@ -13,16 +13,24 @@ import javafx.stage.Stage;
public class SimulatorApplication extends javafx.application.Application {
private static final String VIEW_RESOURCE_PATH = "/view/view.fxml";
private static final String APP_NAME = "Firefighter simulator";
private static final int ROW_COUNT = 40;
private static final int COLUMN_COUNT = 40;
private static final int BOX_WIDTH = 25;
private static final int BOX_HEIGHT = 25;
public static final int ROW_COUNT = 40;
public static final int COLUMN_COUNT = 40;
public static final int BOX_WIDTH = 25;
public static final int BOX_HEIGHT = 25;
public static final int INITIAL_FIRE_COUNT = 8;
public static final int INITIAL_FIREFIGHTER_COUNT = 12;
public static final int INITIAL_MOTORIZED_FIREFIGHTER_COUNT = 8;
public static final int INITIAL_CLOUD_COUNT = 8;
public static final int INITIAL_MOUNTAIN_COUNT= 6;
public static final int INITIAL_ROCKERTY_COUNT= 3;
public static final int TURNS_FOR_SPAWNING_AIRTANKER = 10;
public static final int PAPER_COUNT = 10;
public static final int ROCK_COUNT = 10;
public static final int CISOR_COUNT = 10;
public static final int DOCTOR_COUNT = 10;
public static final int PATIENT_COUNT = 70;
public static final int VIRUS_COUNT = 6;
private Stage primaryStage;
private Parent view;
......@@ -48,8 +56,20 @@ public class SimulatorApplication extends javafx.application.Application {
loader.setLocation(location);
view = loader.load();
Controller controller = loader.getController();
controller.initialize(BOX_WIDTH, BOX_HEIGHT, COLUMN_COUNT, ROW_COUNT,
INITIAL_FIRE_COUNT, INITIAL_FIREFIGHTER_COUNT, INITIAL_MOTORIZED_FIREFIGHTER_COUNT, INITIAL_CLOUD_COUNT, INITIAL_MOUNTAIN_COUNT, TURNS_FOR_SPAWNING_AIRTANKER);
if(SimulatorMain.arguments == null){
SimulatorMain.arguments = new String[1];
SimulatorMain.arguments[0] = "firefighter";
System.out.println("No argument were provided, starting firefighter");
}
switch(SimulatorMain.arguments[0]){
case "pfc":
controller.initializePfc();
case "firefighter":
controller.initializeFireFighter();
case "doctor":
controller.initializeDoctor();
}
}
private void showScene() {
......
package app;
public class SimulatorMain {
public static String[] arguments;
public static void main(String[] args){
SimulatorApplication.main(args);
arguments = args;
}
}
......@@ -25,17 +25,10 @@ import model.Entity;
import model.EntityFactory;
import model.Model;
import model.Square;
import model.firefighterscenario.Cloud;
import model.firefighterscenario.Fire;
import model.firefighterscenario.FireFighter;
import model.firefighterscenario.FireFighterScenario;
import model.firefighterscenario.MotorizedFireFighter;
import model.firefighterscenario.Mountain;
import model.firefighterscenario.Rockery;
import util.Position;
import view.Grid;
import view.ViewElement;
import app.SimulatorApplication;
public class Controller {
......@@ -138,32 +131,61 @@ public class Controller {
repaintGrid();
}
public void initialize(int squareWidth, int squareHeight, int columnCount,
int rowCount, int initialFireCount, int initialFirefighterCount, int initialMotorizedFirefightersCount, int initialcloudCount, int initialmountaincount, int turnsForSpawningAirTanker) {
public void initializeDoctor() {
int columnCount = SimulatorApplication.COLUMN_COUNT;
int rowCount = SimulatorApplication.ROW_COUNT;
int squareWidth = SimulatorApplication.BOX_WIDTH;
int squareHeight = SimulatorApplication.BOX_HEIGHT;
grid.setDimensions(columnCount, rowCount, squareWidth, squareHeight);
Map<EntityFactory, Integer> entityCounts = new HashMap<EntityFactory, Integer>();
entityCounts.put((pos, b) -> new model.doctorviruspatient.Patient(pos), SimulatorApplication.PATIENT_COUNT);
entityCounts.put((pos, b) -> new model.doctorviruspatient.Virus(pos), SimulatorApplication.VIRUS_COUNT);
entityCounts.put((pos, b) -> new model.doctorviruspatient.Doctor(pos), SimulatorApplication.DOCTOR_COUNT);
Model model = new model.doctorviruspatient.DoctorVirusPatientScenario(SimulatorApplication.COLUMN_COUNT, SimulatorApplication.ROW_COUNT, entityCounts);
this.setModel(model);
repaintGrid();
}
public void initializePfc() {
int columnCount = SimulatorApplication.COLUMN_COUNT;
int rowCount = SimulatorApplication.ROW_COUNT;
int squareWidth = SimulatorApplication.BOX_WIDTH;
int squareHeight = SimulatorApplication.BOX_HEIGHT;
grid.setDimensions(columnCount, rowCount, squareWidth, squareHeight);
Map<EntityFactory, Integer> entityCounts = new HashMap<EntityFactory, Integer>();
/*
entityCounts.put((pos, b) -> new Fire(pos), initialFireCount);
entityCounts.put((pos, b) -> new FireFighter(pos,b), initialFirefighterCount);
entityCounts.put((pos, b) -> new MotorizedFireFighter(pos, b), initialMotorizedFirefightersCount);
entityCounts.put((pos, b) -> new Cloud(pos, b), initialcloudCount);
entityCounts.put((pos, b) -> new Mountain(pos), initialmountaincount);
entityCounts.put((pos, b) -> new Rockery(pos), 3);
*/
/*
entityCounts.put((pos, b) -> new Rock(pos), 10);
entityCounts.put((pos, b) -> new Cisor(pos), 10);
entityCounts.put((pos, b) -> new Paper(pos), 10);
*/
entityCounts.put((pos, b) -> new model.doctorviruspatient.Patient(pos), 70);
entityCounts.put((pos, b) -> new model.doctorviruspatient.Virus(pos), 6);
entityCounts.put((pos, b) -> new model.doctorviruspatient.Doctor(pos), 3);
Model model = new model.doctorviruspatient.DoctorVirusPatientScenario(columnCount, rowCount, entityCounts);
entityCounts.put((pos, b) -> new model.rockpapercisor.Rock(pos), SimulatorApplication.ROCK_COUNT);
entityCounts.put((pos, b) -> new model.rockpapercisor.Paper(pos), SimulatorApplication.PAPER_COUNT);
entityCounts.put((pos, b) -> new model.rockpapercisor.Cisor(pos), SimulatorApplication.CISOR_COUNT);
Model model = new model.doctorviruspatient.DoctorVirusPatientScenario(SimulatorApplication.COLUMN_COUNT, SimulatorApplication.ROW_COUNT, entityCounts);
this.setModel(model);
repaintGrid();
}
public void initializeFireFighter() {
int columnCount = SimulatorApplication.COLUMN_COUNT;
int rowCount = SimulatorApplication.ROW_COUNT;
int squareWidth = SimulatorApplication.BOX_WIDTH;
int squareHeight = SimulatorApplication.BOX_HEIGHT;
grid.setDimensions(columnCount, rowCount, squareWidth, squareHeight);
Map<EntityFactory, Integer> entityCounts = new HashMap<EntityFactory, Integer>();
entityCounts.put((pos, b) -> new model.firefighterscenario.Fire(pos), SimulatorApplication.INITIAL_FIRE_COUNT);
entityCounts.put((pos, b) -> new model.firefighterscenario.FireFighter(pos,b), SimulatorApplication.INITIAL_FIREFIGHTER_COUNT);
entityCounts.put((pos, b) -> new model.firefighterscenario.MotorizedFireFighter(pos, b), SimulatorApplication.INITIAL_MOTORIZED_FIREFIGHTER_COUNT);
entityCounts.put((pos, b) -> new model.firefighterscenario.Cloud(pos, b), SimulatorApplication.INITIAL_CLOUD_COUNT);
entityCounts.put((pos, b) -> new model.firefighterscenario.Mountain(pos), SimulatorApplication.INITIAL_MOUNTAIN_COUNT);
entityCounts.put((pos, b) -> new model.firefighterscenario.Rockery(pos), SimulatorApplication.INITIAL_ROCKERTY_COUNT);
Model model = new model.doctorviruspatient.DoctorVirusPatientScenario(SimulatorApplication.COLUMN_COUNT, SimulatorApplication.ROW_COUNT, entityCounts);
this.setModel(model);
repaintGrid();
}
......
......@@ -113,7 +113,7 @@
-fx-background-color: #3a3a3a;
}
.button:pressed, .button:default:hover:pressed {
.button:default:hover:pressed {
-fx-background-color: white;
-fx-text-fill: #1d1d1d;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment