en to fr translation catalogue (29 entries)

note: type: Title-text
en: Labyrinth 1
fr: Labyrinthe 1

note: type: Resume-text
en: Teach your bot how to find its way out of the labyrinth.
fr: Programmez un robot pour qu'il avance sans se cogner dans un labyrinthe.

note: type: ScriptName-text
en: Labyrinth
fr: Labyrinthe

note: type: \b; header
en: Exercise
fr: Exercice

note: type: Plain text
en: Program the bot so that it will find its way without hitting the walls of the labyrinth. We suppose that you do not know the configuration of the labyrinth, but there are no bifurcations, and no dead-ends. The labyrinth is made of squares measuring 5m each.
fr: Programmez le <a object|bottr>robot</a> pour qu'il avance sans se cogner dans un labyrinthe. On part du principe que le labyrinthe n'est pas connu d'avance, et qu'il n'est constitué que d'un chemin, sans aucune bifurcation ni cul-de-sac. Les cases du labyrinthe sont des carrés de 5 mètres de côté.

note: type: \b; header
en: The instruction <code>radar</code>
fr: L'instruction <code>radar</code>

note: type: Plain text
en: The instruction <c/><a cbot|radar>radar</a>(Barrier, 0, 45, 0, 5);<n/> will find any <a object|barrier>barrier</a> in front of the radar that is closer than 5m. Let us take a closer look at the five parameters used:
fr: L'instruction <c/><a cbot|radar>radar</a>(Barrier, 0, 45, 0, 5);<n/> teste la présence d'une <a object|barrier>barrière</a> devant le robot. Détaillons les cinq paramètres utilisés:

note: type: Plain text
en: <a cbot|category>Category</a> of the object that the radar must look for, i.e. a barrier.
fr: <a cbot|category>Catégorie</a> de l'objet cherché. Il s'agit ici d'une barrière.

note: type: Plain text
en: Direction of the radar. <code>0</code> means that the radar must search straight forward.
fr: Direction dans laquelle est braqué le radar. <code>0</code> signifie que le radar est braqué droit devant.

note: type: Plain text
en: Opening angle in degrees. With an opening angle of 45 degrees, barriers situated between 22.5 degrees to the left and 22.5 degrees to the right will be detected.
fr: Angle d'ouverture en degrés. On détecte donc les barrières situées entre 22.5 degrés à gauche et 22.5 degrés à droite.

note: type: Plain text
en: Minimum detection distance. <code>0</code> means that even object that are very close to the bot will be detected.
fr: Distance minimale de détection. <code>0</code> signifie que même les objets très proches sont détectés.

note: type: Plain text
en: Maximum detection range. Any barrier situated beyond <code>5</code> meters will not be detected.
fr: Distance maximale de détection. Au delà de <code>5</code> mètres, les barrières sont ignorées. Donc, une barrière située une case plus loin dans le labyrinthe sera ignorée, ce qui est indispensable.

note: type: Plain text
en: To take another example, <c/><a cbot|radar>radar</a>(Barrier, 90, 45, 0, 5);<n/> will direct the radar 90 degrees to the left, in order to test if the way to the left is free.
fr: Par exemple, <c/><a cbot|radar>radar</a>(Barrier, 90, 45, 0, 5);<n/> dirige le radar 90 degrés sur la gauche, pour tester si le chemin est libre à gauche.

note: type: \b; header
en: General principle
fr: Idée générale

note: type: Plain text
en: The program must only take care of one square portion of the labyrinth. You will have to execute it several times in order to arrive at the finishing pad.
fr: Le programme ne doit s'occuper que d'une partie carrée du labyrinthe. Vous devrez l'exécuter plusieurs fois pour arriver sur la plateforme d'arrivée.

note: type: Bullet: 'o'
en: If there is nothing in front, move forward.
fr: Si rien devant, avancer

note: type: Bullet: 'o'
en: If there is nothing on the left side, quarter turn left, move forward.
fr: Si rien à gauche, quart de tour à gauche puis avancer

note: type: Bullet: 'o'
en: If there is nothing on the right side, quarter turn right, move forward.
fr: Si rien à droite, quart de tour à droite puis avancer

note: type: Bullet: '1)'
en: First of all declare three <a cbot|var>variables</a> of type <code><a cbot|object>object</a></code>, that we call <code>front</code>, <code>left</code> and <code>right</code>. Variables of this type can contain the description of any object, for example of a barrier found by the radar.
fr: On déclare trois <a cbot|var>variables</a> de type <code><a cbot|object>object</a></code>, appelées <code>front</code>, <code>left</code> et <code>right</code>. Ce type indique une variable qui décrit l'objet trouvé.

note: type: Bullet: '2)'
en: Look for barriers in all three directions, and put the result of the <code>radar</code> instruction into the three variables defined at point 1). If the radar finds nothing, the variable will contain the value <code><a cbot|null>null</a></code>.
fr: On teste la présence des barrières dans les trois directions. Les objets trouvés seront contenus dans les trois variables définies au point 1). Si l'objet n'existe pas, la variable prend la valeur <code><a cbot|null>null</a></code>.

note: type: Bullet: '3)'
en: Test if the way is free in front of the bot with the instruction <code><a cbot|if>if</a></code>. If the test is true, the instructions in braces <code>{ }</code> will be executed, otherwise the execution will resume after the closing brace <code>}</code>.
fr: On teste s'il est possible d'avancer avec <code><a cbot|move>move</a></code> à l'aide d'un branchement conditionnel <code><a cbot|if>if</a></code>. Si le test est vrai, les instructions entre les accolades <code>{ }</code> sont exécutées. Si le test est faux, les instructions entre <code>{ }</code> sont sautées.

note: type: Plain text
en: The instruction <code>return</code> leaves the program: the job is done.
fr: Le <code><a cbot|continue>continue</a></code> stoppe l'exécution des instructions suivantes dans la boucle <code><a cbot|while>while</a></code>, car le travail à effectuer est alors terminé. On recommencera la boucle <code>while</code> depuis le début.

note: type: Source code
en: <c/>if ( front == null )
    {
    	move(5);
    	return;
    }
fr: <c/>if ( front == null )
    {
    	move(5);
    	continue;
    }

note: type: Bullet: '4)'
en: Test if it is possible to turn left; if so, turn left with the instruction <code><a cbot|turn>turn</a></code> and move 5m forward.
fr: On teste s'il est possible de tourner à gauche avec <code><a cbot|turn>turn</a></code>.

note: type: Source code
en: <c/>if ( left == null )
    {
    	turn(90);
    	move(5);
    	return;
    }
fr: <c/>if ( left == null )
    {
    	turn(90);
    	move(5);
    	continue;
    }

note: type: Bullet: '5)'
en: Test if it is possible to turn right.
fr: On teste s'il est possible de tourner à droite.

note: type: Plain text
en: The instruction <code>if ( )</code> must never be followed by a <a cbot|term>semicolon</a>.
fr: La ligne <code>if ( )</code> ne doit jamais être suivie d'un <a cbot|term>point-virgule</a>.

note: type: \t; header
en: See also
fr: Voir aussi

note: type: Plain text
en: <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
fr: <a ttarg2>Exercice précédent</a>, <a cbot>programmation</a>, <a cbot|type>types</a> et <a cbot|category>catégories</a>.
