diff --git a/.gradle/8.8/executionHistory/executionHistory.bin b/.gradle/8.8/executionHistory/executionHistory.bin index 002104d3253eeb3a4915674ded851812064f1733..c1eb9f213a799e442471f095a468de591861e9d1 100644 Binary files a/.gradle/8.8/executionHistory/executionHistory.bin and b/.gradle/8.8/executionHistory/executionHistory.bin differ diff --git a/.gradle/8.8/executionHistory/executionHistory.lock b/.gradle/8.8/executionHistory/executionHistory.lock index 680bb90eea9d459f0c26444877748f3a6d3dd03a..de0f0cc4818e9c5336c4cc682f606f302d6d676f 100644 Binary files a/.gradle/8.8/executionHistory/executionHistory.lock and b/.gradle/8.8/executionHistory/executionHistory.lock differ diff --git a/.gradle/8.8/fileHashes/fileHashes.bin b/.gradle/8.8/fileHashes/fileHashes.bin index 74ccaa4de4100e0b144bc437ce03e04536454070..c926d15c3ce365067c0026e4fc14e8f992a0d118 100644 Binary files a/.gradle/8.8/fileHashes/fileHashes.bin and b/.gradle/8.8/fileHashes/fileHashes.bin differ diff --git a/.gradle/8.8/fileHashes/fileHashes.lock b/.gradle/8.8/fileHashes/fileHashes.lock index 1dcfed109c5cd476a1e8df1e2f49e961ada4390f..288d52a5ffa5440b2cea8e98bc683c1dc0616d4d 100644 Binary files a/.gradle/8.8/fileHashes/fileHashes.lock and b/.gradle/8.8/fileHashes/fileHashes.lock differ diff --git a/.gradle/8.8/fileHashes/resourceHashesCache.bin b/.gradle/8.8/fileHashes/resourceHashesCache.bin index 17c8071eb2b6f554b230306a74ab8898e86fe330..2f5f484a3d77c9e1b6cad7cb8b2799431f0e8cc4 100644 Binary files a/.gradle/8.8/fileHashes/resourceHashesCache.bin and b/.gradle/8.8/fileHashes/resourceHashesCache.bin differ diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index b1e3b2f18fbc71219f21b34829cbf4e67a12739b..ec6366df6cc10781509372e9eed162705749cac1 100644 Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe index 6fc0f9cf615ff6bfa463a53f7fd8a7b9078f546e..aea4134f1fc0809934ccb6fcde7112db656aafc4 100644 Binary files a/.gradle/file-system.probe and b/.gradle/file-system.probe differ diff --git a/build/classes/java/main/matrix/ListMatrix.class b/build/classes/java/main/matrix/ListMatrix.class index a26cc8107669325fa8ce6a64eefdc4b6cb4bf6da..e60c87beca791a9a811355223e4f336d19ddeca7 100644 Binary files a/build/classes/java/main/matrix/ListMatrix.class and b/build/classes/java/main/matrix/ListMatrix.class differ diff --git a/build/classes/java/main/matrix/Matrix.class b/build/classes/java/main/matrix/Matrix.class index 19d764354d8b419924fd129c6f18920c18920517..164cfdd82dc5d70c66a12ef5505345961ab27add 100644 Binary files a/build/classes/java/main/matrix/Matrix.class and b/build/classes/java/main/matrix/Matrix.class differ diff --git a/build/classes/java/main/matrix/SubMatrixInitializer.class b/build/classes/java/main/matrix/SubMatrixInitializer.class new file mode 100644 index 0000000000000000000000000000000000000000..7e9a44ddfd6c762d72a0003dc931090c1e4d2c93 Binary files /dev/null and b/build/classes/java/main/matrix/SubMatrixInitializer.class differ diff --git a/build/classes/java/main/model/Cell.class b/build/classes/java/main/model/Cell.class index d09c8ecdfcbaa06e6fe470f77822326f2a5e571b..ff54bf87cd3b03b63c7ea9b8a8248506a3c69a92 100644 Binary files a/build/classes/java/main/model/Cell.class and b/build/classes/java/main/model/Cell.class differ diff --git a/build/classes/java/main/model/automata/GameOfLifeAutomaton.class b/build/classes/java/main/model/automata/GameOfLifeAutomaton.class index 6bd36f42deaaa9459be2cbcbd62ab2e47a4d957e..d8039840795b827f8a28d7ee92614cc242d1bbdc 100644 Binary files a/build/classes/java/main/model/automata/GameOfLifeAutomaton.class and b/build/classes/java/main/model/automata/GameOfLifeAutomaton.class differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/CellularAutomatonSimulation.class.uniqueId3 b/build/tmp/compileJava/compileTransaction/stash-dir/CellularAutomatonSimulation.class.uniqueId3 new file mode 100644 index 0000000000000000000000000000000000000000..666eee34be1ba6a3882b4a01d6f8c4b665a305ca Binary files /dev/null and b/build/tmp/compileJava/compileTransaction/stash-dir/CellularAutomatonSimulation.class.uniqueId3 differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/ConstantCellInitializer.class.uniqueId6 b/build/tmp/compileJava/compileTransaction/stash-dir/ConstantCellInitializer.class.uniqueId6 new file mode 100644 index 0000000000000000000000000000000000000000..603836f0726f5e36360c4e9845e56ce22da0e958 Binary files /dev/null and b/build/tmp/compileJava/compileTransaction/stash-dir/ConstantCellInitializer.class.uniqueId6 differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/ConstantMatrixInitializer.class.uniqueId0 b/build/tmp/compileJava/compileTransaction/stash-dir/ConstantMatrixInitializer.class.uniqueId0 deleted file mode 100644 index 2f16ea4c75ab73551466ffcc6ea2bc92abdcd589..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/ConstantMatrixInitializer.class.uniqueId0 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/ConstantMatrixInitializer.class.uniqueId5 b/build/tmp/compileJava/compileTransaction/stash-dir/ConstantMatrixInitializer.class.uniqueId5 new file mode 100644 index 0000000000000000000000000000000000000000..51348c6e9e0dcdba09358bfd0f8cee84d7b4360a Binary files /dev/null and b/build/tmp/compileJava/compileTransaction/stash-dir/ConstantMatrixInitializer.class.uniqueId5 differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/ListMatrix.class.uniqueId1 b/build/tmp/compileJava/compileTransaction/stash-dir/ListMatrix.class.uniqueId1 deleted file mode 100644 index a26cc8107669325fa8ce6a64eefdc4b6cb4bf6da..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/ListMatrix.class.uniqueId1 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/ListMatrix.class.uniqueId7 b/build/tmp/compileJava/compileTransaction/stash-dir/ListMatrix.class.uniqueId7 new file mode 100644 index 0000000000000000000000000000000000000000..e60c87beca791a9a811355223e4f336d19ddeca7 Binary files /dev/null and b/build/tmp/compileJava/compileTransaction/stash-dir/ListMatrix.class.uniqueId7 differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Matrix.class.uniqueId0 b/build/tmp/compileJava/compileTransaction/stash-dir/Matrix.class.uniqueId0 new file mode 100644 index 0000000000000000000000000000000000000000..19d764354d8b419924fd129c6f18920c18920517 Binary files /dev/null and b/build/tmp/compileJava/compileTransaction/stash-dir/Matrix.class.uniqueId0 differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/MatrixInitializer.class.uniqueId2 b/build/tmp/compileJava/compileTransaction/stash-dir/MatrixInitializer.class.uniqueId2 new file mode 100644 index 0000000000000000000000000000000000000000..9bc1c897ff3cddf97bb07832e4fde607b397cfa9 Binary files /dev/null and b/build/tmp/compileJava/compileTransaction/stash-dir/MatrixInitializer.class.uniqueId2 differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/MatrixIterator.class.uniqueId4 b/build/tmp/compileJava/compileTransaction/stash-dir/MatrixIterator.class.uniqueId4 new file mode 100644 index 0000000000000000000000000000000000000000..1c1d116d29e6152d3c9fd224885ac802b81ee476 Binary files /dev/null and b/build/tmp/compileJava/compileTransaction/stash-dir/MatrixIterator.class.uniqueId4 differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/NextGenerationInitializer.class.uniqueId1 b/build/tmp/compileJava/compileTransaction/stash-dir/NextGenerationInitializer.class.uniqueId1 new file mode 100644 index 0000000000000000000000000000000000000000..80c0fcd224a6291ccca3999b938dd923af0c1789 Binary files /dev/null and b/build/tmp/compileJava/compileTransaction/stash-dir/NextGenerationInitializer.class.uniqueId1 differ diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin index 2fb9efa91e5ea4a6b34bd01510136cf77bfe6520..0b70f22a32045d9505e87c2ad93febbc0f0fb193 100644 Binary files a/build/tmp/compileJava/previous-compilation-data.bin and b/build/tmp/compileJava/previous-compilation-data.bin differ diff --git a/build/tmp/compileTestJava/compileTransaction/stash-dir/CellularAutomatonSimulationTest.class.uniqueId2 b/build/tmp/compileTestJava/compileTransaction/stash-dir/CellularAutomatonSimulationTest.class.uniqueId2 deleted file mode 100644 index 3dc3e8333d0ef9449ab895c39eb6aa4b39acc3c9..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileTestJava/compileTransaction/stash-dir/CellularAutomatonSimulationTest.class.uniqueId2 and /dev/null differ diff --git a/build/tmp/compileTestJava/compileTransaction/stash-dir/ConstantMatrixInitializerTest.class.uniqueId0 b/build/tmp/compileTestJava/compileTransaction/stash-dir/ConstantMatrixInitializerTest.class.uniqueId0 new file mode 100644 index 0000000000000000000000000000000000000000..cde4b6594d2a1ff59ef83f819d769bcea647ca47 Binary files /dev/null and b/build/tmp/compileTestJava/compileTransaction/stash-dir/ConstantMatrixInitializerTest.class.uniqueId0 differ diff --git a/build/tmp/compileTestJava/compileTransaction/stash-dir/GameOfLifeStateTest.class.uniqueId1 b/build/tmp/compileTestJava/compileTransaction/stash-dir/GameOfLifeStateTest.class.uniqueId1 deleted file mode 100644 index e06eff8f2660041a36cf720e528bcbabe7ee5edb..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileTestJava/compileTransaction/stash-dir/GameOfLifeStateTest.class.uniqueId1 and /dev/null differ diff --git a/build/tmp/compileTestJava/compileTransaction/stash-dir/ListMatrixTest.class.uniqueId1 b/build/tmp/compileTestJava/compileTransaction/stash-dir/ListMatrixTest.class.uniqueId1 new file mode 100644 index 0000000000000000000000000000000000000000..40a8c0c74fdc4d7c6ae6a9740afabb180109cbc4 Binary files /dev/null and b/build/tmp/compileTestJava/compileTransaction/stash-dir/ListMatrixTest.class.uniqueId1 differ diff --git a/build/tmp/compileTestJava/compileTransaction/stash-dir/NextGenerationInitializerTest.class.uniqueId0 b/build/tmp/compileTestJava/compileTransaction/stash-dir/NextGenerationInitializerTest.class.uniqueId0 deleted file mode 100644 index 2e7d38fee51e70409a33d1548ec57fd3a51570dc..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileTestJava/compileTransaction/stash-dir/NextGenerationInitializerTest.class.uniqueId0 and /dev/null differ diff --git a/build/tmp/compileTestJava/previous-compilation-data.bin b/build/tmp/compileTestJava/previous-compilation-data.bin index f0ffb969ed6cb6f01762c672e07b5f69250f8a1b..ab38118fbbff4ce536680120c3cc273e54593135 100644 Binary files a/build/tmp/compileTestJava/previous-compilation-data.bin and b/build/tmp/compileTestJava/previous-compilation-data.bin differ diff --git a/src/main/java/matrix/ListMatrix.java b/src/main/java/matrix/ListMatrix.java index 98538f5ebb53ded141b9be8931194248bbd80c6a..407b2dbc3557abdb4e2ae98c351a3aafa9cd5892 100644 --- a/src/main/java/matrix/ListMatrix.java +++ b/src/main/java/matrix/ListMatrix.java @@ -40,7 +40,7 @@ public class ListMatrix<T> implements Matrix<T> { for (int y =0; y<height ;y++){ List<T> row =new ArrayList<>(width); for(int x=0; x<width; x++){ - row.add(initializer.initialValueAt((new Coordinate(x, y)))); + row.add(initializer.initialValueAt(new Coordinate(x, y))); } matrix.add(row); } @@ -57,18 +57,15 @@ public class ListMatrix<T> implements Matrix<T> { @Override public T get(int x, int y) { - if(x<0 || x>= width || y<0 ||y>=height ){ - throw new IndexOutOfBoundsException("Invalid coordinate: ("+ x+","+y+")"); - } + return matrix.get(y).get(x); } + @Override public void set(int x, int y, T newValue) { - if (x<0 || x>= width ||y<0 || y>= height){ - throw new IndexOutOfBoundsException("Invalid coordinate: ("+ x + ","+y+")"); - } + matrix.get(y).set(x, newValue); } diff --git a/src/main/java/matrix/Matrix.java b/src/main/java/matrix/Matrix.java index f2c908e63e1e44a2552bbf98a946fba6ba6bee6b..012e3d1fe7a1b3d09cb130d884db29da0fb79783 100644 --- a/src/main/java/matrix/Matrix.java +++ b/src/main/java/matrix/Matrix.java @@ -58,7 +58,7 @@ public interface Matrix<T> extends Iterable<T> { } default Matrix<T> subMatrix(Coordinate corner, int width, int height){ - return null ; + return new ListMatrix<>(width, height, new SubMatrixInitializer<>(this, corner.x(),corner.y())); } diff --git a/src/main/java/matrix/MatrixInitializer.java b/src/main/java/matrix/MatrixInitializer.java index 492d15c3453095569dd901b763f83337d854cae8..f93e5aebd37b0644d548260de0393f1376c934d0 100644 --- a/src/main/java/matrix/MatrixInitializer.java +++ b/src/main/java/matrix/MatrixInitializer.java @@ -15,4 +15,7 @@ public interface MatrixInitializer<T> { * @return The initial value for the specified cell. */ T initialValueAt(Coordinate coordinate); -} + + + } + diff --git a/src/main/java/matrix/SubMatrixInitializer.java b/src/main/java/matrix/SubMatrixInitializer.java new file mode 100644 index 0000000000000000000000000000000000000000..8533c62c5df656ebac71d2e1826971a8ee86edca --- /dev/null +++ b/src/main/java/matrix/SubMatrixInitializer.java @@ -0,0 +1,21 @@ +package matrix; + +public class SubMatrixInitializer<T> implements MatrixInitializer<T> { + private final Matrix<T> originMatrix; + private final int x0; + private final int y0; + + public SubMatrixInitializer(Matrix<T> originMatrix,int x0, int y0){ + this.originMatrix=originMatrix; + this.x0=x0; + this.y0=y0; + } + + @Override + public T initialValueAt(Coordinate coordinate){ + int x= coordinate.x()+x0; + int y = coordinate.y()+y0; + return originMatrix.get(x,y); + } + +} diff --git a/src/main/java/model/Cell.java b/src/main/java/model/Cell.java index f7f62749df1c3193503dce5e366a671762967f21..d62b6057dee5f28ae640357679af0946617750e7 100644 --- a/src/main/java/model/Cell.java +++ b/src/main/java/model/Cell.java @@ -11,7 +11,7 @@ import java.util.List; */ public class Cell<T> implements Lens<T> { - //TODO: ajouter la ou les propriétés nécessaires + private T value; // la liste des objets écoutant les modifications du contenu de la cellule private final List<OnChangeListener<T>> listeners = new ArrayList<>(); @@ -21,8 +21,8 @@ public class Cell<T> implements Lens<T> { * @param initialContent the value initially stored by the cell. */ public Cell(T initialContent) { - //TODO: à compléter - } + this.value= initialContent; + } /** Add a {@link OnChangeListener} to react to any change of value in the cell. * @@ -40,8 +40,10 @@ public class Cell<T> implements Lens<T> { * @param value the new content of this {@link Cell} */ public void set(T value) { - //TODO: modifier le contenu de la cellule, puis appeler les méthodes valueChanged des - // listeners + this.value=value; + for (OnChangeListener<T> listener :listeners){ + listener.valueChanged(value,value); + } } /** @@ -50,7 +52,6 @@ public class Cell<T> implements Lens<T> { * @return the current content of this {@link Cell} */ public T get(){ - //TODO: à compléter - return null; + return value; } }