diff --git a/src/main/java/matrix/SubMatrixInitializer.java b/src/main/java/matrix/SubMatrixInitializer.java new file mode 100644 index 0000000000000000000000000000000000000000..79bb8905dc318214f6c2382d6ece8af5112556de --- /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 1954558460d6969d09544c64c40152d97c1a736e..65e36954a1a37aa36bc1934504dc3f03612d2605 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 +}