diff options
Diffstat (limited to 'src/ch/epfl/maze/physical')
-rw-r--r-- | src/ch/epfl/maze/physical/ProbabilisticAnimal.java | 16 | ||||
-rw-r--r-- | src/ch/epfl/maze/physical/zoo/Panda.java | 2 |
2 files changed, 13 insertions, 5 deletions
diff --git a/src/ch/epfl/maze/physical/ProbabilisticAnimal.java b/src/ch/epfl/maze/physical/ProbabilisticAnimal.java index 45c2175..ed26d23 100644 --- a/src/ch/epfl/maze/physical/ProbabilisticAnimal.java +++ b/src/ch/epfl/maze/physical/ProbabilisticAnimal.java | |||
@@ -15,8 +15,9 @@ import java.util.stream.Collectors; | |||
15 | */ | 15 | */ |
16 | abstract public class ProbabilisticAnimal extends Animal { | 16 | abstract public class ProbabilisticAnimal extends Animal { |
17 | 17 | ||
18 | private final Random randomSource; | 18 | public static final Random RANDOM_SOURCE = new Random(); |
19 | protected Direction currentDirection; | 19 | |
20 | private Direction currentDirection; | ||
20 | 21 | ||
21 | /** | 22 | /** |
22 | * Constructs a probabilistic animal with a starting position | 23 | * Constructs a probabilistic animal with a starting position |
@@ -25,10 +26,17 @@ abstract public class ProbabilisticAnimal extends Animal { | |||
25 | */ | 26 | */ |
26 | public ProbabilisticAnimal(Vector2D position) { | 27 | public ProbabilisticAnimal(Vector2D position) { |
27 | super(position); // no pun intended | 28 | super(position); // no pun intended |
28 | this.randomSource = new Random(); | ||
29 | this.currentDirection = Direction.NONE; | 29 | this.currentDirection = Direction.NONE; |
30 | } | 30 | } |
31 | 31 | ||
32 | protected Direction getCurrentDirection() { | ||
33 | return this.currentDirection; | ||
34 | } | ||
35 | |||
36 | protected void setCurrentDirection(Direction direction) { | ||
37 | this.currentDirection = direction; | ||
38 | } | ||
39 | |||
32 | /** | 40 | /** |
33 | * Excludes the given direction from possible choices. | 41 | * Excludes the given direction from possible choices. |
34 | * | 42 | * |
@@ -61,7 +69,7 @@ abstract public class ProbabilisticAnimal extends Animal { | |||
61 | * @return A random Direction taken from the given choices | 69 | * @return A random Direction taken from the given choices |
62 | */ | 70 | */ |
63 | protected Direction getRandomDirection(Direction[] choices) { | 71 | protected Direction getRandomDirection(Direction[] choices) { |
64 | return choices[randomSource.nextInt(choices.length)]; | 72 | return choices[RANDOM_SOURCE.nextInt(choices.length)]; |
65 | } | 73 | } |
66 | 74 | ||
67 | /** | 75 | /** |
diff --git a/src/ch/epfl/maze/physical/zoo/Panda.java b/src/ch/epfl/maze/physical/zoo/Panda.java index fecec84..dc1198e 100644 --- a/src/ch/epfl/maze/physical/zoo/Panda.java +++ b/src/ch/epfl/maze/physical/zoo/Panda.java | |||
@@ -87,7 +87,7 @@ public class Panda extends ProbabilisticAnimal { | |||
87 | private Direction[] selectBestDirections(Direction[] choices) { | 87 | private Direction[] selectBestDirections(Direction[] choices) { |
88 | // special case | 88 | // special case |
89 | if (this.isIntersection(choices) && this.allChoicesLeadingTo(choices, Trail.Marking.AVOID_MARKING)) | 89 | if (this.isIntersection(choices) && this.allChoicesLeadingTo(choices, Trail.Marking.AVOID_MARKING)) |
90 | return new Direction[]{this.currentDirection.reverse()}; | 90 | return new Direction[]{this.getCurrentDirection().reverse()}; |
91 | 91 | ||
92 | // general case | 92 | // general case |
93 | for (Trail.Marking mark : Trail.Marking.ALL) { | 93 | for (Trail.Marking mark : Trail.Marking.ALL) { |