430 lines
12 KiB
Plaintext
430 lines
12 KiB
Plaintext
# SOME DESCRIPTIVE TITLE
|
|
# Copyright (C) YEAR Free Software Foundation, Inc.
|
|
# This file is distributed under the same license as the PACKAGE package.
|
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
|
msgid ""
|
|
msgstr ""
|
|
"Project-Id-Version: PACKAGE VERSION\n"
|
|
"Report-Msgid-Bugs-To: \n"
|
|
"POT-Creation-Date: 2014-07-02 12:51+0200\n"
|
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
|
"Language: fr\n"
|
|
"MIME-Version: 1.0\n"
|
|
"Content-Type: text/plain; charset=UTF-8\n"
|
|
"Content-Transfer-Encoding: 8bit\n"
|
|
"X-Generator: Translate Toolkit 1.11.0\n"
|
|
|
|
#. type: One-char language identifier
|
|
#: train405.languagecode:1
|
|
#, no-wrap
|
|
msgid "E"
|
|
msgstr "F"
|
|
|
|
#
|
|
#. type: Title-text
|
|
#: train405/scene.txt:1
|
|
#, no-wrap
|
|
msgid "train405:Shadow"
|
|
msgstr "train405:Copieur ..."
|
|
|
|
#
|
|
#. type: Resume-text
|
|
#: train405/scene.txt:2
|
|
#, no-wrap
|
|
msgid "train405:Follow a bot, as if you were its shadow."
|
|
msgstr "train405:Suivez un robot, sans le heurter."
|
|
|
|
#
|
|
#. type: ScriptName-text
|
|
#: train405/scene.txt:3
|
|
#, no-wrap
|
|
msgid "train405:Follow"
|
|
msgstr "train405:Suivre"
|
|
|
|
#. type: \b; header
|
|
#: train405-help/tfollow1.txt:1
|
|
#, no-wrap
|
|
#, fuzzy, no-wrap
|
|
msgid "Exercise"
|
|
msgstr "Exercice"
|
|
|
|
#. type: Plain text
|
|
#: train405-help/tfollow1.txt:3
|
|
#, no-wrap
|
|
#, fuzzy, no-wrap
|
|
msgid ""
|
|
"You must follow the <a object|bottr>target bot</a> with the explosive "
|
|
"device, but without touching it, otherwise it will blow up. Every time the "
|
|
"target bot stops, you must be close to it (less than 10m). After you managed "
|
|
"to stay close to the target bot at 10 successive stops, it will lead you to "
|
|
"the finishing pad, and the exercise is over. At every stop, the target bot "
|
|
"checks that you are there. If you are not there, you must start over again."
|
|
msgstr ""
|
|
"Vous devez programmer le <a object|bottr>robot</a> d'entraînement pour "
|
|
"suivre la caisse d'explosifs, mais sans la toucher, car elle est très "
|
|
"fragile. Chaque fois que la caisse s'arrête 2 secondes, vous devez être à "
|
|
"proximité immédiate (moins de 10 mètres). Après 10 arrêts, la caisse "
|
|
"s'approche de la plate-forme d'arrivée, pous vous y ammener.\n"
|
|
"A chaque arrêt, la caisse vérifie que vous êtes bien là. Si ce n'est pas le "
|
|
"cas, le compteur est remis à zéro. Vous devez donc réussir 10 fois "
|
|
"consécutives!"
|
|
|
|
#. type: \b; header
|
|
#: train405-help/tfollow1.txt:4
|
|
#, no-wrap
|
|
#, fuzzy, no-wrap
|
|
msgid "General principle"
|
|
msgstr "Principe"
|
|
|
|
#. type: Plain text
|
|
#: train405-help/tfollow1.txt:6
|
|
#, no-wrap
|
|
#, fuzzy, no-wrap
|
|
msgid "Repeat forever :\n"
|
|
msgstr "Répéter à l'infini:\n"
|
|
|
|
#. type: Bullet: 'o'
|
|
#: train405-help/tfollow1.txt:6
|
|
#, no-wrap
|
|
#, fuzzy, no-wrap
|
|
msgid "Look for the target bot."
|
|
msgstr "Chercher la caisse."
|
|
|
|
#. type: Bullet: 'o'
|
|
#: train405-help/tfollow1.txt:7
|
|
#, no-wrap
|
|
#, fuzzy, no-wrap
|
|
msgid "Calculate the distance to the bot."
|
|
msgstr "Calculer la distance jusqu'à la caisse."
|
|
|
|
#. type: Bullet: 'o'
|
|
#: train405-help/tfollow1.txt:8
|
|
#, no-wrap
|
|
#, fuzzy, no-wrap
|
|
msgid "if the distance to the target bot is less than 5m, move backward."
|
|
msgstr "Si cette distance est plus petite que 5 mètres, reculer."
|
|
|
|
#. type: Bullet: 'o'
|
|
#: train405-help/tfollow1.txt:9
|
|
#, no-wrap
|
|
#, fuzzy, no-wrap
|
|
msgid "Otherwise, calculate the direction of the target bot, and move towards it."
|
|
msgstr "Sinon, calculer la direction de la caisse et s'y diriger."
|
|
|
|
#. type: Plain text
|
|
#: train405-help/tfollow1.txt:12
|
|
#, no-wrap
|
|
#, fuzzy, no-wrap
|
|
msgid ""
|
|
"As many times before, use <code><a cbot|while>while</a> (true)</code> in "
|
|
"order to perform the infinite loop:"
|
|
msgstr ""
|
|
"La boucle infinie s'effectue avec un traditionnel <code><a "
|
|
"cbot|while>while</a>( true )</code>."
|
|
|
|
#. type: \s; block (usually verbatim code)
|
|
#: train405-help/tfollow1.txt:16
|
|
#, no-wrap
|
|
#, fuzzy, no-wrap
|
|
msgid ""
|
|
"<code>while (true)\n"
|
|
"{\n"
|
|
"\t</code>instructions to be repeated ...<c/>\n"
|
|
"}"
|
|
msgstr ""
|
|
"<code>while ( true )\n"
|
|
"{\n"
|
|
"\t</code>instructions à répéter ...<c/>\n"
|
|
"}"
|
|
|
|
#. type: Plain text
|
|
#: train405-help/tfollow1.txt:18
|
|
#, no-wrap
|
|
#, fuzzy, no-wrap
|
|
msgid ""
|
|
"Look for the target bot with the instruction <code><a "
|
|
"cbot|radar>radar</a></code>:"
|
|
msgstr ""
|
|
"La recherche de la caisse se fait dans toutes les directions, avec <code><a "
|
|
"cbot|radar>radar</a></code> :"
|
|
|
|
#. type: \s; block (usually verbatim code)
|
|
#: train405-help/tfollow1.txt:19
|
|
#, no-wrap
|
|
msgid "<c/>\ttarget = radar(TargetBot);"
|
|
msgstr ""
|
|
|
|
#. type: Plain text
|
|
#: train405-help/tfollow1.txt:21
|
|
#, no-wrap
|
|
msgid "You do not have to test if the radar found a target bot: there must be one."
|
|
msgstr ""
|
|
|
|
#. type: Plain text
|
|
#: train405-help/tfollow1.txt:23
|
|
#, no-wrap
|
|
#, fuzzy, no-wrap
|
|
msgid ""
|
|
"Use the instruction <code><a cbot|dist>distance</a>( , )</code> to calculate "
|
|
"the distance between two points. The first point will be the position of "
|
|
"your own bot, given by <code>position</code>. The second point is the "
|
|
"position of the target bot, given by <code>target.position</code>."
|
|
msgstr ""
|
|
"Le calcul de la distance jusqu'à la caisse utilise l'instruction <code><a "
|
|
"cbot|dist>distance</a>(p1, p2)</code>. Cette instruction retourne la "
|
|
"distance entre deux points <code>p1</code> et <code>p2</code>. Le premier "
|
|
"point sera ici la position du <a object|bottr>robot</a>, obtenue simplement "
|
|
"avec <code>pos</code>. La position de la caisse est obtenue à travers la "
|
|
"description de l'objet <code>target</code> avec l'expression "
|
|
"<code>target.position</code>."
|
|
|
|
#. type: \s; block (usually verbatim code)
|
|
#: train405-help/tfollow1.txt:24
|
|
#, no-wrap
|
|
#, fuzzy, no-wrap
|
|
msgid "<c/>len = distance(position, target.position);"
|
|
msgstr "<c/>len = distance(pos, target.position);"
|
|
|
|
#. type: Plain text
|
|
#: train405-help/tfollow1.txt:30
|
|
#, no-wrap
|
|
#, fuzzy, no-wrap
|
|
msgid ""
|
|
"If the distance to the target bot is smaller than 5m, move backward with a "
|
|
"speed inversely proportional to the distance: the closer you are to the bot, "
|
|
"the faster you must move backward.\n"
|
|
"\tDistance = 5.0 meters -> speed = 0.0\n"
|
|
"\tDistance = 2.5 meters -> speed = -0.5\n"
|
|
"\tDistance = 0.0 meters -> speed = -1.0\n"
|
|
"You can use the <a cbot|expr>expression</a> <code>distance/5-1</code> in "
|
|
"order to achieve this, together with the <code><a cbot|if>if</a></code> to "
|
|
"test if the target is closer than 5m:"
|
|
msgstr ""
|
|
"Si la distance est inférieure à 5 mètres, il faut reculer d'une vitesse "
|
|
"proportionnelle à la distance. Plus la distance est petite, plus il faut "
|
|
"reculer vivement.\n"
|
|
"\tDistance = 5.0 mètres -> vitesse = 0.0\n"
|
|
"\tDistance = 2.5 mètres -> vitesse = -0.5\n"
|
|
"\tDistance = 0.0 mètres -> vitesse = -1.0\n"
|
|
"Ceci s'obtient très simplement avec l'<a cbot|expr>expression</a> "
|
|
"<code>distance/5-1</code>. Donc, avec un <code><a cbot|if>if</a></code>:"
|
|
|
|
#. type: \s; block (usually verbatim code)
|
|
#: train405-help/tfollow1.txt:34
|
|
#, no-wrap
|
|
#, fuzzy, no-wrap
|
|
msgid ""
|
|
"<c/>if ( len < 5 ) // too close ?\n"
|
|
"{\n"
|
|
"\tmotor(len/5-1, len/5-1); // moves backward\n"
|
|
"}"
|
|
msgstr ""
|
|
"<c/>if ( len < 5 ) // trop proche?\n"
|
|
"{\n"
|
|
"\tmotor(len/5-1, len/5-1); // recule\n"
|
|
"}"
|
|
|
|
#. type: Plain text
|
|
#: train405-help/tfollow1.txt:36
|
|
#, no-wrap
|
|
#, fuzzy, no-wrap
|
|
msgid ""
|
|
"If the distance to the target is greater than 5m, move towards the "
|
|
"target. First calculate the angle necessary to face the target with the "
|
|
"instruction <code><a cbot|direct>direction</a></code>. You can then adjust "
|
|
"the speed of the right-hand and left-hand motor in order to follow the "
|
|
"target:"
|
|
msgstr ""
|
|
"Si la distance dépasse 5 mètres, on avance en direction de la caisse en "
|
|
"calculant l'angle avec <code><a cbot|direct>direction</a></code>."
|
|
|
|
#. type: \s; block (usually verbatim code)
|
|
#: train405-help/tfollow1.txt:48
|
|
#, no-wrap
|
|
#, fuzzy, no-wrap
|
|
msgid ""
|
|
"<c/>else\n"
|
|
"{\n"
|
|
"\tdir = direction(target.position);\n"
|
|
"\tif ( dir >= 0 ) // target on the left side?\n"
|
|
"\t{\n"
|
|
"\t\tmotor(1-dir/90, 1);\n"
|
|
"\t}\n"
|
|
"\telse // target on the right side?\n"
|
|
"\t{\n"
|
|
"\t\t<n/>it is up to you to fill in<c/>\n"
|
|
"\t}\n"
|
|
"}"
|
|
msgstr ""
|
|
"<c/>else\n"
|
|
"{\n"
|
|
"\tdir = direction(target.position);\n"
|
|
"\tif ( dir < 0 ) // à droite?\n"
|
|
"\t{\n"
|
|
"\t\tmotor(1, 1+dir/90);\n"
|
|
"\t}\n"
|
|
"\telse // à gauche?\n"
|
|
"\t{\n"
|
|
"\t\t<n/>à vous de trouver ...<c/>\n"
|
|
"\t}\n"
|
|
"}"
|
|
|
|
#. type: Plain text
|
|
#: train405-help/tfollow1.txt:55
|
|
#, no-wrap
|
|
#, fuzzy, no-wrap
|
|
msgid ""
|
|
"When the target is on your left, <code>dir</code> takes a positive value, "
|
|
"ranging between 0 and 180. The <a cbot|expr>expression</a> "
|
|
"<code>1-dir/90</code> returns a speed ranging between 1 and -1, according to "
|
|
"the direction:\n"
|
|
"\tdirection = 0 -> speed = 1.0\n"
|
|
"\tdirection = 45 -> speed = 0.5\n"
|
|
"\tdirection = 90 -> speed = 0.0\n"
|
|
"\tdirection = 135 -> speed = -0.5\n"
|
|
"\tdirection = 180 -> speed = -1.0"
|
|
msgstr ""
|
|
"Lorsque la caisse est à gauche, <code>dir</code> est positif, compris entre "
|
|
"0 et 180 degrés. L'<a cbot|expr>expression</a> <code>1-dir/90</code> donne "
|
|
"une vitesse comprise entre 1 et -1, selon la direction.\n"
|
|
"\tdirection = 0 -> vitesse = 1.0\n"
|
|
"\tdirection = 45 -> vitesse = 0.5\n"
|
|
"\tdirection = 90 -> vitesse = 0.0\n"
|
|
"\tdirection = 135 -> vitesse = -0.5\n"
|
|
"\tdirection = 180 -> vitesse = -1.0"
|
|
|
|
#. type: Image filename
|
|
#: train405-help/tfollow1.txt:56
|
|
#, no-wrap
|
|
#, fuzzy, no-wrap
|
|
msgid "radar2"
|
|
msgstr "radar2"
|
|
|
|
#. type: Plain text
|
|
#: train405-help/tfollow1.txt:58
|
|
#, no-wrap
|
|
#, fuzzy, no-wrap
|
|
msgid ""
|
|
"When the target is on the right side, <code>dir</code> is negative, ranging "
|
|
"between 0 and -180."
|
|
msgstr ""
|
|
"Lorsque la caisse est à droite, <code>dir</code> est négatif, compris entre "
|
|
"0 et -180 degrés."
|
|
|
|
#. type: Plain text
|
|
#: train405-help/tfollow1.txt:60
|
|
#, no-wrap
|
|
#, fuzzy, no-wrap
|
|
msgid ""
|
|
"The only task left for you now is to declare the <a cbot|var>variables</a> "
|
|
"that you use in the program. <code>target</code> is of type "
|
|
"<code>object</code>, whereas <code>dir</code> and <code>len</code> are of "
|
|
"type <code>float</code>."
|
|
msgstr ""
|
|
"Pour que ce programme fonctionne, il faut encore déclarer toutes les <a "
|
|
"cbot|var>variables</a> utilisées.\n"
|
|
"<code>target</code> est de type <code>object</code>, alors que "
|
|
"<code>dir</code> et <code>len</code> sont de type <code>float</code>."
|
|
|
|
#. type: \t; header
|
|
#: train405-help/tfollow1.txt:61
|
|
#, no-wrap
|
|
#, fuzzy, no-wrap
|
|
msgid "See also"
|
|
msgstr "Voir aussi"
|
|
|
|
#. type: Plain text
|
|
#: train405-help/tfollow1.txt:62
|
|
#, no-wrap
|
|
#, fuzzy, no-wrap
|
|
msgid ""
|
|
"<a cbot>Programming</a>, <a cbot|type>types</a> and <a "
|
|
"cbot|category>categories</a>."
|
|
msgstr "<a tchasse>Exercice précédent</a> et <a cbot>programmation</a>."
|
|
|
|
#
|
|
#~ msgid "train400:Motors"
|
|
#~ msgstr "train400:Moteurs"
|
|
|
|
#
|
|
#~ msgid "train400:Motor"
|
|
#~ msgstr "train400:Moteur"
|
|
|
|
#
|
|
#~ msgid "train400:"
|
|
#~ msgstr "train400:"
|
|
|
|
#
|
|
#~ msgid "train401:Dragster"
|
|
#~ msgstr "train401:Dragster"
|
|
|
|
#
|
|
#~ msgid "train401:"
|
|
#~ msgstr "train401:"
|
|
|
|
#
|
|
#~ msgid ""
|
|
#~ "train401:Program a progressive deceleration in order to avoid the mines "
|
|
#~ "right behind the goal."
|
|
#~ msgstr "train401:Décélération avec commande directe des moteurs."
|
|
|
|
#
|
|
#~ msgid "train402:Radar"
|
|
#~ msgstr "train402:Radar"
|
|
|
|
#
|
|
#~ msgid "train402:"
|
|
#~ msgstr "train402:"
|
|
|
|
#
|
|
#~ msgid "train402:Use the radar to find lots of stupid blue crosses."
|
|
#~ msgstr ""
|
|
#~ "train402:Utilisez le radar pour trouver des objets répartis aléatoirement."
|
|
|
|
#
|
|
#~ msgid "train402:Find"
|
|
#~ msgstr "train402:Cherche"
|
|
|
|
#
|
|
#~ msgid "train403:Crazy bot"
|
|
#~ msgstr "train403:Le petit poucet"
|
|
|
|
#
|
|
#~ msgid "train403:"
|
|
#~ msgstr "train403:"
|
|
|
|
#
|
|
#~ msgid ""
|
|
#~ "train403:Use the radar to put some order into a big mess left behind by a "
|
|
#~ "crazy bot."
|
|
#~ msgstr ""
|
|
#~ "train403:Utilisez le radar pour trouver toutes les marques déposées par "
|
|
#~ "le petit poucet."
|
|
|
|
#
|
|
#~ msgid "train403:Move"
|
|
#~ msgstr "train403:Ramasse"
|
|
|
|
#
|
|
#~ msgid "train404:Patient hunter"
|
|
#~ msgstr "train404:Chasse à l'homme"
|
|
|
|
#
|
|
#~ msgid "train404:"
|
|
#~ msgstr "train404:"
|
|
|
|
#
|
|
#~ msgid "train404:Be patient enough not to waste your ammunitions."
|
|
#~ msgstr ""
|
|
#~ "train404:Abattre quatre cibles mouvantes sans gaspiller un seul coup."
|
|
|
|
#
|
|
#~ msgid "train404:Patient"
|
|
#~ msgstr "train404:Abattre"
|
|
|
|
#
|
|
#~ msgid "train405:"
|
|
#~ msgstr "train405:"
|