diff --git a/src/main/java/model/Board.java b/src/main/java/model/Board.java index d88c8974006a6ac4778f9db7251e3dc9afe25e5c..b9ca3fdf2ee4e6bab091aa3c40deb18394d485f6 100644 --- a/src/main/java/model/Board.java +++ b/src/main/java/model/Board.java @@ -25,7 +25,7 @@ public interface Board<S> { * @param state The state to set for the given position. * @param position The position on the board for which to set the state. */ - void setSquare(S square, Position position); + void setSquare(S square); /** * Get the number of rows in the board. @@ -64,7 +64,7 @@ public interface Board<S> { public int getStepNumber(); // Le booléen replaceState permet de forcer le remplacement des cases vides - public void setSquare(S square, Position position, boolean replaceStates); + public void setSquare(S square, boolean replaceStates); public boolean doesPositionExist(Position position); diff --git a/src/main/java/model/Fire.java b/src/main/java/model/Fire.java index 75756cae6027d568af7683f6180d12d45c28131b..1f093b8de20671832653822cfb788f12046a3b3c 100644 --- a/src/main/java/model/Fire.java +++ b/src/main/java/model/Fire.java @@ -30,6 +30,7 @@ public class Fire implements Entity{ if(b.getStates(p).isEmpty()){ if(b.getStates(p).getMaxAge() < b.getStepNumber()){ board.addEntityAtSquare(new Fire(p, board), p); + } } if(!b.doesPositionExist(p)){ diff --git a/src/main/java/model/FireFighterScenario.java b/src/main/java/model/FireFighterScenario.java index b450177064344dff7a7da3df3393641ae98fa470..dbe7d4203d46ec17a9049ce9b2a6c115981d36cc 100644 --- a/src/main/java/model/FireFighterScenario.java +++ b/src/main/java/model/FireFighterScenario.java @@ -32,7 +32,6 @@ public class FireFighterScenario extends EntityScenario implements Board<Square> int fireFighterCount = 0; int chance = 5; // Chance initiale en pourcentage Random random = new Random(); - List<Position> positions = new ArrayList<>(); for (int x = 0; x < matrix.getRows(); x++) { for (int y = 0; y < matrix.getColumns(); y++) { @@ -47,7 +46,7 @@ public class FireFighterScenario extends EntityScenario implements Board<Square> for (Position pos : positions) { if (getStates(pos).isEmpty()) { if (fireCount < initialFireCount && random.nextInt(100) < chance) { - setSquare(new Square(pos, new Fire(pos, this, 1)), pos); + setSquare(new Square(pos, new Fire(pos, this, 1))); fireCount++; if (fireCount == initialFireCount && fireFighterCount == initialFireFightersCount) { return; @@ -56,7 +55,7 @@ public class FireFighterScenario extends EntityScenario implements Board<Square> } if (fireFighterCount < initialFireFightersCount && random.nextInt(100) < chance) { - setSquare(new Square(pos, new FireFighter(pos, this, 1)), pos); + setSquare(new Square(pos, new FireFighter(pos, this, 1))); fireFighterCount++; if (fireCount == initialFireCount && fireFighterCount == initialFireFightersCount) { return; @@ -78,7 +77,8 @@ public class FireFighterScenario extends EntityScenario implements Board<Square> return matrix.get(position.x(), position.y()); } - public void setSquare(Square square, Position position) { + public void setSquare(Square square) { + Position position = square.getPosition(); if (!(getStates(position).isEmpty())) { return; } @@ -87,7 +87,8 @@ public class FireFighterScenario extends EntityScenario implements Board<Square> } } - public void setSquare(Square square, Position position, boolean replaceStates) { + public void setSquare(Square square, boolean replaceStates) { + Position position = square.getPosition(); if (!(getStates(position).isEmpty()) && !replaceStates) { return; } @@ -124,7 +125,7 @@ public class FireFighterScenario extends EntityScenario implements Board<Square> public void clearCase(Position position) { Square s = new Square(position); s.addEntity(new EmptyEntity(position, step+1)); - setSquare(s, position, true); + setSquare(s, true); } public List<Position> updateToNextGeneration() { @@ -148,6 +149,7 @@ public class FireFighterScenario extends EntityScenario implements Board<Square> } } + //matrix.displayMatrix(); return changedPositions; } diff --git a/src/main/java/model/Square.java b/src/main/java/model/Square.java index 67a68b65d0da9537fe34c260c3d169aa269ed5da..cdd616d8778e532772c5821122a4d975dc1ef4d5 100644 --- a/src/main/java/model/Square.java +++ b/src/main/java/model/Square.java @@ -87,7 +87,6 @@ public class Square { sumGreen /= count; sumBlue /= count; Color color = new Color((double)(sumRed),(double)(sumGreen),(double)(sumBlue), 1.0); - System.out.println(color.toString()); return color; } diff --git a/src/main/java/util/Matrix.java b/src/main/java/util/Matrix.java index 6b5000be034cb782b77e941f7114ad37ab49b38d..5bbccfa13e21061d30fd50baf111cacdff888d67 100644 --- a/src/main/java/util/Matrix.java +++ b/src/main/java/util/Matrix.java @@ -4,6 +4,10 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.NoSuchElementException; +import model.Fire; +import model.FireFighter; +import model.Square; + public class Matrix<E> implements Iterable<E> { private ArrayList<ArrayList<E>> matrix; private final int rows; @@ -59,7 +63,7 @@ public class Matrix<E> implements Iterable<E> { return this.rows; } - /* + public void displayMatrix() { System.out.print(" "); for (int j = 0; j < columns; j++) { @@ -71,10 +75,11 @@ public class Matrix<E> implements Iterable<E> { System.out.print("| "); for (int j = 0; j < columns; j++) { if (matrix.get(i).get(j) != null) { - if(matrix.get(i).get(j) instanceof Fire){ + Square s = (Square) matrix.get(i).get(j); + if(s.getEntities().stream().anyMatch(p -> p instanceof Fire)){ System.out.print(" F | "); } - else if(matrix.get(i).get(j) instanceof FireFighter){ + else if(s.getEntities().stream().anyMatch(p -> p instanceof FireFighter)){ System.out.print(" ff | "); }else{ System.out.print(" | "); @@ -92,7 +97,7 @@ public class Matrix<E> implements Iterable<E> { System.out.println(); } } - */ + private void validateIndex(int x, int y) { if (x < 0 || x >= rows || y < 0 || y >= columns) {