From 9d6561d67fc18a7e02ad7407aa7e8db071816e4f Mon Sep 17 00:00:00 2001
From: b22015696 <maxence.balme@etu.univ-amu.fr>
Date: Fri, 8 Nov 2024 15:31:12 +0100
Subject: [PATCH] =?UTF-8?q?avanc=C3=A9e?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/main/java/matrix/Coordinate.java         | 24 +++++++-------------
 src/main/java/matrix/CoordinateIterator.java | 19 +++++++++++-----
 src/main/java/matrix/ListMatrix.java         |  6 ++---
 3 files changed, 23 insertions(+), 26 deletions(-)

diff --git a/src/main/java/matrix/Coordinate.java b/src/main/java/matrix/Coordinate.java
index f3e5ac0..050a9bc 100644
--- a/src/main/java/matrix/Coordinate.java
+++ b/src/main/java/matrix/Coordinate.java
@@ -15,8 +15,7 @@ public record Coordinate(int x, int y) {
      * @return A new {@link Coordinate} instance.
      */
     public static Coordinate of(int x, int y) {
-        // TODO: compléter ce fabriquant
-        return null;
+        return new Coordinate(x,y);
     }
 
     /**
@@ -25,8 +24,7 @@ public record Coordinate(int x, int y) {
      * @return The left adjacent {@link Coordinate}.
      */
     public Coordinate left() {
-        // TODO: à compléter
-        return null;
+        return new Coordinate(x-1,y);
     }
 
     /**
@@ -35,8 +33,7 @@ public record Coordinate(int x, int y) {
      * @return The right adjacent {@link Coordinate}.
      */
     public Coordinate right() {
-        // TODO: à compléter
-        return null;
+        return new Coordinate(x+1,y);
     }
 
     /**
@@ -45,8 +42,7 @@ public record Coordinate(int x, int y) {
      * @return The above adjacent {@link Coordinate}.
      */
     public Coordinate above() {
-        // TODO: à compléter
-        return null;
+        return new Coordinate(x,y+1);
     }
 
     /**
@@ -55,8 +51,7 @@ public record Coordinate(int x, int y) {
      * @return The below adjacent {@link Coordinate}.
      */
     public Coordinate below() {
-        // TODO: à compléter
-        return null;
+        return new Coordinate(x,y-1);
     }
 
     /**
@@ -73,8 +68,7 @@ public record Coordinate(int x, int y) {
      * @return A list of orthogonal neighboring {@link Coordinate}s.
      */
     public List<Coordinate> orthogonalNeighbours() {
-        // TODO: à compléter
-        return List.of();
+        return List.of(above(),right(),left(),below());
     }
 
     /**
@@ -92,8 +86,7 @@ public record Coordinate(int x, int y) {
      * @return A list of diagonal neighboring {@link Coordinate}s.
      */
     public List<Coordinate> diagonalNeighbours() {
-        // TODO: à compléter
-        return List.of();
+        return List.of(new Coordinate(x-1,y-1),new Coordinate(x-1,y+1),new Coordinate(x+1,y-1),new Coordinate(x+1,y+1));
     }
 
     /**
@@ -111,8 +104,7 @@ public record Coordinate(int x, int y) {
      * @return A list of all neighboring {@link Coordinate}s.
      */
     public List<Coordinate> orthodiagonalNeighbours() {
-        // TODO: à compléter
-        return List.of();
+        return List.of(above(),right(),left(),below(),new Coordinate(x-1,y-1),new Coordinate(x-1,y+1),new Coordinate(x+1,y-1),new Coordinate(x+1,y+1));
     }
 
     @Override
diff --git a/src/main/java/matrix/CoordinateIterator.java b/src/main/java/matrix/CoordinateIterator.java
index 810b712..f2e5ef4 100644
--- a/src/main/java/matrix/CoordinateIterator.java
+++ b/src/main/java/matrix/CoordinateIterator.java
@@ -8,6 +8,9 @@ import java.util.NoSuchElementException;
  * height range.
  */
 class CoordinateIterator implements Iterator<Coordinate> {
+    private final int width;
+    private final int height;
+    private Coordinate current = new Coordinate(0, 0);
 
     /**
      * Creates a new {@link CoordinateIterator} with the specified width and height.
@@ -16,7 +19,8 @@ class CoordinateIterator implements Iterator<Coordinate> {
      * @param height The height of the coordinate range.
      */
     public CoordinateIterator(int width, int height) {
-        // TODO: à compléter
+        this.width = width;
+        this.height = height;
     }
 
     /**
@@ -26,8 +30,7 @@ class CoordinateIterator implements Iterator<Coordinate> {
      */
     @Override
     public boolean hasNext() {
-        // TODO: à compléter
-        return false;
+        return current.y() < height;
     }
 
     /**
@@ -38,7 +41,11 @@ class CoordinateIterator implements Iterator<Coordinate> {
      */
     @Override
     public Coordinate next() {
-        // TODO: à compléter
-        return null;
+        if (!hasNext()) throw new NoSuchElementException();
+        Coordinate next = current;
+        current = current.right();
+        if (current.x() == width) current = new Coordinate(0, current.y() + 1);
+
+        return next;
     }
-}
+}
\ No newline at end of file
diff --git a/src/main/java/matrix/ListMatrix.java b/src/main/java/matrix/ListMatrix.java
index a3a4e7d..418e05d 100644
--- a/src/main/java/matrix/ListMatrix.java
+++ b/src/main/java/matrix/ListMatrix.java
@@ -39,13 +39,11 @@ public class ListMatrix<T> implements Matrix<T> {
   }
 
   public int width() {
-    // TODO
-    return 0;
+    return width;
   }
 
   public int height() {
-    // TODO
-    return 0;
+    return height;
   }
 
   @Override
-- 
GitLab