diff --git a/rsiTurtle.lua b/rsiTurtle.lua
index 1ffa9330f986ed5edcf7ed7e3654a9b158d72754..800d603f7bc70a0c7b980768529b728d8a5dca89 100644
--- a/rsiTurtle.lua
+++ b/rsiTurtle.lua
@@ -26,7 +26,11 @@ function RSI_Turtle:init()
     setmetatable(turtle,RSI_Turtle)
     
     ---
-    -- \brief Dictionnaire pour la position (x,y,z)
+    -- \brief Dictionnaire pour la position (x,y,z).
+    --        Le système de coordonnées est celui de minecraft:
+    --          x: Avant
+    --          y: Altitude
+    --          z: Droite
     turtle.pos_ = {}
     turtle.pos_["x"] = 0
     turtle.pos_["y"] = 0
@@ -68,7 +72,7 @@ end
 
 ---
 -- \brief Déplacement parallèle au sol
-function RSI_Turtle:moveTo(x, y)
+function RSI_Turtle:moveTo2D(x, z)
     --TODO: Implementer
 end
 
@@ -83,46 +87,81 @@ end
 ---
 -- \brief Déplacement s'assurant de rester au niveau du sol
 -- escalade et descend automatiquement les pentes
-function RSI_Turtle:moveToGrounded(x, y)
+function RSI_Turtle:moveToGrounded(x, z)
     --TODO: Implementer
 end
 
 
 ---
 -- \brief Déplacement parallèle au sol
+--        Ordre de déplacement: X, Z
 -- \return bool Succès
-function RSI_Turtle:move(dx, dy)
+function RSI_Turtle:move2D(dx, dz)
+    local success
+
     if dx >= 0
     then
-        self:face_(12)
+        self:face(12)
     else
-        self:face_(6)
+        self:face(6)
     end
     for i=1,dx,1
     do
-        self:forward()
+        success = self:forward()
+    end
+
+    if not success
+    then
+        return false
     end
     
-    if (dx <= 0 and dy >= 0) or (dx >= 0 and dy <= 0)
+    if (dx <= 0 and dz >= 0) or (dx >= 0 and dz <= 0)
     then
         self:turnLeft()
     else
         self:turnRight()
     end
     
-    for i=1,dy,1
-    do
-        self:forward()
+    if not success
+    then
+        return false
     end
     
+    for i=1,dz,1
+    do
+        success = self:forward()
+    end
+
+    return success
 end
 
 
 ---
 -- \brief Déplacement dans les trois dimensions
+--        Ordre de déplacement: X, Z, Y
 -- \return bool Succès
 function RSI_Turtle:move(dx, dy, dz)
-    --TODO: Implementer
+    local success
+
+    if (dy > 0)
+    then
+        for i=1,dy,1
+        do
+            success = self:up()
+        end
+    elseif dy < 0
+    then
+        for i=-1,dy,-1
+        do
+            success = self:down()
+        end
+    end
+
+    if (success) then
+        return self:move2D(dx, dz)
+    else
+        return false
+    end
 end
 
 
@@ -130,7 +169,7 @@ end
 -- \brief Déplacement s'assurant de rester au niveau du sol
 -- escalade et descend automatiquement les pentes
 -- \return bool Succès
-function RSI_Turtle:moveGrounded(dx, dy)
+function RSI_Turtle:moveGrounded(dx, dz)
     --TODO: Implementer
 end
 
@@ -167,15 +206,40 @@ function RSI_Turtle:forward()
     if self.facing_ == 0 then
         self.pos_["x"] = self.pos_["x"] + 1
     elseif self.facing_ == 3 then
-        self.pos_["y"] = self.pos_["y"] + 1
+        self.pos_["z"] = self.pos_["z"] + 1
     elseif self.facing_ == 6 then
         self.pos_["x"] = self.pos_["x"] - 1
     elseif self.facing_ == 9 then
-        self.pos_["y"] = self.pos_["y"] - 1
+        self.pos_["z"] = self.pos_["z"] - 1
+    end
+end
+
+---
+-- \brief Déplacement avant multiple
+-- \param distance Distance à parcourir
+-- \return bool Succès
+function RSI_Turtle:moveForward(distance)
+    local traveled = 0
+
+    while (traveled < distance) and turtle.forward()
+    do
+        traveled = traveled + 1
     end
     
+    if self.facing_ == 0 then
+        self.pos_["x"] = self.pos_["x"] + traveled
+    elseif self.facing_ == 3 then
+        self.pos_["z"] = self.pos_["z"] + traveled 
+    elseif self.facing_ == 6 then
+        self.pos_["x"] = self.pos_["x"] - traveled
+    elseif self.facing_ == 9 then
+        self.pos_["z"] = self.pos_["z"] - traveled
+    end
+
+    return (traveled == distance)
 end
 
+
 ---
 -- \brief Déplacement arrière
 -- \return bool Succès
