diff --git a/.gitignore b/.gitignore index f0875c5fe5484bdc4e3c51883c63e3c54bedd810..1f5573d91c8497ef9d7251837b0c8776f31670e2 100644 --- a/.gitignore +++ b/.gitignore @@ -34,4 +34,8 @@ fabric.properties .gradle/ *.class -bin/ \ No newline at end of file +bin/ +.gradle +*.bin +*.lock +.gradle/8.10.2/executionHistory/executionHistory.bin diff --git a/src/main/java/model/Board.java b/src/main/java/model/Board.java index bb089a41406d57b0b2fe3d43b3c040cbd640b6b9..30baf946331f02d670790920433df68759e21a07 100644 --- a/src/main/java/model/Board.java +++ b/src/main/java/model/Board.java @@ -1,9 +1,9 @@ package model; -import util.Position; - import java.util.List; +import util.Position; + /** * This interface represents a generic board for modeling various state-based systems. * @@ -61,5 +61,8 @@ public interface Board<S> { * @return The current step number or generation. */ int stepNumber(); + + // Le booléen replaceState permet de forcer le remplacement des cases vides + public void setState(Entity state, Position position, boolean replaceStates); } diff --git a/src/main/java/model/FireFighterScenario.java b/src/main/java/model/FireFighterScenario.java index d516b7b043f260a29cd19076d2063bd1f466a9c6..1ea0fd5eb7bb928c0e55fcb2e9409b1cd64f8b42 100644 --- a/src/main/java/model/FireFighterScenario.java +++ b/src/main/java/model/FireFighterScenario.java @@ -23,7 +23,17 @@ public class FireFighterScenario implements Board<Entity>{ } public void setState(Entity state, Position position){ - + if(!(getState(position) instanceof EmptySquare)){ + return; + } + matrix.set(position.x(), position.y(), state); + } + + // Le booléen replaceState permet de forcer le remplacement des cases vides + public void setState(Entity state, Position position, boolean replaceStates){ + if(!(getState(position) instanceof EmptySquare) && !replaceStates){ + return; + } matrix.set(position.x(), position.y(), state); } diff --git a/src/main/java/model/FirefighterBoard.java b/src/main/java/model/FirefighterBoard.java index c5f54eb50ba6a0240cc809746b8cc25acadb7e65..3ed1ec4f1f8a7a47bcecb56de9e86e8c5d43d1ba 100644 --- a/src/main/java/model/FirefighterBoard.java +++ b/src/main/java/model/FirefighterBoard.java @@ -153,4 +153,10 @@ public class FirefighterBoard implements Board<List<ModelElement>> { } } } + + @Override + public void setState(Entity state, Position position, boolean replaceStates) { + throw new UnsupportedOperationException("Unimplemented method 'setState'"); + } + } \ No newline at end of file