From 33e497e3083c8446588244c1fa9e69f70af05664 Mon Sep 17 00:00:00 2001
From: Pacien TRAN-GIRARD
Date: Tue, 24 Nov 2015 15:23:36 +0100
Subject: Refactor Mouse strategy
---
src/ch/epfl/maze/physical/zoo/Mouse.java | 18 ++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)
(limited to 'src/ch/epfl/maze/physical/zoo/Mouse.java')
diff --git a/src/ch/epfl/maze/physical/zoo/Mouse.java b/src/ch/epfl/maze/physical/zoo/Mouse.java
index f7084d7..8f68af6 100644
--- a/src/ch/epfl/maze/physical/zoo/Mouse.java
+++ b/src/ch/epfl/maze/physical/zoo/Mouse.java
@@ -1,16 +1,20 @@
package ch.epfl.maze.physical.zoo;
import ch.epfl.maze.physical.Animal;
-import ch.epfl.maze.physical.ProbabilisticAnimal;
+import ch.epfl.maze.physical.stragegies.picker.RandomPicker;
+import ch.epfl.maze.physical.stragegies.reducer.BackwardReducer;
+import ch.epfl.maze.util.Direction;
import ch.epfl.maze.util.Vector2D;
+import java.util.Set;
+
/**
* Mouse A.I. that remembers only the previous choice it has made.
*
* @author EPFL
* @author Pacien TRAN-GIRARD
*/
-public class Mouse extends ProbabilisticAnimal {
+public class Mouse extends Animal implements BackwardReducer, RandomPicker {
/**
* Constructs a mouse with a starting position.
@@ -21,6 +25,16 @@ public class Mouse extends ProbabilisticAnimal {
super(position);
}
+ /**
+ * Moves according to an improved version of a random walk : the
+ * mouse does not directly retrace its steps.
+ */
+ @Override
+ public Direction move(Set choices) {
+ Set smartChoices = choices.size() > 1 ? this.reduce(choices) : choices;
+ return this.pick(smartChoices);
+ }
+
@Override
public Animal copy() {
return new Mouse(this.getPosition());
--
cgit v1.2.3