From d4d1a8ec5c3f1567cd53181f7201d8aae88628ce Mon Sep 17 00:00:00 2001 From: Yanis O <oualanyanis01@gmail.com> Date: Wed, 13 Nov 2024 12:12:06 +0100 Subject: [PATCH] =?UTF-8?q?[Modif]=20setState=20s'assure=20de=20ne=20pas?= =?UTF-8?q?=20r=C3=A9ecrire=20de=20cases?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 6 +++++- src/main/java/model/Board.java | 7 +++++-- src/main/java/model/FireFighterScenario.java | 12 +++++++++++- src/main/java/model/FirefighterBoard.java | 6 ++++++ 4 files changed, 27 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index f0875c5..1f5573d 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 bb089a4..30baf94 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 d516b7b..1ea0fd5 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 c5f54eb..3ed1ec4 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 -- GitLab