From b7423cbcde7dc1923a8b5bf4048f23c93582bc0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9tro?= <yann.roberge@polymtl.ca> Date: Sun, 18 Oct 2020 19:55:31 -0400 Subject: [PATCH] =?UTF-8?q?Impl=C3=A9mentation=20de=20RSI=5FTurtle:face?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rsiTurtle.lua | 30 ++++++++++++++++++++++++------ test.lua | 20 ++++++++++++++++++++ 2 files changed, 44 insertions(+), 6 deletions(-) diff --git a/rsiTurtle.lua b/rsiTurtle.lua index bff82e5..166a867 100644 --- a/rsiTurtle.lua +++ b/rsiTurtle.lua @@ -35,11 +35,11 @@ function RSI_Turtle:init() --- -- \brief Orientation de la tortue en cadrant horloge: + -- 0: Avant -- 3: Droite -- 6: Arrière -- 9: Gauche - -- 12: Avant - turtle.facing_ = 12 + turtle.facing_ = 0 return turtle end @@ -60,7 +60,7 @@ function RSI_Turtle:print() elseif ( self.facing_ == 9 ) then print("Gauche") - elseif ( self.facing_ == 12 ) + elseif ( self.facing_ == 0 ) then print("Avant") end @@ -88,8 +88,24 @@ end --- -- \brief Tourne la tortue face à la direction voulue. -- \param Orientation en heures (3, 6, 9, 12) +-- \return bool Succès function RSI_Turtle:face(orientation) - --TODO: Implementer + if (orientation ~= 3 and orientation ~= 6 and + orientation ~= 9 and orientation ~= 12) + then + return false + end + + local diff = (orientation - self.facing_) % 12 + if diff == 9 then + self:turnLeft() + elseif diff == 3 then + self:turnRight() + elseif diff == 6 then + self:turnLeft() + self:turnLeft() + end + return true end --- @@ -123,13 +139,15 @@ end --- -- \brief Tourne 90 degrés dans le sens contraire des aiguilles d'une montre function RSI_Turtle:turnLeft() - --TODO: Implementer + turtle.turnLeft() + self.facing_ = (self.facing_ - 3) % 12 end --- -- \brief Tourne 90 degrés dans le sens des aiguilles d'une montre function RSI_Turtle:turnRight() - --TODO: Implementer + turtle.turnRight() + self.facing_ = (self.facing_ + 3) % 12 end --- diff --git a/test.lua b/test.lua index 4b1d5cf..70909a0 100644 --- a/test.lua +++ b/test.lua @@ -27,3 +27,23 @@ 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() + -- GitLab