Skip to content
Snippets Groups Projects
Commit bc0be0e0 authored by HEBBACHE Mohamed's avatar HEBBACHE Mohamed
Browse files

Initialise Fire and FireFighter

parent 1341cc13
No related branches found
No related tags found
No related merge requests found
Pipeline #24014 passed
Showing
with 176 additions and 62 deletions
......@@ -12,7 +12,6 @@ import java.util.Set;
public interface BoardElement {
Color getColor();
void setColor(Color color);
Boolean accept(Visitor visitor);
void initialize(int initialElementCount, HashMap<Position, ArrayList<BoardElement>> elementPosition);
}
package model.ExtenguishFire;
public class FireFighter {
}
package model.ExtenguishFire;
package model.ExtinguishFire;
public class Cloud {
}
package model.ExtenguishFire;
package model.ExtinguishFire;
import model.BoardElement;
import util.Position;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public interface FireFighters extends BoardElement {
public interface ExtinguishFire extends BoardElement {
void initialize(int initialFireFighterCount, HashMap<Position, ArrayList<BoardElement>> elementPosition);
List<Position> updateFirefighters();
boolean accept();
}
package model.ExtinguishFire;
import javafx.scene.paint.Color;
import model.BoardElement;
import model.FirefighterBoard;
import model.Flammable.Fire;
import model.Visitor.FireFinder;
import model.Visitor.Visitor;
import util.Position;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class FireFighter implements ExtinguishFire{
Color color;
public FireFighter(Color color){
this.color=color;
}
@Override
public Color getColor() {
return color;
}
@Override
public Boolean accept(Visitor visitor) {
return visitor.visit(this);
}
@Override
public void initialize(int initialFireFighterCount, HashMap<Position, ArrayList<BoardElement>> elementPosition) {
FireFinder fireFinder=new FireFinder();
Position position = FirefighterBoard.randomPosition();
boolean canInitialise;
for (int index = 0; index < initialFireFighterCount; index++) {
if(elementPosition.containsKey(position)) {
for (;;) {
canInitialise = true;
for (BoardElement element : elementPosition.get(position)) {
if (element.accept(fireFinder)) {
canInitialise=false;
break;
}
}
if(canInitialise){
break;
}
position = FirefighterBoard.randomPosition();
}
elementPosition.get(position).add(new Fire(Color.BLUE));
continue;
}
ArrayList<BoardElement> boardElements = new ArrayList<>();
boardElements.add(new Fire(Color.BLUE));
elementPosition.put(position,boardElements);
}
}
@Override
public List<Position> updateFirefighters() {
return null;
}
}
package model.ExtenguishFire;
package model.ExtinguishFire;
public class MotorizedFireFighter {
}
......@@ -10,7 +10,6 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
static int rowCount;
private final int initialFireCount;
private final int initialFirefighterCount;
protected HashMap<Position,ArrayList<BoardElement>> elementPosition;
private List<Position> firefighterPositions;
private Set<Position> firePositions;
private int step = 0;
......
......@@ -9,12 +9,10 @@ import util.Position;
import java.util.*;
public class Fire implements Fires{
public class Fire implements Flammable{
private Color color;
private final Color color;
public Fire(){
}
public Fire(Color color){
this.color = color;
}
......@@ -24,11 +22,6 @@ public class Fire implements Fires{
return this.color;
}
@Override
public void setColor(Color color) {
this.color = color;
}
@Override
public Boolean accept(Visitor visitor){
return visitor.visit(this);
......@@ -38,42 +31,34 @@ public class Fire implements Fires{
public void initialize(int initialFireCount, HashMap<Position, ArrayList<BoardElement>> elementPosition) {
FireFinder fireFinder=new FireFinder();
Position position = FirefighterBoard.randomPosition();
int index;
for ( index = 0; index < initialFireCount; index++) {
boolean canInitialise;
for (int index = 0; index < initialFireCount; index++) {
if(elementPosition.containsKey(position)) {
for (;;) {
canInitialise=true;
for (BoardElement element : elementPosition.get(position)) {
if (!element.accept(fireFinder)) {
if (element.accept(fireFinder)) {
canInitialise=false;
break;
}
}
if(index==-1){
elementPosition.get(position).add(new Fire());
}
}
else{
ArrayList<BoardElement> boardElements = new ArrayList<>();
boardElements.add(new Fire());
elementPosition.put(position,boardElements);
}
if(canInitialise){
break;
}
position = FirefighterBoard.randomPosition();
}
/*if(elementPosition.containsKey(position) && ){
elementPosition.get(position).add(new Fire(Color.RED));
continue;
}
else if(elementPosition.containsKey(position)){
elementPosition.get(position).add(fire);
}
else{
ArrayList<BoardElement> boardElements = new ArrayList<>();
boardElements.add(fire);
boardElements.add(new Fire(Color.RED));
elementPosition.put(position,boardElements);
}
}
}*/
@Override
public List<Position> updateFires() {
public List<Position> updateFlammable() {
return null;
}
}
package model.Flammable;
import javafx.scene.paint.Color;
import model.BoardElement;
import model.Visitor.Visitor;
import util.Position;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public interface Fires extends BoardElement{
void setColor(Color color);
Boolean accept(Visitor visitor);
public interface Flammable extends BoardElement{
void initialize(int initialFireCount, HashMap<Position, ArrayList<BoardElement>> elementPosition);
List<Position> updateFires();
List<Position> updateFlammable();
}
package model;
import util.Position;
import java.util.*;
public class GameBoard implements Board{
static int columnCount;
static int rowCount;
private final int initialFireCount;
private final int initialFirefighterCount;
private List<Position> firefighterPositions;
private Set<Position> firePositions;
private int step = 0;
static Random randomGenerator = new Random();
public HashMap<Position, ArrayList<BoardElement>> elementPosition;
public GameBoard(int initialFireCount, int initialFirefighterCount) {
this.initialFireCount = initialFireCount;
this.initialFirefighterCount = initialFirefighterCount;
}
@Override
public Object getState(Position position) {
return null;
}
@Override
public void setState(Object state, Position position) {
}
@Override
public int rowCount() {
return rowCount;
}
@Override
public int columnCount() {
return columnCount;
}
@Override
public List<Position> updateToNextGeneration() {
return null;
}
@Override
public void reset() {
}
@Override
public int stepNumber() {
return step;
}
}
......@@ -6,5 +6,6 @@ import util.Position;
import java.util.List;
public interface Obstacles extends BoardElement {
boolean accept();
}
package model.Visitor;
import model.ExtenguishFire.FireFighter;
import model.ExtenguishFire.MotorizedFireFighter;
import model.ExtinguishFire.FireFighter;
import model.ExtinguishFire.MotorizedFireFighter;
import model.Flammable.Fire;
import model.Obstacle.Mountain;
import model.Obstacle.Road;
......
package model.Visitor;
import model.ExtenguishFire.FireFighter;
import model.ExtenguishFire.MotorizedFireFighter;
import model.ExtinguishFire.FireFighter;
import model.ExtinguishFire.MotorizedFireFighter;
import model.Flammable.Fire;
import model.Obstacle.Mountain;
import model.Obstacle.Road;
......
package model.Visitor;
import model.ExtenguishFire.FireFighter;
import model.ExtenguishFire.MotorizedFireFighter;
import model.ExtinguishFire.FireFighter;
import model.ExtinguishFire.MotorizedFireFighter;
import model.Flammable.Fire;
import model.Obstacle.Mountain;
import model.Obstacle.Road;
......
package model.Visitor;
import model.ExtenguishFire.FireFighter;
import model.ExtenguishFire.MotorizedFireFighter;
import model.ExtinguishFire.FireFighter;
import model.ExtinguishFire.MotorizedFireFighter;
import model.Flammable.Fire;
import model.Flammable.Fires;
import model.Obstacle.Mountain;
import model.Obstacle.Road;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment