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