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