Une bonne droite

Tutoriel

Pour garder les coûts de fabrication les plus faibles possibles, l'usine a équipé Guido de roues ne lui permettant de se déplacer que tout droit ou de tourner vers la gauche. Je lis dans le manuel d'instruction que Guido a la possibilité d'apprendre à faire d'autres choses. Par exemple, si Guido tourne vers la gauche trois fois, il se retrouvera face à sa droite. Mais c'est votre tâche de programmeur que de dire à Guido comment faire cela.

Nous faisons cela en définissant une nouvelle instruction turnright sous forme d'une série d'autres instructions, plus précisément trois instructions turnleft. La définition ressemble à ceci :

define turnright:
    turnleft
    turnleft
    turnleft

Ceci est un exemple d'instruction composée, ce qui signifie qu'elle est faite de deux parties. La première partie comporte le code define suivi du nom de l'instruction que vous êtes en train de définir, suivi d'un double point (:). La seconde partie consiste en une ou plusieurs instructions indentées du même nombre d'espaces. Voyons si vous saurez prédire ce que va faire le programme suivant.

define turnright:
    turnleft
    turnleft
    turnleft
   
move
turnright
move
turnright
move
turnright
move
turnright
turnoff

Les trois instructions turnleft composent ce que l'on appelle un bloc de code, plusieurs instructions agissant ensemble pour n'en former qu'une. Tous les programmes GvR se terminent par une instruction turnoff.

Vous devriez être capable de "tracer à la main" les opérations de ce programme de manière à découvrir que Guido parcourera un petit carré avant de retourner à sa position initiale.

À votre tour

Une fois que vous avez défini une nouvelle instruction, vous pouvez l'utiliser comme n'importe quelle instruction prédéfinie dans GvR. Définissez une instruction backup qui fait reculer Guido d'un bloc, tout en conservant sa direction. Puis utilisez backup dans un programme complet qui, Guido démarrant au coin de la deuxième rue et de la troisième avenue, le fera move trois blocs vers le nord, backup un bloc, turnright, puis move deux blocs vers l'est.


Précédent | Index | Suivant

Copyright © 2003 Roger Frank.