diff --git a/src/main/java/newmodel/Extinguisher.java b/src/main/java/newmodel/Extinguisher.java index 5d5abacf6d40f598f71573490f6256479866ad5f..e9f7c6eb8981de8155ca54af8426c0a85dfed0c5 100644 --- a/src/main/java/newmodel/Extinguisher.java +++ b/src/main/java/newmodel/Extinguisher.java @@ -1,17 +1,17 @@ package newmodel; - import newmodel.Fboard; import util.Position; - import java.util.List; +public abstract class Extinguisher implements item { + + public abstract List<Position> update(); + public abstract void extinguish(Position position); + public abstract void setState(); + public abstract String getState(); -public interface Extinguisher { - public List<Position> updateExtinguisher(); - public void extinguish(Position position); - public void setState(); - public String getState(); + public abstract void initialize(); + public abstract List<Position> getPositions(); - public void initialize(); - public List<Position> getPositions(); + } } diff --git a/src/main/java/newmodel/Fboard.java b/src/main/java/newmodel/Fboard.java index d86ef42a8362783db2c3d98e327514eab8402cc2..6199065d0949be983024c9637822e761c5a3c8ea 100644 --- a/src/main/java/newmodel/Fboard.java +++ b/src/main/java/newmodel/Fboard.java @@ -10,15 +10,13 @@ public class Fboard { protected final int columnCount; protected final int rowCount; private int step = 0; - private FireManager fire; - private List<Extinguisher> extinguishers; - public Fboard(int columnCount, int rowCount, Fire fire ,List<Extinguisher> Extinguishers) { + private List<item> items; + + public Fboard(int columnCount, int rowCount, Fire fire ,List<item> items) { this.columnCount = columnCount; this.rowCount = rowCount; - this.extinguishers=new ArrayList<>(); - this.fire=fire; - extinguishers.addAll(Extinguishers); + this.items=items; } public int rowCount() { @@ -31,10 +29,8 @@ public class Fboard { public List<Position> updateToNextGeneration() { List<Position> result = new ArrayList<>(); - result.addAll(fire.updateFire()); - for(Extinguisher e : extinguishers) { - result.addAll(e.updateExtinguisher()); - } + for(item item : items) + result.addAll(item.update()); step++; return result; } @@ -48,7 +44,7 @@ public class Fboard { } public void initializeElements() { fire.initialize(); - for(Extinguisher e: extinguishers) { + for(item e: extinguishers) { e.initialize(); } } diff --git a/src/main/java/newmodel/Fire.java b/src/main/java/newmodel/Fire.java index 44532b09088819d6f2249666ad44eb3afe1302d3..2876058b92720b6efecc25adbba5556dcab399bd 100644 --- a/src/main/java/newmodel/Fire.java +++ b/src/main/java/newmodel/Fire.java @@ -4,7 +4,7 @@ import util.Position; import java.util.*; -public class Fire implements FireManager { +public class Fire extends FireManager { private final int initialFireCount; @@ -19,7 +19,7 @@ public class Fire implements FireManager { } - public List<Position> updateFire() { + public List<Position> update() { List<Position> result = new ArrayList<>(); if (board.getStep() % 2 == 0) { List<Position> newFirePositions = new ArrayList<>(); @@ -37,12 +37,11 @@ public class Fire implements FireManager { state="Fire"; } - @Override + public String getState() { return state; } - @Override public void initialize() { firePositions = new HashSet<>(); for (int index = 0; index < initialFireCount; index++) diff --git a/src/main/java/newmodel/FireFighter.java b/src/main/java/newmodel/FireFighter.java index ce04b21553592726847cd858765cbc74295a2302..82a638d06ee1412cb31babbae8b24489d75d64d5 100644 --- a/src/main/java/newmodel/FireFighter.java +++ b/src/main/java/newmodel/FireFighter.java @@ -17,7 +17,7 @@ public class FireFighter implements Extinguisher { } - public List<Position> updateExtinguisher() { + public List<Position> update() { List<Position> result = new ArrayList<>(); List<Position> firefighterNewPositions = new ArrayList<>(); for (Position firefighterPosition : firefighterPositions) { diff --git a/src/main/java/newmodel/FireManager.java b/src/main/java/newmodel/FireManager.java index 11969a89057c71a6fee5e9e3e2b8d55a68434dcf..096730c0a42391b4d3bf0c9e0c854a0f4788cd72 100644 --- a/src/main/java/newmodel/FireManager.java +++ b/src/main/java/newmodel/FireManager.java @@ -1,19 +1,15 @@ package newmodel; -import newmodel.Fboard; import util.Position; import java.util.List; import java.util.Set; -public interface FireManager { - public List<Position> updateFire(); - public void setState(); - public String getState(); - public void extinguish(Position position); - public void initialize(); - - public Set<Position> getFirepositions(); - - public boolean containsFire(Position position); +public abstract class FireManager implements item{ + public abstract List<Position> update(); + public abstract void extinguish(Position position); + public abstract Set<Position> getFirepositions(); + public abstract boolean containsFire(Position position); + public abstract void setState(); + public abstract String getState(); } diff --git a/src/main/java/newmodel/MotoFireFighter.java b/src/main/java/newmodel/MotoFireFighter.java index 040ef171f85ae16821a337e59a50d7e4753d0c49..bc4e60f6e448593b532fbf76a9516b49b74cb82f 100644 --- a/src/main/java/newmodel/MotoFireFighter.java +++ b/src/main/java/newmodel/MotoFireFighter.java @@ -1,4 +1,37 @@ package newmodel; -public class MotoFireFighter { +import util.Position; + +import java.util.List; + +public class MotoFireFighter extends Extinguisher { + @Override + public List<Position> update() { + return null; + } + + @Override + public void extinguish(Position position) { + + } + + @Override + public void setState() { + + } + + @Override + public String getState() { + return null; + } + + @Override + public void initialize() { + + } + + @Override + public List<Position> getPositions() { + return null; + } } diff --git a/src/main/java/newmodel/Nuages.java b/src/main/java/newmodel/Nuages.java index 340f966e7955198eb4b1ec7137ba82d09d0120c9..fa2182eaf727cb7b64afbc40c9eddc0a36e603ec 100644 --- a/src/main/java/newmodel/Nuages.java +++ b/src/main/java/newmodel/Nuages.java @@ -6,7 +6,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Random; -public class Nuages implements Extinguisher{ +public class Nuages extends Extinguisher{ private String state; private final Fboard board; private List<Position> nuagesPositions; @@ -19,8 +19,20 @@ public class Nuages implements Extinguisher{ this.board=b; } - public List<Position> updateExtinguisher() { - + public List<Position> update() { + List<Position> result = new ArrayList<>(); + List<Position> NuagesNewPositions = new ArrayList<>(); + for (Position NuageNewPosition: nuagesPositions) { + NuagesNewPositions.add(randomPosition()); + } + for(Position nuage : NuagesNewPositions) { + extinguish(nuage); + } + result.addAll(nuagesPositions); + result.addAll(NuagesNewPositions); + + nuagesPositions = NuagesNewPositions; + return result; } @@ -48,7 +60,7 @@ public class Nuages implements Extinguisher{ public List<Position> getPositions() { - return null; + return this.nuagesPositions; } private Position randomPosition() { return new Position(randomGenerator.nextInt(board.rowCount), randomGenerator.nextInt(board.columnCount)); diff --git a/src/main/java/newmodel/Pompiers.java b/src/main/java/newmodel/Pompiers.java new file mode 100644 index 0000000000000000000000000000000000000000..2cb99ea3f72cddee045627412621721aba9a2cf9 --- /dev/null +++ b/src/main/java/newmodel/Pompiers.java @@ -0,0 +1,52 @@ +package newmodel; + +import util.Position; + +import java.util.List; +import java.util.Random; + + +public class Pompiers extends Extinguisher{ + private String state; + private final Fboard board; + private List<Position> Pompiers; + private final Random randomGenerator = new Random(); + + private final int initialPompiersCount; + + + public Pompiers(int count,Fboard b){ + this.board=b; + this.initialPompiersCount=count; + + } + + public List<Position> updateExtinguisher() { + return null; + } + + + public void extinguish(Position position) { + + } + + + public void setState() { + this.state="Pompiers"; + } + + + public String getState() { + return state; + } + + + public void initialize() { + + } + + + public List<Position> getPositions() { + return Pompiers; + } +} diff --git a/src/main/java/newmodel/item.java b/src/main/java/newmodel/item.java new file mode 100644 index 0000000000000000000000000000000000000000..8fd8c6876dc14e809d62d3c92b329c0086dd35bf --- /dev/null +++ b/src/main/java/newmodel/item.java @@ -0,0 +1,11 @@ +package newmodel; + +import util.Position; + +import java.util.List; + +public interface item { + public List<Position> update(); + void setState(); + String getState(); +}