diff --git a/src/main/java/firefighter/controller/Controller.java b/src/main/java/firefighter/controller/Controller.java index 277888d744af46e2c53472978f1df9c4d808f6e8..69d14709ff7ed3ecc0a94e2f0940d38cd57834dc 100644 --- a/src/main/java/firefighter/controller/Controller.java +++ b/src/main/java/firefighter/controller/Controller.java @@ -67,10 +67,10 @@ public class Controller { updatedSquares.add(new Pair<>(updatedPosition, viewElement)); } grid.repaint(updatedSquares); - updateLabel(board.stepNumber()); + updateGenerationLabel(board.stepNumber()); } - private void repaintBoard(){ + private void repaintGrid(){ int columnCount = board.columnCount(); int rowCount = board.rowCount(); ViewElement[][] viewElements = new ViewElement[rowCount][columnCount]; @@ -78,7 +78,7 @@ public class Controller { for(int row = 0; row < rowCount; row++) viewElements[row][column] = getViewElement(board.getState(new Position(row, column))); grid.repaint(viewElements); - updateLabel(board.stepNumber()); + updateGenerationLabel(board.stepNumber()); } private ViewElement getViewElement(List<ModelElement> squareState) { @@ -120,14 +120,14 @@ public class Controller { this.pause(); board.reset(); pauseToggleButton.setSelected(true); - repaintBoard(); + repaintGrid(); } public void initialize(int squareWidth, int squareHeight, int columnCount, int rowCount, int initialFireCount, int initialFirefighterCount) { grid.initialize(squareWidth, squareHeight, columnCount, rowCount); this.setModel(new FirefighterBoard(columnCount, rowCount, initialFireCount, initialFirefighterCount)); - repaintBoard(); + repaintGrid(); } public void oneStepButtonAction() { @@ -135,7 +135,7 @@ public class Controller { updateBoard(); } - private void updateLabel(int value){ + private void updateGenerationLabel(int value){ generationNumberLabel.setText(Integer.toString(value)); } } \ No newline at end of file diff --git a/src/main/java/firefighter/model/FirefighterBoard.java b/src/main/java/firefighter/model/FirefighterBoard.java index 8bdf8b212cbf29f9a973ac7e7ecc49ef6f77c82c..ac7d33b6aee2d2a60657274f3116842d301889c2 100644 --- a/src/main/java/firefighter/model/FirefighterBoard.java +++ b/src/main/java/firefighter/model/FirefighterBoard.java @@ -10,10 +10,10 @@ public class FirefighterBoard implements Board<List<ModelElement>> { private final int rowCount; private final int initialFireCount; private final int initialFirefighterCount; - List<Position> firefighterPositions; - Set<Position> firePositions; - List<Position> firefighterNewPositions; - int step = 0; + private List<Position> firefighterPositions; + private Set<Position> firePositions; + private int step = 0; + private final Random randomGenerator = new Random(); public FirefighterBoard(int columnCount, int rowCount, int initialFireCount, int initialFirefighterCount) { this.columnCount = columnCount; @@ -33,7 +33,7 @@ public class FirefighterBoard implements Board<List<ModelElement>> { } private Position randomPosition() { - return new Position((int) (Math.random() * rowCount), (int) (Math.random() * columnCount)); + return new Position(randomGenerator.nextInt(rowCount), randomGenerator.nextInt(columnCount)); } @Override @@ -85,14 +85,15 @@ public class FirefighterBoard implements Board<List<ModelElement>> { private List<Position> activateFirefighters() { List<Position> result = new ArrayList<>(); - firefighterNewPositions = new ArrayList<>(); + List<Position> firefighterNewPositions = new ArrayList<>(); for (Position firefighterPosition : firefighterPositions) { Position newFirefighterPosition = neighborClosestToFire(firefighterPosition); - result.add(firefighterPosition); firefighterNewPositions.add(newFirefighterPosition); extinguish(newFirefighterPosition); + result.add(firefighterPosition); result.add(newFirefighterPosition); - List<Position> neighborFirePositions = neighbors(newFirefighterPosition).stream().filter(firePositions::contains).toList(); + List<Position> neighborFirePositions = neighbors(newFirefighterPosition).stream() + .filter(firePositions::contains).toList(); for(Position firePosition : neighborFirePositions) extinguish(firePosition); result.addAll(neighborFirePositions);