From 5bb9b60e8de0183b4ad088c0e26011bb6029f5c8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9tro?= <yann.roberge@polymtl.ca>
Date: Thu, 22 Oct 2020 22:32:03 -0400
Subject: [PATCH] =?UTF-8?q?Impl=C3=A9mentation=20de=20climb(),=20isAir(sid?=
 =?UTF-8?q?e),=20et=20turn180()?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 rsiTurtle.lua | 54 ++++++++++++++++++++++++++++++++++++++++
 test.lua      | 68 ++++++++++++++++++++++++++-------------------------
 2 files changed, 89 insertions(+), 33 deletions(-)

diff --git a/rsiTurtle.lua b/rsiTurtle.lua
index 797d662..c3d647e 100644
--- a/rsiTurtle.lua
+++ b/rsiTurtle.lua
@@ -225,6 +225,15 @@ function RSI_Turtle:face(orientation)
     return true
 end
 
+
+---
+-- \brief Tourner la tortue de 180 degrés (par la gauche)
+function RSI_Turtle:turn180()
+    self:turnLeft();
+    self:turnLeft();
+end
+
+
 ---
 -- \brief Déplacement avant
 -- \return bool Succès
@@ -357,6 +366,20 @@ function RSI_Turtle:right()
     return result
 end
 
+---
+-- \brief Augmenter en altitude jusqu'à ce que le bloc en face soit de l'air
+-- \return bool Succès
+function RSI_Turtle:climb()
+    --TODO: Implémenter
+    local success = true
+
+    while (not self:isAir("front") and success)
+    do
+        success = self:up()
+    end
+    return success
+end
+
 
 ---
 -- \brief Descendre jusqu'à rencontrer le sol
@@ -390,6 +413,37 @@ function RSI_Turtle:goThroughAreaGround(action)
 end
 
 
+---
+-- \brief Vérifier si le bloc dans la direction en argument est de l'air
+-- \param Côté: "top", "bottom", "left", "right", "front", "back"
+-- \return bool Bloc en face identique à l'argument
+function RSI_Turtle:isAir(side)
+    --TODO: Implementer
+    if side == "top"
+    then
+        return (not turtle.inspectUp())
+    elseif side == "down"
+    then
+        return (not turtle.inspectDown())
+    elseif side == "front"
+    then
+        return (not turtle.inspect())
+    elseif side == "back"
+    then
+        self:turn180()
+        return (not turtle.inspect())
+    elseif side == "left"
+    then
+        self:turnLeft()
+        return (not turtle.inspect())
+    elseif side == "right"
+    then
+        self:turnRight()
+        return (not turtle.inspect())
+    end
+end
+
+
 ---
 -- \brief Vérifier l'ID du bloc en face
 -- \param Nom du bloc à vérifier
diff --git a/test.lua b/test.lua
index ec796e6..64e0d20 100644
--- a/test.lua
+++ b/test.lua
@@ -89,44 +89,46 @@ end
 --     end
 -- end
 
-print("Tests moveTo;")
-assert(t:moveToOrigin())
-print(t:getPos())
-assert(checkPos(0,0,0))
-
-assert(t:moveTo2D(5,0))
-print(t:getPos())
-assert(checkPos(5,0,0))
-
-assert(t:moveToOrigin())
-print(t:getPos())
-assert(checkPos(0,0,0))
-
-print("Tests problematiques")
-assert(t:moveTo2D(0, 5))
-print(t:getPos())
-assert(checkPos(0,0,5))
-
-assert(t:moveTo2D(0,-5))
-print(t:getPos())
-assert(checkPos(0,0,-5))
-
-assert(t:moveToOrigin())
-print(t:getPos())
-assert(checkPos(0,0,0))
-
-assert(t:moveTo(10,2,-1))
-print(t:getPos())
-assert(checkPos(10,2,-1))
-
-assert(t:moveTo(-5,5,5))
-print(t:getPos())
-assert(checkPos(-5,5,5))
+-- print("Tests moveTo;")
+-- assert(t:moveToOrigin())
+-- print(t:getPos())
+-- assert(checkPos(0,0,0))
+-- 
+-- assert(t:moveTo2D(5,0))
+-- print(t:getPos())
+-- assert(checkPos(5,0,0))
+-- 
+-- assert(t:moveToOrigin())
+-- print(t:getPos())
+-- assert(checkPos(0,0,0))
+-- 
+-- assert(t:moveTo2D(0, 5))
+-- print(t:getPos())
+-- assert(checkPos(0,0,5))
+-- 
+-- assert(t:moveTo2D(0,-5))
+-- print(t:getPos())
+-- assert(checkPos(0,0,-5))
+-- 
+-- assert(t:moveToOrigin())
+-- print(t:getPos())
+-- assert(checkPos(0,0,0))
+-- 
+-- assert(t:moveTo(10,2,-1))
+-- print(t:getPos())
+-- assert(checkPos(10,2,-1))
+-- 
+-- assert(t:moveTo(-5,5,5))
+-- print(t:getPos())
+-- assert(checkPos(-5,5,5))
 
 assert(t:moveToOrigin())
 print(t:getPos())
 assert(checkPos(0,0,0))
 t:face(12)
 
+print("Tests climb")
+assert(t:climb())
+
 print("Fin des tests")
 
-- 
GitLab