diff options
Diffstat (limited to 'src/ch/epfl/maze/physical/Predator.java')
-rw-r--r-- | src/ch/epfl/maze/physical/Predator.java | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/ch/epfl/maze/physical/Predator.java b/src/ch/epfl/maze/physical/Predator.java index 0b20ca0..5f0a3bb 100644 --- a/src/ch/epfl/maze/physical/Predator.java +++ b/src/ch/epfl/maze/physical/Predator.java | |||
@@ -3,6 +3,10 @@ package ch.epfl.maze.physical; | |||
3 | import ch.epfl.maze.util.Direction; | 3 | import ch.epfl.maze.util.Direction; |
4 | import ch.epfl.maze.util.Vector2D; | 4 | import ch.epfl.maze.util.Vector2D; |
5 | 5 | ||
6 | import java.util.Arrays; | ||
7 | import java.util.EnumSet; | ||
8 | import java.util.Set; | ||
9 | |||
6 | /** | 10 | /** |
7 | * Predator that kills a prey when they meet with each other in the labyrinth. | 11 | * Predator that kills a prey when they meet with each other in the labyrinth. |
8 | * | 12 | * |
@@ -34,6 +38,24 @@ abstract public class Predator extends ProbabilisticAnimal { | |||
34 | * @param daedalus The world in which the animal moves | 38 | * @param daedalus The world in which the animal moves |
35 | * @return The next direction of the animal, chosen in {@code choices} | 39 | * @return The next direction of the animal, chosen in {@code choices} |
36 | */ | 40 | */ |
37 | abstract public Direction move(Direction[] choices, Daedalus daedalus); | 41 | abstract public Direction move(Set<Direction> choices, Daedalus daedalus); |
42 | |||
43 | /** | ||
44 | * Retrieves the next direction of the animal, by selecting one choice among | ||
45 | * the ones available from its position. | ||
46 | * <p> | ||
47 | * In this variation, the animal knows the world entirely. It can therefore | ||
48 | * use the position of other animals in the daedalus to hunt more | ||
49 | * effectively. | ||
50 | * | ||
51 | * @param choices The choices left to the animal at its current position (see | ||
52 | * {@link ch.epfl.maze.physical.World#getChoices(Vector2D) | ||
53 | * World.getChoices(Vector2D)}) | ||
54 | * @param daedalus The world in which the animal moves | ||
55 | * @return The next direction of the animal, chosen in {@code choices} | ||
56 | */ | ||
57 | public final Direction move(Direction[] choices, Daedalus daedalus) { | ||
58 | return this.move(EnumSet.copyOf(Arrays.asList(choices)), daedalus); | ||
59 | } | ||
38 | 60 | ||
39 | } | 61 | } |