diff --git a/src/main/java/model/EmptySquare.java b/src/main/java/model/EmptySquare.java index 975706e2c5dfbf1f42004fbef489e4c429367223..b32c51655761c436b39052249badbe938bd53730 100644 --- a/src/main/java/model/EmptySquare.java +++ b/src/main/java/model/EmptySquare.java @@ -17,7 +17,7 @@ public class EmptySquare implements Entity { static { try { - cloudImage = new javafx.scene.image.Image(Cloud.class.getResource("/view/icons/img.png").toExternalForm()); + cloudImage = new javafx.scene.image.Image(Cloud.class.getResource("/view/icons/fire/img.png").toExternalForm()); } catch (Exception e) { e.printStackTrace(); } diff --git a/src/main/java/model/Road.java b/src/main/java/model/Road.java index 1831ead45dfffbc338749e77441aa38680a31e36..74e6c46477434883795d7a47a853f5f2e761a63a 100644 --- a/src/main/java/model/Road.java +++ b/src/main/java/model/Road.java @@ -15,7 +15,7 @@ public class Road implements Entity{ static { try { - cloudImage = new javafx.scene.image.Image(Cloud.class.getResource("/view/icons/route.png").toExternalForm()); + cloudImage = new javafx.scene.image.Image(Cloud.class.getResource("/view/icons/fire/route.png").toExternalForm()); } catch (Exception e) { e.printStackTrace(); } diff --git a/src/main/java/model/doctorviruspatient/Doctor.java b/src/main/java/model/doctorviruspatient/Doctor.java index e84b6ab140944ebaa39ef62c5c137524286616b3..2724db6575c46afdef0c980f1336da7f86b01d9c 100644 --- a/src/main/java/model/doctorviruspatient/Doctor.java +++ b/src/main/java/model/doctorviruspatient/Doctor.java @@ -10,6 +10,7 @@ import javafx.scene.paint.Color; import model.Board; import model.Entity; import model.Square; +import model.firefighterscenario.Cloud; import util.Position; import util.PositionUtil; @@ -18,6 +19,15 @@ public class Doctor implements Entity { private Position position; private int age; private final Color viewColor = Color.RED; + private static javafx.scene.image.Image cloudImage; + + static { + try { + cloudImage = new javafx.scene.image.Image(Cloud.class.getResource("/view/icons/virus/docteur.png").toExternalForm()); + } catch (Exception e) { + e.printStackTrace(); + } + } // Statique car les médecins partagent les connaissances et les recherches private static List<Integer> knownVirusVariant = new ArrayList<Integer>(); @@ -152,4 +162,10 @@ public class Doctor implements Entity { return Objects.hash(position); } + @Override + public javafx.scene.image.Image getImage() { + return cloudImage; + } + + } diff --git a/src/main/java/model/doctorviruspatient/DoctorVirusPatientScenario.java b/src/main/java/model/doctorviruspatient/DoctorVirusPatientScenario.java index b22bf7352198b90989490ec5881bb85b3efe5d52..4f3cd35e0f4c17a7d65d870889dbfb7e651e5a4b 100644 --- a/src/main/java/model/doctorviruspatient/DoctorVirusPatientScenario.java +++ b/src/main/java/model/doctorviruspatient/DoctorVirusPatientScenario.java @@ -13,6 +13,8 @@ import model.Scenario; import model.Square; import util.Position; + + public class DoctorVirusPatientScenario extends Scenario implements Model{ public DoctorVirusPatientScenario(int columns, int rows, Map<EntityFactory, Integer> initialMap) { super(columns, rows, initialMap); @@ -52,4 +54,7 @@ public class DoctorVirusPatientScenario extends Scenario implements Model{ } + + + } diff --git a/src/main/java/model/doctorviruspatient/Patient.java b/src/main/java/model/doctorviruspatient/Patient.java index 4db575421dced2d7678e497273242ae14793b812..41c31b7354a70ce30a60c2d30c175b92eca96c89 100644 --- a/src/main/java/model/doctorviruspatient/Patient.java +++ b/src/main/java/model/doctorviruspatient/Patient.java @@ -9,6 +9,7 @@ import javafx.scene.paint.Color; import model.Board; import model.Entity; import model.Square; +import model.firefighterscenario.Cloud; import util.PathGenerator; import util.Position; import util.PositionUtil; @@ -26,11 +27,36 @@ public class Patient implements Entity { private boolean isAsymptomatic; private boolean wandering; + + + private static javafx.scene.image.Image healthyImage; + private static javafx.scene.image.Image infectedImage; + + static { + try { + healthyImage = new javafx.scene.image.Image(Patient.class.getResource("/view/icons/virus/humain.png").toExternalForm()); + infectedImage = new javafx.scene.image.Image(Patient.class.getResource("/view/icons/virus/patient.png").toExternalForm()); + } catch (Exception e) { + e.printStackTrace(); + } + } + + + // Attributs pour le chemin private List<Position> path; private int pathIndex; private static final int MAX_STEPS_IN_DIRECTION = 5; private static final int MINIMUM_ROAD_LENGTH = 10; + private static javafx.scene.image.Image cloudImage; + + static { + try { + cloudImage = new javafx.scene.image.Image(Cloud.class.getResource("/view/icons/virus/humain.png").toExternalForm()); + } catch (Exception e) { + e.printStackTrace(); + } + } public Patient(Position p) { this.wandering = true; @@ -321,4 +347,11 @@ public class Patient implements Entity { public int hashCode() { return Objects.hash(patientID); } + + @Override + public javafx.scene.image.Image getImage() { + return isInfected() ? infectedImage : healthyImage; + } + + } diff --git a/src/main/java/model/doctorviruspatient/Virus.java b/src/main/java/model/doctorviruspatient/Virus.java index 73bb433f50fdaf2d250da63418fd62104ecebbdb..4d06b86134b06e603c405e7c26f971825f4ea5b8 100644 --- a/src/main/java/model/doctorviruspatient/Virus.java +++ b/src/main/java/model/doctorviruspatient/Virus.java @@ -8,6 +8,7 @@ import javafx.scene.paint.Color; import model.Board; import model.Entity; import model.Square; +import model.firefighterscenario.Cloud; import util.PathGenerator; import util.Position; import util.PositionUtil; @@ -23,6 +24,15 @@ public class Virus implements Entity { private static final int MINIMUM_ROAD_LENGTH = 10; private int health; private int variantId; + private static javafx.scene.image.Image cloudImage; + + static { + try { + cloudImage = new javafx.scene.image.Image(Cloud.class.getResource("/view/icons/virus/virus.png").toExternalForm()); + } catch (Exception e) { + e.printStackTrace(); + } + } public Virus(Position p) { this.variantId = 0; @@ -146,4 +156,11 @@ public class Virus implements Entity { health--; return false; } + + + @Override + public javafx.scene.image.Image getImage() { + return cloudImage; + } + } diff --git a/src/main/java/model/firefighterscenario/AirTanker.java b/src/main/java/model/firefighterscenario/AirTanker.java index cd50470f5f9274378d412aad3a987a08992cc929..015b3e5535e0eb6261db798422a79b469d30454f 100644 --- a/src/main/java/model/firefighterscenario/AirTanker.java +++ b/src/main/java/model/firefighterscenario/AirTanker.java @@ -22,7 +22,7 @@ public class AirTanker implements Entity{ static { try { - cloudImage = new javafx.scene.image.Image(Cloud.class.getResource("/view/icons/avion.png").toExternalForm()); + cloudImage = new javafx.scene.image.Image(Cloud.class.getResource("/view/icons/fire/avion.png").toExternalForm()); } catch (Exception e) { e.printStackTrace(); } diff --git a/src/main/java/model/firefighterscenario/Cloud.java b/src/main/java/model/firefighterscenario/Cloud.java index 61d6c87ccb81b7f708f8acdf28b2dd7959ece951..1ef87b4f890e6e19a0fd11930c0eb3f77b0884bb 100644 --- a/src/main/java/model/firefighterscenario/Cloud.java +++ b/src/main/java/model/firefighterscenario/Cloud.java @@ -21,7 +21,7 @@ public class Cloud implements Entity{ static { try { - cloudImage = new javafx.scene.image.Image(Cloud.class.getResource("/view/icons/nuage.png").toExternalForm()); + cloudImage = new javafx.scene.image.Image(Cloud.class.getResource("/view/icons/fire/nuage.png").toExternalForm()); } catch (Exception e) { e.printStackTrace(); } diff --git a/src/main/java/model/firefighterscenario/Fire.java b/src/main/java/model/firefighterscenario/Fire.java index 51f8f1dfe7e3d6aafb9b9d903097ebdebcdb694f..2d63a9093eb9e0f73edae4f5ec56270131bf5470 100644 --- a/src/main/java/model/firefighterscenario/Fire.java +++ b/src/main/java/model/firefighterscenario/Fire.java @@ -23,7 +23,7 @@ public class Fire implements Entity { static { try { - cloudImage = new javafx.scene.image.Image(Cloud.class.getResource("/view/icons/flamme.png").toExternalForm()); + cloudImage = new javafx.scene.image.Image(Cloud.class.getResource("/view/icons/fire/flamme.png").toExternalForm()); } catch (Exception e) { e.printStackTrace(); } diff --git a/src/main/java/model/firefighterscenario/FireFighter.java b/src/main/java/model/firefighterscenario/FireFighter.java index 8b8973f7f62f7da244e15b170609b84d73d8397c..a21c13294297c55532ed7c1f48552f88ef6e1fc1 100644 --- a/src/main/java/model/firefighterscenario/FireFighter.java +++ b/src/main/java/model/firefighterscenario/FireFighter.java @@ -23,7 +23,7 @@ public class FireFighter implements Entity { static { try { - cloudImage = new javafx.scene.image.Image(Cloud.class.getResource("/view/icons/sapeur-pompier.png").toExternalForm()); + cloudImage = new javafx.scene.image.Image(Cloud.class.getResource("/view/icons/fire/sapeur-pompier.png").toExternalForm()); } catch (Exception e) { e.printStackTrace(); } diff --git a/src/main/java/model/firefighterscenario/MotorizedFireFighter.java b/src/main/java/model/firefighterscenario/MotorizedFireFighter.java index ac2c24c5e690da642c92de5ba8beb0901ed82236..cb315fd7ed31dc6e11956e7452144297e6531f6f 100644 --- a/src/main/java/model/firefighterscenario/MotorizedFireFighter.java +++ b/src/main/java/model/firefighterscenario/MotorizedFireFighter.java @@ -16,7 +16,7 @@ public class MotorizedFireFighter extends FireFighter { static { try { - cloudImage = new javafx.scene.image.Image(Cloud.class.getResource("/view/icons/camion.png").toExternalForm()); + cloudImage = new javafx.scene.image.Image(Cloud.class.getResource("/view/icons/fire/camion.png").toExternalForm()); } catch (Exception e) { e.printStackTrace(); } diff --git a/src/main/java/model/firefighterscenario/Mountain.java b/src/main/java/model/firefighterscenario/Mountain.java index 16971eb06268ee19ac77f06227e97e5c4f311c3b..d55af5f18bb5e8b455f9c0291b9d9360a61dae00 100644 --- a/src/main/java/model/firefighterscenario/Mountain.java +++ b/src/main/java/model/firefighterscenario/Mountain.java @@ -17,7 +17,7 @@ public class Mountain implements Entity{ static { try { - cloudImage = new javafx.scene.image.Image(Cloud.class.getResource("/view/icons/montagne.png").toExternalForm()); + cloudImage = new javafx.scene.image.Image(Cloud.class.getResource("/view/icons/fire/montagne.png").toExternalForm()); } catch (Exception e) { e.printStackTrace(); } diff --git a/src/main/java/model/firefighterscenario/Rockery.java b/src/main/java/model/firefighterscenario/Rockery.java index 405625564bbe8b5892c522ff2ce8ce15b4185905..2953bbb1797b712a16148db9c02bb0f27375ee6a 100644 --- a/src/main/java/model/firefighterscenario/Rockery.java +++ b/src/main/java/model/firefighterscenario/Rockery.java @@ -19,7 +19,7 @@ public class Rockery implements Entity{ static { try { - cloudImage = new javafx.scene.image.Image(Cloud.class.getResource("/view/icons/rochers.png").toExternalForm()); + cloudImage = new javafx.scene.image.Image(Cloud.class.getResource("/view/icons/fire/rochers.png").toExternalForm()); } catch (Exception e) { e.printStackTrace(); } diff --git a/src/main/java/model/rockpapercisor/Cisor.java b/src/main/java/model/rockpapercisor/Cisor.java index 10566b83a405ab02f81b79343e278ef4539b3c5b..1a9fdfa0403a4e4b51b538e5f8aa07f4f4f01b9d 100644 --- a/src/main/java/model/rockpapercisor/Cisor.java +++ b/src/main/java/model/rockpapercisor/Cisor.java @@ -8,6 +8,7 @@ import javafx.scene.paint.Color; import model.Board; import model.Entity; import model.Square; +import model.firefighterscenario.Cloud; import util.Position; import util.PositionUtil; @@ -16,6 +17,15 @@ public class Cisor implements Entity { Position position; private int age; private final Color viewColor = Color.RED; + private static javafx.scene.image.Image cloudImage; + + static { + try { + cloudImage = new javafx.scene.image.Image(Cloud.class.getResource("/view/icons/pfc/cis.png").toExternalForm()); + } catch (Exception e) { + e.printStackTrace(); + } + } public Cisor(Position p) { this.position = p; @@ -121,4 +131,10 @@ public class Cisor implements Entity { public int hashCode() { return Objects.hash(position, age); } + + @Override + public javafx.scene.image.Image getImage() { + return cloudImage; + } + } diff --git a/src/main/java/model/rockpapercisor/Paper.java b/src/main/java/model/rockpapercisor/Paper.java index 1c9117caa03204ea4659d9d367e4c5f0cc8b1da5..c4454cf6bdf78a2789335da6cc35a7958e8efae5 100644 --- a/src/main/java/model/rockpapercisor/Paper.java +++ b/src/main/java/model/rockpapercisor/Paper.java @@ -7,6 +7,7 @@ import javafx.scene.paint.Color; import model.Board; import model.Entity; import model.Square; +import model.firefighterscenario.Cloud; import util.Position; import util.PositionUtil; @@ -15,6 +16,15 @@ public class Paper implements Entity { Position position; private int age; private final Color viewColor = Color.GRAY; + private static javafx.scene.image.Image cloudImage; + + static { + try { + cloudImage = new javafx.scene.image.Image(Cloud.class.getResource("/view/icons/pfc/paper.png").toExternalForm()); + } catch (Exception e) { + e.printStackTrace(); + } + } public Paper(Position p) { this.position = p; @@ -103,4 +113,10 @@ public class Paper implements Entity { public int getPriority() { return this.priority; } + + @Override + public javafx.scene.image.Image getImage() { + return cloudImage; + } + } diff --git a/src/main/java/model/rockpapercisor/Rock.java b/src/main/java/model/rockpapercisor/Rock.java index 1671a13eb4968187201b905a6e2648614e9b0b24..6cc8112630cf8077ddb33ddcfe442fdad2ad6103 100644 --- a/src/main/java/model/rockpapercisor/Rock.java +++ b/src/main/java/model/rockpapercisor/Rock.java @@ -7,6 +7,7 @@ import javafx.scene.paint.Color; import model.Board; import model.Entity; import model.Square; +import model.firefighterscenario.Cloud; import util.Position; import util.PositionUtil; @@ -15,6 +16,15 @@ public class Rock implements Entity { Position position; private int age; private final Color viewColor = Color.CHOCOLATE; + private static javafx.scene.image.Image cloudImage; + + static { + try { + cloudImage = new javafx.scene.image.Image(Cloud.class.getResource("/view/icons/pfc/rock.png").toExternalForm()); + } catch (Exception e) { + e.printStackTrace(); + } + } public Rock(Position p) { this.position = p; @@ -104,4 +114,10 @@ public class Rock implements Entity { public int getPriority() { return this.priority; } + + @Override + public javafx.scene.image.Image getImage() { + return cloudImage; + } + } diff --git a/src/main/java/model/rockpapercisor/RockPaperCisorScenario.java b/src/main/java/model/rockpapercisor/RockPaperCisorScenario.java index c6808fbe5ce58fc660df3e4b324aa2df7af80b57..40207fddbd23605e56252ac9113341c9b7df4217 100644 --- a/src/main/java/model/rockpapercisor/RockPaperCisorScenario.java +++ b/src/main/java/model/rockpapercisor/RockPaperCisorScenario.java @@ -48,4 +48,8 @@ public class RockPaperCisorScenario extends Scenario implements Model{ public Board<Square> getBoard() { return this; } + + + + } diff --git a/src/main/java/view/Grid.java b/src/main/java/view/Grid.java index b95d59f622a86b41f2a41261b8b27aaf2e911dfb..c0754aedc8933a5f2a4b2983d680aa56150a87ef 100644 --- a/src/main/java/view/Grid.java +++ b/src/main/java/view/Grid.java @@ -12,44 +12,44 @@ import java.util.List; */ public interface Grid<E> { - /** - * Repaint the grid with a list of elements, each associated with their respective positions. - * - * @param elements A list of pairs, each containing a position and the element to be displayed at that position. - */ - void repaint(List<Pair<Position, E>> elements); - - /** - * Repaint the grid with a two-dimensional array of elements. The array's dimensions should match - * the row and column count of the grid. - * - * @param elements A two-dimensional array of elements to be displayed on the grid. - */ - void repaint(E[][] elements); - - /** - * Set the dimensions of the grid to the specified number of columns, number of rows, square width, - * and square height. - * - * @param columnCount The new number of columns in the grid. - * @param rowCount The new number of rows in the grid. - * @param squareWidth The width of each square within the grid. - * @param squareHeight The height of each square within the grid. - */ - void setDimensions(int columnCount, int rowCount, int squareWidth, int squareHeight); - - /** - * Get the number of columns in the grid. - * - * @return The number of columns in the grid. - */ - int columnCount(); - - /** - * Get the number of rows in the grid. - * - * @return The number of rows in the grid. - */ - int rowCount(); + /** + * Repaint the grid with a list of elements, each associated with their respective positions. + * + * @param elements A list of pairs, each containing a position and the element to be displayed at that position. + */ + void repaint(List<Pair<Position, E>> elements); + + /** + * Repaint the grid with a two-dimensional array of elements. The array's dimensions should match + * the row and column count of the grid. + * + * @param elements A two-dimensional array of elements to be displayed on the grid. + */ + void repaint(E[][] elements); + + /** + * Set the dimensions of the grid to the specified number of columns, number of rows, square width, + * and square height. + * + * @param columnCount The new number of columns in the grid. + * @param rowCount The new number of rows in the grid. + * @param squareWidth The width of each square within the grid. + * @param squareHeight The height of each square within the grid. + */ + void setDimensions(int columnCount, int rowCount, int squareWidth, int squareHeight); + + /** + * Get the number of columns in the grid. + * + * @return The number of columns in the grid. + */ + int columnCount(); + + /** + * Get the number of rows in the grid. + * + * @return The number of rows in the grid. + */ + int rowCount(); } diff --git a/src/main/resources/view/icons/avion.png b/src/main/resources/view/icons/fire/avion.png similarity index 100% rename from src/main/resources/view/icons/avion.png rename to src/main/resources/view/icons/fire/avion.png diff --git a/src/main/resources/view/icons/camion.png b/src/main/resources/view/icons/fire/camion.png similarity index 100% rename from src/main/resources/view/icons/camion.png rename to src/main/resources/view/icons/fire/camion.png diff --git a/src/main/resources/view/icons/flamme.png b/src/main/resources/view/icons/fire/flamme.png similarity index 100% rename from src/main/resources/view/icons/flamme.png rename to src/main/resources/view/icons/fire/flamme.png diff --git a/src/main/resources/view/icons/img.png b/src/main/resources/view/icons/fire/img.png similarity index 100% rename from src/main/resources/view/icons/img.png rename to src/main/resources/view/icons/fire/img.png diff --git a/src/main/resources/view/icons/montagne.png b/src/main/resources/view/icons/fire/montagne.png similarity index 100% rename from src/main/resources/view/icons/montagne.png rename to src/main/resources/view/icons/fire/montagne.png diff --git a/src/main/resources/view/icons/nuage.png b/src/main/resources/view/icons/fire/nuage.png similarity index 100% rename from src/main/resources/view/icons/nuage.png rename to src/main/resources/view/icons/fire/nuage.png diff --git a/src/main/resources/view/icons/rochers.png b/src/main/resources/view/icons/fire/rochers.png similarity index 100% rename from src/main/resources/view/icons/rochers.png rename to src/main/resources/view/icons/fire/rochers.png diff --git a/src/main/resources/view/icons/route.png b/src/main/resources/view/icons/fire/route.png similarity index 100% rename from src/main/resources/view/icons/route.png rename to src/main/resources/view/icons/fire/route.png diff --git a/src/main/resources/view/icons/sapeur-pompier.png b/src/main/resources/view/icons/fire/sapeur-pompier.png similarity index 100% rename from src/main/resources/view/icons/sapeur-pompier.png rename to src/main/resources/view/icons/fire/sapeur-pompier.png diff --git a/src/main/resources/view/icons/pfc/cis.png b/src/main/resources/view/icons/pfc/cis.png new file mode 100644 index 0000000000000000000000000000000000000000..646b9f7b984a658b64051266f3aaf4b26fa13b21 Binary files /dev/null and b/src/main/resources/view/icons/pfc/cis.png differ diff --git a/src/main/resources/view/icons/pfc/paper.png b/src/main/resources/view/icons/pfc/paper.png new file mode 100644 index 0000000000000000000000000000000000000000..4c3f80c1ccdd8709ac1240f2bc9d36705500efc3 Binary files /dev/null and b/src/main/resources/view/icons/pfc/paper.png differ diff --git a/src/main/resources/view/icons/pfc/rock.png b/src/main/resources/view/icons/pfc/rock.png new file mode 100644 index 0000000000000000000000000000000000000000..9e0bc082f7231fad12300e0cabf87a988e4aa33e Binary files /dev/null and b/src/main/resources/view/icons/pfc/rock.png differ diff --git a/src/main/resources/view/icons/virus/docteur.png b/src/main/resources/view/icons/virus/docteur.png new file mode 100644 index 0000000000000000000000000000000000000000..902a90c30e5eea76c075246b2573f4480704ed64 Binary files /dev/null and b/src/main/resources/view/icons/virus/docteur.png differ diff --git a/src/main/resources/view/icons/virus/humain.png b/src/main/resources/view/icons/virus/humain.png new file mode 100644 index 0000000000000000000000000000000000000000..d88de16c2b701a823f7bceccc5629562cab05a56 Binary files /dev/null and b/src/main/resources/view/icons/virus/humain.png differ diff --git a/src/main/resources/view/icons/virus/patient.png b/src/main/resources/view/icons/virus/patient.png new file mode 100644 index 0000000000000000000000000000000000000000..9aa4113c8fd5ad39ee4592877058c27e2d2e52e0 Binary files /dev/null and b/src/main/resources/view/icons/virus/patient.png differ diff --git a/src/main/resources/view/icons/virus/virus.png b/src/main/resources/view/icons/virus/virus.png new file mode 100644 index 0000000000000000000000000000000000000000..a4d6b7c5e10766a9fe5ce085a1da41486ce22716 Binary files /dev/null and b/src/main/resources/view/icons/virus/virus.png differ