diff --git a/pom.xml b/pom.xml
index db921089e42adfbbf56fdc11281eebf717557a87..bc3b721645598f808a02689e50f3266e09f8abc2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -18,5 +18,6 @@
robot
battery
maptools
+ roadBook
diff --git a/roadBook/pom.xml b/roadBook/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1b1e6059acb0bdb2379e4867cc33f2979e736208
--- /dev/null
+++ b/roadBook/pom.xml
@@ -0,0 +1,78 @@
+
+
+ 4.0.0
+
+ robot-modules
+ fr.ufrst.m1info.gl.tparineymates
+ 1.0-SNAPSHOT
+
+
+ fr.ufrst.m1info.gl.tparineymates
+ roadBook
+ 1.0-SNAPSHOT
+
+ roadBook
+
+ http://www.example.com
+
+
+ UTF-8
+ 1.7
+ 1.7
+
+
+
+
+ junit
+ junit
+ 4.11
+ test
+
+
+
+
+
+
+
+
+ maven-clean-plugin
+ 3.1.0
+
+
+
+ maven-resources-plugin
+ 3.0.2
+
+
+ maven-compiler-plugin
+ 3.8.0
+
+
+ maven-surefire-plugin
+ 2.22.1
+
+
+ maven-jar-plugin
+ 3.0.2
+
+
+ maven-install-plugin
+ 2.5.2
+
+
+ maven-deploy-plugin
+ 2.8.2
+
+
+
+ maven-site-plugin
+ 3.7.1
+
+
+ maven-project-info-reports-plugin
+ 3.0.0
+
+
+
+
+
diff --git a/roadBook/src/main/java/fr/ufrst/m1info/gl/tparineymates/Instruction.java b/roadBook/src/main/java/fr/ufrst/m1info/gl/tparineymates/Instruction.java
new file mode 100644
index 0000000000000000000000000000000000000000..c7b41fa817289e6d8a021447ce21c129cdfc6351
--- /dev/null
+++ b/roadBook/src/main/java/fr/ufrst/m1info/gl/tparineymates/Instruction.java
@@ -0,0 +1,9 @@
+package fr.ufrst.m1info.gl.tparineymates;
+
+
+public enum Instruction {
+ TURNLEFT,
+ BACKWARD,
+ TURNRIGHT,
+ FORWARD
+}
diff --git a/roadBook/src/main/java/fr/ufrst/m1info/gl/tparineymates/RoadBook.java b/roadBook/src/main/java/fr/ufrst/m1info/gl/tparineymates/RoadBook.java
new file mode 100644
index 0000000000000000000000000000000000000000..23e922b9a38d1b92c636303fbefdc084a8e36bd1
--- /dev/null
+++ b/roadBook/src/main/java/fr/ufrst/m1info/gl/tparineymates/RoadBook.java
@@ -0,0 +1,26 @@
+package fr.ufrst.m1info.gl.tparineymates;
+
+
+
+import java.util.Iterator;
+import java.util.List;
+
+public class RoadBook {
+ private List instructions;
+ private final Iterator instructionIterator;
+
+
+ public RoadBook(List instructions) {
+ this.instructions = instructions;
+ instructionIterator = instructions.iterator();
+ }
+
+
+ public boolean hasInstruction() {
+ return instructionIterator.hasNext();
+ }
+
+ public Instruction next() {
+ return instructionIterator.next();
+ }
+}
diff --git a/roadBook/src/main/java/fr/ufrst/m1info/gl/tparineymates/RoadBookCalculator.java b/roadBook/src/main/java/fr/ufrst/m1info/gl/tparineymates/RoadBookCalculator.java
new file mode 100644
index 0000000000000000000000000000000000000000..d558f4fcac8a833ab27314545bc04ecd072c3f03
--- /dev/null
+++ b/roadBook/src/main/java/fr/ufrst/m1info/gl/tparineymates/RoadBookCalculator.java
@@ -0,0 +1,23 @@
+package fr.ufrst.m1info.gl.tparineymates;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class RoadBookCalculator {
+
+ public static RoadBook calculateRoadBook(Direction direction, Coordinates position, Coordinates destination, ArrayList instructions) {
+ List directionList = new ArrayList();
+ if (destination.getX() < position.getX()) directionList.add(Direction.WEST);
+ if (destination.getX() > position.getX()) directionList.add(Direction.EAST);
+ if (destination.getY() < position.getY()) directionList.add(Direction.SOUTH);
+ if (destination.getY() > position.getY()) directionList.add(Direction.NORTH);
+ if (directionList.isEmpty()) return new RoadBook(instructions);
+ if (directionList.contains(direction)) {
+ instructions.add(Instruction.FORWARD);
+ return calculateRoadBook(direction, MapTools.nextForwardPosition(position, direction), destination, instructions);
+ } else {
+ instructions.add(Instruction.TURNRIGHT);
+ return calculateRoadBook(MapTools.clockwise(direction), position, destination, instructions);
+ }
+ }
+}
\ No newline at end of file
diff --git a/roadBook/src/main/java/fr/ufrst/m1info/gl/tparineymates/UndefinedRoadbookException.java b/roadBook/src/main/java/fr/ufrst/m1info/gl/tparineymates/UndefinedRoadbookException.java
new file mode 100644
index 0000000000000000000000000000000000000000..ef11f8ee371b779625bc65e9eb07009e5d6d1f58
--- /dev/null
+++ b/roadBook/src/main/java/fr/ufrst/m1info/gl/tparineymates/UndefinedRoadbookException.java
@@ -0,0 +1,14 @@
+package fr.ufrst.m1info.gl.tparineymates;
+
+
+
+public class UndefinedRoadbookException extends Exception {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 5576550274153253615L;
+
+ public UndefinedRoadbookException() {
+ super("Aucun road book défini");
+ }
+}