summaryrefslogtreecommitdiff
path: root/src/ch/epfl/maze/physical
diff options
context:
space:
mode:
Diffstat (limited to 'src/ch/epfl/maze/physical')
-rw-r--r--src/ch/epfl/maze/physical/Animal.java7
-rw-r--r--src/ch/epfl/maze/physical/GhostPredator.java4
-rw-r--r--src/ch/epfl/maze/physical/Maze.java6
-rw-r--r--src/ch/epfl/maze/physical/World.java16
-rw-r--r--src/ch/epfl/maze/physical/pacman/Pinky.java3
-rw-r--r--src/ch/epfl/maze/physical/zoo/Hamster.java5
-rw-r--r--src/ch/epfl/maze/physical/zoo/Monkey.java5
-rw-r--r--src/ch/epfl/maze/physical/zoo/Panda.java2
-rw-r--r--src/ch/epfl/maze/physical/zoo/SpaceInvader.java4
9 files changed, 10 insertions, 42 deletions
diff --git a/src/ch/epfl/maze/physical/Animal.java b/src/ch/epfl/maze/physical/Animal.java
index 9123d82..0079d11 100644
--- a/src/ch/epfl/maze/physical/Animal.java
+++ b/src/ch/epfl/maze/physical/Animal.java
@@ -9,7 +9,6 @@ import ch.epfl.maze.util.Vector2D;
9 * 9 *
10 * @author Pacien TRAN-GIRARD 10 * @author Pacien TRAN-GIRARD
11 */ 11 */
12
13abstract public class Animal { 12abstract public class Animal {
14 13
15 private Vector2D position; 14 private Vector2D position;
@@ -19,7 +18,6 @@ abstract public class Animal {
19 * 18 *
20 * @param position Position of the animal in the labyrinth 19 * @param position Position of the animal in the labyrinth
21 */ 20 */
22
23 public Animal(Vector2D position) { 21 public Animal(Vector2D position) {
24 this.position = position; 22 this.position = position;
25 } 23 }
@@ -33,7 +31,6 @@ abstract public class Animal {
33 * World.getChoices(Vector2D)}) 31 * World.getChoices(Vector2D)})
34 * @return The next direction of the animal, chosen in {@code choices} 32 * @return The next direction of the animal, chosen in {@code choices}
35 */ 33 */
36
37 abstract public Direction move(Direction[] choices); 34 abstract public Direction move(Direction[] choices);
38 35
39 /** 36 /**
@@ -44,7 +41,6 @@ abstract public class Animal {
44 * 41 *
45 * @param dir Direction that the animal has taken 42 * @param dir Direction that the animal has taken
46 */ 43 */
47
48 public final void update(Direction dir) { 44 public final void update(Direction dir) {
49 this.position = this.position.addDirectionTo(dir); 45 this.position = this.position.addDirectionTo(dir);
50 } 46 }
@@ -57,7 +53,6 @@ abstract public class Animal {
57 * 53 *
58 * @param position 54 * @param position
59 */ 55 */
60
61 public final void setPosition(Vector2D position) { 56 public final void setPosition(Vector2D position) {
62 this.position = position; 57 this.position = position;
63 } 58 }
@@ -67,10 +62,10 @@ abstract public class Animal {
67 * 62 *
68 * @return Current position of animal. 63 * @return Current position of animal.
69 */ 64 */
70
71 public final Vector2D getPosition() { 65 public final Vector2D getPosition() {
72 return this.position; 66 return this.position;
73 } 67 }
74 68
75 abstract public Animal copy(); 69 abstract public Animal copy();
70
76} 71}
diff --git a/src/ch/epfl/maze/physical/GhostPredator.java b/src/ch/epfl/maze/physical/GhostPredator.java
index 8188c00..5408bf6 100644
--- a/src/ch/epfl/maze/physical/GhostPredator.java
+++ b/src/ch/epfl/maze/physical/GhostPredator.java
@@ -122,7 +122,7 @@ abstract public class GhostPredator extends Predator {
122 /** 122 /**
123 * Calculates the Euclidean distance from the adjacent position at the given Direction to the target position. 123 * Calculates the Euclidean distance from the adjacent position at the given Direction to the target position.
124 * 124 *
125 * @param dir The adjacent Direction 125 * @param dir The adjacent Direction
126 * @param targetPosition The targeted position 126 * @param targetPosition The targeted position
127 * @return The Euclidean distance between the two positions 127 * @return The Euclidean distance between the two positions
128 */ 128 */
@@ -138,7 +138,7 @@ abstract public class GhostPredator extends Predator {
138 * Selects the best Direction in the given choices by minimizing the Euclidean distance to the targeted position. 138 * Selects the best Direction in the given choices by minimizing the Euclidean distance to the targeted position.
139 * 139 *
140 * @param targetPosition The targeted position 140 * @param targetPosition The targeted position
141 * @param choices An array of Direction choices 141 * @param choices An array of Direction choices
142 * @return An array of optimal Direction choices 142 * @return An array of optimal Direction choices
143 */ 143 */
144 private Direction[] selectBestPaths(Vector2D targetPosition, Direction[] choices) { 144 private Direction[] selectBestPaths(Vector2D targetPosition, Direction[] choices) {
diff --git a/src/ch/epfl/maze/physical/Maze.java b/src/ch/epfl/maze/physical/Maze.java
index bff8791..51b9811 100644
--- a/src/ch/epfl/maze/physical/Maze.java
+++ b/src/ch/epfl/maze/physical/Maze.java
@@ -10,7 +10,6 @@ import java.util.List;
10 * 10 *
11 * @author Pacien TRAN-GIRARD 11 * @author Pacien TRAN-GIRARD
12 */ 12 */
13
14public final class Maze extends World { 13public final class Maze extends World {
15 14
16 private final List<Animal> animals; 15 private final List<Animal> animals;
@@ -21,7 +20,6 @@ public final class Maze extends World {
21 * 20 *
22 * @param labyrinth Structure of the labyrinth, an NxM array of tiles 21 * @param labyrinth Structure of the labyrinth, an NxM array of tiles
23 */ 22 */
24
25 public Maze(int[][] labyrinth) { 23 public Maze(int[][] labyrinth) {
26 super(labyrinth); 24 super(labyrinth);
27 25
@@ -46,7 +44,6 @@ public final class Maze extends World {
46 * @return <b>true</b> if the animal belongs to the world, <b>false</b> 44 * @return <b>true</b> if the animal belongs to the world, <b>false</b>
47 * otherwise. 45 * otherwise.
48 */ 46 */
49
50 public boolean hasAnimal(Animal a) { 47 public boolean hasAnimal(Animal a) {
51 return this.animals.contains(a); 48 return this.animals.contains(a);
52 } 49 }
@@ -56,7 +53,6 @@ public final class Maze extends World {
56 * 53 *
57 * @param a The animal to add 54 * @param a The animal to add
58 */ 55 */
59
60 public void addAnimal(Animal a) { 56 public void addAnimal(Animal a) {
61 a.setPosition(this.getStart()); 57 a.setPosition(this.getStart());
62 this.animals.add(a); 58 this.animals.add(a);
@@ -67,7 +63,6 @@ public final class Maze extends World {
67 * 63 *
68 * @param a The animal to remove 64 * @param a The animal to remove
69 */ 65 */
70
71 public void removeAnimal(Animal a) { 66 public void removeAnimal(Animal a) {
72 boolean contained = this.animals.remove(a); 67 boolean contained = this.animals.remove(a);
73 if (contained) this.animalHistory.add(a); 68 if (contained) this.animalHistory.add(a);
@@ -80,4 +75,5 @@ public final class Maze extends World {
80 this.animalHistory.forEach(a -> this.addAnimal(a.copy())); 75 this.animalHistory.forEach(a -> this.addAnimal(a.copy()));
81 this.animalHistory.clear(); 76 this.animalHistory.clear();
82 } 77 }
78
83} 79}
diff --git a/src/ch/epfl/maze/physical/World.java b/src/ch/epfl/maze/physical/World.java
index f13b2b1..9afbd5e 100644
--- a/src/ch/epfl/maze/physical/World.java
+++ b/src/ch/epfl/maze/physical/World.java
@@ -12,7 +12,6 @@ import java.util.List;
12 * 12 *
13 * @author Pacien TRAN-GIRARD 13 * @author Pacien TRAN-GIRARD
14 */ 14 */
15
16public abstract class World { 15public abstract class World {
17 16
18 /* tiles constants */ 17 /* tiles constants */
@@ -25,7 +24,6 @@ public abstract class World {
25 /** 24 /**
26 * Structure of the labyrinth, an NxM array of tiles 25 * Structure of the labyrinth, an NxM array of tiles
27 */ 26 */
28
29 private final int[][] labyrinth; 27 private final int[][] labyrinth;
30 28
31 private final Vector2D start; 29 private final Vector2D start;
@@ -36,7 +34,6 @@ public abstract class World {
36 * 34 *
37 * @param labyrinth Structure of the labyrinth, an NxM array of tiles 35 * @param labyrinth Structure of the labyrinth, an NxM array of tiles
38 */ 36 */
39
40 public World(int[][] labyrinth) { 37 public World(int[][] labyrinth) {
41 this.labyrinth = labyrinth; 38 this.labyrinth = labyrinth;
42 39
@@ -50,7 +47,6 @@ public abstract class World {
50 * @param tileType Type of the tile 47 * @param tileType Type of the tile
51 * @return A Vector2D of the first occurrence of the given tile type 48 * @return A Vector2D of the first occurrence of the given tile type
52 */ 49 */
53
54 private Vector2D findFirstTileOfType(int tileType) { 50 private Vector2D findFirstTileOfType(int tileType) {
55 for (int x = 0; x < this.getWidth(); ++x) 51 for (int x = 0; x < this.getWidth(); ++x)
56 for (int y = 0; y < this.getHeight(); ++y) 52 for (int y = 0; y < this.getHeight(); ++y)
@@ -65,13 +61,11 @@ public abstract class World {
65 * 61 *
66 * @return <b>true</b> if no more moves can be made, <b>false</b> otherwise 62 * @return <b>true</b> if no more moves can be made, <b>false</b> otherwise
67 */ 63 */
68
69 abstract public boolean isSolved(); 64 abstract public boolean isSolved();
70 65
71 /** 66 /**
72 * Resets the world as when it was instantiated. 67 * Resets the world as when it was instantiated.
73 */ 68 */