diff --git a/src/main/java/model/FirefighterBoard.java b/src/main/java/model/FirefighterBoard.java index 16f8b2f6d0cfeb6e2477ee676e064e25da835606..e7e11915a87dab3b363164164454a1577d19b150 100644 --- a/src/main/java/model/FirefighterBoard.java +++ b/src/main/java/model/FirefighterBoard.java @@ -13,42 +13,23 @@ import static util.Tools.addElement; public class FirefighterBoard implements Board<List<ModelElement>> { private final int columnCount; private final int rowCount; - private final int initialFireCount; - private final int initialFirefighterCount; - private List<Position> firefighterPositions; - private Set<Position> firePositions; + private Map<Position,List<ModelElement>>board; + private Map<ModelElement,Integer>intialboard; + private int step = 0; private final Random randomGenerator = new Random(); - public FirefighterBoard(int columnCount, int rowCount, int initialFireCount, int initialFirefighterCount) { + public FirefighterBoard(int columnCount, int rowCount, Map<ModelElement,Integer>intialboard) { this.columnCount = columnCount; this.rowCount = rowCount; - this.initialFireCount = initialFireCount; - this.initialFirefighterCount = initialFirefighterCount; board=new HashMap<>(); - initializeElements(); + initializeElements(new Fire); } - public void initializeElements() { - firefighterPositions = new ArrayList<>(); - firePositions = new HashSet<>(); - - for (int index = 0; index < initialFireCount; index++) - firePositions.add(randomPosition()); - for (int index = 0; index < initialFirefighterCount; index++) - firefighterPositions.add(randomPosition()); - for (Position firefighterPosition:firefighterPositions - ) { - addElement(firefighterPosition, board, new FireFigther()); - - } - for (Position firePosition:firePositions - ) { - addElement(firePosition, board, new Fire()); - - } - + public void initializeElements(ModelElement modelElement) { + for (int index = 0; index < intialboard.get(modelElement); index++) + addElement(randomPosition(),board,modelElement); } private Position randomPosition() { diff --git a/src/main/java/util/Tools.java b/src/main/java/util/Tools.java index 1005a294026ad8f6b479a68b8b2cdad6765fed52..1abf0f3705b78288c57e838188eaa50752380ad4 100644 --- a/src/main/java/util/Tools.java +++ b/src/main/java/util/Tools.java @@ -20,12 +20,14 @@ public class Tools { Set<Position> seen = new HashSet<>(); HashMap<Position, Position> firstMove = new HashMap<>(); Queue<Position> toVisit = new LinkedList<>(neighbors(position,rowCount,columnCount)); - for (Position initialMove : toVisit) + for (Position initialMove : toVisit){ firstMove.put(initialMove, initialMove); + } while (!toVisit.isEmpty()) { Position current = toVisit.poll(); if (board.containsKey(current)) { if (board.get(current).contains(new Fire())){ + System.out.println("ok chef 4"); return firstMove.get(current); } for (Position adjacent : neighbors(current, rowCount, columnCount)) { @@ -34,6 +36,7 @@ public class Tools { } toVisit.add(adjacent); seen.add(adjacent); + HashMap<Position, Position> firstMove = new HashMap firstMove.put(adjacent, firstMove.get(current)); } @@ -63,4 +66,5 @@ public class Tools { board.put(position,elements); } + }