From b85d5d3d394afb17fd088c1a94c520dec9bfc615 Mon Sep 17 00:00:00 2001
From: t22007439 <romain.toullec@etu.univ-amu.fr>
Date: Fri, 8 Nov 2024 16:51:34 +0100
Subject: [PATCH] ajout de state et SubMatrixInitializer

---
 src/main/java/matrix/SubMatrixInitializer.java | 16 ++++++++++++++++
 src/main/java/model/State.java                 | 11 ++++++++---
 2 files changed, 24 insertions(+), 3 deletions(-)
 create mode 100644 src/main/java/matrix/SubMatrixInitializer.java

diff --git a/src/main/java/matrix/SubMatrixInitializer.java b/src/main/java/matrix/SubMatrixInitializer.java
new file mode 100644
index 0000000..79bb890
--- /dev/null
+++ b/src/main/java/matrix/SubMatrixInitializer.java
@@ -0,0 +1,16 @@
+package matrix;
+
+public class SubMatrixInitializer<T> implements MatrixInitializer<T> {
+    private final Matrix<T> originalMatrix;
+    private final Coordinate corner;
+
+    public SubMatrixInitializer(Matrix<T> originalMatrix, Coordinate corner) {
+        this.originalMatrix = originalMatrix;
+        this.corner = corner;
+    }
+
+    @Override
+    public T initialValueAt(Coordinate coordinate) {
+        return originalMatrix.get(coordinate.plus(corner));
+    }
+}
diff --git a/src/main/java/model/State.java b/src/main/java/model/State.java
index 1954558..65e3695 100644
--- a/src/main/java/model/State.java
+++ b/src/main/java/model/State.java
@@ -44,7 +44,12 @@ public interface State<S> {
      * @return The number of times the specified state appears in the list of neighbors.
      */
     static <T> int count(T state, List<T> neighbours) {
-        //TODO: à compléter
-        return 0;
+        int count = 0;
+        for (T neighbour : neighbours) {
+            if (neighbour.equals(state)) {
+                count++;
+            }
+        }
+        return count;
     }
-}
\ No newline at end of file
+}
-- 
GitLab