@@ -186,16 +250,45 @@ function RSI_Turtle:backward()
         if self.facing_ == 0 then
             self.pos_["x"] = self.pos_["x"] - 1
         elseif self.facing_ == 3 then
-            self.pos_["y"] = self.pos_["y"] - 1
+            self.pos_["z"] = self.pos_["z"] - 1
         elseif self.facing_ == 6 then
             self.pos_["x"] = self.pos_["x"] + 1
         elseif self.facing_ == 9 then
-            self.pos_["y"] = self.pos_["y"] + 1
+            self.pos_["z"] = self.pos_["z"] + 1
         end
     end
     return result
 end
 
+
+---
+-- \brief Déplacement arrière
+-- \param distance Distance à parcourir
+-- \return bool Succès
+function RSI_Turtle:moveBackward(distance)
+    local traveled = 0
+
+    while (traveled < distance) and turtle.back()
+    do
+        traveled = traveled + 1
+    end
+    
+    if result then
+        if self.facing_ == 0 then
+            self.pos_["x"] = self.pos_["x"] - traveled
+        elseif self.facing_ == 3 then
+            self.pos_["z"] = self.pos_["z"] - traveled
+        elseif self.facing_ == 6 then
+            self.pos_["x"] = self.pos_["x"] + traveled
+        elseif self.facing_ == 9 then
+            self.pos_["z"] = self.pos_["z"] + traveled
+        end
+    end
+
+    return (traveled == distance)
+end
+
+
 ---
 -- \brief Déplacement haut
 -- \return bool Succès
@@ -203,7 +296,7 @@ function RSI_Turtle:up()
     result = turtle.up()
     
     if result then
-        self.pos_["z"] = self.pos_["z"] + 1
+        self.pos_["y"] = self.pos_["y"] + 1
     end
     return result
 end
@@ -216,7 +309,7 @@ function RSI_Turtle:down()
     result = turtle.down()
     
     if result then
-        self.pos_["z"] = self.pos_["z"] - 1
+        self.pos_["y"] = self.pos_["y"] - 1
     end
     return result
 end
@@ -264,9 +357,9 @@ end
 -- \brief Descendre jusqu'à rencontrer le sol
 -- \return bool Succès si a descendu d'au moins un bloc
 function RSI_Turtle:ground()
-    succes = self:down()
+    success = self:down()
     while self:down() do end
-    return succes
+    return success
 end
 
 
diff --git a/test.lua b/test.lua
index 566f6064a60f60dae365ba2cfd5a2728fd4fea7c..dbb62d7f65c253685c69e9fc78573cde963d1868 100644
--- a/test.lua
+++ b/test.lua
@@ -22,39 +22,56 @@ print("Test de RSI_Excavatrice")
 e = rsiE:init()
 e:print()
 
-print("Test de l'API turtle")
-print(turtle.inspect())
-print(turtle.up())
+-- print("Test de l'API turtle")
+-- print(turtle.inspect())
+-- print(turtle.up())
+-- 
+-- print("Test RSI_Turtle:facing(3)")
+-- print(t:face(3))
+-- t:print()
+-- print("Test RSI_Turtle:facing(6)")
+-- print(t:face(6))
+-- t:print()
+-- print("Test RSI_Turtle:facing(9)")
+-- print(t:face(9))
+-- t:print()
+-- print("Test RSI_Turtle:facing(12)")
+-- print(t:face(12))
+-- t:print()
+-- 
+-- t:face(6)
+-- t:print()
+-- t:face(12)
+-- t:print()
+-- t:face(9)
+-- t:print()
+-- 
+-- print("Test mouvements;")
+-- t:face(6)
+-- t:forward()
+-- t:up()
+-- t:print()
+-- t:backward()
+-- t:down()
+-- t:print()
+-- 
+-- print("Test ground();")
+-- t:ground()
 
-print("Test RSI_Turtle:facing(3)")
-print(t:face(3))
-t:print()
-print("Test RSI_Turtle:facing(6)")
-print(t:face(6))
-t:print()
-print("Test RSI_Turtle:facing(9)")
-print(t:face(9))
-t:print()
-print("Test RSI_Turtle:facing(12)")
-print(t:face(12))
-t:print()
+print("Test move;")
+print("1;")
+t:move(0,0,5)
+print("2;")
+t:move(-3,-2,5)
+print("3;")
+t:move(2,2)
+t:ground()
 
-t:face(6)
-t:print()
-t:face(12)
-t:print()
-t:face(9)
-t:print()
+print("Test moveForward;")
+t:moveForward(5)
 
-print("Test mouvements;")
-t:face(6)
-t:forward()
-t:up()
-t:print()
-t:backward()
-t:down()
-t:print()
+print("Test move;")
+t:moveBackward(5)
 
-print("Test ground();")
-t:ground()
+print("Fin des tests")