From c77cbe67f466e6acdeb076d961457976d1964735 Mon Sep 17 00:00:00 2001 From: kallel <mohamed-ali.KALLEL@etu.univ-amu.fr> Date: Wed, 22 Nov 2023 18:53:43 +0100 Subject: [PATCH] task 1 --- src/main/java/model/FirefighterBoard.java | 35 ++++++----------------- src/main/java/util/Tools.java | 6 +++- 2 files changed, 13 insertions(+), 28 deletions(-) diff --git a/src/main/java/model/FirefighterBoard.java b/src/main/java/model/FirefighterBoard.java index 16f8b2f..e7e1191 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 1005a29..1abf0f3 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); } + } -- GitLab