Table des Matières

Sujet précédent

8. L’opérateur modulo

Sujet suivant

10. Rien à gauche?

Cette page

9. Face au sud

La boussole de Reeborg est brisée; il peut seulement l’utiliser pour déterminer s’il fait face au nord, en utilisant, est_face_au_nord(), mais c’est tout.

Lorsque nous avons présenté return dans une leçon précédente nous avons vu comment nous pouvions définir un test permettant à Reeborg de déterminer d’il faisait face au sud de la façon suivante:

def est_face_au_sud():
    tourne_a_gauche()
    tourne_a_gauche()
    orientation = est_face_au_nord()
    tourne_a_gauche()
    tourne_a_gauche()
    return orientation


# on oriente Reeborg pour qu'il soit face au sud comme test
while not est_face_au_sud():
    tourne_a_gauche()

À votre tour!

Définissez une méthode est_face_au_sud en remplaçant pass par les lignes de code appropriées.

class RobotRéparé(RobotUsage):
    def est_face_au_sud(self):
        pass

reeborg = RobotRéparé(3, 3)
while not reeborg.est_face_au_sud():
    reeborg.tourne_a_gauche()

Reeborg ne devrait pas tourner à l’écran pendant qu’il détermine son orientation.

Indice

Plutôt que de tourner à gauche en utilisant reeborg.tourne_a_gauche(), changez plutôt la valeur de l’attribut orientation avant, et après utiliser orientation = self.est_face_au_nord()

Faites-le d’une autre façon!

Il y a deux façons permettant à Reeborg de déterminer directement son orientation. Une d’entre elle est mentionnée dans l’indice ci-dessus et utilise une variable orientation, suivant le modèle d’une leçon précédente. Une autre façon, encore plus directe, peut être suggérée en explorant le code Javascript grâce aux fonctions examine() et voir_source(). Ce que vous avez peut-être besoin de savoir est que les mots français nord, sud, est, ouest, sont traduits en anglais par north, south, east, west.

Encore davantage!

Écrivez et testez les méthodes est_face_a_l_est() et est_face_a_l_ouest().

9.1. Une petite adaptation

Si la boussole de Reeborg est réparée, il devrait pouvoir s’orienter rapidement dans n’importe quelle direction.

Essayez!

Écrivez le code pour 4 méthodes de plus, une pour chaque orientation, en commençant avec tourne_face_au_nord() qui fera en sorte que Reeborg se tourne immédiatement dans l’orientation demandée d’un seul mouvement. Assurez-vous d’enregistrer le résultat du mouvement avec RUR.rec.record_frame(). Ne vous inquiétez pas si la tache d’huile a des apparences bizarres lorsque vous utilisez ces méthodes dans un programme (ce que vous allez faire bien sûr, n’est-ce pas?)