diff options
author | Pacien TRAN-GIRARD | 2015-11-23 11:43:49 +0100 |
---|---|---|
committer | Pacien TRAN-GIRARD | 2015-11-23 11:43:49 +0100 |
commit | e9acb9330ad2fed4235b0270d67d1ee1ac9d2005 (patch) | |
tree | 85db1fc480bcb2d9356c7be096ac4dca734a546e /src/ch/epfl/maze/physical/pacman/Pinky.java | |
parent | e9388a4f4c47d1df503ed538e62c09e010c6aa2d (diff) | |
download | maze-solver-e9acb9330ad2fed4235b0270d67d1ee1ac9d2005.tar.gz |
Implement Pinky A.I.
Diffstat (limited to 'src/ch/epfl/maze/physical/pacman/Pinky.java')
-rw-r--r-- | src/ch/epfl/maze/physical/pacman/Pinky.java | 35 |
1 files changed, 29 insertions, 6 deletions
diff --git a/src/ch/epfl/maze/physical/pacman/Pinky.java b/src/ch/epfl/maze/physical/pacman/Pinky.java index 3e4209d..ebabc15 100644 --- a/src/ch/epfl/maze/physical/pacman/Pinky.java +++ b/src/ch/epfl/maze/physical/pacman/Pinky.java | |||
@@ -6,31 +6,54 @@ import ch.epfl.maze.physical.GhostPredator; | |||
6 | import ch.epfl.maze.util.Direction; | 6 | import ch.epfl.maze.util.Direction; |
7 | import ch.epfl.maze.util.Vector2D; | 7 | import ch.epfl.maze.util.Vector2D; |
8 | 8 | ||
9 | import java.util.Vector; | ||
10 | |||
9 | /** | 11 | /** |
10 | * Pink ghost from the Pac-Man game, targets 4 squares in front of its target. | 12 | * Pink ghost from the Pac-Man game, targets 4 squares in front of its target. |
13 | * | ||
14 | * @author Pacien TRAN-GIRARD | ||
11 | */ | 15 | */ |
12 | |||
13 | public class Pinky extends GhostPredator { | 16 | public class Pinky extends GhostPredator { |
14 | 17 | ||
18 | private static final int TARGET_OFFSET = 4; | ||
15 | /** | 19 | /** |
16 | * Constructs a Pinky with a starting position. | 20 | * Constructs a Pinky with a starting position. |
17 | * | 21 | * |
18 | * @param position Starting position of Pinky in the labyrinth | 22 | * @param position Starting position of Pinky in the labyrinth |
19 | */ | 23 | */ |
20 | |||
21 | public Pinky(Vector2D position) { | 24 | public Pinky(Vector2D position) { |
22 | super(position); | 25 | super(position); |
23 | // TODO | ||
24 | } | 26 | } |
25 | 27 | ||
28 | /** | ||
29 | * Targets the position the Prey is heading toward. | ||
30 | * | ||
31 | * @param daedalus The Daedalus | ||
32 | * @return The projected position | ||
33 | */ | ||
26 | @Override | 34 | @Override |
27 | public Direction move(Direction[] choices, Daedalus daedalus) { | 35 | protected Vector2D getPreyTargetPosition(Daedalus daedalus) { |
28 | // TODO | 36 | Vector2D offsetVector = this.getTargetOffsetVector(this.getPreyDirection(daedalus)); |
29 | return Direction.NONE; | 37 | return this |
38 | .getPreyPosition(daedalus) | ||
39 | .add(offsetVector); | ||
40 | } | ||
41 | |||
42 | /** | ||
43 | * Returns the offset vector directed to the given Direction. | ||
44 | * | ||
45 | * @param direction The Direction | ||
46 | * @return The offset Vector2D | ||
47 | */ | ||
48 | private Vector2D getTargetOffsetVector(Direction direction) { | ||
49 | return (new Vector2D()) | ||
50 | .addDirectionTo(direction) | ||
51 | .mul(TARGET_OFFSET); | ||
30 | } | 52 | } |
31 | 53 | ||
32 | @Override | 54 | @Override |
33 | public Animal copy() { | 55 | public Animal copy() { |
34 | return new Pinky(this.getPosition()); | 56 | return new Pinky(this.getPosition()); |
35 | } | 57 | } |
58 | |||
36 | } | 59 | } |