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