Newer
Older
RADELLAH Badr
committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package model;
import util.Position;
import java.util.List;
import java.util.Random;
import java.util.Set;
public class Cloud {
private List<Position> positions;
public Cloud(List<Position> initialPositions) {
this.positions = initialPositions;
}
/**
* Déplace chaque nuage vers une position aléatoire parmi les positions possibles.
*
* @param possiblePositions Ensemble des positions possibles.
* @return Liste des nouvelles positions des nuages.
*/
public List<Position> moveRandomly(Set<Position> possiblePositions) {
Random random = new Random();
for (int i = 0; i < positions.size(); i++) {
// Choisir une position aléatoire dans l'ensemble des positions possibles
Position newPosition = possiblePositions.stream()
.skip(random.nextInt(possiblePositions.size()))
.findFirst()
.orElse(positions.get(i));
positions.set(i, newPosition);
}
return positions;
}
/**
* Éteint les feux situés sur les positions occupées par les nuages.
*
* @param fire L'objet Fire à modifier.
*/
public void extinguishFire(Fire fire) {
positions.forEach(fire::extinguish);
}
public List<Position> getPositions() {
return positions;
}
}