diff --git a/src/main/java/model/AbstractBoard.java b/src/main/java/model/AbstractBoard.java index ab356377dcdbc7b055381789987078fc45cd3c6c..cabaa1687a26687157e770b1d3214961e4a5c812 100644 --- a/src/main/java/model/AbstractBoard.java +++ b/src/main/java/model/AbstractBoard.java @@ -5,14 +5,14 @@ import util.Position; import java.util.ArrayList; import java.util.List; -public abstract class AbstractBoard<F> implements Board<List<ModelElements>> { - public int columnCount; +public abstract class AbstractBoard implements Board<List<ModelElements>> { + private final int columnCount; - public int rowCount; + private final int rowCount; - public Elements[] elements = new Elements[] {}; + protected Elements[] elements = new Elements[] {}; - public int step = 0; + protected int step = 0; public AbstractBoard(int columnCount, int rowCount) { this.columnCount = columnCount; diff --git a/src/main/java/model/AbstractElements.java b/src/main/java/model/AbstractElements.java index ae169134133fd7dcb59653b3801b8bce23d8b925..92a46a5fc82a5730b0e64615bbe26259b861f844 100644 --- a/src/main/java/model/AbstractElements.java +++ b/src/main/java/model/AbstractElements.java @@ -7,17 +7,17 @@ import java.util.*; import javafx.scene.paint.Color; public abstract class AbstractElements implements Elements { - protected Random randomGenerator = new Random(); - int rowCount; - int columnCount; - ModelElements modelElements; + protected final Random randomGenerator = new Random(); + private final int rowCount; + private final int columnCount; + private final ModelElements modelElements; protected List<Position> elementsPositions; - protected AbstractElements(int columnCount, int rowCount, String elementType, Color elementColor) { + protected AbstractElements(int columnCount, int rowCount, Color elementColor) { this.columnCount = columnCount; this.rowCount = rowCount; - this.modelElements = new ModelElements(elementType, elementColor); + this.modelElements = new ModelElements(elementColor); } public abstract void nextMove(); @@ -28,11 +28,11 @@ public abstract class AbstractElements implements Elements { elementsPositions.add(randomPosition(rowCount, columnCount)); } - protected Position randomPosition(int rowCount, int columnCount) { + public Position randomPosition(int rowCount, int columnCount) { return new Position(randomGenerator.nextInt(rowCount), randomGenerator.nextInt(columnCount)); } - protected List<Position> neighbors(Position position) { + public List<Position> neighbors(Position position) { List<Position> list = new ArrayList<>(); if (position.row() > 0) list.add(new Position(position.row() - 1, position.column())); @@ -45,7 +45,7 @@ public abstract class AbstractElements implements Elements { return list; } - protected List<Position> neighborsWithoutSelectedElements(Position position, Elements... elements) { + public List<Position> neighborsWithoutSelectedElements(Position position, Elements... elements) { List<Position> list = new ArrayList<>(); for (Position neighbor : neighbors(position)) { @@ -68,10 +68,6 @@ public abstract class AbstractElements implements Elements { return elementsPositions; } - public void addElement(Position position) { - elementsPositions.add(position); - } - public void removeElement(Position position) { elementsPositions.remove(position); } diff --git a/src/main/java/model/Elements.java b/src/main/java/model/Elements.java index f852115fb8b33601cb6eea86231a63ef297b2178..e32e7878a8e9805f78641a615b448ea076701cbf 100644 --- a/src/main/java/model/Elements.java +++ b/src/main/java/model/Elements.java @@ -12,7 +12,14 @@ public interface Elements { List<Position> getElementsPositions(); - void addElement(Position position); - ModelElements getModelElements(); + + void removeElement(Position position); + + Position randomPosition(int rowCount, int columnCount); + + List<Position> neighbors(Position position); + + List<Position> neighborsWithoutSelectedElements(Position position, Elements... elements); + } diff --git a/src/main/java/model/FirefighterBoard.java b/src/main/java/model/FirefighterBoard.java index 17f1216d2d34ccbb259132da6ca20f77a46da378..630ab9fcc29ec014913a4da11a5deb2d48f75f87 100644 --- a/src/main/java/model/FirefighterBoard.java +++ b/src/main/java/model/FirefighterBoard.java @@ -5,16 +5,16 @@ import util.Position; import java.util.*; -public class FirefighterBoard extends AbstractBoard<ModelElements> { - private HashMap<String, Integer> elementsCount; - - public Fire fire; - public FireFighterPerson fireFighters; - public FireTruck fireTrucks; - public Cloud cloud; - public Mountain mountain; - public Road road; - public Rockery rockery; +public class FirefighterBoard extends AbstractBoard { + private final HashMap<String, Integer> elementsCount; + + private final Fire fire; + private final FireFighterPerson fireFighters; + private final FireTruck fireTrucks; + private final Cloud cloud; + private final Mountain mountain; + private final Road road; + private final Rockery rockery; public FirefighterBoard(int columnCount, int rowCount, HashMap<String, Integer> elementsCount) { super(columnCount, rowCount); diff --git a/src/main/java/model/ModelElements.java b/src/main/java/model/ModelElements.java index f460fa80a7a041ccfbf227315f87fe3bc3827781..f07f7b470276ac086d527a5131ddc42d12ab9e1b 100644 --- a/src/main/java/model/ModelElements.java +++ b/src/main/java/model/ModelElements.java @@ -3,27 +3,14 @@ package model; import javafx.scene.paint.Color; public class ModelElements { - public String elementType; - public Color elementColor; + private final Color elementColor; - public ModelElements(String elementType, Color elementColor) { - this.elementType = elementType; + public ModelElements(Color elementColor) { this.elementColor = elementColor; } - public String getElementType() { - return elementType; - } - public Color getElementColor() { return elementColor; } - public void setElementType(String elementType) { - this.elementType = elementType; - } - - public void setElementColor(Color elementColor) { - this.elementColor = elementColor; - } } diff --git a/src/main/java/model/RockScissorPaperBoard.java b/src/main/java/model/RockScissorPaperBoard.java index f0e8a23fdbfc260266233f26079a24228cc99ea9..da3a9c656cf9859ea70e0c76a78bffba44696cf9 100644 --- a/src/main/java/model/RockScissorPaperBoard.java +++ b/src/main/java/model/RockScissorPaperBoard.java @@ -8,11 +8,11 @@ import util.Position; import java.util.HashMap; import java.util.*; -public class RockScissorPaperBoard extends AbstractBoard<ModelElements> { - HashMap<String, Integer> elementsCount; - Rock rock; - Scissor scissor; - Paper paper; +public class RockScissorPaperBoard extends AbstractBoard { + private final HashMap<String, Integer> elementsCount; + private final Rock rock; + private final Scissor scissor; + private final Paper paper; public RockScissorPaperBoard(int columnCount, int rowCount, HashMap<String, Integer> elementsCount) { super(columnCount, rowCount); diff --git a/src/main/java/model/RockScissorPaperElements/Paper.java b/src/main/java/model/RockScissorPaperElements/Paper.java index 7ac580814bc2c424059f69b05db19e2ddb3d6c16..5708295033f589ad285d94b7818912911606e95d 100644 --- a/src/main/java/model/RockScissorPaperElements/Paper.java +++ b/src/main/java/model/RockScissorPaperElements/Paper.java @@ -9,11 +9,11 @@ import java.util.List; import javafx.scene.paint.Color; public class Paper extends AbstractElements { - Scissor scissor; - Rock rock; + private Scissor scissor; + private Rock rock; public Paper(int columnCount, int rowCount) { - super(columnCount, rowCount, "PAPER", Color.BLUE); + super(columnCount, rowCount, Color.BLUE); } public void setScissorRock(Scissor scissor, Rock rock) { diff --git a/src/main/java/model/RockScissorPaperElements/Rock.java b/src/main/java/model/RockScissorPaperElements/Rock.java index 558b094dfbdfaa0be5dacf747d8ddedc74e6c517..e7bfb4c97af75fe5af199119b8cf7d51df6d7654 100644 --- a/src/main/java/model/RockScissorPaperElements/Rock.java +++ b/src/main/java/model/RockScissorPaperElements/Rock.java @@ -10,11 +10,11 @@ import javafx.scene.paint.Color; public class Rock extends AbstractElements { - Paper paper; - Scissor scissor; + private Paper paper; + private Scissor scissor; public Rock(int columnCount, int rowCount) { - super(columnCount, rowCount, "ROCK", Color.BLACK); + super(columnCount, rowCount, Color.BLACK); } public void setScissorPaper(Scissor scissor, Paper paper) { diff --git a/src/main/java/model/RockScissorPaperElements/Scissor.java b/src/main/java/model/RockScissorPaperElements/Scissor.java index 3f904e04ba82a91429f9573ac1880a09414f78fa..7c4755be4fe8e46addfa42662dbffb70a507a1fe 100644 --- a/src/main/java/model/RockScissorPaperElements/Scissor.java +++ b/src/main/java/model/RockScissorPaperElements/Scissor.java @@ -10,11 +10,11 @@ import javafx.scene.paint.Color; public class Scissor extends AbstractElements { - Paper paper; - Rock rock; + private Paper paper; + private Rock rock; public Scissor(int columnCount, int rowCount) { - super(columnCount, rowCount, "SCISSOR", Color.GRAY); + super(columnCount, rowCount, Color.GRAY); } public void setPaperRock(Paper paper, Rock rock) { diff --git a/src/main/java/model/fireFighterElements/AbstractFireFighters.java b/src/main/java/model/fireFighterElements/AbstractFireFighters.java index 583776ebe68986f243b8d297c3d92b0cb638fba8..7658ce6d6625addcc4b1367d94ae4863dd95f873 100644 --- a/src/main/java/model/fireFighterElements/AbstractFireFighters.java +++ b/src/main/java/model/fireFighterElements/AbstractFireFighters.java @@ -8,12 +8,12 @@ import javafx.scene.paint.Color; public abstract class AbstractFireFighters extends AbstractElements { - public Fire fire; - public Mountain mountain; + protected final Fire fire; + private final Mountain mountain; - public AbstractFireFighters(int columnCount, int rowCount, Fire fire, Mountain mountain, String elementType, + protected AbstractFireFighters(int columnCount, int rowCount, Fire fire, Mountain mountain, Color elementColor) { - super(columnCount, rowCount, elementType, elementColor); + super(columnCount, rowCount, elementColor); this.fire = fire; this.mountain = mountain; } diff --git a/src/main/java/model/fireFighterElements/Cloud.java b/src/main/java/model/fireFighterElements/Cloud.java index 5d2f79fb4ce804e6528afe81d9813719743d599a..0bdfe41198c380a6ae1c8b946ab0e4b07a7dc7e1 100644 --- a/src/main/java/model/fireFighterElements/Cloud.java +++ b/src/main/java/model/fireFighterElements/Cloud.java @@ -9,10 +9,10 @@ import java.util.List; import javafx.scene.paint.Color; public class Cloud extends AbstractElements { - Fire fire; + private final Fire fire; public Cloud(int columnCount, int rowCount, Fire fire) { - super(columnCount, rowCount, "CLOUD", Color.GRAY); + super(columnCount, rowCount, Color.GRAY); this.fire = fire; } diff --git a/src/main/java/model/fireFighterElements/Fire.java b/src/main/java/model/fireFighterElements/Fire.java index 85cbe1a00df7897ad1d99d80935d3bc8ef7e1c3e..da4f1988d2bbea332f501cd9ed4f3428ddbdfa9c 100644 --- a/src/main/java/model/fireFighterElements/Fire.java +++ b/src/main/java/model/fireFighterElements/Fire.java @@ -8,15 +8,15 @@ import javafx.scene.paint.Color; public class Fire extends AbstractElements { - Mountain mountain; - Road road; + private final Mountain mountain; + private final Road road; - Rockery rockery; + private final Rockery rockery; - HashMap<Position, Integer> rockeryCountStep = new HashMap<>(); + private final HashMap<Position, Integer> rockeryCountStep = new HashMap<>(); public Fire(int columnCount, int rowCount, Mountain mountain, Road road, Rockery rockery) { - super(columnCount, rowCount, "FIRE", Color.RED); + super(columnCount, rowCount, Color.RED); this.mountain = mountain; this.road = road; this.rockery = rockery; @@ -44,7 +44,7 @@ public class Fire extends AbstractElements { } - public boolean canMoveOnRockery(Position position) { + private boolean canMoveOnRockery(Position position) { if (rockeryCountStep.containsKey(position)) { if (rockeryCountStep.get(position) == 0) { rockeryCountStep.remove(position); @@ -70,7 +70,7 @@ public class Fire extends AbstractElements { } - public void extinguish(Position position) { + protected void extinguish(Position position) { elementsPositions.remove(position); } } diff --git a/src/main/java/model/fireFighterElements/FireFighterPerson.java b/src/main/java/model/fireFighterElements/FireFighterPerson.java index 097c36a891b7cf4949af7eab6c24716a1efc1cff..90d75ae0278769215fc152b05ef388679391c6a1 100644 --- a/src/main/java/model/fireFighterElements/FireFighterPerson.java +++ b/src/main/java/model/fireFighterElements/FireFighterPerson.java @@ -9,7 +9,7 @@ import javafx.scene.paint.Color; public class FireFighterPerson extends AbstractFireFighters { public FireFighterPerson(int columnCount, int rowCount, Fire fire, Mountain mountain) { - super(columnCount, rowCount, fire, mountain, "FIREFIGHTER", Color.BLUE); + super(columnCount, rowCount, fire, mountain, Color.BLUE); } @Override diff --git a/src/main/java/model/fireFighterElements/FireTruck.java b/src/main/java/model/fireFighterElements/FireTruck.java index cdea056a3676c3fc54f8bd8e8c4ec0409b1a0934..7dc7d1f407f6cfc92a0337ebf7a8e8ce7101f90f 100644 --- a/src/main/java/model/fireFighterElements/FireTruck.java +++ b/src/main/java/model/fireFighterElements/FireTruck.java @@ -9,7 +9,7 @@ import javafx.scene.paint.Color; public class FireTruck extends AbstractFireFighters { public FireTruck(int columnCount, int rowCount, Fire fire, Mountain mountain) { - super(columnCount, rowCount, fire, mountain, "FIRETRUCK", Color.CYAN); + super(columnCount, rowCount, fire, mountain, Color.CYAN); } diff --git a/src/main/java/model/fireFighterElements/Mountain.java b/src/main/java/model/fireFighterElements/Mountain.java index 212ab555d3faf62d0580569ca57215c276d49b27..29db05a8b5d05ead44113f24c675bfa809e07265 100644 --- a/src/main/java/model/fireFighterElements/Mountain.java +++ b/src/main/java/model/fireFighterElements/Mountain.java @@ -6,7 +6,7 @@ import model.AbstractElements; public class Mountain extends AbstractElements { public Mountain(int columnCount, int rowCount) { - super(columnCount, rowCount, "MOUNTAIN", Color.BROWN); + super(columnCount, rowCount, Color.BROWN); } @Override diff --git a/src/main/java/model/fireFighterElements/Road.java b/src/main/java/model/fireFighterElements/Road.java index 5c00cea75bcaf44cc2e8c51ab7165729f643a7e3..03e4c6f1677ab084c96fa98eeccf2fc3c3cafc11 100644 --- a/src/main/java/model/fireFighterElements/Road.java +++ b/src/main/java/model/fireFighterElements/Road.java @@ -6,7 +6,7 @@ import model.AbstractElements; public class Road extends AbstractElements { public Road(int columnCount, int rowCount) { - super(columnCount, rowCount, "ROAD", Color.BLACK); + super(columnCount, rowCount, Color.BLACK); } @Override diff --git a/src/main/java/model/fireFighterElements/Rockery.java b/src/main/java/model/fireFighterElements/Rockery.java index 30893fc78ac37eace4159f237618449871ecd408..9ea221ed365667f0018d453e233b8f0d9483379a 100644 --- a/src/main/java/model/fireFighterElements/Rockery.java +++ b/src/main/java/model/fireFighterElements/Rockery.java @@ -5,7 +5,7 @@ import model.AbstractElements; public class Rockery extends AbstractElements { public Rockery(int columnCount, int rowCount) { - super(columnCount, rowCount, "ROCKERY", Color.GREEN); + super(columnCount, rowCount, Color.GREEN); } @Override diff --git a/src/main/java/view/FirefighterGrid.java b/src/main/java/view/GameGrid.java similarity index 97% rename from src/main/java/view/FirefighterGrid.java rename to src/main/java/view/GameGrid.java index 48ee1983789028fb4f110776dc5c0e1ccdbfff4d..c10e9de885f051f7f39c378e14a24aa96a2aec78 100644 --- a/src/main/java/view/FirefighterGrid.java +++ b/src/main/java/view/GameGrid.java @@ -7,7 +7,7 @@ import util.Position; import java.util.List; -public class FirefighterGrid extends Canvas implements Grid<Color> { +public class GameGrid extends Canvas implements Grid<Color> { private void paintElementAtPosition(Color element, Position position) { paintSquare(position.row(), position.column(), element); diff --git a/src/main/resources/view/view.fxml b/src/main/resources/view/view.fxml index 7d08d8b3ec24735becfc339264e9b100d2eff9a0..71c99cb8bc181ff954b1c114781fbcbb7943bdb8 100644 --- a/src/main/resources/view/view.fxml +++ b/src/main/resources/view/view.fxml @@ -3,12 +3,11 @@ <?import javafx.scene.control.Button?> <?import javafx.scene.layout.HBox?> <?import javafx.scene.layout.VBox?> -<?import view.FirefighterGrid?> +<?import view.GameGrid?> <?import javafx.scene.control.ToggleButton?> <?import javafx.scene.control.Separator?> <?import javafx.scene.control.Label?> -<?import javafx.scene.control.TextField?> <HBox styleClass="background" stylesheets="@DarkTheme.css" xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml" @@ -51,8 +50,8 @@ prefHeight="24.0" prefWidth="200.0" /> </VBox> - <FirefighterGrid fx:id="grid" width="1000.0" height="1000.0" - xmlns="http://javafx.com/javafx" - xmlns:fx="http://javafx.com/fxml"> - </FirefighterGrid> + <GameGrid fx:id="grid" width="1000.0" height="1000.0" + xmlns="http://javafx.com/javafx" + xmlns:fx="http://javafx.com/fxml"> + </GameGrid> </HBox> \ No newline at end of file