diff --git a/src/main/java/model/CardinalDirection.java b/src/main/java/model/CardinalDirection.java index 5190e2bd8e5b160f1c4152d884cf86a630f18439..8dc8a6a2489b425d8127056cdddee8a2b8becf63 100644 --- a/src/main/java/model/CardinalDirection.java +++ b/src/main/java/model/CardinalDirection.java @@ -6,6 +6,8 @@ public enum CardinalDirection { SOUTH(1, 0), WEST(0, -1); + public static final int NUMBER_OF_DIRECTIONS = values().length; + public final int deltaRow; public final int deltaColumn; diff --git a/src/main/java/model/Grid.java b/src/main/java/model/Grid.java index 6430f15b44acdecc5073aa3c5600ab23a2769c48..91444e3c74e1139801bcf3c4f1a56edc2e4427ac 100644 --- a/src/main/java/model/Grid.java +++ b/src/main/java/model/Grid.java @@ -1,11 +1,6 @@ package model; - -import javafx.scene.paint.Color; - import java.util.Iterator; -import java.util.List; import java.util.Optional; -import java.util.Random; public class Grid implements Iterable<Square> { private final int numberOfRows; @@ -21,6 +16,10 @@ public class Grid implements Iterable<Square> { * less than or equal to 0 */ public Grid(int numberOfRows, int numberOfColumns) { + if(numberOfRows <= 0) + throw new IllegalArgumentException("The number of rows must be positive and not equal to " + numberOfRows); + if(numberOfColumns <= 0) + throw new IllegalArgumentException("The number of columns must be positive and not equal to " + numberOfColumns); this.numberOfRows = numberOfRows; this.numberOfColumns = numberOfColumns; squares = new Square[getNumberOfRows()][getNumberOfColumns()]; @@ -32,6 +31,12 @@ public class Grid implements Iterable<Square> { initializeNeighborhood(); } + private void initializeSquares() { + for(int row = 0; row < getNumberOfRows(); row++) + for(int column = 0; column < getNumberOfColumns(); column++) + squares[row][column] = new Square(); + } + private void initializeNeighborhood() { for(int row = 0; row < getNumberOfRows(); row++) for(int column = 0; column < getNumberOfColumns(); column++) { @@ -44,12 +49,6 @@ public class Grid implements Iterable<Square> { } } - private void initializeSquares() { - for(int row = 0; row < getNumberOfRows(); row++) - for(int column = 0; column < getNumberOfColumns(); column++) - squares[row][column] = new Square(); - } - private boolean containsCoordinates(int row, int column){ return 0 <= row && row < numberOfRows && 0 <= column && column < numberOfColumns; } @@ -71,6 +70,7 @@ public class Grid implements Iterable<Square> { public Square getSquare(int rowIndex, int columnIndex) { return squares[rowIndex][columnIndex]; } + public int getNumberOfRows() { return numberOfRows; } diff --git a/src/main/java/model/Square.java b/src/main/java/model/Square.java index 3e11a1be85ad4f5bbc8d990ef560b5b9f7f58a9a..667552301e2718cac4cb6115a85f4c7c28b9c33d 100644 --- a/src/main/java/model/Square.java +++ b/src/main/java/model/Square.java @@ -3,6 +3,7 @@ package model; import java.util.Optional; public class Square { + private Tile tile; private Square[] neighboringSquares; @@ -12,10 +13,9 @@ public class Square { } public Square(){ - this(null, new Square[4]); + this(null, new Square[CardinalDirection.NUMBER_OF_DIRECTIONS]); } - public Optional<Tile> getSquareTile(){ if(!hasTile()) return Optional.empty(); @@ -36,9 +36,6 @@ public class Square { return neighboringSquares[side.ordinal()].getSquareTile(); } - public void setNeighboringSquares(Square[] neighboringSquares) { - this.neighboringSquares = neighboringSquares; - } public void setNeighboringSquare(Square neighboringSquare, CardinalDirection direction) { this.neighboringSquares[direction.ordinal()] = neighboringSquare; } diff --git a/src/main/java/view/GridTileCanvas.java b/src/main/java/view/GridTileCanvas.java index b51c6d03af3eb07133ba1fd39ef5cda2c762bd7c..5dede2f1ea226877b640bf39a7eca16ba4d8aae7 100644 --- a/src/main/java/view/GridTileCanvas.java +++ b/src/main/java/view/GridTileCanvas.java @@ -3,12 +3,10 @@ package view; import javafx.beans.NamedArg; import javafx.scene.canvas.Canvas; import javafx.scene.canvas.GraphicsContext; -import javafx.scene.paint.Color; import model.*; import java.util.List; import java.util.Optional; -import java.util.Random; public class GridTileCanvas extends Canvas { diff --git a/src/main/java/model/PointType.java b/src/main/java/view/PointType.java similarity index 95% rename from src/main/java/model/PointType.java rename to src/main/java/view/PointType.java index 6cdd79f7211293259fb3f0f078b28d02a9d8f47b..a5309438b5cb7902d6eb072159eb2607b4079cff 100644 --- a/src/main/java/model/PointType.java +++ b/src/main/java/view/PointType.java @@ -1,4 +1,6 @@ -package model; +package view; + +import model.CardinalDirection; import java.util.List;