From 544ea43db36e7544daae0259cf9cacc47ac96430 Mon Sep 17 00:00:00 2001
From: arnaudlabourel <arnaud.labourel@univ-amu.fr>
Date: Tue, 5 Oct 2021 12:01:41 +0200
Subject: [PATCH] PointType moved to view

---
 src/main/java/model/CardinalDirection.java   |  2 ++
 src/main/java/model/Grid.java                | 22 ++++++++++----------
 src/main/java/model/Square.java              |  7 ++-----
 src/main/java/view/GridTileCanvas.java       |  2 --
 src/main/java/{model => view}/PointType.java |  4 +++-
 5 files changed, 18 insertions(+), 19 deletions(-)
 rename src/main/java/{model => view}/PointType.java (95%)

diff --git a/src/main/java/model/CardinalDirection.java b/src/main/java/model/CardinalDirection.java
index 5190e2b..8dc8a6a 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 6430f15..91444e3 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 3e11a1b..6675523 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 b51c6d0..5dede2f 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 6cdd79f..a530943 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;
 
-- 
GitLab