colobot-data/help/cbot/po/fr.po

10310 lines
301 KiB
Plaintext

# Copyright (C) 2016 Free Software Foundation, Inc.
# This file is distributed under the same license as the PACKAGE package.
# Didier Raboud <odyx@debian.org>, 2016.
msgid ""
msgstr ""
"Project-Id-Version: colobot-data 0.1.7\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: DATE\n"
"PO-Revision-Date: 2016-03-25 16:35+0100\n"
"Last-Translator: Didier Raboud <odyx@debian.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: Lokalize 2.0\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. type: \b; header
#: ../E/abstime.txt:1
#, no-wrap
msgid "Instruction <code>abstime</code>"
msgstr "Instruction <code>abstime</code>"
#. type: Plain text
#: ../E/abstime.txt:2 ../E/deletef.txt:6 ../E/delinfo.txt:2 ../E/errmode.txt:5 ../E/flatgrnd.txt:2 ../E/readln.txt:8 ../E/send.txt:2 ../E/strfind.txt:4 ../E/strleft.txt:4 ../E/strlen.txt:4 ../E/strlower.txt:4 ../E/strmid.txt:4 ../E/strright.txt:4 ../E/strupper.txt:4 ../E/strval.txt:8 ../E/testinfo.txt:2 ../E/writeln.txt:8
#, no-wrap
msgid "Syntax:"
msgstr "Syntaxe:"
#. type: Source code
#: ../E/abstime.txt:3
#, no-wrap
msgid "<c/>abstime ( );<n/>"
msgstr "<c/>abstime ( );<n/>"
#. type: Plain text
#: ../E/abstime.txt:5
#, no-wrap
msgid "Return the time in seconds elapsed since the beginning of the mission."
msgstr "Retourne le temps absolu depuis lequel la partie est commencée."
#. type: \t; header
#: ../E/abstime.txt:7
#, no-wrap
msgid "Return: <code><a cbot|float>float</a></code>"
msgstr "Valeur retournée: <code><a cbot|float>float</a></code>"
#. type: Plain text
#: ../E/abstime.txt:8
#, no-wrap
msgid "Time in seconds."
msgstr "Temps en secondes."
#. type: \t; header
#: ../E/abstime.txt:10 ../E/acos.txt:11 ../E/aim.txt:23 ../E/array.txt:41 ../E/asin.txt:11 ../E/atan.txt:11 ../E/atan2.txt:16 ../E/bloc.txt:48 ../E/bool.txt:4 ../E/break.txt:24 ../E/build.txt:27 ../E/buildingenabled.txt:22 ../E/busy.txt:14 ../E/canbuild.txt:22 ../E/canresearch.txt:14 ../E/category.txt:109 ../E/ceil.txt:12 ../E/class.txt:70 ../E/close.txt:6 ../E/cond.txt:4 ../E/continue.txt:24 ../E/cos.txt:11 ../E/deletef.txt:9 ../E/delinfo.txt:13 ../E/destroy.txt:15 ../E/detect.txt:27 ../E/direct.txt:13 ../E/dist.txt:29 ../E/dist2d.txt:13 ../E/do.txt:27 ../E/drop.txt:28 ../E/eof.txt:13 ../E/errmode.txt:32 ../E/expr.txt:197 ../E/extern.txt:29 ../E/factory.txt:21 ../E/false.txt:4 ../E/file.txt:16 ../E/fire.txt:30 ../E/flatgrnd.txt:16 ../E/flatspace.txt:25 ../E/float.txt:24 ../E/floor.txt:12 ../E/for.txt:51 ../E/function.txt:129 ../E/goto.txt:34 ../E/grab.txt:28 ../E/if.txt:39 ../E/int.txt:18 ../E/jet.txt:14 ../E/message.txt:24 ../E/motor.txt:38 ../E/move.txt:21 ../E/nan.txt:14 ../E/new.txt:20 ../E/null.txt:4 ../E/object.txt:79 ../E/open.txt:18 ../E/openfile.txt:10 ../E/pencolor.txt:14 ../E/pendown.txt:17 ../E/penup.txt:11 ../E/penwidth.txt:14 ../E/point.txt:35 ../E/pointer.txt:51 ../E/pow.txt:14 ../E/private.txt:17 ../E/produce.txt:30 ../E/public.txt:49 ../E/radar.txt:80 ../E/radarall.txt:19 ../E/rand.txt:8 ../E/readln.txt:18 ../E/receive.txt:16 ../E/recycle.txt:12 ../E/research.txt:18 ../E/researched.txt:14 ../E/researches.txt:27 ../E/retobj.txt:13 ../E/return.txt:29 ../E/round.txt:12 ../E/search.txt:25 ../E/send.txt:17 ../E/shield.txt:18 ../E/sin.txt:11 ../E/sizeof.txt:21 ../E/sniff.txt:16 ../E/space.txt:22 ../E/sqrt.txt:11 ../E/static.txt:20 ../E/strfind.txt:18 ../E/string.txt:32 ../E/strleft.txt:14 ../E/strlen.txt:12 ../E/strlower.txt:10 ../E/strmid.txt:18 ../E/strright.txt:14 ../E/strupper.txt:10 ../E/strval.txt:17 ../E/switch.txt:70 ../E/synchro.txt:23 ../E/takeoff.txt:15 ../E/tan.txt:11 ../E/term.txt:30 ../E/testinfo.txt:16 ../E/this.txt:52 ../E/thump.txt:12 ../E/topo.txt:13 ../E/true.txt:4 ../E/trunc.txt:12 ../E/turn.txt:32 ../E/type.txt:32 ../E/var.txt:66 ../E/void.txt:10 ../E/wait.txt:21 ../E/while.txt:46 ../E/writeln.txt:19
#, no-wrap
msgid "See also"
msgstr "Voir aussi"
#. type: Plain text
#: ../E/abstime.txt:11 ../E/aim.txt:24 ../E/array.txt:42 ../E/bool.txt:5 ../E/break.txt:25 ../E/busy.txt:15 ../E/cond.txt:5 ../E/continue.txt:25 ../E/deletef.txt:10 ../E/destroy.txt:16 ../E/detect.txt:28 ../E/direct.txt:14 ../E/dist.txt:30 ../E/dist2d.txt:14 ../E/drop.txt:29 ../E/errmode.txt:33 ../E/expr.txt:198 ../E/extern.txt:30 ../E/false.txt:5 ../E/fire.txt:31 ../E/flatgrnd.txt:17 ../E/flatspace.txt:26 ../E/float.txt:25 ../E/for.txt:52 ../E/function.txt:130 ../E/goto.txt:35 ../E/grab.txt:29 ../E/if.txt:40 ../E/int.txt:19 ../E/jet.txt:15 ../E/message.txt:25 ../E/move.txt:22 ../E/nan.txt:15 ../E/object.txt:80 ../E/openfile.txt:11 ../E/pencolor.txt:15 ../E/pendown.txt:18 ../E/penup.txt:12 ../E/penwidth.txt:15 ../E/point.txt:36 ../E/produce.txt:31 ../E/recycle.txt:13 ../E/retobj.txt:14 ../E/return.txt:30 ../E/search.txt:26 ../E/shield.txt:19 ../E/sizeof.txt:22 ../E/sniff.txt:17 ../E/space.txt:23 ../E/string.txt:33 ../E/switch.txt:71 ../E/takeoff.txt:16 ../E/term.txt:31 ../E/thump.txt:13 ../E/topo.txt:14 ../E/true.txt:5 ../E/turn.txt:33 ../E/type.txt:33 ../E/var.txt:67 ../E/void.txt:11 ../E/wait.txt:22
#, no-wrap
msgid ""
"<a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category"
">categories</a>."
msgstr ""
"<a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|category"
">catégories</a>."
#. type: \b; header
#: ../E/aim.txt:1
#, no-wrap
msgid "Instruction <code>aim</code>"
msgstr "Instruction <code>aim</code>"
#. type: Plain text
#: ../E/break.txt:2 ../E/continue.txt:2 ../E/direct.txt:2 ../E/motor.txt:15 ../E/while.txt:20
#, no-wrap
msgid "Syntax :"
msgstr "Syntaxe:"
#. type: Bullet: 'o'
#: ../E/aim.txt:6 ../E/fire.txt:14
#, no-wrap
msgid "<a object|botfr>Shooter</a>"
msgstr "<a object|botfr>Robot shooter</a>"
#. type: Bullet: 'o'
#: ../E/aim.txt:7 ../E/fire.txt:15
#, no-wrap
msgid "<a object|botor>Orga shooter</a>"
msgstr "<a object|botor>Robot orgaShooter</a>"
#. type: Bullet: 'o'
#: ../E/aim.txt:8 ../E/fire.txt:16
#, no-wrap
msgid "<a object|botphaz>Phazer shooter</a>"
msgstr "<a object|botphaz>Robot phazer</a>"
#. type: Plain text
#: ../E/fire.txt:18
#, no-wrap
msgid ""
"When controlling the robot through programming, the only way to turn the gun"
" left or right is to turn the whole robot with the instruction <code><a"
" cbot|turn>turn</a></code>."
msgstr ""
"Pour diriger le canon vers la gauche ou vers la droite, le seul moyen est"
" d'orienter le robot avec l'instuction <code><a cbot|turn>turn</a></code>."
#. type: \t; header
#: ../E/cos.txt:5 ../E/sin.txt:5 ../E/tan.txt:5 ../E/turn.txt:24
#, no-wrap
msgid "angle: <code><a cbot|float>float</a></code>"
msgstr "angle: <code><a cbot|float>float</a></code>"
#. type: Plain text
#: ../E/aim.txt:13
#, no-wrap
msgid ""
"Angle in degrees of the gun relative to the robot. A positive value orients"
" the gun upward. For shooters and orga shooters, the angle must range from <"
"code>-20</code> to <code>+20</code> degrees. For phazer shooters, the angle"
" must range from <code>-20</code> to <code>45</code> degrees."
msgstr ""
"Angle en degrés du canon. Un angle positif oriente le canon vers le haut."
" Pour les robots shooter, la valeur doit être comprise entre <code>-10</code>"
" et <code>+20</code> degrés. Pour les robots orgaShooter, la valeur doit être"
" comprise entre <code>-20</code> et <code>+20</code> degrés. Le robot phazer"
" accepte des valeurs comprises entre <code>-20</code> et <code>45</code>"
" degrés."
#. type: \t; header
#: ../E/aim.txt:18 ../E/build.txt:22 ../E/destroy.txt:10 ../E/drop.txt:23 ../E/factory.txt:16 ../E/fire.txt:25 ../E/goto.txt:29 ../E/grab.txt:23 ../E/move.txt:16 ../E/pencolor.txt:9 ../E/pendown.txt:12 ../E/penup.txt:6 ../E/penwidth.txt:9 ../E/recycle.txt:7 ../E/research.txt:13 ../E/sniff.txt:11 ../E/takeoff.txt:10 ../E/thump.txt:7 ../E/turn.txt:27
#, no-wrap
msgid "Return value: <code><a cbot|int>int</a></code>"
msgstr "Valeur retournée: <code><a cbot|int>int</a></code>"
#. type: Plain text
#: ../E/aim.txt:19
#, no-wrap
msgid ""
"Zero if everything is OK, a value different from zero if the rotation could"
" not be performed: \n"
"<code>== 0 </code>The gun has now got the desired orientation\n"
"<code>!= 0 </code>rotation impossible"
msgstr ""
"Zéro si tout est ok, ou valeur non nulle si une erreur est intervenue.\n"
"<code>== 0 </code>angle atteint\n"
"<code>!= 0 </code>rotation impossible"
#. type: \b; header
#: ../E/array.txt:1
#, no-wrap
msgid "Arrays"
msgstr "Les tableaux (pour spécialistes)"
#. type: Plain text
#: ../E/array.txt:2
#, no-wrap
msgid ""
"An array is basically a collection of variables of the same type or class."
" You can use N dimensionnal arrays in the CBOT language. Each dimension is"
" limited to 9999 elements. You must use square brackets <code>[]</code> after"
" the type name or the variable name to declare an array."
msgstr ""
"CBOT gère des tableaux de N dimensions, mais limités volontairement à un"
" maximum de 9999 éléments par dimension. Les tableaux peuvent être de chaque"
" type de base et même avec des éléments d'une classe quelconque. Pour"
" déclarer un tableau, il faut mettre des crochets <code>[]</code> après le"
" type, ou/et après le nom de la variable déclarée."
#. type: Plain text
#: ../E/array.txt:9
#, no-wrap
msgid ""
"Actually when the CBOT interpreter encounters an array declaration, it just"
" creates a <code><a cbot|null>null</a></code> <a cbot|pointer>reference</a>:"
msgstr ""
"En vérité, lors de la déclaration d'un tableau, CBOT attribue juste une <a"
" cbot|pointer>référence</a> nulle initialement:"
#. type: Source code
#: ../E/array.txt:11
#, no-wrap
msgid "int a[5]; // a is now a null reference"
msgstr "int a[5]; // a est une référence nulle"
#. type: Plain text
#: ../E/array.txt:13
#, no-wrap
msgid ""
"As soon as you put values into the array, the elements are created and the"
" reference is initialized:"
msgstr ""
"Dès que l'on met une valeur dans le tableau, CBOT crée les éléments"
" nécessaires et initialise la référence:"
#. type: Source code
#: ../E/array.txt:15
#, no-wrap
msgid ""
"a[2] = 213; // a points to\n"
" // 3 elements [0], [1] et [2]"
msgstr ""
"a[2] = 213; // a est une référence sur\n"
" // 3 éléments [0], [1] et [2]"
#. type: Plain text
#: ../E/array.txt:18
#, no-wrap
msgid ""
"After this operation, <code>a</code> contains a reference to the elements of"
" the array. Elements <code>[0]</code> and <code>[1]</code> are created but"
" not initialized because an array cannot contain empty elements. The <code><a"
" cbot|sizeof>sizeof</a></code> instruction allows you to obtain the number of"
" elements contained in an array."
msgstr ""
"Après cette opération, <code>a</code> contient une référence vers les"
" éléments du tableau. Les éléments <code>[0]</code> et <code>[1]</code> sont"
" créés (non initialisés) car un tableau ne peut pas avoir d'éléments vides.\n"
"L'instruction <code><a cbot|sizeof>sizeof</a></code> permet de connaître le"
" nombre d'éléments d'un tableau."
#. type: Plain text
#: ../E/array.txt:20
#, no-wrap
msgid ""
"When an array is declared with a maximum size, the program will stop as soon"
" as there is an access beyond the maximum array size. No error is signalled"
" during compilation even if the error is obvious:"
msgstr ""
"Lorsqu'un tableau est déclaré avec une taille maximale, le programme donne"
" une erreur lors de l'exécution si on essaie de mettre un élément de trop."
" Aucune erreur n'est signalée lors de la compilation même si l'erreur paraît"
" évidente:"
#. type: Source code
#: ../E/array.txt:22
#, no-wrap
msgid ""
"{\n"
"\tint a[5];\n"
"\ta[7] = 123; // no error at compile time\n"
"\t // but error at run time\n"
"}"
msgstr ""
"{\n"
"\tint a[5];\n"
"\ta[7] = 123; // pas d'erreur à la compilation\n"
"\t // mais erreur lors de l'exécution\n"
"}"
#. type: Plain text
#: ../E/array.txt:28
#, no-wrap
msgid ""
"If you pass an array as parameter to a <a cbot|function>function</a>, the"
" function only receives a <a cbot|pointer>reference</a> to the array. That"
" means if you modify an array element in the function, the element of the"
" array that has been passed the function will be actuallay modified."
msgstr ""
"Lorsqu'on donne un tableau comme paramètre d'une <a cbot|function>fonction</a"
">, c'est toujours une <a cbot|pointer>référence</a> qui est passée."
#. type: \b; header
#: ../E/bloc.txt:1
#, no-wrap
msgid "Blocks"
msgstr "Les blocs"
#. type: Plain text
#: ../E/bloc.txt:2
#, no-wrap
msgid ""
"You can use braces <code>{ }</code> to group a number of instructions"
" together in order to make one single block out of them, for example: "
msgstr ""
"Les accolades <code>{ }</code> permettent de grouper plusieurs instructions"
" dans un bloc. Par exemple:"
#. type: Source code
#: ../E/bloc.txt:4
#, no-wrap
msgid ""
"\t{\n"
"\t\tfloat t;\n"
"\t\tt = a;\n"
"\t\ta = b;\n"
"\t\tb = t; // switches round a and b\n"
"\t}"
msgstr ""
"\t{\n"
"\t\tfloat t;\n"
"\t\tt = a;\n"
"\t\ta = b;\n"
"\t\tb = t; // permute a et b\n"
"\t}"
#. type: Plain text
#: ../E/bloc.txt:11
#, no-wrap
msgid ""
"Every instruction in the block is followed by a <a cbot|term>semicolon</a>,"
" but the block itself is not. \n"
"Let us take the following example with the instruction <code><a cbot|if>if</a"
"></code> to illustrate the use of blocks in a program:"
msgstr ""
"Chaque instruction dans le bloc est terminée par un <a cbot|term"
">point-virgule</a>, mais pas le bloc lui-même.\n"
"Considérons l'exemple suivant utilisant l'instruction <code><a cbot|if>if</a"
"></code>:"
#. type: Source code
#: ../E/bloc.txt:14
#, no-wrap
msgid ""
"\tif ( a < b )\n"
"\t\t<n/>instruction 1<c/>;\n"
"\t\t<n/>instruction 2<c/>;\n"
"\t<n/>instruction 3<c/>;"
msgstr ""
"\tif ( a < b )\n"
"\t\t<n/>instruction 1<c/>;\n"
"\t\t<n/>instruction 2<c/>;\n"
"\t<n/>instruction 3<c/>;"
#. type: Plain text
#: ../E/bloc.txt:19
#, no-wrap
msgid ""
"If the <a cbot|cond>condition</a> is true, instructions 1, 2 and 3 are"
" performed. If the condition is false, only instruction 1 is ignored,"
" instructions 2 and 3 are performed. The fact that instruction 2 is lined up"
" with instruction 1 does not matter. \n"
"If you want to perform instructions 1 and 2 only if the condition is true,"
" you have to bracket them together in a block: "
msgstr ""
"Si la <a cbot|cond>condition</a> est vraie, les instructions 1, 2 et 3 sont"
" exécutées. En revanche, si la condition est fausse, seule l'instruction 1"
" est sautée (on exécute donc les instructions 2 et 3). Le fait que"
" l'instruction 2 soit alignée avec la 1 n'y change rien.\n"
"Pour n'exécuter les instructions 1 et 2 que si la condition est vraie, il"
" faut les grouper dans un bloc:"
#. type: Source code
#: ../E/bloc.txt:22
#, no-wrap
msgid ""
"\tif ( a < b )\n"
"\t{\n"
"\t\t<n/>instruction 1<c/>;\n"
"\t\t<n/>instruction 2<c/>;\n"
"\t}\n"
"\t<n/>instruction 3<c/>;"
msgstr ""
"\tif ( a < b )\n"
"\t{\n"
"\t\t<n/>instruction 1<c/>;\n"
"\t\t<n/>instruction 2<c/>;\n"
"\t}\n"
"\t<n/>instruction 3<c/>;"
#. type: Plain text
#: ../E/bloc.txt:29
#, no-wrap
msgid ""
"Blocks may be needed with instructions <code><a cbot|if>if</a></code>, <code"
"><a cbot|while>while</a></code> and <code><a cbot|for>for</a></code>, in"
" order to group several instructions that should be performed only if a"
" condition is true, or repeated several times. \n"
"You can fit blocks into other blocks, on as many levels as you need. Here is"
" an example of imbrication on two levels :"
msgstr ""
"Les blocs sont très utilisés avec les instructions <code><a cbot|if>if</a><"
"/code>, <code><a cbot|while>while</a></code> et <code><a cbot|for>for</a><"
"/code>, pour grouper plusieurs instructions à exécuter ou à répéter.\n"
"On imbrique très souvent des blocs dans d'autres blocs, et ceci à autant de"
" niveaux que nécessaire. Voici un exemple d'imbrication à deux niveaux:"
#. type: Source code
#: ../E/bloc.txt:32
#, no-wrap
msgid ""
"\tif ( a > b )\n"
"\t{\n"
"\t\tint i = 0;\n"
"\t\twhile ( i < 18 )\n"
"\t\t{\n"
"\t\t\tmove(10);\n"
"\t\t\tturn(5);\n"
"\t\t\ti = i+1;\n"
"\t\t}\n"
"\t}"
msgstr ""
"\tif ( a > b )\n"
"\t{\n"
"\t\tint i = 0;\n"
"\t\twhile ( i < 18 )\n"
"\t\t{\n"
"\t\t\tmove(10);\n"
"\t\t\tturn(5);\n"
"\t\t\ti = i+1;\n"
"\t\t}\n"
"\t}"
#. type: Plain text
#: ../E/bloc.txt:43
#, no-wrap
msgid ""
"You had better line up the open brace <code>{</code> with the closing brace <"
"code>}</code> in order to improve readability, but it is not compulsory. The"
" following example takes less space, is equivalent to the previous example,"
" but it is not advisable to write your programs in the following style : "
msgstr ""
"En général, pour des questions de lisibilité, on aligne verticalement"
" l'accolade ouvrante <code>{</code> avec sa partenaire fermante <code>}</code"
">. Mais cela n'est pas obligatoire. L'exemple suivant, beaucoup plus compact"
" mais déconseillé, est strictement équivalent à l'exemple précédent:"
#. type: Source code
#: ../E/bloc.txt:45
#, no-wrap
msgid ""
"\tif(a>b) { int i=0; while(i<18) {\n"
"\tmove(10);turn(5);i=i+1; }}"
msgstr ""
"\tif(a>b) { int i=0; while(i<18) {\n"
"\tmove(10);turn(5);i=i+1; }}"
#. type: Plain text
#: ../E/bloc.txt:49 ../E/do.txt:28 ../E/motor.txt:39 ../E/while.txt:47
#, no-wrap
msgid ""
"<a cbot>Instructions</a>, <a cbot|type>types</a> and <a cbot|category"
">categories</a>."
msgstr ""
"<a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|category"
">catégories</a>."
#. type: \b; header
#: ../E/bool.txt:1
#, no-wrap
msgid "Type <code>bool</code>"
msgstr "Type <code>bool</code>"
#. type: Plain text
#: ../E/bool.txt:2
#, no-wrap
msgid ""
"In a variable of this type you can put a boolean value, that is a value that"
" can take only two states: true or false. "
msgstr ""
"Ce type permet de représenter une valeur booléenne, c'est-à-dire une valeur"
" ne pouvant prendre que deux états: vrai ou faux."
#. type: \b; header
#: ../E/break.txt:1
#, no-wrap
msgid "Instruction <code>break</code>"
msgstr "Instruction <code>break</code>"
#. type: Source code
#: ../E/break.txt:3
#, no-wrap
msgid ""
"<c/>while ( condition )\n"
"{\n"
"\tbreak;\n"
"}"
msgstr ""
"<c/>while ( condition )\n"
"{\n"
"\tbreak;\n"
"}"
#. type: Plain text
#: ../E/break.txt:8
#, no-wrap
msgid ""
"With this instruction, you can get out immediately of a <code><a cbot|while"
">while</a></code> or <code><a cbot|for>for</a></code> loop."
msgstr ""
"Cette instruction permet de sortir immédiatement d'une structure <code><a"
" cbot|while>while</a></code> ou <code><a cbot|for>for</a></code>."
#. type: Plain text
#: ../E/break.txt:10 ../E/continue.txt:10
#, no-wrap
msgid "Here is an example:"
msgstr "Voici un exemple d'utilisation:"
#. type: Source code
#: ../E/break.txt:11
#, no-wrap
msgid ""
"<c/>int i = 0;\n"
"while ( true )\n"
"{\n"
"\t<n/>Instructions ...<c/>\n"
"\ti = i+1;\n"
"\tif ( i >= 10 )\n"
"\t{\n"
"\t\tbreak;\n"
"\t}\n"
"\t<n/>more instructions ...<c/>\n"
"}"
msgstr ""
"<c/>int i = 0;\n"
"while ( true )\n"
"{\n"
"\t<n/>Instructions …<c/>\n"
"\ti = i+1;\n"
"\tif ( i >= 10 )\n"
"\t{\n"
"\t\tbreak;\n"
"\t}\n"
"\t<n/>plus d'instructions …<c/>\n"
"}"
#. type: \b; header
#: ../E/category.txt:1
#, no-wrap
msgid "Value <code>Categories</code>"
msgstr "Valeur <code>catégorie</code>"
#. type: Plain text
#: ../E/category.txt:2
#, no-wrap
msgid ""
"Categories represent the names of objects in the CBOT language. Everything in"
" COLOBOT is an object: robots, buildings, raw materials, etc., even yourself."
msgstr ""
"La catégorie détermine la nature d'un objet. Dans COLOBOT, tout est objet:"
" les robots, les bâtiments, les matières premières, les éléments du décor,"
" etc."
#. type: Plain text
#: ../E/category.txt:34
#, no-wrap
msgid ""
" <code><a object|titanore>TitaniumOre</a> </code>Titanium Ore\n"
" <code><a object|uranore>UraniumOre</a> </code>Uranium Ore\n"
" <code><a object|titan>Titanium</a> </code>Cube of"
" converted Titanium\n"
" <code><a object|power>PowerCell</a> </code>Regular Power"
" Cell\n"
" <code><a object|atomic>NuclearCell</a> </code>Nuclear Power"
" Cell\n"
" <code><a object|bullet>OrgaMatter</a> </code>Organic Matter\n"
" <code><a object|bbox>BlackBox</a> </code>Black Box\n"
" <code><a object|tnt>TNT</a> </code>Explosive device\n"
" <code><a object|key>KeyA..D</a> </code>Keys A, B, C and D"
msgstr ""
" <code><a object|titanore>TitaniumOre</a> </code>Minerai de"
" titanium\n"
" <code><a object|uranore>UraniumOre</a> </code>Minerai d'uranium\n"
" <code><a object|titan>Titanium</a> </code>Titanium\n"
" <code><a object|power>PowerCell</a> </code>Pile normale\n"
" <code><a object|atomic>NuclearCell</a> </code>Pile atomique\n"
" <code><a object|bullet>OrgaMatter</a> </code>Matière organique\n"
" <code><a object|bbox>BlackBox</a> </code>Boîte noire\n"
" <code><a object|key>KeyA..D</a> </code>Clés A, B C et D\n"
" <code><a object|tnt>TNT</a> </code>Caisse d'explosif"
#. type: Plain text
#: ../E/category.txt:47
#, no-wrap
msgid ""
"<button 158/> <code><a object|bottr>PracticeBot</a> </code"
">Practice Bot\n"
"<button 173/> <code><a object|bottarg>TargetBot</a> </code"
">Target Bot"
msgstr ""
"<button 158/> <code><a object|bottr>PracticeBot</a> </code>Robot"
" d'entraînement\n"
"<button 173/> <code><a object|bottarg>TargetBot</a> </code>Robot"
" cible"
#. type: Plain text
#: ../E/category.txt:50
#, no-wrap
msgid ""
"<button 137/> <code><a object|botgr>WheeledGrabber</a> </code"
">Wheeled Grabber\n"
"<button 138/> <code><a object|botgc>TrackedGrabber</a> </code"
">Tracked Grabber\n"
"<button 139/> <code><a object|botgj>WingedGrabber</a> </code"
">Winged Grabber\n"
"<button 150/> <code><a object|botgs>LeggedGrabber</a> </code"
">Legged Grabber"
msgstr ""
"<button 137/> <code><a object|botgr>WheeledGrabber</a> </code>Robot"
" déménageur\n"
"<button 138/> <code><a object|botgc>TrackedGrabber</a></code>\n"
"<button 139/> <code><a object|botgj>WingedGrabber</a></code>\n"
"<button 150/> <code><a object|botgs>LeggedGrabber</a></code>"
#. type: Plain text
#: ../E/category.txt:55
#, no-wrap
msgid ""
"<button 140/> <code><a object|botsr>WheeledSniffer</a> </code"
">Wheeled Sniffer\n"
"<button 141/> <code><a object|botsc>TrackedSniffer</a> </code"
">Tracked Sniffer\n"
"<button 142/> <code><a object|botsj>WingedSniffer</a> </code"
">Winged Sniffer\n"
"<button 152/> <code><a object|botss>LeggedSniffer</a> </code"
">Legged Sniffer"
msgstr ""
"<button 140/> <code><a object|botsr>WheeledSniffer</a> </code>Robot"
" renifleur\n"
"<button 141/> <code><a object|botsc>TrackedSniffer</a></code>\n"
"<button 142/> <code><a object|botsj>WingedSniffer</a></code>\n"
"<button 152/> <code><a object|botss>LeggedSniffer</a></code>"
#. type: Plain text
#: ../E/category.txt:60
#, no-wrap
msgid ""
"<button 143/> <code><a object|botfr>WheeledShooter</a> </code"
">Wheeled Shooter\n"
"<button 144/> <code><a object|botfc>TrackedShooter</a> </code"
">Tracked Shooter\n"
"<button 145/> <code><a object|botfj>WingedShooter</a> </code"
">Winged Shooter\n"
"<button 151/> <code><a object|botfs>LeggedShooter</a> </code"
">Legged Shooter"
msgstr ""
"<button 143/> <code><a object|botfr>WheeledShooter</a> </code>Robot"
" canon shooter\n"
"<button 144/> <code><a object|botfc>TrackedShooter</a></code>\n"
"<button 145/> <code><a object|botfj>WingedShooter</a></code>\n"
"<button 151/> <code><a object|botfs>LeggedShooter</a></code>"
#. type: Plain text
#: ../E/category.txt:65
#, no-wrap
msgid ""
"<button 153/> <code><a object|botor>WheeledOrgaShooter</a> </code"
">Wheeled Orga Shooter\n"
"<button 154/> <code><a object|botoc>TrackedOrgaShooter</a> </code"
">Tracked Orga Shooter\n"
"<button 155/> <code><a object|botoj>WingedOrgaShooter</a> </code"
">Winged Orga Shooter\n"
"<button 156/> <code><a object|botos>LeggedOrgaShooter</a> </code"
">Legged Orga Shooter"
msgstr ""
"<button 153/> <code><a object|botor>WheeledOrgaShooter</a> </code>Robot"
" canon orgaShooter\n"
"<button 154/> <code><a object|botoc>TrackedOrgaShooter</a></code>\n"
"<button 155/> <code><a object|botoj>WingedOrgaShooter</a></code>\n"
"<button 156/> <code><a object|botos>LeggedOrgaShooter</a></code>"
#. type: Plain text
#: ../E/category.txt:70
#, no-wrap
msgid ""
"<button 149/> <code><a object|botsub>Subber</a> </code"
">Subber\n"
"<button 148/> <code><a object|botrecy>Recycler</a> </code"
">Recycler\n"
"<button 157/> <code><a object|botshld>Shielder</a> </code"
">Shielder\n"
"<button 146/> <code><a object|bottump>Thumper</a> </code"
">Thumper\n"
"<button 147/> <code><a object|botphaz>PhazerShooter</a> </code"
">Phazer Shooter"
msgstr ""
"<button 149/> <code><a object|botsub>Subber</a> </code>Robot"
" sous-marin\n"
"<button 148/> <code><a object|botrecy>Recycler</a> </code>Robot"
" recycleur\n"
"<button 146/> <code><a object|bottump>Thumper</a> </code>Robot"
" secoueur\n"
"<button 157/> <code><a object|botshld>Shielder</a> </code>Robot"
" bouclier\n"
"<button 147/> <code><a object|botphaz>PhazerShooter</a> </code>Robot"
" phazer"
#. type: Plain text
#: ../E/category.txt:79
#, no-wrap
msgid ""
" <code><a object|mother>AlienQueen</a> </code>Alien Queen\n"
" <code><a object|egg>AlienEgg</a> </code>Alien Egg\n"
" <code><a object|ant>AlienAnt</a> </code>Ant\n"
" <code><a object|spider>AlienSpider</a> </code>Spider\n"
" <code><a object|wasp>AlienWasp</a> </code>Wasp\n"
" <code><a object|worm>AlienWorm</a> </code>Worm"
msgstr ""
" <code><a object|mother>AlienQueen</a> </code>Mère pondeuse\n"
" <code><a object|egg>AlienEgg</a> </code>Oeuf\n"
" <code><a object|ant>AlienAnt</a> </code>Fourmi\n"
" <code><a object|spider>AlienSpider</a> </code>Araignée\n"
" <code><a object|wasp>AlienWasp</a> </code>Guêpe\n"
" <code><a object|worm>AlienWorm</a> </code>Ver"
#. type: Plain text
#: ../E/category.txt:89
#, no-wrap
msgid ""
"<button 136/> <code><a object|human>Me</a> </code>You!\n"
" <code><a object|mine>Mine</a> </code>Mine\n"
" <code><a object|barrier>Barrier</a> </code>Barrier\n"
" <code><a object|wreck>Wreck</a> </code>Derelict bot\n"
" <code><a object|ruin>Ruin</a> </code>Derelict building"
msgstr ""
"<button 136/> <code><a object|human>Me</a> </code>Vous!\n"
" <code><a object|mine>Mine</a> </code>Mine fixe\n"
" <code><a object|barrier>Barrier</a> </code>Barrière fixe\n"
" <code><a object|wreck>Wreck</a> </code>Epave de robot\n"
" <code>Ruin </code>Bâtiment en ruine"
#. type: Plain text
#: ../E/category.txt:110
#, no-wrap
msgid "<a cbot>CBOT Language</a> and <a cbot|type>Variables</a>."
msgstr "<a cbot>Programmation</a> et <a cbot|type>types</a>."
#. type: \b; header
#: ../E/class.txt:1
#, no-wrap
msgid "Instruction <code>class</code>"
msgstr "Instruction <code>class</code> (pour spécialistes)"
#. type: Plain text
#: ../E/class.txt:2
#, no-wrap
msgid "This allows you to declare a class definition using following syntax:"
msgstr "La syntaxe pour déclarer une classe est la suivante:"
#. type: Source code
#: ../E/class.txt:4
#, no-wrap
msgid ""
"public class ClassName\n"
"{\n"
"\tdeclarations;\n"
"}"
msgstr ""
"public class NomDeLaClasse \n"
"{\n"
"\tdéclarations;\n"
"}"
#. type: Plain text
#: ../E/class.txt:9
#, no-wrap
msgid ""
"Classes can only be <a cbot|public>public</a>, that is they can be used from"
" all bots in a mission. Class members are also public, that is they are"
" accessible from outside the class. Class members can be fields or functions"
" (also called methods), for example the followin class <code>MyClass</code>"
" contains 4 fields (a, b, x and s) and one method (MyFunction)."
msgstr ""
"La classe est d'office <a cbot|public>publique</a> (disponible partout). Les"
" membres de la classe sont également publiques (disponible à tous). Les"
" déclarations peuvent être des déclarations de champs ou des déclarations de"
" méthodes (avec le <a cbot|bloc>bloc</a> d'exécution). Une classe peut"
" contenir des <a cbot|var>variables</a> et des <a cbot|function>fonctions</a"
">. Mais dans la terminologie des langages orientés objets, on les appelle"
" \"champs\" et \"méthodes\". Le terme \"membre\" désigne un champ ou une"
" méthode."
#. type: Source code
#: ../E/class.txt:11
#, no-wrap
msgid ""
"public class MyClass\n"
"{\n"
"\tint a, b;\n"
"\tfloat x = 3.33;\n"
"\tstring s = \"hello\";\n"
"\tfloat MyFunction( float value )\n"
"\t{\n"
"\t\treturn (value*x)-1;\n"
"\t}\n"
"}"
msgstr ""
"public class MaClasse\n"
"{\n"
"\tint a, b;\n"
"\tfloat x = 3.33;\n"
"\tstring s = \"hello\";\n"
"\tfloat MaPrimitive( float value )\n"
"\t{\n"
"\t\treturn (value*x)-1;\n"
"\t}\n"
"}"
#. type: Plain text
#: ../E/class.txt:22
#, no-wrap
msgid ""
"As shown in this exemple the class members can be initialized (<code>x=3.33<"
"/code>). You can also define a constructor which is a special method having"
" the same name as the class name. This method will be called automatically at"
" creation time of a class instance. You can also declare more than one method"
" with the same name but different parameters."
msgstr ""
"Comme le montre cet exemple, il est possible d'initialiser la valeur des"
" champs par défaut (<code>x=3.33</code>), ce qui rend le constructeur"
" inutile. Toutefois, il est possible de définir un constructeur, en créant"
" une méthode (de type <code>void</code>) ayant le même nom que la classe.\n"
"Il est également possible de définir plusieurs méthodes ayant le même nom,"
" mais avec des paramètres différents (ce qui est aussi valable pour les <a"
" cbot|function>fonctions</a>)."
#. type: Source code
#: ../E/class.txt:24
#, no-wrap
msgid ""
"public class MyClass\n"
"{\n"
"\tint a, b;\n"
"\tvoid MyClass( )\n"
"\t{\n"
"\t\ta = 2; b = 3;\n"
"\t}\n"
"\tvoid MyClass( int a, int b )\n"
"\t{\n"
"\t\tthis.a = a; this.b = b;\n"
"\t}\n"
"}"
msgstr ""
"public class MaClasse\n"
"{\n"
"\tint a, b;\n"
"\tvoid MaClasse( )\n"
"\t{\n"
"\t\ta = 2; b = 3;\n"
"\t}\n"
"\tvoid MaClasse( int a, int b )\n"
"\t{\n"
"\t\tthis.a = a; this.b = b;\n"
"\t}\n"
"}"
#. type: Plain text
#: ../E/class.txt:37
#, no-wrap
msgid ""
"In this example two constructors are declared for <code>MyClass</code>, one"
" without parameters and the other one with two parameters. As the names of"
" the parameters of the second constructor are the same as the names of the"
" two members <code>a</code> et <code>b</code> we must use the <code><a"
" cbot|this>this</a>.a</code> and <code><a cbot|this>this</a>.b</code> to"
" avoid confusion with the parameters. Another more simpler solution would be"
" to give different names to the parameters."
msgstr ""
"Cet exemple déclare deux constructeurs pour <code>MaClasse</code>, l'un sans"
" paramètre, l'autre avec deux paramètres. Comme les paramètres ont été nommés"
" avec le même nom que les éléments <code>a</code> et <code>b</code>, il est"
" nécessaire d'utiliser <code><a cbot|this>this</a>.a</code> et <code><a"
" cbot|this>this</a>.b</code> pour accéder aux éléments de l'instance (une"
" solution plus simple consiste à donner des noms différents pour les"
" paramètres).\n"
"Les constructeurs sont appelés automatiquement à la définition d'une instance"
" de la classe."
#. type: Source code
#: ../E/class.txt:39
#, no-wrap
msgid ""
"void Test( )\n"
"{\n"
"\tMyClass item1(); // constr. w/o parameters\n"
"\tMyClass item2(4, 5); // constr. with 2 parameters\n"
"\tMyClass item3; // no constructor called,\n"
" // therefore item3 == null\n"
"}"
msgstr ""
"void Test( )\n"
"{\n"
"\tMaClasse item1(); // constr. sans paramètre\n"
"\tMaClasse item2(4, 5); // constr. avec 2 paramètres\n"
"\tMaClasse item3; // pas de constructeur,\n"
" // item3 == null\n"
"}"
#. type: Plain text
#: ../E/class.txt:47
#, no-wrap
msgid ""
"You can also define a destructor. This must be a <code>void</code> fonction"
" without parameters that has the same name as the class name but prefixed by"
" the ~ character. The destructor is called automatically as soon as the class"
" instance is no more referenced by anyone."
msgstr ""
"Un destructeur peut être également défini. C'est une méthode <code>void</code"
"> sans paramètre ayant le nom de la classe précédé du caractère \"tilde\" ~."
" Le destructeur est appelé dès qu'il n'y a plus aucune <a cbot|pointer"
">référence</a> vers une instance donnée."
#. type: Source code
#: ../E/class.txt:49
#, no-wrap
msgid ""
"public class MyClass\n"
"{\n"
"\tstatic private int counter = 0; // instance counter\n"
"\tvoid MyClass( )\n"
"\t{\n"
"\t\tcounter ++; // one instance more\n"
"\t}\n"
"\tvoid ~MyClass( )\n"
"\t{\n"
"\t\tcounter --; // one instance less\n"
"\t}\n"
"}\n"
"void Test()\n"
"{\n"
"\tMyClass item1( ); // counter = 1\n"
"\tMyClass item2( ); // counter = 2\n"
"\titem1 = null; // counter = 1\n"
"} // counter = 0"
msgstr ""
"public class MaClasse\n"
"{\n"
"\tstatic private int compteur = 0;\n"
"\tvoid MaClasse( ) { compteur ++ ); // compte\n"
"\tvoid ~MaClasse( ) { compteur -- }; // décompte\n"
"}\n"
"void Test()\n"
"{\n"
"\tMaClasse item1( ); // compteur = 1\n"
"\tMaClasse item2( ); // compteur = 2\n"
"\titem1 = null; // compteur = 1\n"
"} // compteur = 0"
#. type: Plain text
#: ../E/class.txt:68
#, no-wrap
msgid ""
"If you pass a class instance as parameter to a <a cbot|function>function</a>,"
" the function only receives a <a cbot|pointer>reference</a> to the instance."
" That means if you modify the instance in the function, the instance that has"
" been passed to the function will be actuallay modified."
msgstr ""
"Lorsqu'on donne l'instance d'une classe comme paramètre d'une <a"
" cbot|function>fonction</a>, c'est toujours la <a cbot|pointer>référence</a>"
" qui est passée."
#. type: Plain text
#: ../E/class.txt:71
#, no-wrap
msgid ""
"<code><a cbot|public>public</a></code>, <code><a cbot|private>private</a><"
"/code>, <code><a cbot|static>static</a></code>, <code><a cbot|synchro"
">synchronized</a></code>, <code><a cbot|new>new</a></code>, <code><a"
" cbot|pointer>reference</a></code>, <code><a cbot|this>this</a></code>\n"
"<a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category"
">categories</a>."
msgstr ""
"<code><a cbot|public>public</a></code>, <code><a cbot|private>private</a><"
"/code>, <code><a cbot|static>static</a></code>, <code><a cbot|synchro"
">synchronized</a></code>, <code><a cbot|new>new</a></code>, <code><a"
" cbot|pointer>pointer</a></code>\n"
"<a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|category"
">catégories</a>."
#. type: \b; header
#: ../E/close.txt:1
#, no-wrap
msgid "Instruction <code>close</code>"
msgstr "Instruction <code>close</code>"
#. type: Plain text
#: ../E/close.txt:2
#, no-wrap
msgid ""
"Close a file opened previously with <code><a cbot|open>open</a></code>. This"
" is a method of the <code><a cbot|file>file</a></code> class; therefore you"
" cannot write <code>close()</code> but only <code>handle.close()</code>:"
msgstr ""
"L'instruction <c/>close();<n/> ferme un fichier de texte dans le dossier"
" files/. Cette instruction est une méthode de la classe <code><a cbot|file"
">file</a></code>. C'est la raison pour laquelle on n'écrit jamais <code"
">close()</code> tout seul, mais <code>handle.close()</code>:"
#. type: Source code
#: ../E/close.txt:4
#, no-wrap
msgid "\thandle.close();"
msgstr "\thandle.close();"
#. type: Plain text
#: ../E/close.txt:7
#, no-wrap
msgid ""
"<code><a cbot|file>file</a></code>, <code><a cbot|open>open</a></code>, <code"
"><a cbot|readln>readln</a></code>, <code><a cbot|writeln>writeln</a></code>"
" and <code><a cbot|eof>eof</a></code>.\n"
"<a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category"
">categories</a>."
msgstr ""
"<code><a cbot|file>file</a></code>, <code><a cbot|open>open</a></code>, <code"
"><a cbot|readln>readln</a></code>, <code><a cbot|writeln>writeln</a></code>"
" et <code><a cbot|eof>eof</a></code>.\n"
"<a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|category"
">catégories</a>."
#. type: \b; header
#: ../E/cond.txt:1
#, no-wrap
msgid "Conditions"
msgstr "Les conditions"
#. type: Plain text
#: ../E/expr.txt:116
#, no-wrap
msgid ""
"<code>a == b </code><code>a</code> equals <code>b</code>\n"
"<code>a != b </code><code>a</code> is different from <code>b</code>\n"
"<code>a < b </code><code>a</code> smaller than <code>b</code>\n"
"<code>a <= b </code><code>a</code> smaller than or equal to <code>b</code>\n"
"<code>a > b </code><code>a</code> greater than <code>b</code>\n"
"<code>a >= b </code><code>a</code> greater than or equal to <code>b</code>"
msgstr ""
"<code>a == b </code><code>a</code> égal à <code>b</code>\n"
"<code>a!= b </code><code>a</code> différent de <code>b</code>\n"
"<code>a < b </code><code>a</code> plus petit que <code>b</code>\n"
"<code>a <= b </code><code>a</code> plus petit ou égal à <code>b</code>\n"
"<code>a > b </code><code>a</code> plus grand que <code>b</code>\n"
"<code>a >= b </code><code>a</code> plus grand ou égal à <code>b</code>"
#. type: Plain text
#: ../E/expr.txt:124
#, no-wrap
msgid ""
"<code>12 == 12 </code>returns true\n"
"<code>45 != 47 </code>returns true \n"
"<code>99 == 98 </code>returns false\n"
"<code>12 < -1 </code>returns false\n"
"<code>12 >= 10 </code>returns true \n"
"<code>12 >= 12 </code>returns true "
msgstr ""
"<code>12 == 12 </code>retourne vrai\n"
"<code>45!= 47 </code>retourne vrai\n"
"<code>99 == 98 </code>retourne faux\n"
"<code>12 < -1 </code>retourne faux\n"
"<code>12 >= 10 </code>retourne vrai\n"
"<code>12 >= 12 </code>retourne vrai"
#. type: Plain text
#: ../E/expr.txt:132
#, no-wrap
msgid ""
"Be careful not to confuse the equality comparison <code>==</code> with the"
" assignment of a <a cbot|var>variable</a> <code>=</code>."
msgstr ""
"Il faut faire très attention à ne pas confondre la comparaison d'égalité <"
"code>==</code> avec l'affectation d'une <a cbot|var>variable</a> <code>=<"
"/code>."
#. type: Plain text
#: ../E/expr.txt:134
#, no-wrap
msgid ""
"<code>a == b</code> is an expression that compares <code>a</code> with <code"
">b</code>.\n"
"<code>a = b</code> is an expression that copies the value of <code>b</code>"
" into <code>a</code>."
msgstr ""
"<code>a == b</code> est une expression qui compare <code>a</code> avec <code"
">b</code>.\n"
"<code>a = b</code> est une expression qui copie la valeur de <code>b</code>"
" dans <code>a</code>."
#. type: \b; header
#: ../E/continue.txt:1
#, no-wrap
msgid "Instruction <code>continue</code>"
msgstr "Instruction <code>continue</code>"
#. type: Source code
#: ../E/continue.txt:3
#, no-wrap
msgid ""
"<c/>while ( condition )\n"
"{\n"
"\tcontinue;\n"
"}"
msgstr ""
"<c/>while ( condition )\n"
"{\n"
"\tcontinue;\n"
"}"
#. type: Plain text
#: ../E/continue.txt:8
#, no-wrap
msgid ""
"With this instruction, you can jump over the rest of instructions in the <"
"code><a cbot|bloc>bloc</a></code> of a <code><a cbot|while>while</a></code>"
" or <code><a cbot|for>for</a></code> loop: The execution will resume at the"
" beginning of the bloc, the next time the loop is repeated."
msgstr ""
"Cette instruction permet de passer prématurément au tour de boucle suivant."
" On peut l'utiliser dans un bloc après une instruction <code><a cbot|while"
">while</a></code> ou <code><a cbot|for>for</a></code>."
#. type: Source code
#: ../E/continue.txt:11
#, no-wrap
msgid ""
"<c/>int i = 0;\n"
"while ( i < 5 )\n"
"{\n"
"\ti = i+1;\n"
"\tif ( i == 3 )\n"
"\t{\n"
"\t\tcontinue;\n"
"\t}\n"
"\t<n/>Instructions ...<c/>\n"
"}"
msgstr ""
"<c/>int i = 0;\n"
"while ( i < 5 )\n"
"{\n"
"\ti = i+1;\n"
"\tif ( i == 3 )\n"
"\t{\n"
"\t\tcontinue;\n"
"\t}\n"
"\t<n/>Instructions ...<c/>\n"
"}"
#. type: Plain text
#: ../E/continue.txt:22
#, no-wrap
msgid ""
"The instructions will only be executed for the values of <code>i</code> 1, 2,"
" 4 and 5."
msgstr ""
"Les instructions seront exécutées pour les valeurs de <code>i</code> 1, 2, 4"
" et 5."
#. type: \b; header
#: ../E/deletef.txt:1
#, no-wrap
msgid "Instruction <code>deletefile</code>"
msgstr "Instruction <code>deletefile</code>"
#. type: Plain text
#: ../E/deletef.txt:2
#, no-wrap
msgid ""
"The deletefile instruction deletes an existing file in the files/ folder. "
msgstr ""
"L'instruction <c/>deletefile();<n/> supprime un fichier dans le dossier"
" files/."
#. type: Plain text
#: ../E/deletef.txt:4
#, no-wrap
msgid ""
"Files can only be deleted in the files/ folder which is located in the folder"
" where Colobot has been installed. You cannot not delete files that are"
" located elsewhere than in the files/ folder."
msgstr ""
"Les fichiers ne peuvent être supprimés que dans le dossier files/, situé là"
" où Colobot a été installé. Il n'est pas possible de supprimer des fichiers"
" situés ailleurs que dans ce dossier files/."
#. type: Source code
#: ../E/deletef.txt:7
#, no-wrap
msgid "<c/>deletefile ( filename );<n/>"
msgstr "<c/>deletefile ( filename );<n/>"
#. type: \b; header
#: ../E/delinfo.txt:1
#, no-wrap
msgid "Instruction <code>deleteinfo</code>"
msgstr "Instruction <code>deleteinfo</code>"
#. type: Source code
#: ../E/delinfo.txt:3
#, no-wrap
msgid "<c/>deleteinfo ( name, power );<n/>"
msgstr "<c/>deleteinfo ( name, power );<n/>"
#. type: Plain text
#: ../E/delinfo.txt:5
#, no-wrap
msgid ""
"Delete an existing information in the closest <a object|exchange>information"
" exchange post</a>."
msgstr ""
"Supprime une information de la <a object|exchange>borne</a> la plus proche."
#. type: \t; header
#: ../E/delinfo.txt:7 ../E/receive.txt:7 ../E/send.txt:7 ../E/testinfo.txt:7
#, no-wrap
msgid "name: <code>string</code>"
msgstr "name: <code>string</code>"
#. type: Plain text
#: ../E/delinfo.txt:8
#, no-wrap
msgid ""
"Name of the information to be deleted. This name is a string: it must be"
" written in quotation marks \"\"."
msgstr ""
"Nom de l'information à supprimer dans la borne. Ce nom est une chaîne de"
" caractères; il doit donc être donné entre guillemets \"\"."
#. type: \t; header
#: ../E/delinfo.txt:10 ../E/receive.txt:10 ../E/send.txt:14 ../E/testinfo.txt:10
#, no-wrap
msgid "power: <code>float</code>"
msgstr "power: <code>float</code>"
#. type: Plain text
#: ../E/delinfo.txt:11
#, no-wrap
msgid ""
"Power of the transmitter, which corresponds to the maximal distance between"
" the sender and the exchange post. If the distance is longer, the information"
" won't be deleted. Default value is 10 metres."
msgstr ""
"Puissance de l'émetteur, qui correspond à la distance maximale jusqu'où peut"
" être la borne. La valeur par défaut est de 10 mètres."
#. type: Plain text
#: ../E/delinfo.txt:14
#, no-wrap
msgid ""
"<code><a cbot|receive>receive</a></code>, <code><a cbot|send>send</a></code>"
" and <code><a cbot|testinfo>testinfo</a></code>.\n"
"<a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category"
">categories</a>."
msgstr ""
"<code><a cbot|receive>receive</a></code>, <code><a cbot|send>send</a></code>"
" et <code><a cbot|testinfo>testinfo</a></code>.\n"
"<a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|category"
">catégories</a>."
#. type: \b; header
#: ../E/direct.txt:1
#, no-wrap
msgid "Instruction <code>direction</code>"
msgstr "Instruction <code>direction</code>"
#. type: Source code
#: ../E/direct.txt:3
#, no-wrap
msgid "<c/>direction ( pos );<n/>"
msgstr "<c/>direction ( pos );<n/>"
#. type: Plain text
#: ../E/direct.txt:5
#, no-wrap
msgid ""
"Calculates the rotation that a robot must perform in order to point towards a"
" given position. "
msgstr ""
"Calcule la direction que doit prendre le robot pour se diriger vers une"
" position donnée."
#. type: \t; header
#: ../E/direct.txt:7 ../E/goto.txt:17
#, no-wrap
msgid "pos: <code><a cbot|point>point</a></code>"
msgstr "pos: <code><a cbot|point>point</a></code>"
#. type: Plain text
#: ../E/direct.txt:8
#, no-wrap
msgid "Position towards which the robot must point."
msgstr "Position à atteindre."
#. type: \t; header
#: ../E/acos.txt:8 ../E/asin.txt:8 ../E/atan.txt:8 ../E/atan2.txt:13 ../E/ceil.txt:9 ../E/cos.txt:8 ../E/direct.txt:10 ../E/dist.txt:26 ../E/dist2d.txt:10 ../E/flatgrnd.txt:13 ../E/floor.txt:9 ../E/pow.txt:11 ../E/rand.txt:5 ../E/receive.txt:13 ../E/round.txt:9 ../E/sin.txt:8 ../E/sqrt.txt:8 ../E/tan.txt:8 ../E/topo.txt:10 ../E/trunc.txt:9
#, no-wrap
msgid "Return value: <code><a cbot|float>float</a></code>"
msgstr "Valeur retournée: <code><a cbot|float>float</a></code>"
#. type: Plain text
#: ../E/direct.txt:11
#, no-wrap
msgid ""
"Angle of the rotation that must be performed. -90 means f. ex. a rotation of"
" 90 degrees to the right. "
msgstr ""
"Angle en degré de la rotation à effectuer. -90 signifie une rotation d'un"
" quart de tour vers la droite, par exemple."
#. type: \b; header
#: ../E/dist.txt:1
#, no-wrap
msgid "Instruction <code>distance</code>"
msgstr "Instruction <code>distance</code>"
#. type: Plain text
#: ../E/dist.txt:2
#, no-wrap
msgid ""
"With the instruction <code>distance( , )</code> you can calculate the"
" distance between two positions."
msgstr ""
"Avec l'instruction <code>distance( , )</code> vous pouvez calculer la"
" distance entre deux positions. "
#. type: \b; header
#: ../E/build.txt:4 ../E/buildingenabled.txt:4 ../E/canbuild.txt:4 ../E/dist.txt:4 ../E/drop.txt:4 ../E/fire.txt:4 ../E/function.txt:16 ../E/goto.txt:4 ../E/grab.txt:4 ../E/if.txt:4 ../E/motor.txt:4 ../E/move.txt:4 ../E/radar.txt:4 ../E/switch.txt:4 ../E/turn.txt:4 ../E/wait.txt:4 ../E/while.txt:4
#, no-wrap
msgid "Basic use"
msgstr "Utilisation courante"
#. type: Plain text
#: ../E/dist.txt:5
#, no-wrap
msgid ""
"If you write <code>position</code> alone, this gives you the position of the"
" bot that executes the program. If you write the name of a variable followed"
" by <code>.position</code>, this gives you the position of the object"
" described in the variable."
msgstr ""
"Si vous écrivez <code>position</code> tout seul, cela donne la position du"
" robot qui exécute le programme. Si vous écrivez le nom d'une variable suivie"
" de <code>.position</code>, cela donne la position de l'objet décrit par la"
" variable."
#. type: Plain text
#: ../E/dist.txt:7
#, no-wrap
msgid ""
"Here is a program that moves forward, covering exactly the distance between"
" the bot and the closest ant:"
msgstr ""
"Voici comment avancer d'une distance égale à la distance entre le robot et la"
" fourmi la plus proche:"
#. type: Source code
#: ../E/dist.txt:9
#, no-wrap
msgid ""
"\titem = <a cbot|radar>radar</a>(AlienAnt);\n"
"\t<a cbot|move>move</a>(distance(position, item.position));"
msgstr ""
"\tchose = <a cbot|radar>radar</a>(AlienAnt);\n"
"\t<a cbot|move>move</a>(distance(position, chose.position));"
#. type: Plain text
#: ../E/dist.txt:12
#, no-wrap
msgid ""
"This is of course pure suicide. Better to stop 40 meters before, in order to"
" be at shooting range:"
msgstr ""
"Ceci est bien sûr parfaitement suicidaire, mieux vaut s'arrêter 40m avant,"
" pour être à la bonne distance de tir:"
#. type: Source code
#: ../E/dist.txt:14
#, no-wrap
msgid ""
"\titem = radar(AlienAnt);\n"
"\tmove(distance(position, item.position) - 40);"
msgstr ""
"\tchose = radar(AlienAnt);\n"
"\tmove(distance(position, chose.position) - 40);"
#. type: \b; header, \t; header
#: ../E/build.txt:13 ../E/buildingenabled.txt:12 ../E/canbuild.txt:12 ../E/detect.txt:4 ../E/dist.txt:17 ../E/drop.txt:11 ../E/errmode.txt:4 ../E/file.txt:10 ../E/fire.txt:9 ../E/float.txt:19 ../E/goto.txt:11 ../E/grab.txt:11 ../E/if.txt:22 ../E/int.txt:13 ../E/motor.txt:14 ../E/move.txt:7 ../E/radar.txt:13 ../E/radarall.txt:11 ../E/return.txt:9 ../E/switch.txt:46 ../E/turn.txt:18 ../E/wait.txt:9 ../E/while.txt:19
#, no-wrap
msgid "For specialists"
msgstr "Pour spécialistes"
#. type: Plain text, \t; header
#: ../E/abstime.txt:2 ../E/acos.txt:2 ../E/aim.txt:2 ../E/asin.txt:2 ../E/atan.txt:2 ../E/atan2.txt:2 ../E/build.txt:14 ../E/buildingenabled.txt:13 ../E/busy.txt:2 ../E/canbuild.txt:13 ../E/canresearch.txt:2 ../E/ceil.txt:2 ../E/cos.txt:2 ../E/deletef.txt:6 ../E/delinfo.txt:2 ../E/destroy.txt:2 ../E/detect.txt:5 ../E/dist.txt:18 ../E/dist2d.txt:2 ../E/do.txt:2 ../E/drop.txt:12 ../E/errmode.txt:5 ../E/factory.txt:2 ../E/fire.txt:10 ../E/flatgrnd.txt:2 ../E/flatspace.txt:2 ../E/floor.txt:2 ../E/for.txt:2 ../E/goto.txt:12 ../E/grab.txt:12 ../E/if.txt:23 ../E/jet.txt:2 ../E/message.txt:2 ../E/move.txt:8 ../E/pencolor.txt:2 ../E/pendown.txt:2 ../E/penup.txt:2 ../E/penwidth.txt:2 ../E/pow.txt:2 ../E/produce.txt:2 ../E/radar.txt:14 ../E/radarall.txt:12 ../E/rand.txt:2 ../E/readln.txt:8 ../E/receive.txt:2 ../E/recycle.txt:2 ../E/research.txt:2 ../E/researched.txt:2 ../E/retobj.txt:2 ../E/round.txt:2 ../E/search.txt:2 ../E/send.txt:2 ../E/shield.txt:2 ../E/sin.txt:2 ../E/sniff.txt:2 ../E/space.txt:2 ../E/sqrt.txt:2 ../E/strfind.txt:4 ../E/strleft.txt:4 ../E/strlen.txt:4 ../E/strlower.txt:4 ../E/strmid.txt:4 ../E/strright.txt:4 ../E/strupper.txt:4 ../E/strval.txt:8 ../E/switch.txt:47 ../E/takeoff.txt:2 ../E/tan.txt:2 ../E/testinfo.txt:2 ../E/thump.txt:2 ../E/topo.txt:2 ../E/trunc.txt:2 ../E/turn.txt:19 ../E/wait.txt:10 ../E/writeln.txt:8
#, no-wrap
msgid "Syntax:"
msgstr "Syntaxe:"
#. type: Source code
#: ../E/dist.txt:19
#, no-wrap
msgid "<c/>distance ( pos1, pos2 );<n/>"
msgstr "<c/>distance ( pos1, pos2 );<n/>"
#. type: Plain text
#: ../E/dist.txt:21
#, no-wrap
msgid "Calculates the distance between two positions. "
msgstr "Calcule la distance entre deux points."
#. type: \t; header
#: ../E/dist.txt:23 ../E/dist2d.txt:7
#, no-wrap
msgid "pos1, pos2: <code><a cbot|point>point</a></code>"
msgstr "pos1, pos2: <code><a cbot|point>point</a></code>"
#. type: Plain text
#: ../E/dist.txt:24 ../E/dist2d.txt:8
#, no-wrap
msgid "Coordinates of the two positions. "
msgstr "Coordonnées des deux points."
#. type: Plain text
#: ../E/dist.txt:27 ../E/dist2d.txt:11
#, no-wrap
msgid "Distance between the two positions."
msgstr "Distance entre les deux points."
#. type: \b; header
#: ../E/dist2d.txt:1
#, no-wrap
msgid "Instruction <code>distance2d</code>"
msgstr "Instruction <code>distance2d</code>"
#. type: Source code
#: ../E/dist2d.txt:3
#, no-wrap
msgid "<c/>distance2d ( pos1, pos2 );<n/>"
msgstr "<c/>distance2d ( pos1, pos2 );<n/>"
#. type: Plain text
#: ../E/dist2d.txt:5
#, no-wrap
msgid ""
"Calculates the distance between two positions (ignores the z coordinate)."
msgstr ""
"Calcule la distance \"à plat\" entre deux points, c'est-à-dire sans tenir"
" compte de l'élévation (coordonnée z)."
#. type: \b; header
#: ../E/do.txt:1
#, no-wrap
msgid "Instruction <code>do - while</code>"
msgstr "Instruction <code>do - while</code>"
#. type: Source code
#: ../E/do.txt:3
#, no-wrap
msgid ""
"<code>do\n"
"{\n"
"\t</code>Instructions ...<c/>\n"
"}\n"
"while ( condition );"
msgstr ""
"<code>do\n"
"{\n"
"\t</code>Instructions ...<c/>\n"
"}\n"
"while ( condition );"
#. type: Plain text
#: ../E/do.txt:9
#, no-wrap
msgid ""
"This instruction allows you to perform several times the instructions inside"
" the <a cbot|bloc>block</a>. The instructions are executed at least once,"
" because the condition is tested only afterwards.\n"
"Be careful not to confuse the instruction <c/>do { } while ( );<n/> with the"
" instruction <code><a cbot|while>while</a> ( ) { }</code>; the latter tests"
" the condition before the instructions in the block are executed. "
msgstr ""
"Cette structure de boucle permet d'exécuter plusieurs fois les instructions"
" comprises dans le <a cbot|bloc>bloc</a>. Ces instructions sont toujours"
" exécutées au moins une fois, puisque la condition n'est examinée qu'après"
" exécution de ces instructions.\n"
"Attention à ne pas confondre <c/>do { } while( );<n/> avec <code><a"
" cbot|while>while</a>( ) { }</code>, qui effectue le test avant le premier"
" tour de boucle."
#. type: \t; header
#: ../E/do.txt:12 ../E/for.txt:13 ../E/while.txt:30
#, no-wrap
msgid "<code>condition</code>"
msgstr "<code>condition</code>"
#. type: Plain text
#: ../E/do.txt:13 ../E/while.txt:31
#, no-wrap
msgid ""
"The instructions in the block are performed over and over again, as long as"
" the <a cbot|cond>condition</a> is true. "
msgstr ""
"Tant que cette <a cbot|cond>condition</a> est vraie, les instructions dans le"
" bloc sont exécutées."
#. type: Plain text
#: ../E/do.txt:15 ../E/while.txt:33
#, no-wrap
msgid "Here is an example :"
msgstr "Voici un exemple d'utilisation:"
#. type: Source code
#: ../E/do.txt:16
#, no-wrap
msgid ""
"<c/>do\n"
"{\n"
"\tp = radar(TitaniumOre);\n"
"}\n"
"while ( p == null );"
msgstr ""
"<c/>do\n"
"{\n"
"\tp = radar(TitaniumOre);\n"
"}\n"
"while ( p == null );"
#. type: \t; header
#: ../E/do.txt:22 ../E/float.txt:11 ../E/for.txt:33 ../E/if.txt:36 ../E/int.txt:10 ../E/switch.txt:67 ../E/while.txt:41
#, no-wrap
msgid "Attention"
msgstr "Attention"
#. type: Plain text
#: ../E/do.txt:23
#, no-wrap
msgid ""
"Always put a <a cbot|term>semicolon</a> at the end of the line <code>while ("
" )</code>."
msgstr ""
"Il faut toujours mettre un <a cbot|term>point-virgule</a> à la fin de la"
" ligne <code>while ( )</code>."
#. type: Plain text
#: ../E/do.txt:25
#, no-wrap
msgid ""
"The instructions <code><a cbot|break>break</a></code> and <code><a"
" cbot|continue>continue</a></code> can be useful inside a block following the"
" instruction <code>do { }</code>."
msgstr ""
"Les instructions <code><a cbot|break>break</a></code> et <code><a"
" cbot|continue>continue</a></code> sont utiles à l'intérieur d'un bloc <code"
">while { }</code>."
#. type: \b; header
#: ../E/drop.txt:1
#, no-wrap
msgid "Instruction <code>drop</code>"
msgstr "Instruction <code>drop</code>"
#. type: Plain text
#: ../E/drop.txt:2
#, no-wrap
msgid ""
"The instruction <c/>drop();<n/> instructs the bot to drop whatever the"
" operating arm is carrying on the ground, on the platform of a building or on"
" the power cell location of a bot."
msgstr ""
"L'instruction <code>drop()</code> permet de poser au sol, sur l'emplacement"
" arrière d'un robot ou sur le socle d'un bâtiment, l'objet que le robot tient"
" dans la pince de son bras manipulateur."
#. type: Plain text
#: ../E/drop.txt:5
#, no-wrap
msgid ""
"The instruction <c/>drop();<n/> written in this form drops the object in"
" front of the bot. Here is a short program that grabs an object in front of"
" the bot and drops it 5 meters further:"
msgstr ""
"L'instruction <c/>drop();<n/> écrite sous cette forme pose devant le robot"
" l'objet que le robot tient. Voici par exemple comment saisir ce qui se"
" trouve devant le robot pour le poser 5m plus loin:"
#. type: Source code
#: ../E/drop.txt:7
#, no-wrap
msgid ""
"\t<a cbot|grab>grab</a>();\n"
"\t<a cbot|move>move</a>(5);\n"
"\tdrop();"
msgstr ""
"\t<a cbot|grab>grab</a>();\n"
"\t<a cbot|move>move</a>(5);\n"
"\tdrop();"
#. type: Source code
#: ../E/drop.txt:13
#, no-wrap
msgid "<c/>drop ( oper );<n/>"
msgstr "<c/>drop ( oper );<n/>"
#. type: Plain text
#: ../E/drop.txt:15
#, no-wrap
msgid ""
"This instruction appeals to the operating arm of a <a object|botgr>grabber"
" bot</a>, in order to drop what it is holding."
msgstr ""
"Actionne le bras manipulateur du <a object|botgr>robot déménageur</a>, pour"
" déposer l'objet saisi."
#. type: \t; header
#: ../E/drop.txt:17 ../E/grab.txt:17
#, no-wrap
msgid ""
"oper: <code><a cbot|int>int</a></code> (default value<code>InFront</code>)"
msgstr ""
"oper: <code><a cbot|int>int</a></code> (<code>InFront</code> par défaut)"
#. type: Plain text
#: ../E/drop.txt:18
#, no-wrap
msgid ""
"Oper indicates where the robot should drop the object. If no indication is"
" given, the object is dropped in front of the bot. \n"
"<code>InFront </code> Drops in front (default value).\n"
"<code>Behind </code> Drops behind.\n"
"<code>EnergyCell</code> Drops on the bot's own power cell location."
msgstr ""
"Position à atteindre avec la bras manipulateur. Si cette indication n'est pas"
" fournie, on suppose qu'il s'agit du cas le plus fréquent où l'objet est pris"
" ou déposé devant le robot.\n"
"<code>InFront </code> Dépose devant (par défaut).\n"
"<code>Behind </code> Dépose derrière.\n"
"<code>EnergyCell</code> Dépose sa propre pile."
#. type: Plain text
#: ../E/drop.txt:24
#, no-wrap
msgid ""
"Normally an error stops the program. You can prevent the program from"
" stopping on errors by using the <code><a cbot|errmode>errmode</a>(0)</code>"
" instruction. A value different from zero if an error occurred is then"
" returned by <c/>drop();<n/>.\n"
"<code>== 0 </code>object was dropped\n"
"<code>!= 0 </code>error, no object was dropped"
msgstr ""
"Normalement, une erreur stoppe l'exécution du programme. Si l'instruction <"
"code>drop</code> est précédée de <c/><a cbot|errmode>errmode</a>(0);<n/>, une"
" valeur nulle est retournée si tout est ok, ou valeur non nulle si une erreur"
" est intervenue.\n"
"<code>== 0 </code>objet déposé\n"
"<code>!= 0 </code>erreur, pas d'objet déposé"
#. type: \b; header
#: ../E/eof.txt:1
#, no-wrap
msgid "Instruction <code>eof</code>"
msgstr "Instruction <code>eof</code>"
#. type: Plain text
#: ../E/eof.txt:2
#, no-wrap
msgid ""
"Test the end of file condition of an open file. This is a method of the <code"
"><a cbot|file>file</a></code> class; therefore you cannot write <code>eof()<"
"/code> but only <code>handle.eof()</code>:"
msgstr ""
"L'instruction <c/>eof();<n/> teste s'il existe encore une ou plusieurs lignes"
" à lire dans le fichier de texte ouvert dans le dossier files/. Cette"
" instruction est une méthode de la classe <code><a cbot|file>file</a></code>."
" C'est la raison pour laquelle on n'écrit jamais <code>eof()</code> tout"
" seul, mais <code>handle.eof()</code>:"
#. type: Source code
#: ../E/eof.txt:4
#, no-wrap
msgid "\tif ( handle.eof() ) "
msgstr "\tif ( handle.eof() )"
#. type: Plain text
#: ../E/eof.txt:6 ../E/readln.txt:11
#, no-wrap
msgid "Example:"
msgstr "Example:"
#. type: Source code
#: ../E/eof.txt:8
#, no-wrap
msgid ""
"\twhile ( not handle.eof() )\n"
"\t{\n"
"\t\ts = handle.readln();\n"
"\t}"
msgstr ""
"\twhile ( not handle.eof() )\n"
"\t{\n"
"\t\ts = handle.readln();\n"
"\t}"
#. type: Plain text
#: ../E/eof.txt:14
#, no-wrap
msgid ""
"<code><a cbot|file>file</a></code>, <code><a cbot|open>open</a></code>, <code"
"><a cbot|close>close</a></code>, <code><a cbot|readln>readln</a></code> and <"
"code><a cbot|writeln>writeln</a></code>.\n"
"<a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category"
">categories</a>."
msgstr ""
"<code><a cbot|file>file</a></code>, <code><a cbot|open>open</a></code>, <code"
"><a cbot|close>close</a></code>, <code><a cbot|readln>readln</a></code> et <"
"code><a cbot|writeln>writeln</a></code>.\n"
"<a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|category"
">catégories</a>."
#. type: \b; header
#: ../E/errmode.txt:1
#, no-wrap
msgid "Instruction <code>errmode</code>"
msgstr "Instruction <code>errmode</code>"
#. type: Plain text
#: ../E/errmode.txt:2
#, no-wrap
msgid ""
"The <c/>errmode();<n/> instruction allows you to chose if the program should"
" stop when an error occurs in one of the following instructions: <code><a"
" cbot|goto>goto</a></code>, <code><a cbot|move>move</a></code>, <code><a"
" cbot|grab>grab</a></code>, <code><a cbot|drop>drop</a></code>, etc."
msgstr ""
"L'instruction <c/>errmode();<n/> détermine la réaction du programme"
" lorsqu'une erreur est rencontrée dans une instruction du type <code><a"
" cbot|goto>goto</a></code>, <code><a cbot|move>move</a></code>, <code><a"
" cbot|grab>grab</a></code>, <code><a cbot|drop>drop</a></code>, etc."
#. type: Source code
#: ../E/errmode.txt:6
#, no-wrap
msgid "<c/>errmode ( mode );<n/>"
msgstr "<c/>errmode ( mode );<n/>"
#. type: Plain text
#: ../E/errmode.txt:8
#, no-wrap
msgid ""
"Normally the program is stopped when an error occurs. If you use the"
" instruction <c/>errmode(0);<n/> at the beginning of the program, the"
" instructions listed above return a value different from zero if the"
" instruction could not be performed."
msgstr ""
"Normalement, un programme s'arrête dès qu'une erreur est rencontrée. En"
" ajoutant <c/>errmode(0);<n/> au début du programme, une instruction <code"
">goto</code> qui n'arrive pas à destination retourne une valeur non nulle."
#. type: \t; header
#: ../E/errmode.txt:10
#, no-wrap
msgid "mode: <code><a cbot|float>float</a></code> (<code>1</code> per default)"
msgstr "mode: <code><a cbot|float>float</a></code> (<code>1</code> par défaut)"
#. type: Plain text
#: ../E/errmode.txt:11
#, no-wrap
msgid ""
"Error treatment mode.\n"
"<code>0</code> -> continues program execution and returns a non zero value\n"
"<code>1</code> -> stops the program (default behavior)"
msgstr ""
"Mode de gestion des erreurs.\n"
"<code>0</code> -> continue en retournant une valeur non nulle\n"
"<code>1</code> -> stoppe le programme"
#. type: Plain text
#: ../E/errmode.txt:15
#, no-wrap
msgid "Example 1:"
msgstr "Example 1:"
#. type: Source code
#: ../E/errmode.txt:16
#, no-wrap
msgid ""
"<c/>errmode(0);\n"
"while ( goto(pos) != 0 )\n"
"{\n"
"\twait(2);\n"
"}"
msgstr ""
"<c/>errmode(0);\n"
"while ( goto(pos) != 0 )\n"
"{\n"
"\twait(2);\n"
"}"
#. type: Plain text
#: ../E/errmode.txt:22
#, no-wrap
msgid "Example 2:"
msgstr "Example 2:"
#. type: Source code
#: ../E/errmode.txt:23
#, no-wrap
msgid ""
"<c/>errmode(0);\n"
"int err;\n"
"err = goto(pos);\n"
"if ( err != 0 )\n"
"{\n"
"\t<n/>goto did not perform correctly ...<code>\n"
"\t</code>take some appropriate action ...<c/>\n"
"}"
msgstr ""
"<c/>errmode(0);\n"
"int err;\n"
"err = goto(pos);\n"
"if ( err != 0 )\n"
"{\n"
"\t<n/>gestion de l'erreur ...<c/>\n"
"}"
#. type: \b; header
#: ../E/expr.txt:1
#, no-wrap
msgid "Expressions"
msgstr "Les expressions"
#. type: Plain text
#: ../E/expr.txt:86
#, no-wrap
msgid "is equivalent to"
msgstr "est équivalent à"
#. type: Plain text
#: ../E/expr.txt:90
#, no-wrap
msgid ""
"<code>+=</code> addition\n"
"<code>-=</code> subtraction\n"
"<code>*=</code> multiplication\n"
"<code>/=</code> division\n"
"<code>%=</code> remainder of the division (only for the type <code><a"
" cbot|int>int</a></code>)"
msgstr ""
"<code>+=</code> addition\n"
"<code>-=</code> soustraction\n"
"<code>*=</code> multiplication\n"
"<code>/=</code> division\n"
"<code>%=</code> reste de la division (seulement pour le type <code><a"
" cbot|int>int</a></code>)"
#. type: Plain text
#: ../E/expr.txt:178
#, no-wrap
msgid ""
"The operators <code>++</code> and <code>--</code> allow you to increment (++)"
" or to decrement (--) a variable in very compact and efficient manner."
msgstr ""
"Les opérateurs <code>++</code> et <code>--</code> permettent d'incrémenter"
" (++) ou décrémenter (--) une variable de manière particulièrement compacte"
" et efficace."
#. type: \b; header
#: ../E/extern.txt:1
#, no-wrap
msgid "Instruction <code>extern</code>"
msgstr "Instruction <code>extern</code>"
#. type: Plain text
#: ../E/extern.txt:2
#, no-wrap
msgid ""
"The <code>extern</code> instruction determines the <a cbot|function"
">function</a> that acts as main program of a robot. The name of the function"
" declared with <code>extern</code> will apear in the program list in the"
" lower left corner of the screen."
msgstr ""
"L'instruction <code>extern</code> détermine quelle est la <a cbot|function"
">fonction</a> qui fait office de programme principal. La fonction déclarée <"
"code>extern</code> aura son nom dans la liste des programmes, en bas à gauche"
" de la fenêtre."
#. type: Source code
#: ../E/extern.txt:4
#, no-wrap
msgid ""
"extern void object::MowDown( )\n"
"{\n"
"\twhile ( true )\n"
"\t{\n"
"\t\tfire(1);\n"
"\t\tturn(10);\n"
"\t}\n"
"}"
msgstr ""
"extern void object::Boum( )\n"
"{\n"
"\twhile ( true )\n"
"\t{\n"
"\t\tfire(1);\n"
"\t\tturn(10);\n"
"\t}\n"
"}"
#. type: Plain text
#: ../E/extern.txt:13
#, no-wrap
msgid ""
"If the program contains other functions, only the main function must be"
" preceded by <code>extern</code>."
msgstr ""
"Si le programme utilise d'autres fonctions, seule la fonction principale doit"
" être précédée de <code>extern</code>."
#. type: Source code
#: ../E/extern.txt:15
#, no-wrap
msgid ""
"extern void object::Square( )\n"
"{\n"
"\tfor ( int i=0 ; i<4 ; i++ )\n"
"\t{\n"
"\t\tLine(10);\n"
"\t}\n"
"}\n"
"\n"
"void object::Line(float dist)\n"
"{\n"
"\tmove(dist);\n"
"\tturn(90);\n"
"}"
msgstr ""
"extern void object::Square( )\n"
"{\n"
"\tfor ( int i=0 ; i<4 ; i++ )\n"
"\t{\n"
"\t\tLine(10);\n"
"\t}\n"
"}\n"
"\n"
"void object::Line(float dist)\n"
"{\n"
"\tmove(dist);\n"
"\tturn(90);\n"
"}"
#. type: \b; header
#: ../E/false.txt:1
#, no-wrap
msgid "Type <code>false</code>"
msgstr "Type <code>false</code>"
#. type: Plain text
#: ../E/false.txt:2
#, no-wrap
msgid ""
"This value means that a condition is not true; it is one of the two values"
" that a <a cbot|bool>boolean</a> <a cbot|var>variable</a> can take."
msgstr ""
"Cette valeur signifie \"faux\" pour une <a cbot|var>variable</a> <a cbot|bool"
">booléenne</a>."
#. type: \b; header
#: ../E/file.txt:1
#, no-wrap
msgid "Type <code>file</code>"
msgstr "Type <code>file</code>"
#. type: Plain text
#: ../E/file.txt:2
#, no-wrap
msgid "This type is used for accessing files in the files/ folder."
msgstr "Ce type permet d'accéder à un fichier de texte dans le dossier files/."
#. type: Source code
#: ../E/file.txt:4
#, no-wrap
msgid "\tfile handle();"
msgstr "\tfile handle();"
#. type: Plain text
#: ../E/file.txt:6
#, no-wrap
msgid ""
"Use the syntax above for declaring a file handle. You must use () to create"
" an instance of the <code>file</code> class. Without the () the handle would"
" have the value <code><a cbot|null>null</a></code>."
msgstr ""
"Notez la présence des parenthèses, indispensables pour créer une instance de"
" la classe <code>file</code>. Sans les parenthèses, <code>handle</code>"
" aurait la valeur <code>null</code>."
#. type: Plain text
#: ../E/file.txt:8
#, no-wrap
msgid ""
"Files can only be created and opened in the files/ folder which is located in"
" the folder where Colobot has been installed. You cannot not create or open"
" files elsewhere than in the files/ folder."
msgstr ""
"Les fichiers ne peuvent être créés et ouverts que dans le dossier files/,"
" situé là où Colobot a été installé. Il n'est pas possible de créer ou ouvrir"
" des fichiers situés ailleurs que dans ce dossier files/."
#. type: Plain text
#: ../E/file.txt:11
#, no-wrap
msgid ""
"<code>file</code> is actually not a simple type but a class. <code>open</code"
">, <code>close</code>, <code>writeln</code> etc. are methods of the <code"
">file</code> class. This is the reason why we always write <code"
">handle.method()</code>:"
msgstr ""
"En réalité, <code>file</code> n'est pas un type, mais une classe. <code>open<"
"/code>, <code>close</code>, <code>writeln</code> etc. sont des méthodes de la"
" classe <code>file</code>. C'est la raison pour laquelle on écrit <code"
">classe.méthode()</code>:"
#. type: Source code
#: ../E/file.txt:13
#, no-wrap
msgid ""
"\thandle.open(\"test.txt\", \"w\");\n"
"\thandle.close();"
msgstr ""
"\thandle.open(\"essai.txt\", \"w\");\n"
"\thandle.close();"
#. type: Plain text
#: ../E/file.txt:17
#, no-wrap
msgid ""
"<code><a cbot|open>open</a></code>, <code><a cbot|close>close</a></code>, <"
"code><a cbot|readln>readln</a></code>, <code><a cbot|writeln>writeln</a><"
"/code> and <code><a cbot|eof>eof</a></code>.\n"
"<a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category"
">categories</a>."
msgstr ""
"<code><a cbot|open>open</a></code>, <code><a cbot|close>close</a></code>, <"
"code><a cbot|readln>readln</a></code>, <code><a cbot|writeln>writeln</a><"
"/code> et <code><a cbot|eof>eof</a></code>.\n"
"<a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|category"
">catégories</a>."
#. type: \b; header
#: ../E/fire.txt:1
#, no-wrap
msgid "Instruction <code>fire</code>"
msgstr "Instruction <code>fire</code>"
#. type: Plain text
#: ../E/fire.txt:2
#, no-wrap
msgid "The instruction <c/>fire();<n/> fires the bot's onboard cannon."
msgstr ""
"L'instruction <c/>fire();<n/> permet de faire feu avec le canon du robot."
#. type: Plain text
#: ../E/fire.txt:5
#, no-wrap
msgid "Generally this instruction is used to shoot one-second bursts:"
msgstr "En général, on tire des rafales d'une seconde:"
#. type: Source code
#: ../E/fire.txt:7
#, no-wrap
msgid "\tfire(1);"
msgstr "\tfire(1);"
#. type: Source code
#: ../E/fire.txt:11
#, no-wrap
msgid "<c/>fire ( time );<n/>"
msgstr "<c/>fire ( time );<n/>"
#. type: Plain text
#: ../E/fire.txt:13
#, no-wrap
msgid ""
"Fires the gun, with a burst that lasts a certain time. The longer the burst,"
" the more energy it needs. This instruction can be used with the following"
" bot types: "
msgstr ""
"Tire avec le canon, pendant un certain temps. Plus le tir est long, et plus"
" l'énergie consommée est grande. Cette instruction peut être utilisée avec"
" les robots suivants:"
#. type: Plain text
#: ../E/fire.txt:20
#, no-wrap
msgid ""
"In order to move the gun upward or downward, use the instruction <code><a"
" cbot|aim>aim</a></code>."
msgstr ""
"Pour diriger le canon vers le haut ou vers le bas, il faut utiliser"
" l'instruction <code><a cbot|aim>aim</a></code>."
#. type: \t; header
#: ../E/fire.txt:22 ../E/wait.txt:15
#, no-wrap
msgid "time: <code><a cbot|float>float</a></code>"
msgstr "time: <code><a cbot|float>float</a></code>"
#. type: Plain text
#: ../E/fire.txt:23
#, no-wrap
msgid ""
"Duration of the burst. Generally, the value given is 1. Shorter bursts can"
" also be performed in order to spare time and energy."
msgstr ""
"Durée du tir, en secondes. Il s'agit généralement de valeurs relativement"
" courtes. <c/>fire(1);<n/> tire une rafale identique à celle tirée lors la"
" prise de commande du robot. Dans le cas où on survole une concentration"
" importante de fourmis, on peut tirer des rafales plus longues, par exemple <"
"c/>fire(4);<n/>. Pour économiser l'énergie, on peut tirer des rafales très"
" courtes avec par exemple <c/>fire(0.1);<n/>."
#. type: Plain text
#: ../E/fire.txt:26
#, no-wrap
msgid ""
"Zero if OK, or a value different from zero if an error occurred.\n"
"<code>== 0 </code>the cannon has been fired\n"
"<code>!= 0 </code>error, the cannon could not be fired"
msgstr ""
"Zéro si tout est ok, ou valeur non nulle si une erreur est intervenue.\n"
"<code>== 0 </code>tir effectué\n"
"<code>!= 0 </code>tir impossible"
#. type: \b; header
#: ../E/flatgrnd.txt:1
#, no-wrap
msgid "Instruction <code>flatground</code>"
msgstr "Instruction <code>flatground</code>"
#. type: Source code
#: ../E/flatgrnd.txt:3
#, no-wrap
msgid "<c/>flatground ( center, rmax );<n/>"
msgstr "<c/>flatground ( center, rmax );<n/>"
#. type: Plain text
#: ../E/flatgrnd.txt:5
#, no-wrap
msgid ""
"Calculates the maximal radius of a flat zone on which a building ca be built."
msgstr ""
"Calcule le rayon maximal de la zone plate, permettant par exemple de"
" construire un bâtiment."
#. type: \t; header
#: ../E/flatgrnd.txt:7 ../E/flatspace.txt:7
#, no-wrap
msgid "center: <code><a cbot|point>point</a></code>"
msgstr "center: <code><a cbot|point>point</a></code>"
#. type: Plain text
#: ../E/flatgrnd.txt:8
#, no-wrap
msgid "Center of the circlular zone."
msgstr "Position centrale de la zone circulaire."
#. type: \t; header
#: ../E/flatgrnd.txt:10
#, no-wrap
msgid "rmax: <code><a cbot|float>float</a></code>"
msgstr "rmax: <code><a cbot|float>float</a></code>"
#. type: Plain text
#: ../E/flatgrnd.txt:11
#, no-wrap
msgid "Maximal radius."
msgstr "Rayon maximal après lequel le calcul est stoppé."
#. type: Plain text
#: ../E/flatgrnd.txt:14
#, no-wrap
msgid "Radius of the flat zone (always between 0 and rmax)."
msgstr "Rayon maximal de la zone plate, compris entre zéro et rmax."
#. type: \b; header
#: ../E/float.txt:1
#, no-wrap
msgid "Type <code>float</code>"
msgstr "Type <code>float</code>"
#. type: Plain text
#: ../E/float.txt:2
#, no-wrap
msgid ""
"Use this type for most variables that contains numbers. Variables of this"
" type can contain positive and negative numbers, whole or real numbers, for"
" example: "
msgstr ""
"Ce type permet de représenter, de manière approchée, des nombres réels"
" positifs ou négatifs. Par exemple:"
#. type: Source code
#: ../E/float.txt:4
#, no-wrap
msgid ""
"\t12.9\n"
"\t1.125\n"
"\t0.002\n"
"\t-4.1"
msgstr ""
"\t12.9\n"
"\t1.125\n"
"\t0.002\n"
"\t-4.1"
#. type: Plain text
#: ../E/float.txt:9
#, no-wrap
msgid ""
"If you need only whole numbers (f. ex. 12 or -5000), you should rather use"
" the type <code><a cbot|int>int</a></code>."
msgstr ""
"Pour représenter un nombre entier (12 ou -5000 par exemple) il faut utiliser"
" le type <code><a cbot|int>int</a></code>."
#. type: Plain text
#: ../E/float.txt:12
#, no-wrap
msgid ""
"Do not insert space or colon characters into a number. To separate the whole"
" part from the fractional part, use a dot. "
msgstr ""
"Ne pas insérer d'caractères d'espace ou de double-point dans un nombre. Pour"
" séparer les entiers des parties fractionnelles, utiliser un point."
#. type: Source code
#: ../E/float.txt:14
#, no-wrap
msgid ""
" Write and not\n"
" 12.56 12 . 56\n"
" -54.34 -54,34\n"
"12895.69 12,895.69"
msgstr ""
" Write and not\n"
" 12.56 12 . 56\n"
" -54.34 -54,34\n"
"12895.69 12,895.69"
#. type: Plain text
#: ../E/float.txt:20
#, no-wrap
msgid ""
"Floating point numbers are represented in Colobot with 32 bits.\n"
"The highest value that can be represented is 3.4E+38.\n"
"The smallest value that can be represented is 3.4E-38."
msgstr ""
"Sachez que ce type utilise 32 bits.\n"
"La valeur maximale représentable est 3.4E+38.\n"
"La valeur minimale représentable est 3.4E-38."
#. type: \b; header
#: ../E/for.txt:1
#, no-wrap
msgid "Instruction <code>for</code>"
msgstr "Instruction <code>for</code>"
#. type: Source code
#: ../E/for.txt:3
#, no-wrap
msgid ""
"<c/>for ( before ; condition ; end )\n"
"{\n"
"\t<n/>Instructions ...<c/>\n"
"}"
msgstr ""
"<c/>for ( avant ; condition ; fin )\n"
"{\n"
"\t<n/>Instructions ...<c/>\n"
"}"
#. type: Plain text
#: ../E/for.txt:8
#, no-wrap
msgid ""
"This instruction allows you to execute a certain number of times the"
" instructions contained in the <a cbot|bloc>block</a>."
msgstr ""
"Cette structure de boucle permet d'exécuter plusieurs fois les instructions"
" comprises dans le <a cbot|bloc>bloc</a>."
#. type: \t; header
#: ../E/for.txt:10
#, no-wrap
msgid "<code>before</code>"
msgstr "<code>avant</code>"
#. type: Plain text
#: ../E/for.txt:14
#, no-wrap
msgid ""
"This <a cbot|cond>condition</a> determines if another instance of the loop"
" must be executed. It is tested before every instance of the loop. "
msgstr ""
"Cette <a cbot|cond>condition</a> détermine s'il faut continuer la boucle."
" Elle est examinée avant chaque tour de boucle, y compris le dernier."
#. type: \t; header
#: ../E/for.txt:16
#, no-wrap
msgid "<code>end</code>"
msgstr "<code>fin</code>"
#. type: Source code
#: ../E/for.txt:21
#, no-wrap
msgid ""
"{\n"
"\tmessage(i) ;\n"
"}"
msgstr ""
"{\n"
"\tmessage(i) ;\n"
"}"
#. type: Plain text
#: ../E/for.txt:25
#, no-wrap
msgid ""
"The following example is strictly equivalent to a <code>for</code>-loop, but"
" it uses the instruction <code><a cbot|while>while</a></code>:"
msgstr ""
"L'instruction <code>for</code> est rigoureusement équivalente à l'exemple"
" suivant, utilisant <code><a cbot|while>while</a></code>:"
#. type: Source code
#: ../E/for.txt:26
#, no-wrap
msgid ""
"<c/>before;\n"
"while ( condition )\n"
"{\n"
"\t<n/>Instructions ...<c/>\n"
"\tend;\n"
"}"
msgstr ""
"<c/>avant;\n"
"while ( condition )\n"
"{\n"
"\t<n/>Instructions ...<c/>\n"
"\tfin;\n"
"}"
#. type: Plain text
#: ../E/for.txt:34
#, no-wrap
msgid ""
"Do not put a <a cbot|term>semicolon</a> at the end of the line <code>for ( )<"
"/code>."
msgstr ""
"Il ne faut pas mettre un <a cbot|term>point-virgule</a> à la fin de la ligne"
" <code>for ( )</code>."
#. type: Plain text
#: ../E/for.txt:36
#, no-wrap
msgid ""
"The instructions <code><a cbot|break>break</a></code> and <code><a"
" cbot|continue>continue</a></code> can be useful inside a block following the"
" instruction <code>for </code>."
msgstr ""
"Les instructions <code><a cbot|break>break</a></code> et <code><a"
" cbot|continue>continue</a></code> sont utiles à l'intérieur d'un bloc <code"
">for { }</code>."
#. type: \b; header
#: ../E/function.txt:1
#, no-wrap
msgid "Functions"
msgstr "Les fonctions"
#. type: Plain text
#: ../E/function.txt:118
#, no-wrap
msgid ""
"You can also declare a function <a cbot|public>public</a> so it can be used"
" by other bots."
msgstr ""
"Il est aussi possible de déclarer une fonction <a cbot|public>public</a> pour"
" lui permettre d'être utilisée par d'autres robots."
#. type: \b; header
#: ../E/goto.txt:1
#, no-wrap
msgid "Instruction <code>goto</code>"
msgstr "Instruction <code>goto</code>"
#. type: Plain text
#: ../E/goto.txt:2
#, no-wrap
msgid ""
"The instruction <c/>goto();<n/> instructs the bot to reach a given position."
msgstr ""
"L'instruction <c/>goto();<n/> permet de déplacer le robot vers une certaine"
" position."
#. type: Plain text
#: ../E/goto.txt:5
#, no-wrap
msgid ""
"The most current use consists in moving the bot to an object located with the"
" instruction <c/><a cbot|radar>radar</a>();<n/>. If the information returned"
" by the <c/><a cbot|radar>radar</a>();<n/> has been stored in a certain"
" variable, write the name of the variable followed by <code>.position</code>"
" in order to get the position of the object. Here is an example of a program"
" that looks for a <a object|titan>titanium cube</a>, goes to the position and"
" grabs it:"
msgstr ""
"En général on déplace le robot vers un objet qu'on a détecté avec"
" l'instruction <c/><a cbot|radar>radar</a>();<n/>. Si on a mis les"
" informations rendues par <c/><a cbot|radar>radar</a>();<n/> dans une"
" certaine variable, il faut écrire le nom de la variable suivi de <code"
">.position</code> pour obtenir la position de l'objet. Voici par exemple"
" comment chercher un cube de titanium, aller vers la position du cube et le"
" saisir:"
#. type: Source code
#: ../E/goto.txt:7
#, no-wrap
msgid ""
"\titem = <a cbot|radar>radar</a>(Titanium);\n"
"\tgoto(item.position);\n"
"\t<a cbot|grab>grab</a>();"
msgstr ""
"\tobject chose;\n"
"\tchose = <a cbot|radar>radar</a>(Titanium);\n"
"\tgoto(chose.position);\n"
"\t<a cbot|grab>grab</a>();"
#. type: Source code
#: ../E/goto.txt:13
#, no-wrap
msgid "<c/>goto ( position, altitude, goal, crash );<n/>"
msgstr "<c/>goto ( pos, altitude );<n/>"
#. type: Plain text
#: ../E/goto.txt:15
#, no-wrap
msgid ""
"Tells the robot to go to the given position, avoiding all the obstacles if"
" this is possible. "
msgstr ""
"Va à une certaine position, en évitant les obstacles tels que les autres"
" robots, les bâtiments, les plans d'eau et les pentes trop raides."
#. type: Plain text
#: ../E/goto.txt:18
#, no-wrap
msgid "Coordinates of the goal position."
msgstr "Coordonnée de la position à atteindre."
#. type: \t; header
#: ../E/goto.txt:20
#, no-wrap
msgid "altitude: <code><a cbot|float>float</a></code>"
msgstr "altitude: <code><a cbot|float>float</a></code>"
#. type: Plain text
#: ../E/goto.txt:21
#, no-wrap
msgid ""
"Flight altitude for <a object|botgj>winged bots</a>. The altitude is useful"
" only for <a object|botgj>winged bots</a>. From the initial altitude, the bot"
" climbs higher until it reaches the specified hight. When arriving close to"
" destination, it goes down to touch the ground at the given position. If no"
" value is given, an altitude of 10 meters is the default value. On very short"
" moves, even winged bot stay on the ground. For all bot except winged bots,"
" this parameter is ignored. "
msgstr ""
"Altitude moyenne pendant le déplacement, pour les <a object|botgj>robots"
" volants</a>. Si ce paramètre est omis, une altitude de 12.5 mètres est"
" automatiquement utilisée comme consigne. Lorsque le déplacement mesure moins"
" de 20 mètres à vol d'oiseau, le robot reste au sol."
#. type: \t; header
#: ../E/goto.txt:23
#, no-wrap
msgid "goal: <code><a cbot|int>int</a></code> (default value <code>0</code>)"
msgstr "Valeur retournée: <code><a cbot|int>int</a></code>"
#. type: Plain text
#: ../E/goto.txt:24
#, no-wrap
msgid ""
"This parameter tells the bot how it must reach the goal: \n"
"<code>0</code> stops exactly at the goal position\n"
"<code>1</code> goes close to the goal position, without stopping.\n"
"If no value is given, <code>1</code> (precision) is the default value. "
msgstr ""
"Normalement, une erreur stoppe l'exécution du programme. Si l'instruction <"
"code>goto</code> est précédée de <c/><a cbot|errmode>errmode</a>(0);<n/>, une"
" valeur nulle est retournée si tout est ok, ou valeur non nulle si une erreur"
" est intervenue.\n"
"<code>== 0 </code>position atteinte\n"
"<code>!= 0 </code>impossible d'atteindre la position"
#. type: Plain text
#: ../E/goto.txt:30
#, no-wrap
msgid ""
"Normally an error stops the program. You can prevent the program from"
" stopping on errors by using the <code><a cbot|errmode>errmode</a>(0)</code>"
" instruction. A value different from zero if an error occurred is then"
" returned by <code>goto()</code>.\n"
"<code>== 0 </code>Goal position reached\n"
"<code>!= 0 </code>Goal position impossible to reach"
msgstr "<code>go to</code> = aller à"
#. type: \b; header
#: ../E/grab.txt:1
#, no-wrap
msgid "Instruction <code>grab</code>"
msgstr "Instruction <code>grab</code>"
#. type: Plain text
#: ../E/grab.txt:2
#, no-wrap
msgid ""
"The instruction <c/>grab();<n/> instructs the bot to use the operating arm to"
" grab an object located on the ground, on the platform of a building or on"
" the power cell location of a bot."
msgstr ""
"L'instruction <c/>grab();<n/> permet de saisir avec la pince du bras"
" manipulateur un objet qui se trouve au sol, sur l'emplacement arrière d'un"
" robot ou sur le socle d'un bâtiment."
#. type: Plain text
#: ../E/grab.txt:5
#, no-wrap
msgid ""
"The instruction <c/>grab();<n/> written in this form grabs the object located"
" in front of the bot. Here is a short program that grabs an object in front"
" of the bot and drops it 5 meters further:"
msgstr ""
"L'instruction <c/>grab();<n/> écrite sous cette forme permet de saisir"
" l'objet qui se trouve devant le robot. Voici par exemple comment saisir ce"
" qui se trouve devant le robot et le poser 5m plus loin:"
#. type: Source code
#: ../E/grab.txt:7
#, no-wrap
msgid ""
"\tgrab();\n"
"\t<a cbot|move>move</a>(5);\n"
"\t<a cbot|drop>drop</a>();"
msgstr ""
"\tgrab();\n"
"\t<a cbot|move>move</a>(5);\n"
"\t<a cbot|drop>drop</a>();"
#. type: Source code
#: ../E/grab.txt:13
#, no-wrap
msgid "<c/>grab ( oper );<n/>"
msgstr "<c/>grab ( oper );<n/>"
#. type: Plain text
#: ../E/grab.txt:15
#, no-wrap
msgid ""
"This instruction appeals to the operating arm of a <a object|botgr>grabber"
" bot</a>, in order to grab the closest object."
msgstr ""
"Actionne le bras manipulateur du <a object|botgr>robot déménageur</a>, pour"
" prendre l'objet le plus proche."
#. type: Plain text
#: ../E/grab.txt:18
#, no-wrap
msgid ""
"Oper indicates where the bot should look for an object to grab. If no"
" indication is given, the object is picked up in front of the bot.\n"
"<code>InFront </code> Grabs in front (default value).\n"
"<code>Behind </code> Grabs behind.\n"
"<code>EnergyCell</code> Grabs the bot's own power cell."
msgstr ""
"Position à atteindre avec la bras manipulateur. Si cette indication n'est pas"
" fournie, on suppose qu'il s'agit du cas le plus fréquent où l'objet est pris"
" ou déposé devant le robot.\n"
"<code>InFront </code> Prend devant (par défaut).\n"
"<code>Behind </code> Prend derrière.\n"
"<code>EnergyCell</code> Prend sa propre pile."
#. type: Plain text
#: ../E/grab.txt:24
#, no-wrap
msgid ""
"Normally an error stops the program. You can prevent the program from"
" stopping on errors by using the <code><a cbot|errmode>errmode</a>(0)</code>"
" instruction. A value different from zero if an error occurred is then"
" returned by <c/>grab();<n/>.\n"
"<code>== 0 </code>an object was grabbed\n"
"<code>!= 0 </code>error, no object was grabbed"
msgstr ""
"Normalement, une erreur stoppe l'exécution du programme. Si l'instruction <"
"code>grab</code> est précédée de <c/><a cbot|errmode>errmode</a>(0);<n/>, une"
" valeur nulle est retournée si tout est ok, ou valeur non nulle si une erreur"
" est intervenue.\n"
"<code>== 0 </code>objet pris\n"
"<code>!= 0 </code>erreur, pas d'objet pris"
#. type: \b; header
#: ../E/if.txt:1
#, no-wrap
msgid "Instructions <code>if</code> and <code>else</code>"
msgstr "Instructions <code>if</code> et <code>else</code>"
#. type: Plain text
#: ../E/if.txt:2
#, no-wrap
msgid ""
"With the instruction <code>if() {}</code> you can execute a set of"
" instructions only if a certain condition is true. Write the condition in"
" brackets <code>()</code>, and the instructions in braces <code>{}</code>."
msgstr ""
"L'instruction <code>if() {}</code> permet d'exécuter des instructions"
" seulement à une certaine condition. La condition est donnée entre"
" parenthèses <code>()</code>, les instructions entre accolades <code>{}</code"
">."
#. type: Plain text
#: ../E/if.txt:5
#, no-wrap
msgid ""
"Here is a concrete example: The bot will shoot only if the target is closer"
" than 40 meters:"
msgstr ""
"Voici par exemple comment faire en sorte que le robot tire seulement si la"
" distance à la cible est inférieure à 40m:"
#. type: Source code
#: ../E/if.txt:7
#, no-wrap
msgid ""
"\titem = <a cbot|radar>radar</a>(AlienAnt);\n"
"\tif (<a cbot|dist>distance</a>(position, item.position) < 40)\n"
"\t{\n"
"\t\tfire(1);\n"
"\t}"
msgstr ""
"\tchose = <a cbot|radar>radar</a>(AlienAnt);\n"
"\tif (<a cbot|dist>distance</a>(position, chose.position) < 40)\n"
"\t{\n"
"\t\tfire(1);\n"
"\t}"
#. type: Plain text
#: ../E/if.txt:13
#, no-wrap
msgid ""
"You can also test if an object exists at all. If the instruction <c/><a"
" cbot|radar>radar</a>();<n/> does not find the requested object, it returns"
" the value <code>null</code>. So you can test if an object does not exists"
" with the condition <code>(item == null)</code>, or test if it exists with "
" <code>(item != null)</code>. Two equal signs <code>==</code> test equality,"
" an exclamation mark followed by an equal sign <code>!=</code> test"
" inequality. Here is a test that will go to rechage the <a object|power>power"
" cell</a> only if there is a <a object|station>power station</a>:"
msgstr ""
"Si l'instruction <c/><a cbot|radar>radar</a>();<n/> ne trouve pas l'objet"
" cherché, elle rend la valeur <code>null</code>. Ainsi il est possible de"
" tester si un objet n'existe pas avec <code>(chose == null)</code>, ou de"
" tester si l'objet existe avec <code>(chose!= null)</code>. Deux signes égal"
" <code>==</code> testent l'égalité, un point d'exclamation suivi d'un signe"
" égal <code>!=</code> teste l'inégalité. Voici comment aller se recharger"
" seulement s'il y a une station de recharge:"
#. type: Source code
#: ../E/if.txt:15
#, no-wrap
msgid ""
"\titem = <a cbot|radar>radar</a>(PowerStation);\n"
"\tif (item != null)\n"
"\t{\n"
"\t\t<a cbot|goto>goto</a>(item.position);\n"
"\t\t<a cbot|wait>wait</a>(5);\n"
"\t}"
msgstr ""
"\tchose = <a cbot|radar>radar</a>(PowerStation);\n"
"\tif (chose!= null)\n"
"\t{\n"
"\t\t<a cbot|goto>goto</a>(chose.position);\n"
"\t\t<a cbot|wait>wait</a>(5);\n"
"\t}"
#. type: Source code
#: ../E/if.txt:24
#, no-wrap
msgid ""
"<code>if ( condition )\n"
"{\n"
"\t</code>Instructions A ...<code>\n"
"}\n"
"else\n"
"{\n"
"\t</code>Instructions B ...<c/>\n"
"}"
msgstr ""
"<code>if ( condition )\n"
"{\n"
"\t</code>Instructions A ...<code>\n"
"}\n"
"else\n"
"{\n"
"\t</code>Instructions B ...<c/>\n"
"}"
#. type: Plain text
#: ../E/if.txt:33
#, no-wrap
msgid ""
"With this conditional structure you can execute a <a cbot|bloc>bloc</a> A or"
" a <a cbot|bloc>bloc</a> B depending on a <a cbot|cond>condition</a>. If the"
" condition is true, bloc A is executed. If the condition is false, bloc B is"
" executed. \n"
"Part <code>else { }</code> is not compulsory. "
msgstr ""
"Cette structure de choix permet d'exécuter le <a cbot|bloc>bloc</a> A ou le <"
"a cbot|bloc>bloc</a> B en fonction d'une <a cbot|cond>condition</a>. Si la"
" condition est vraie, le bloc A est exécuté. Si elle est fausse, c'est le"
" bloc B qui est exécuté.\n"
"La partie <code>else { }</code> est facultative."
#. type: Plain text
#: ../E/if.txt:37
#, no-wrap
msgid ""
"Do not put a <a cbot|term>semicolon</a> at the end of the line <code>if ( )<"
"/code>."
msgstr ""
"Il ne faut pas mettre un <a cbot|term>point-virgule</a> à la fin de la ligne"
" <code>if ( )</code>."
#. type: \b; header
#: ../E/int.txt:1
#, no-wrap
msgid "Type <code>int</code>"
msgstr "Type <code>int</code>"
#. type: Plain text
#: ../E/int.txt:2
#, no-wrap
msgid ""
"Use this type for variables that contain only whole numbers, negative or"
" positive. For example: "
msgstr ""
"Ce type permet de représenter des nombres entiers positifs ou négatifs. Par"
" exemple:"
#. type: Source code
#: ../E/int.txt:4
#, no-wrap
msgid ""
"\t12\n"
"\t1000\n"
"\t-4"
msgstr ""
"\t12\n"
"\t1000\n"
"\t-4"
#. type: Plain text
#: ../E/int.txt:8
#, no-wrap
msgid ""
"To represent real numbers like 12.05 or -0.005, use the type <code><a"
" cbot|float>float</a></code>."
msgstr ""
"Pour représenter un nombre réel (12.05 ou -0.005 par exemple) il faut"
" utiliser le type <code><a cbot|float>float</a></code>."
#. type: Plain text
#: ../E/int.txt:11
#, no-wrap
msgid "Do not put space or colon signs inside a number. "
msgstr "Vous ne pouvez pas utiliser d'espace ou d'apostrophe dans un nombre."
#. type: Plain text
#: ../E/int.txt:14
#, no-wrap
msgid ""
"Numbers of the type <code>int</code> are represented with 32 bits.\n"
"The highest number that can be represented is (2^31)-1, that is"
" 2'147'483'647.\n"
"The smallest number that can be represented is -(2^31), that is"
" -2'147'483'648."
msgstr ""
"Sachez que ce type utilise 32 bits.\n"
"La valeur maximale représentable est (2^31)-1, soit 2'147'483'647.\n"
"La valeur minimale représentable est -(2^31), soit -2'147'483'648."
#. type: \b; header
#: ../E/jet.txt:1
#, no-wrap
msgid "Instruction <code>jet</code>"
msgstr "Instruction <code>jet</code>"
#. type: Source code
#: ../E/jet.txt:3
#, no-wrap
msgid "<c/>jet ( power );<n/>"
msgstr "<c/>jet ( power );<n/>"
#. type: Plain text
#: ../E/jet.txt:5
#, no-wrap
msgid ""
"Direct control of the jet of a <a object|botgj>winged bot</a>. The jet is"
" what makes the bot fly. Use this instruction in order to take off, climb,"
" descend or land."
msgstr "Commande directe du réacteur d'un <a object|botgj>robot volant</a>."
#. type: \t; header
#: ../E/jet.txt:7 ../E/produce.txt:21
#, no-wrap
msgid "power: <code><a cbot|float>float</a></code>"
msgstr "power: <code><a cbot|float>float</a></code>"
#. type: Plain text
#: ../E/jet.txt:8
#, no-wrap
msgid ""
"Power of the jet, ranges between <code>-1</code> and <code>+1</code>. <c/"
">jet(1);<n/> instructs the bot to climb as fast as possible, <c/>jet(-1);<n/>"
" descends as fast as possible, <c/>jet(0);<n/> stabilizes the altitude. In"
" order to get slower altitude changes, use intermediate values, for example <"
"c/>jet(0.3);<n/>."
msgstr ""
"Puissance du réacteur, comprise entre <code>-1</code> et <code>1</code>. <c/"
">jet(1);<n/> fait monter le robot à la vitesse maximale, <c/>jet(-1);<n/> le"
" fait descendre à la vitesse maximale, <c/>jet(0);<n/> lui fait garder son"
" altitude actuelle. Pour obtenir des changements d'altitude plus doux,"
" employez des valeurs intermédiaires, par exemple <c/>jet(0.3);<n/>."
#. type: \t; header
#: ../E/jet.txt:11 ../E/message.txt:21 ../E/motor.txt:35 ../E/shield.txt:15 ../E/wait.txt:18
#, no-wrap
msgid "Return value: <code><a cbot|void>void</a></code>"
msgstr "Valeur retournée: <code><a cbot|void>void</a></code>"
#. type: Plain text
#: ../E/jet.txt:12 ../E/message.txt:22 ../E/motor.txt:36 ../E/shield.txt:16 ../E/wait.txt:19
#, no-wrap
msgid "None."
msgstr "Aucune."
#. type: \b; header
#: ../E/message.txt:1
#, no-wrap
msgid "Instruction <code>message</code>"
msgstr "Instruction <code>message</code>"
#. type: Source code
#: ../E/message.txt:3
#, no-wrap
msgid "<c/>message ( text, type );<n/>"
msgstr "<c/>message ( texte, type );<n/>"
#. type: Plain text
#: ../E/message.txt:5
#, no-wrap
msgid ""
"Prints a message on top of the screen. After a few seconds, the message"
" disappears automatically. "
msgstr ""
"Affiche un message en haut de l'écran. Après quelques secondes, le message"
" disparaît automatiquement."
#. type: \t; header
#: ../E/message.txt:7
#, no-wrap
msgid "text: <code><a cbot|string>string</a></code>"
msgstr "texte: <code><a cbot|string>string</a></code>"
#. type: Plain text
#: ../E/message.txt:8
#, no-wrap
msgid ""
"Text that is to be displayed. It is possible to append several texts and/or"
" values with the operator <code>+</code>:\n"
"<c/>message(\"Not found\");<n/> \n"
"<c/>message(angle);<n/> \n"
"<c/>message(n + \" object(s) found\");<n/> \n"
"<c/>message(\"Distance = \" + dist + \" meters\");<n/> "
msgstr ""
"Texte à afficher. Il est possible d'appondre plusieurs textes et/ou valeurs"
" en utilisant l'opérateur <code>+</code>:\n"
"<c/>message(\"Pas trouvé\");<n/> \n"
"<c/>message(angle);<n/> \n"
"<c/>message(n + \" objet(s) trouvé(s)\");<n/> \n"
"<c/>message(\"Distance = \" + dist + \" mètres\");<n/> "
#. type: \t; header
#: ../E/message.txt:14
#, no-wrap
msgid ""
"type: <code><a cbot|int>int</a></code> (default value <code>DisplayMessage<"
"/code>)"
msgstr ""
"type: <code><a cbot|int>int</a></code> (<code>DisplayMessage</code> par"
" défaut)"
#. type: Plain text
#: ../E/message.txt:15
#, no-wrap
msgid "Type of the message, that determines the background color. "
msgstr "Type du message, qui détermine la couleur de fond du texte."
#. type: Bullet: 'o'
#: ../E/message.txt:16
#, no-wrap
msgid "<code>DisplayMessage</code> Standard message on yellow background."
msgstr "<code>DisplayMessage</code> Message standard sur fond jaune."
#. type: Bullet: 'o'
#: ../E/message.txt:17
#, no-wrap
msgid "<code>DisplayInfo </code> Information on green background."
msgstr "<code>DisplayInfo </code> Information sur fond vert."
#. type: Bullet: 'o'
#: ../E/message.txt:18
#, no-wrap
msgid "<code>DisplayWarning</code> Warning on blue background."
msgstr "<code>DisplayWarning</code> Avertissement sur fond bleu."
#. type: Bullet: 'o'
#: ../E/message.txt:19
#, no-wrap
msgid "<code>DisplayError </code> Error on red background."
msgstr "<code>DisplayError </code> Erreur sur fond rouge."
#. type: \b; header
#: ../E/motor.txt:1
#, no-wrap
msgid "Instruction <code>motor</code>"
msgstr "Instruction <code>motor</code>"
#. type: Plain text
#: ../E/motor.txt:2
#, no-wrap
msgid ""
"The instruction <c/>motor( , );<n/> sets the speed for the left-hand and the"
" right-hand motor of the bot."
msgstr ""
"L'instruction <c/>motor( , );<n/> permet de donner directement une vitesse"
" aux moteurs gauche et droite du robot."
#. type: Plain text
#: ../E/motor.txt:5
#, no-wrap
msgid ""
"The speed given to the motors will remain constant during the execution of"
" the following instructions. Thanks to this characteristic it is possible to"
" perform a rotation during the instruction <c/><a cbot|fire>fire</a>();<n/>."
" This will sweep a whole zone with only one burst. Here is an example that"
" will sweep the zone in front of the bot:"
msgstr ""
"<c/>motor( , );<n/> conserve la vitesse du moteur pendant l'exécution des"
" instructions suivantes. Ceci est utile pour faire tourner le robot pendant"
" l'instruction <c/><a cbot|fire>fire</a>();<n/>. Ainsi, il est possible de"
" balayer toute une zone avec la rafale. Voici par exemple comment balayer"
" toute la zone qui se trouve devant le robot:"
#. type: Source code
#: ../E/motor.txt:7
#, no-wrap
msgid ""
"\t<a cbot|turn>turn</a>(45); // turns 45 degrees left\n"
"\tmotor(0.5, -0.5); // slow rotation to the right\n"
"\t<a cbot|fire>fire</a>(2); // fire\n"
"\tmotor(0,0); // stops the rotation"
msgstr ""
"\t<a cbot|turn>turn</a>(45); // tourne à gauche de 45 degrés\n"
"\tmotor(0.5, -0.5); // rotation lente à droite\n"
"\t<a cbot|fire>fire</a>(2); // feu\n"
"\tmotor(0,0); // immobilise le robot"
#. type: Plain text
#: ../E/motor.txt:12
#, no-wrap
msgid ""
"With the left-hand motor turning half-speed forward and the right-hand motor"
" turning half-speed backward, the bot will turn slowly on itself during the"
" 2-second-burst."
msgstr ""
"En faisant avancer le moteur gauche à demi-vitesse et en faisant reculer le"
" moteur de droite à demi-vitesse, le robot tourne lentement sur lui-même"
" pendant la rafale de 2 secondes."
#. type: Source code
#: ../E/motor.txt:16
#, no-wrap
msgid "<c/>motor ( left, right );<n/>"
msgstr "<c/>motor ( left, right );<n/>"
#. type: Plain text
#: ../E/motor.txt:18
#, no-wrap
msgid ""
"Gives speed instructions to the right and left motors of the robot. The"
" motors will keep this speed until a new motor instruction is performed, or"
" until a <code><a cbot|move>move</a></code>, <code><a cbot|turn>turn</a><"
"/code> or <code><a cbot|goto>goto</a></code> instruction is performed."
msgstr ""
"Donne une consigne de vitesse aux deux moteurs gauche et droite du robot. La"
" vitesse restera constante, jusqu'à ce qu'une nouvelle consigne soit donnée,"
" ou jusqu'à l'utilisation d'une instruction <code><a cbot|move>move</a></code"
">, <code><a cbot|turn>turn</a></code> ou <code><a cbot|goto>goto</a></code>."
#. type: \t; header
#: ../E/motor.txt:20
#, no-wrap
msgid "left: <code><a cbot|float>float</a></code>"
msgstr "left: <code><a cbot|float>float</a></code>"
#. type: Plain text
#: ../E/motor.txt:21
#, no-wrap
msgid ""
"Speed instruction for the left motor; the value must range between -1 and 1. "
msgstr "Consigne pour le moteur gauche, comprise entre -1 et 1."
#. type: \t; header
#: ../E/motor.txt:23
#, no-wrap
msgid "right: <code><a cbot|float>float</a></code>"
msgstr "right: <code><a cbot|float>float</a></code>"
#. type: Plain text
#: ../E/motor.txt:24
#, no-wrap
msgid ""
"Speed instruction for the right motor; the value must range between -1 and 1. "
msgstr "Consigne pour le moteur droite, comprise entre -1 et 1."
#. type: Plain text
#: ../E/motor.txt:26
#, no-wrap
msgid ""
"Examples :\n"
"<c/>motor(1, 1);<n/> moves forward with highest possible speed.\n"
"<c/>motor(-0.5, -0.5);<n/> moves backward with half speed.\n"
"<c/>motor(1, -1);<n/> turns right as fast as possible. "
msgstr ""
"Examples:\n"
"<c/>motor(1, 1);<n/> pour avancer tout droit à la vitesse maximale.\n"
"<c/>motor(0.5, 0.6);<n/> pour avancer à mi-vitesse en tournant légèrement à"
" gauche.\n"
"<c/>motor(-0.5, -0.5);<n/> pour reculer à mi-vitesse.\n"
"<c/>motor(1, -1);<n/> pour tourner à droite le plus vite possible."
#. type: Plain text
#: ../E/motor.txt:31
#, no-wrap
msgid ""
"Note :\n"
"<c/>motor(2, 2);<n/> will not move forward any faster than <code>motor(1, 1)<"
"/code> \n"
"<c/>motor(-2, -2);<n/> will not move backward any faster than <code>motor(-1,"
" -1)</code>"
msgstr ""
"Note :\n"
"<c/>motor(2, 2);<n/> ne conduira pas à un déplacement vers l'avant plus"
" rapide qu'avec <code>motor(1, 1)</code> \n"
"<c/>motor(-2, -2);<n/> ne conduira pas à un déplacement vers l'arrière plus"
" rapide qu'avec <code>motor(-1, -1)</code>"
#. type: \b; header
#: ../E/move.txt:1
#, no-wrap
msgid "Instruction <code>move</code>"
msgstr "Instruction <code>move</code>"
#. type: Plain text
#: ../E/move.txt:2
#, no-wrap
msgid ""
"The instruction <c/>move();<n/> instructs the bot to move forward or backward"
" while keeping the same orientation. In brackets you must specify the length"
" of the move in meters."
msgstr ""
"L'instruction <c/>move();<n/> fait se déplacer le robot d'une longueur donnée"
" en mètres."
#. type: Plain text
#: ../E/move.txt:5
#, no-wrap
msgid ""
"If you want the bot to move forward 30 meters, write <c/>move(30);<n/>. In"
" order to move the bot backward after it dropped a chunk of <a"
" object|titanore>titanium ore</a> on the <a object|convert>converter</a>,"
" write <c/>move(-2.5);<n/>."
msgstr ""
"Pour faire avancer le robot de 30m, écrivez <c/>move(30);<n/>. Pour faire"
" reculer le robot après avoir posé un <a object|titanore>minerai de titanium<"
"/a> sur le <a object|convert>convertisseur</a>, écrivez <c/>move(-2.5);<n/>."
#. type: Source code
#: ../E/move.txt:9
#, no-wrap
msgid "<c/>move ( length );<n/>"
msgstr "<c/>move ( length );<n/>"
#. type: Plain text
#: ../E/move.txt:11
#, no-wrap
msgid ""
"Moves forward or backward of a given distance, always keeping the current"
" orientation of the bot. "
msgstr "Avance d'une certaine distance, dans la direction actuelle."
#. type: \t; header
#: ../E/move.txt:13
#, no-wrap
msgid "length: <code><a cbot|float>float</a></code>"
msgstr "length: <code><a cbot|float>float</a></code>"
#. type: Plain text
#: ../E/move.txt:14
#, no-wrap
msgid ""
"Length of the move, in meters. A negative value makes the bot move backward. "
msgstr ""
"Longueur à avancer, en mètres. Une longueur négative fait reculer le robot."
#. type: Plain text
#: ../E/move.txt:17
#, no-wrap
msgid ""
"Normally an error stops the program. You can prevent the program from"
" stopping on errors by using the <code><a cbot|errmode>errmode</a>(0)</code>"
" instruction. A value different from zero if an error occurred is then"
" returned by <code>move()</code>.\n"
"<code>== 0 </code>Move executed\n"
"<code>!= 0 </code>error, the instruction was not performed correctly"
msgstr ""
"Normalement, une erreur stoppe l'exécution du programme. Si l'instruction <"
"code>move</code> est précédée de <c/><a cbot|errmode>errmode</a>(0);<n/>, une"
" valeur nulle est retournée si tout est ok, ou valeur non nulle si une erreur"
" est intervenue.\n"
"<code>== 0 </code>déplacement effectué\n"
"<code>!= 0 </code>déplacement impossible"
#. type: \b; header
#: ../E/nan.txt:1
#, no-wrap
msgid "Type <code>nan</code>"
msgstr "Type <code>nan</code>"
#. type: Plain text
#: ../E/nan.txt:2
#, no-wrap
msgid ""
"This special value indicates that a <a cbot|var>variable</a> of type <code><a"
" cbot|int>int</a></code> or <code><a cbot|float>float</a></code> contains no"
" number, but \"nothing\". \n"
"For example, if the instruction <code><a cbot|receive>receive</a></code> can"
" not get the requested information, it returns <code>nan</code> :"
msgstr ""
"Cette valeur spéciale indique qu'une <a cbot|var>variable</a> de type <code><"
"a cbot|int>int</a></code> ou <code><a cbot|float>float</a></code> ne contient"
" pas un nombre, mais \"rien\".\n"
"Par exemple, lorsque l'instruction <code><a cbot|receive>receive</a></code>"
" n'arrive pas à recevoir l'information demandée, elle retourne <code>nan<"
"/code>:"
#. type: Source code
#: ../E/nan.txt:5
#, no-wrap
msgid ""
"\tvalue = receive(\"Length\");\n"
"\tif ( value == nan ) // not found ?\n"
"\t{\n"
"\t\t\n"
"\t}"
msgstr ""
"\tvalue = receive(\"Longueur\");\n"
"\tif ( value == nan ) // pas trouvé?\n"
"\t{\n"
"\t}"
#. type: \t; header
#: ../E/nan.txt:11
#, no-wrap
msgid "Dictionnary"
msgstr "Dictionnaire anglais-français"
#. type: Plain text
#: ../E/nan.txt:12
#, no-wrap
msgid "<code>nan</code> = Not A Number "
msgstr "<code>nan</code> (not a number) = pas un nombre"
#. type: \b; header
#: ../E/new.txt:1
#, no-wrap
msgid "Instruction <code>new</code> (for specialists)"
msgstr "Instruction <code>new</code> (pour spécialistes)"
#. type: Plain text
#: ../E/new.txt:2
#, no-wrap
msgid ""
"The <code>new</code> operator creates a <a cbot|class>class</a> instance:\n"
"<c/><s/>\tMyClass item; // now item is a null reference"
msgstr ""
"Une instance de <a cbot|class>classe</a> peut être créée par l'opérateur <"
"code>new</code>:\n"
"<c/><s/>\tMaClasse item; // item vaut null"
#. type: Source code
#: ../E/new.txt:4
#, no-wrap
msgid ""
"\titem = new MyClass(); // now item is a reference\n"
"\t // to a new class instance"
msgstr "\titem = new MaClasse();"
#. type: Plain text
#: ../E/new.txt:7
#, no-wrap
msgid ""
"If you want to create a new instance at declaration time you can ommit the"
" new <code>new</code> operator by putting () after the declaration:"
msgstr ""
"Lorsque l'instance est créée en même temps que la déclaration, il est"
" possible de simplifier l'écriture:"
#. type: Plain text
#: ../E/new.txt:9
#, no-wrap
msgid ""
"Instead of:\n"
"<c/><s/>\tMyClass item = new MyClass();\n"
"<n/>you can write:\n"
"<c/><s/>\tMyClass item();"
msgstr ""
"Au lieu de :\n"
"<c/><s/>\tMaClasse chose = new MaClasse();\n"
"<n/>on peut écrire :\n"
"<c/><s/>\MaClasse chose();"
#. type: Plain text
#: ../E/new.txt:14
#, no-wrap
msgid ""
"If your class has a constructor with parameters you can write:\n"
"<c/><s/>\tMyClass item = new MyClass(2, 3);\n"
"<n/>or:\n"
"<c/><s/>\tMyClass item(2, 3);"
msgstr ""
"Si, par exemple, la classe contient un constructeur avec deux paramètres"
" numériques, il est possible d'écrire:\n"
"<c/><s/>\tMyClass item = new MyClass(2, 3);\n"
"<n/>or:\n"
"<c/><s/>\tMyClass item(2, 3);"
#. type: Plain text
#: ../E/new.txt:21
#, no-wrap
msgid ""
"<code><a cbot|class>class</a></code>, <code><a cbot|pointer>reference</a><"
"/code>\n"
"<a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category"
">categories</a>."
msgstr ""
"<a cbot|pointer>Références</a>\n"
"<a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|category"
">catégories</a>."
#. type: \b; header
#: ../E/null.txt:1
#, no-wrap
msgid "Type <code>null</code>"
msgstr "Type <code>null</code>"
#. type: Plain text
#: ../E/null.txt:2
#, no-wrap
msgid ""
"This special value indicates that the variable containing it does not"
" reference an instance."
msgstr "Cette valeur spéciale indique un objet qui n'existe pas."
#. type: Plain text
#: ../E/null.txt:5
#, no-wrap
msgid ""
"<a cbot|pointer>References</a>\n"
"<a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category"
">categories</a>."
msgstr ""
"<a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|category"
">catégories</a>."
#. type: \b; header
#: ../E/object.txt:1
#, no-wrap
msgid "Type <code>object</code>"
msgstr "Type <code>object</code>"
#. type: Source code
#: ../E/object.txt:21
#, no-wrap
msgid "<code>category</code>"
msgstr "<code>category</code>"
#. type: Source code
#: ../E/object.txt:24
#, no-wrap
msgid "<code>position</code>"
msgstr "<code>position</code>"
#. type: Plain text
#: ../E/object.txt:25
#, no-wrap
msgid ""
"Position of the object on the planet, in meters. The coordinates <code>x<"
"/code> and <code>y</code> correspond to the location on a map, the <code>z<"
"/code> coordinate corresponds to the altitude above (respectively below) sea"
" level. "
msgstr ""
"Position de l'objet sur la planète, en mètres. Les coordonnées <code>x</code>"
" et <code>y</code> correspondent à la position à plat, alors que <code>z<"
"/code> correspond à l'élévation absolue par rapport au niveau de la mer."
#. type: Source code
#: ../E/object.txt:27
#, no-wrap
msgid "<code>orientation</code>"
msgstr "<code>orientation</code>"
#. type: Plain text
#: ../E/object.txt:28
#, no-wrap
msgid ""
"Orientation of the object, in degrees. The orientation tells you what"
" direction the object is facing. An orientation of <code>0</code> corresponds"
" to an object facing eastwards, thus following the positive <code>x</code>"
" axis. The orientation is measured counterclockwise. "
msgstr ""
"Orientation de l'objet, en degrés. Une orientation de <code>0</code>"
" correspond à un objet tourné vers l'est, donc vers l'axe <code>x</code>"
" positif. Le sens de l'orientation est anti-horaire."
#. type: Source code
#: ../E/object.txt:30
#, no-wrap
msgid "<code>pitch</code>"
msgstr "<code>pitch</code>"
#. type: Plain text
#: ../E/object.txt:31
#, no-wrap
msgid ""
"Forward/backward angle of the robot. A pitch of <code>0</code> means that the"
" bot is standing on flat ground. A positive inclination means that it is"
" facing upwards, a negative inclination means that it is facing downwards. "
msgstr ""
"Inclinaison avant/arrière de l'objet, en degrés. Une valeur positive indique"
" que le robot monte."
#. type: Source code
#: ../E/object.txt:33
#, no-wrap
msgid "<code>roll</code>"
msgstr "<code>roll</code>"
#. type: Plain text
#: ../E/object.txt:34
#, no-wrap
msgid ""
"Left/right angle of the bot, in degrees. A positive value means that the bot"
" is leaning to the left side, a negative value means that it is leaning to"
" the right side. "
msgstr ""
"Inclinaison latérale de l'objet, en degrés. Une valeur positive indique que"
" le robot penche à gauche."
#. type: Source code
#: ../E/object.txt:36
#, no-wrap
msgid "<code>energyLevel</code>"
msgstr "<code>energyLevel</code>"
#. type: Plain text
#: ../E/object.txt:37
#, no-wrap
msgid ""
"Energy level, between 0 and 1. A normal <a object|power>power cell</a> that"
" is fully charged returns the value <code>1</code>. A <a object|atomic"
">nuclear power cell</a> never returns a value higher than 1, it just lasts"
" longer. Attention: The energy level of a bot is always zero, because the"
" energy is not contained in the bot, but in the power cell. To know the"
" energy level of the power cell of a bot, you must write <code"
">energyCell.energyLevel</code>. "
msgstr ""
"Niveau d'énergie. Une <a object|power>pile normale</a> entièrement pleine"
" donne la valeur <code>1</code>. Une <a object|atomic>pile atomique</a> ne"
" dépasse jamais le niveau <code>1</code>; elle dure simplement plus"
" longtemps.\n"
"Notez que le niveau d'énergie d'un robot est toujours nul. En effet,"
" l'énergie est contenue dans la pile qui est placée à l'arrière du robot, et"
" non dans le robot lui-même. Il faut donc écrire <code"
">energyCell.energyLevel</code> pour connaître l'énergie à disposition."
#. type: Source code
#: ../E/object.txt:39
#, no-wrap
msgid "<code>shieldLevel</code>"
msgstr "<code>shieldLevel</code>"
#. type: Plain text
#: ../E/object.txt:40
#, no-wrap
msgid ""
"Shield level of a robot or building. A level <code>1</code> indicates that"
" the shield is still perfect. Every time that the bot or building gets a"
" bullet or collides with another object, the shield level decreases. When the"
" level reaches <code>0</code>, the next bullet or collision will destroy the"
" bot or building. \n"
"Bots can re-energize their shield on a <a object|repair>repair center</a>."
" The shield of a building is repaired if it lays inside the protection sphere"
" of a <a object|botshld>shielder</a>."
msgstr ""
"Niveau du bouclier du robot ou du bâtiment. Un niveau de <code>1</code>"
" correspond à un bouclier en parfait état. Avec un niveau de <code>0</code>,"
" le prochain choc ou tir ennemi sera fatal.\n"
"Les robots peuvent régénérer leurs boucliers sur le <a object|repair>centre"
" de réparation</a>. Le bouclier d'un bâtiment est régénéré s'il se trouve"
" dans la sphère protectrice du <a object|botshld>robot bouclier</a>."
#. type: Source code
#: ../E/object.txt:43
#, no-wrap
msgid "<code>temperature</code>"
msgstr "<code>temperature</code>"
#. type: Plain text
#: ../E/object.txt:44
#, no-wrap
msgid ""
"Temperature of the jet of <a object|botgj>winged bots</a>. <code>0</code>"
" corresponds to a cold jet. When used, the temperature increases"
" progressively. When it reaches the value <code>1</code>, the jet is"
" overheated and stops working, until it cooled down a little. "
msgstr ""
"Température du réacteur pour les <a object|botgj>robots volants</a>. <code>0<"
"/code> correspond à un réacteur froid et <code>1</code> à un réacteur"
" bouillant, provisoirement hors d'usage."
#. type: Source code
#: ../E/object.txt:46
#, no-wrap
msgid "<code>altitude</code>"
msgstr "<code>altitude</code>"
#. type: Plain text
#: ../E/object.txt:47
#, no-wrap
msgid ""
"The <code>z</code> coordinate of the position indicates the altitude above"
" sea level, whereas the <code>altitude</code> indicates the height above"
" ground. This value is meaningful only for <a object|botgj>winged bots</a>"
" and for <a object|wasp>wasps</a>. For all other objects, this value is zero. "
msgstr ""
"Contrairement à la position <code>z</code> qui est absolue, l'altitude est"
" relative au niveau du sol. L'altitude n'a de sens que pour les <a"
" object|botgj>robots volants</a> et la <a object|wasp>guêpe</a>. Pour tous"
" les autres robots ou pour les bâtiments, cette valeur est nulle."
#. type: Source code
#: ../E/object.txt:49
#, no-wrap
msgid "<code>lifeTime</code>"
msgstr "<code>lifeTime</code>"
#. type: Plain text
#: ../E/object.txt:50
#, no-wrap
msgid "The age of the object in seconds since it's creation."
msgstr "Donne l'âge de l'objet, en secondes."
#. type: Source code
#: ../E/object.txt:52
#, no-wrap
msgid "<code>energyCell</code>"
msgstr "<code>energyCell</code>"
#. type: Plain text
#: ../E/object.txt:53
#, no-wrap
msgid ""
"This information is special, because it returns the information about another"
" object, in this case the power pack. This means that energyCell contains all"
" the characteristics of a normal object, for example <code>category</code>"
" (PowerCell or NuclearCell), <code>position</code> (the position of the"
" cell), etc.\n"
"If you want to know the energy level of a robot, you must not check <code"
">energyLevel</code>, but <code>energyCell.energyLevel</code>.\n"
"If the bot has bot no power cell, <code>energyCell</code> returns <code>null<"
"/code>."
msgstr ""
"Cette information est spéciale, dans la mesure où elle contient les"
" caractéristiques d'un autre objet, la pile en l'occurrence. On y retrouve"
" donc toutes les caractéristiques de l'objet de base, telles que <code"
">category</code>, <code>position</code>, etc.\n"
"Pour connaître le niveau d'énergie d'un robot, il ne faut pas accéder à <code"
">energyLevel</code>, mais à <code>energyCell.energyLevel</code>.\n"
"Si le robot n'a pas de pile, <code>energyCell</code> vaut <code>null</code>."
#. type: Source code
#: ../E/object.txt:57
#, no-wrap
msgid "<code>load</code>"
msgstr "<code>load</code>"
#. type: Plain text
#: ../E/object.txt:58
#, no-wrap
msgid ""
"This information also returns the description of a whole object: the"
" description of the object carried by a <a object|botgr>grabber</a>. If it"
" carries nothing, <code>load</code> returns <code>null</code>."
msgstr ""
"Cette information est spéciale, comme la précédente. Elle contient les"
" caractéristiques de l'objet transporté par le <a object|botgr>robot"
" déménageur</a>. S'il ne transporte rien, <code>load</code> vaut <code>null<"
"/code>."
#. type: \t; header, \b; header
#: ../E/expr.txt:99 ../E/expr.txt:123 ../E/expr.txt:145 ../E/expr.txt:170 ../E/expr.txt:187 ../E/object.txt:66
#, no-wrap
msgid "Examples"
msgstr "Examples"
#. type: Plain text
#: ../E/object.txt:67
#, no-wrap
msgid ""
"The type <code>object</code> returns the special value <code><a cbot|null"
">null</a></code> when the object does not exist. For example:"
msgstr ""
"Le type <code>object</code> prend la valeur particulière <code><a cbot|null"
">null</a></code> lorsque l'objet n'existe pas. Par exemple:"
#. type: Source code
#: ../E/object.txt:69
#, no-wrap
msgid ""
"\tobject a;\n"
"\ta = radar(BotGrabberRoller);\n"
"\tif ( a == null ) // object does not exist ?\n"
"\t{\n"
"\t}\n"
"\tif ( a.position.z > 50 ) // is it on a mountain ?\n"
"\t{\n"
"\t}"
msgstr ""
"\tobject a;\n"
"\ta = radar(BotGrabberRoller);\n"
"\tif ( a == null ) // objet n'existe pas?\n"
"\t{\n"
"\t}\n"
"\tif ( a.position.z > 50 ) // sur une hauteur?\n"
"\t{\n"
"\t}"
#. type: \b; header
#: ../E/open.txt:1
#, no-wrap
msgid "Instruction <code>open</code>"
msgstr "Instruction <code>open</code>"
#. type: Plain text
#: ../E/open.txt:2
#, no-wrap
msgid ""
"Open a text file in the files/ folder. This is a method of the <code><a"
" cbot|file>file</a></code> class. This is the reason why we always write <"
"code>handle.open()</code>:"
msgstr ""
"L'instruction <c/>open();<n/> ouvre un fichier de texte dans le dossier"
" files/. Cette instruction est une méthode de la classe <code><a cbot|file"
">file</a></code>. C'est la raison pour laquelle on n'écrit jamais <code"
">open()</code> tout seul, mais <code>handle.open()</code>:"
#. type: Source code
#: ../E/open.txt:4
#, no-wrap
msgid "\thandle.open(\"test.txt\", \"w\");"
msgstr "\thandle.open(\"essai.txt\", \"w\");"
#. type: Plain text
#: ../E/open.txt:6
#, no-wrap
msgid "To open a file, proceed as follows:"
msgstr "Pour ouvrir un fichier, procédez comme suit:"
#. type: Source code
#: ../E/open.txt:8
#, no-wrap
msgid ""
"\tfile handle();\n"
"\thandle.open(\"filename\", \"w\");\n"
"\thandle.writeln(\"abc\");\n"
"\thandle.close();"
msgstr ""
"\tfile handle();\n"
"\thandle.open(\"filename\", \"w\");\n"
"\thandle.writeln(\"abc\");\n"
"\thandle.close();"
#. type: Plain text
#: ../E/open.txt:13 ../E/openfile.txt:6
#, no-wrap
msgid ""
"<code>\"r\"</code> mode: open for reading.\n"
"<code>\"w\"</code> mode: open for writing."
msgstr ""
"Le mode <code>\"r\"</code> permet d'ouvrir le fichier en lecture (read).\n"
"Le mode <code>\"w\"</code> permet d'ouvrir le fichier en écriture (write)."
#. type: Plain text
#: ../E/open.txt:16
#, no-wrap
msgid ""
"Files can only be created and opened in the files/ folder which is located in"
" the folder where Colobot has been installed. You cannot not create or open"
" files that are located elsewhere than in the files/ folder."
msgstr ""
"Les fichiers ne peuvent être créés et ouverts que dans le dossier files/,"
" situé là où Colobot a été installé. Il n'est pas possible de créer ou ouvrir"
" des fichiers situés ailleurs que dans ce dossier files/."
#. type: Plain text
#: ../E/open.txt:19
#, no-wrap
msgid ""
"<code><a cbot|file>file</a></code>, <code><a cbot|close>close</a></code>, <"
"code><a cbot|readln>readln</a></code>, <code><a cbot|writeln>writeln</a><"
"/code> and <code><a cbot|eof>eof</a></code>.\n"
"<a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category"
">categories</a>."
msgstr ""
"<code><a cbot|file>file</a></code>, <code><a cbot|close>close</a></code>, <"
"code><a cbot|readln>readln</a></code>, <code><a cbot|writeln>writeln</a><"
"/code> et <code><a cbot|eof>eof</a></code>.\n"
"<a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|category"
">catégories</a>."
#. type: \b; header
#: ../E/openfile.txt:1
#, no-wrap
msgid "Instruction <code>openfile</code>"
msgstr "Instruction <code>openfile</code>"
#. type: Plain text
#: ../E/openfile.txt:2
#, no-wrap
msgid ""
"<c/>openfile();<n/> opens an text file in the files/ folder. This is not a"
" method of the <code><a cbot|file>file</a></code> class but openfile returne"
" a <a cbot|pointer>reference</a> to a new instance of the file class. You"
" must supply two parameters, the filename and the opening mode."
msgstr ""
"L'instruction <c/>openfile();<n/> ouvre un fichier de texte dans le dossier"
" files/. Elle ne fait pas partie de la classe <code><a cbot|file>file</a><"
"/code> mais retourne une <a cbot|pointer>référence</a> à une instance de"
" cette classe avec le fichier ouvert. Cette fonction demande deux paramètres:"
" le nom du fichier et le mode d'ouverture."
#. type: Source code
#: ../E/openfile.txt:4
#, no-wrap
msgid "file handle = openfile(\"filename\", \"r\");"
msgstr "file handle = openfile(\"filename\", \"r\");"
#. type: \b; header
#: ../E/point.txt:1
#, no-wrap
msgid "Type <code>point</code>"
msgstr "Type <code>point</code>"
#. type: Plain text
#: ../E/point.txt:2
#, no-wrap
msgid ""
"Variables of this type contain the coordinates of a point in space. This type"
" is made of three values that represent the <code>x</code>, <code>y</code>"
" and <code>z</code> coordinates.\n"
"<code>x</code> and <code>y</code> correspond to the place on the ground. The"
" positive <code>x</code> axis faces towards east, the positive <code>y</code>"
" axis faces towards north. \n"
"The <code>z</code> value corresponds to the altitude above sea level. "
msgstr ""
"Ce type permet de représenter les coordonnées d'un point dans l'espace. Ce"
" type contient en fait 3 nombres réels, pour les coordonnées <code>x</code>,"
" <code>y</code> et <code>z</code>.\n"
"<code>x</code> et <code>y</code> correspondent à la position sur le sol, à"
" plat. <code>x</code> positif va en direction de l'est et <code>y</code>"
" positif va en direction du nord.\n"
"<code>z</code> correspond à l'élévation."
#. type: Plain text
#: ../E/point.txt:6
#, no-wrap
msgid "If you want to declare a variable of type point, you can write: "
msgstr "Pour déclarer et initialiser un point, vous pouvez écrire:"
#. type: Source code
#: ../E/point.txt:8
#, no-wrap
msgid "\tpoint a (10, 20, 30);"
msgstr "\tpoint a (10, 20, 30);"
#. type: Plain text
#: ../E/point.txt:10
#, no-wrap
msgid "You can also set the variable taking one value after another:"
msgstr "Il est possible d'accéder à une coordonnée particulière avec:"
#. type: Source code
#: ../E/point.txt:12
#, no-wrap
msgid ""
"\tpoint b;\n"
"\tb.x = 10;\n"
"\tb.y = 20;\n"
"\tb.z = 30;"
msgstr ""
"\tpoint b;\n"
"\tb.x = 10;\n"
"\tb.y = 20;\n"
"\tb.z = 30;"
#. type: Plain text
#: ../E/point.txt:17
#, no-wrap
msgid "With these examples, the following <a cbot|cond>condition</a> is true:"
msgstr ""
"Avec ces deux exemples, la <a cbot|cond>condition</a> suivante est vraie:"
#. type: Source code
#: ../E/point.txt:19
#, no-wrap
msgid ""
"\tif ( a == b )\n"
"\t{\n"
"\t}"
msgstr ""
"\tif ( a == b )\n"
"\t{\n"
"\t}"
#. type: Plain text
#: ../E/point.txt:22
#, no-wrap
msgid ""
"<n/> \n"
"The following declaration :"
msgstr "La déclaration suivante:"
#. type: Source code
#: ../E/point.txt:25
#, no-wrap
msgid "\tpoint c (4, 7);"
msgstr "\tpoint c (4, 7);"
#. type: Plain text
#: ../E/point.txt:27
#, no-wrap
msgid "Is equivalent to :"
msgstr "Est équivalente à:"
#. type: Source code
#: ../E/point.txt:29
#, no-wrap
msgid ""
"\tpoint c;\n"
"\tc.x = 4;\n"
"\tc.y = 7;\n"
"\tc.z = 0;"
msgstr ""
"\tpoint c;\n"
"\tc.x = 4;\n"
"\tc.y = 7;\n"
"\tc.z = 0;"
#. type: \b; header
#: ../E/pointer.txt:1
#, no-wrap
msgid "References (for specialists)"
msgstr "Les références (pour spécialistes)"
#. type: Plain text
#: ../E/pointer.txt:2
#, no-wrap
msgid ""
"CBOT uses references for <a cbot|class>classes</a> and <a cbot|array>arrays<"
"/a>. Any class variable actually contains a reference to the instance. The"
" instance actually contains the class fields. Several references can"
" reference the same instance. A <code><a cbot|null>null</a></code> reference"
" references nothing. You can compare an instance to a suitcase and a"
" reference to a carrier. Each time we need a new suitcase we create a new"
" instance with a carrier. But a suitcase can be carried by more than one"
" carrier. A carrier who carries no suitcase is a <code><a cbot|null>null</a><"
"/code> reference."
msgstr ""
"CBOT travaille avec des références aux instances de <a cbot|class>classes</a>"
" et aux <a cbot|array>tableaux</a>. Une instance est un élément physique"
" contenant les informations liées à la classe. On peut comparer cela à une"
" petite valise avec des conteneurs correspondants à la description de la"
" classe. A chaque fois que l'on a besoin d'une nouvelle valise pour y mettre"
" quelque chose, il faut créer une nouvelle instance. Les références, quant à"
" elles, peuvent être considérées comme les porteurs de ces valises, à cela"
" prêt qu'il y a souvent plusieurs porteurs pour la même valise. Une référence"
" <code><a cbot|null>null</a></code> ne référence rien; c'est comparable à un"
" porteur sans valise.\n"
"Le fait qu'une instance à une classe soit créée automatiquement (<code><a"
" cbot|new>new</a></code> sous-entendu) ne change pas ce concept. On peut donc"
" copier une référence dans une autre et avoir plusieurs références vers une"
" même instance."
#. type: Plain text
#: ../E/pointer.txt:4
#, no-wrap
msgid ""
"Example:\n"
"<c/><s/>{"
msgstr ""
"Examples:\n"
"<c/><s/>{"
#. type: Source code
#: ../E/pointer.txt:6
#, no-wrap
msgid ""
"\tMyClass item1(); // create a new instance\n"
"\t // referenced by item1\n"
"\tMyClass item2; // create a null reference\n"
"\titem2 = item1; // copy the reference,\n"
"\t // item2 and item1 now reference\n"
"\t // the same instance\n"
"\titem1.a = 12; // modifies the instance\n"
"\t // referenced by item1 (and item2)\n"
"\tmessage(item2.a);// displays 12\n"
"}"
msgstr ""
"\tMaClasse item1(); // crée une instance\n"
"\tMaClasse item2; // crée une référence nulle\n"
"\titem2 = item1; // copie la référence\n"
"\titem1.a = 12; // modifie aussi item2\n"
"\tmessage(item2.a); // affiche 12\n"
"}"
#. type: Plain text
#: ../E/pointer.txt:17
#, no-wrap
msgid ""
"If you pass a <a cbot|class>class</a> instance as parameter to a function,"
" the function only receives a reference to the instance. That means if you"
" modify the instance in the function, the instance that has been specified by"
" the caller will be actuallay modified."
msgstr ""
"En passage de paramètre, c'est toujours la référence qui est donnée à la <a"
" cbot|function>fonction</a>:"
#. type: Plain text
#: ../E/pointer.txt:19
#, no-wrap
msgid "<c/><s/>void Test( MyClass item )"
msgstr "<c/><s/>void Test( MaClasse item )"
#. type: Source code
#: ../E/pointer.txt:20
#, no-wrap
msgid ""
"{\n"
"\titem.a = 12; // modify the original instance\n"
"\titem = new MyClass(); // new local instance\n"
"\titem.a = 33; // modifie the local instance\n"
"}"
msgstr ""
"{\n"
"\titem.a = 12; // modifie l'instance d'origine\n"
"\titem = new MaClasse(); // nouvelle instance locale\n"
"\titem.a = 33; // modifie l'instance locale\n"
"}"
#. type: Plain text
#: ../E/pointer.txt:26
#, no-wrap
msgid ""
"Calling the fucntion <code>Test()</code>:\n"
"<c/><s/>{"
msgstr ""
"Un appel à cette fonction va donner cela:\n"
"<c/><s/>{"
#. type: Source code
#: ../E/pointer.txt:28
#, no-wrap
msgid ""
"\tMyClass toto();\n"
"\tTest(toto);\n"
"\tmessage(toto.a); // displays 12\n"
"}"
msgstr ""
"\tMaClasse toto();\n"
"\tTest(toto);\n"
"\tmessage(toto.a); // toto.a vaut 12\n"
"}"
#. type: Plain text
#: ../E/pointer.txt:33
#, no-wrap
msgid ""
"The instance containing the field <code>a = 33</code> is referenced only by"
" the newly created instance <code>item</code> inside the fucntion <code>Test<"
"/code>. At the end of <code>Test</code> this newly created instance"
" referenced by <code>item</code> is automatically deleted."
msgstr ""
"En effet, l'instance avec le résultat <code>33</code> n'était pointée que par"
" <code>item</code> dans la fonction <code>Test</code>. A la sortie de <code"
">Test</code>, la référence <code>item</code> disparaît et l'instance qu'elle"
" pointait n'a plus de raison d'être."
#. type: Plain text
#: ../E/pointer.txt:35
#, no-wrap
msgid ""
"A function can return an instance:\n"
"<c/><s/>MyClass Test2( )"
msgstr ""
"Une <a cbot|function>fonction</a> peut rendre une instance en sortie. Pour"
" cela, il faut la définir ainsi:\n"
"<c/><s/>MaClasse Test2( )"
#. type: Source code
#: ../E/pointer.txt:37
#, no-wrap
msgid ""
"{\n"
"\tMyClass item = new MyClass();\n"
"\titem.x = 33;\n"
"\treturn item;\n"
"}"
msgstr ""
"{\n"
"\tMaClasse item = new MaClasse();\n"
"\titem.x = 33;\n"
"\treturn item;\n"
"}"
#. type: Plain text
#: ../E/pointer.txt:43
#, no-wrap
msgid ""
"Call the function like this:\n"
"<c/><s/>{"
msgstr ""
"L'appel à cette fonction se fait alors ainsi:\n"
"<c/><s/>{"
#. type: Source code
#: ../E/pointer.txt:45
#, no-wrap
msgid ""
"\tMyClass toto;\n"
"\ttoto = Test2(); // toto will contain a reference to\n"
"\t // the instance created by Test2()\n"
"\tmessage(toto.a); // displays 33\n"
"}"
msgstr ""
"\tMaClasse toto;\n"
"\ttoto = Test2();\n"
"\tmessage(toto.a); // affiche 33\n"
"}"
#. type: Plain text
#: ../E/pointer.txt:52
#, no-wrap
msgid ""
"<code><a cbot|class>class</a></code>, <code><a cbot|new>new</a></code>\n"
"<a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category"
">categories</a>."
msgstr ""
"<a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|category"
">catégories</a>."
#. type: \b; header
#: ../E/private.txt:1
#, no-wrap
msgid "Instruction <code>private</code> (for specialists)"
msgstr "Instruction <code>private</code> (pour spécialistes)"
#. type: Plain text
#: ../E/private.txt:2
#, no-wrap
msgid ""
"<a cbot|class>Class</a> members can be <a cbot|public>public</a> (by default)"
" or private. A member can be declared private by putting <code>private</code>"
" before the type declaration of the member. Private members are not"
" accessible from outside the class definition."
msgstr ""
"Les éléments déclarés dans une <a cbot|class>classe</a> peuvent être <a"
" cbot|public>publics</a> (par défaut) ou privés. Un élément est privé en"
" plaçant <code>private</code> devant le type de l'élément. Dès lors, ces"
" éléments ne seront plus accessibles depuis l'extérieur de la définition de"
" la classe elle-même."
#. type: Source code
#: ../E/private.txt:4
#, no-wrap
msgid ""
"public class MyClass\n"
"{\n"
"\tint b; // public by default\n"
"\tpublic int a; // also public \n"
"\tprivate point position; // private\n"
"}\n"
"void Test()\n"
"{\n"
"\tMyClass item;\n"
"\titem.a = item.b = 12; // ok\n"
"\tmessage( item.position ); // this is an error\n"
"}"
msgstr ""
"public class MaClasse\n"
"{\n"
"\tint b; // public par défaut\n"
"\tpublic int a; // public aussi\n"
"\tprivate point position; // privé\n"
"}\n"
"void Test()\n"
"{\n"
"\tMaClasse item;\n"
"\titem.a = item.b = 12; // ok\n"
"\tmessage( item.position ); // erreur élément non accessible\n"
"}"
#. type: Plain text
#: ../E/private.txt:18
#, no-wrap
msgid ""
"<code><a cbot|class>class</a></code>, <code><a cbot|public>public</a></code>\n"
"<a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category"
">categories</a>."
msgstr ""
"<code><a cbot|class>class</a></code>, <code><a cbot|public>public</a></code>\n"
"<a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|category"
">catégories</a>."
#. type: \b; header
#: ../E/public.txt:1
#, no-wrap
msgid "Instruction <code>public</code> (for specialists)"
msgstr "Instruction <code>public</code> (pour spécialistes)"
#. type: Plain text
#: ../E/public.txt:2
#, no-wrap
msgid "This instruction has two distinct purposes:"
msgstr "Cette instruction a deux rôles distincts:"
#. type: Bullet: '1)'
#: ../E/public.txt:4
#, no-wrap
msgid "Make a function available to other bots."
msgstr "Rendre une fonction accessible de tous les robots."
#. type: Bullet: '2)'
#: ../E/public.txt:5
#, no-wrap
msgid "Make a class member accessible from outside the class definition."
msgstr "Rendre une méthode d'une classe accessible de l'extérieur."
#. type: \b; header
#: ../E/public.txt:7
#, no-wrap
msgid "Instruction <code>public</code> for functions"
msgstr "Instruction <code>public</code> pour les fonctions"
#. type: Plain text
#: ../E/public.txt:8
#, no-wrap
msgid ""
"If you put <code>public</code> before a <a cbot|function>function</a>"
" definition, you can make the function available to programs in other bots in"
" the same mission."
msgstr ""
"La présence de ce mot rend la <a cbot|function>fonction</a> disponible"
" partout dans la mission. Cette fonction peut alors être utilisée dans le"
" programme d'un autre robot."
#. type: Plain text
#: ../E/public.txt:10
#, no-wrap
msgid "For example in the first bot we would have:"
msgstr "Par exemple, dans un premier robot:"
#. type: Source code
#: ../E/public.txt:12
#, no-wrap
msgid ""
"public void object::Segment(float dist, float angle)\n"
"{\n"
"\tmove(dist);\n"
"\tturn(angle);\n"
"}"
msgstr ""
"public void object::Segment(float dist, float angle)\n"
"{\n"
"\tmove(dist);\n"
"\tturn(angle);\n"
"}"
#. type: Plain text
#: ../E/public.txt:18
#, no-wrap
msgid "And in another bot we would have:"
msgstr "Et dans un autre robot:"
#. type: Source code
#: ../E/public.txt:20
#, no-wrap
msgid ""
"extern void object::Square( )\n"
"{\n"
"\tfor ( int i=0 ; i<4 ; i++ )\n"
"\t{\n"
"\t\tSegment(10, 90);\n"
"\t\tfire(1);\n"
"\t}\n"
"}"
msgstr ""
"extern void object::Square( )\n"
"{\n"
"\tfor ( int i=0 ; i<4 ; i++ )\n"
"\t{\n"
"\t\tSegment(10, 90);\n"
"\t\tfire(1);\n"
"\t}\n"
"}"
#. type: Plain text
#: ../E/public.txt:29
#, no-wrap
msgid ""
"If you have declared a function <code>public</code>, you cannot define a"
" function with the same name and arguments in another bot of the same mission."
msgstr ""
"Il ne peut y avoir qu'une seule fonction ayant le même nom, parmi tous les"
" programmes des robots de la mission en cours."
#. type: Plain text
#: ../E/public.txt:31
#, no-wrap
msgid ""
"If a bot containing a <code>public</code> function is destroyed, the other"
" bots that make use of this function will be stopped with an error."
msgstr ""
"Si le robot qui contenait la fonction déclarée <code>public</code> est"
" détruit, les autres robots qui utilisent cette fonction sont stoppés sur une"
" erreur!"
#. type: \b; header
#: ../E/public.txt:33
#, no-wrap
msgid "Instruction <code>public</code> for classes"
msgstr "Instruction <code>public</code> pour les classes"
#. type: Plain text
#: ../E/public.txt:34
#, no-wrap
msgid ""
"<a cbot|class>Class</a> members can be public (by default) or <a cbot|private"
">privat</a>. A member can be declared private by putting <code>private</code>"
" before the member type. Private members are not accessible from outside the"
" class definition."
msgstr ""
"Les éléments déclarés dans une <a cbot|class>classe</a> peuvent être publics"
" (par défaut) ou <a cbot|private>privés</a>. Un élément est privé en plaçant"
" <code>private</code> devant le type de l'élément. Dès lors, ces éléments ne"
" seront plus accessibles depuis l'extérieur de la définition de la classe"
" elle-même."
#. type: Source code
#: ../E/public.txt:36
#, no-wrap
msgid ""
"public class MyClass\n"
"{\n"
"\tint b; // public by default\n"
"\tpublic int a; // also public \n"
"\tprivate point position; // privat\n"
"}\n"
"void Test()\n"
"{\n"
"\tMyClass item;\n"
"\titem.a = item.b = 12; // ok\n"
"\tmessage( item.position ); // this is an error\n"
"}"
msgstr ""
"public class MaClasse\n"
"{\n"
"\tint b; // public par défaut\n"
"\tpublic int a; // public aussi\n"
"\tprivate point position; // privé\n"
"}\n"
"void Test()\n"
"{\n"
"\tMaClasse item;\n"
"\titem.a = item.b = 12; // ok\n"
"\tmessage( item.position ); // erreur\n"
"}"
#. type: Plain text
#: ../E/public.txt:50
#, no-wrap
msgid ""
"<code><a cbot|class>class</a></code>, <code><a cbot|private>private</a></code"
">, <code><a cbot|function>functions</a></code>\n"
"<a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category"
">categories</a>."
msgstr ""
"<code><a cbot|class>class</a></code>, <code><a cbot|private>private</a></code"
">\n"
"<a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|category"
">catégories</a>."
#. type: \b; header
#: ../E/radar.txt:1
#, no-wrap
msgid "Instruction <code>radar</code>"
msgstr "Instruction <code>radar</code>"
#. type: Plain text
#: ../E/radar.txt:5
#, no-wrap
msgid ""
"Write in brackets the <a cbot|category>name of the object</a> that you look"
" for. Put the result in a variable of the <a cbot|type>type</a> <code>object<"
"/code>. Here is an example that looks for the closest ant:"
msgstr ""
"Donnez entre parenthèses le <a cbot|category>nom de l'objet</a> que vous"
" cherchez. Mettez le résultat dans une variable de <a cbot|type>type</a> <"
"code>object</code>. Voici par exemple comment chercher la fourmi la plus"
" proche:"
#. type: Source code
#: ../E/radar.txt:7
#, no-wrap
msgid ""
"// At the beginning of the program:\n"
"object item; // variable declaration\n"
"\n"
"// Look for the closest ant\n"
"item = radar(AlienAnt);"
msgstr ""
"// Tout au début du programme:\n"
"object chose; // déclaration de la variable\n"
"\n"
"// Cherche la fourmi la plus proche\n"
"chose = radar(AlienAnt);"
#. type: Plain text
#: ../E/radar.txt:17
#, no-wrap
msgid "Detects an object according to several parameters. "
msgstr "Détecte un objet selon divers critères."
#. type: Image filename
#: ../E/radar.txt:19
#, no-wrap
msgid "radar1"
msgstr "radar1"
#. type: Plain text
#: ../E/radar.txt:20
#, no-wrap
msgid ""
"Seen from above, the purple zone corresponds to the zone where objects will"
" be detected. "
msgstr ""
"La zone arrondie violette correspond, vue d'en haut, à la zone dans laquelle"
" les objets sont détectés."
#. type: \t; header
#: ../E/produce.txt:15 ../E/search.txt:7
#, no-wrap
msgid "category: <code><a cbot|int>int</a></code>"
msgstr "catégorie: <code><a cbot|int>int</a></code>"
#. type: Plain text
#: ../E/radar.txt:34
#, no-wrap
msgid ""
"Direction that the radar is facing, in degrees. \n"
"<code> 0</code> -> radar is facing straight ahead\n"
"<code>-90</code> -> radar is facing a quarter turn right\n"
"<code> 90</code> -> radar is facing a quarter turn left"
msgstr ""
"Direction dans laquelle est dirigé le radar, en degrés.\n"
"<code> 0</code> -> radar dirigé droit devant\n"
"<code>-90</code> -> radar dirigé à gauche\n"
"<code> 90</code> -> radar dirigé à droite"
#. type: Plain text
#: ../E/radar.txt:40
#, no-wrap
msgid "Opening angle of the radar, in degrees. "
msgstr "Angle d'ouverture du radar, en degrés."
#. type: Plain text
#: ../E/radar.txt:43
#, no-wrap
msgid ""
"Minimum detection distance, in meters. Objects that are closer than the"
" minimum distance will not be detected. "
msgstr ""
"Distance minimale de détection, en mètres. Avant cette distance, les objets"
" sont ignorés."
#. type: Plain text
#: ../E/radar.txt:46
#, no-wrap
msgid ""
"Maximum detection distance, in meters. Objects that are farther away than the"
" maximum distance will not be detected. "
msgstr ""
"Distance maximale de détection, en mètres. Au delà de cette distance, les"
" objets sont ignorés."
#. type: Plain text
#: ../E/radar.txt:49
#, no-wrap
msgid ""
"Determines which way the objects are detected. With value <code>1</code>,"
" returns the closest object found in the specified zone. With value <code>-1<"
"/code>, the farthest object in the zone will be returned. "
msgstr ""
"Sens dans lequel s'effectue la recherche. Avec la valeur <code>1</code>, on"
" cherche de l'intérieur vers l'extérieur. Autrement dit, c'est l'objet le"
" plus proche qui est trouvé. Avec <code>-1</code>, on cherche de l'extérieur"
" vers l'intérieur. On trouvera donc l'objet le plus éloigné."
#. type: \t; header
#: ../E/radar.txt:65 ../E/retobj.txt:10 ../E/search.txt:22
#, no-wrap
msgid "Return value: <code><a cbot|object>object</a></code>"
msgstr "Valeur retournée: <code><a cbot|object>object</a></code>"
#. type: Plain text
#: ../E/radar.txt:66
#, no-wrap
msgid ""
"Returns the first object found that corresponds to the specified category in"
" the specified zone. If no object was found, returns the value <code><a"
" cbot|null>null</a></code>."
msgstr ""
"Objet trouvé le plus proche. La valeur <code><a cbot|null>null</a></code>"
" indique que rien n'a été trouvé."
#. type: \t; header
#: ../E/expr.txt:131 ../E/radar.txt:68
#, no-wrap
msgid "Remark"
msgstr "Remarque"
#. type: Plain text
#: ../E/radar.txt:69
#, no-wrap
msgid ""
"You do not have to give all the parameters. Here are two examples of"
" instructions that are equivalent: "
msgstr ""
"Il n'est pas nécessaire de donner tous les paramètres. Voici deux exemples"
" identiques:"
#. type: Source code
#: ../E/radar.txt:71
#, no-wrap
msgid ""
"\tradar(Titanium, 0, 360, 0, 1000);\n"
"\tradar(Titanium); // equivalent"
msgstr ""
"\tradar(Titanium, 0, 360, 0, 1000);\n"
"\tradar(Titanium); // identique"
#. type: Source code
#: ../E/radar.txt:74
#, no-wrap
msgid ""
"\tradar(Titanium, 0, 90, 0, 1000);\n"
"\tradar(Titanium, 0, 90); // equivalent"
msgstr ""
"\tradar(Titanium, 0, 90, 0, 1000);\n"
"\tradar(Titanium, 0, 90); // identique"
#. type: Plain text
#: ../E/radar.txt:77
#, no-wrap
msgid ""
"When one or more parameters are not specified, the default values indicated"
" above are used instead; only the first parameter is compulsory.\n"
"Generally, only the first parameter is specified: f. ex. <code>radar"
" (AlienAnt)</code> detects the closest ant, wherever it may be. "
msgstr ""
"En fait, lorsque des paramètres manquent, ils prennent les valeurs par défaut"
" indiquées plus haut. Le premier paramètre <code>catégorie</code> est"
" obligatoire. Les cinq paramètres suivants sont facultatifs, et sont"
" remplacés par <code>0</code>, <code>360</code>, <code>0</code>, <code>1000<"
"/code> et <code>1</code> s'ils manquent.\n"
"Ceci est très utile. En effet, <code>radar(XXX)</code> trouve l'objet le plus"
" proche, où qu'il soit."
#. type: \b; header
#: ../E/readln.txt:1
#, no-wrap
msgid "Instruction <code>readln</code>"
msgstr "Instruction <code>readln</code>"
#. type: Plain text
#: ../E/readln.txt:2
#, no-wrap
msgid ""
"Read one line from an open file in the files/ folder. This is a method of the"
" <code><a cbot|file>file</a></code> class. This is the reason why we always"
" write <code>handle.readln()</code>:"
msgstr ""
"L'instruction <c/>readln();<n/> lit une ligne de texte dans un fichier ouvert"
" dans le dossier files/. Cette instruction est une méthode de la classe <code"
"><a cbot|file>file</a></code>. C'est la raison pour laquelle on n'écrit"
" jamais <code>readln()</code> tout seul, mais <code>handle.readln()</code>:"
#. type: Source code
#: ../E/readln.txt:4
#, no-wrap
msgid "\ts = handle.readln();"
msgstr "\ts = handle.readln();"
#. type: Plain text
#: ../E/readln.txt:6
#, no-wrap
msgid ""
"The file must have been opened for reading (<code>\"r\"</code>) with the <"
"code><a cbot|open>open</a></code> instruction. <code>readln</code> returns"
" the string containing the whole line but without the end of line characters"
" 0x0D (CR) and 0x0A (LF)."
msgstr ""
"Le fichier doit être ouvert avec l'instruction <code><a cbot|open>open</a><"
"/code> et le mode <code>\"r\"</code> (lecture). L'instruction <code>readln<"
"/code> retourne une chaîne de caractères contenant la ligne lue, sans les"
" deux caractères de fin de ligne 0x0D (CR) et 0x0A (LF)."
#. type: Source code
#: ../E/readln.txt:9
#, no-wrap
msgid "<c/>string = handle.readln ( );<n/>"
msgstr "<c/>string readln ( );<n/>"
#. type: Source code
#: ../E/readln.txt:13
#, no-wrap
msgid ""
"\tstring s;\n"
"\ts = handle.readln();\n"
"\tif ( s == \"abc\" )\n"
"\t..."
msgstr ""
"\tstring s;\n"
"\ts = readln();\n"
"\tif ( s == \"abc\" )\n"
"\t..."
#. type: Plain text
#: ../E/readln.txt:19
#, no-wrap
msgid ""
"<code><a cbot|file>file</a></code>, <code><a cbot|open>open</a></code>, <code"
"><a cbot|close>close</a></code>, <code><a cbot|writeln>writeln</a></code> and"
" <code><a cbot|eof>eof</a></code>.\n"
"<a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category"
">categories</a>."
msgstr ""
"<code><a cbot|file>file</a></code>, <code><a cbot|open>open</a></code>, <code"
"><a cbot|close>close</a></code>, <code><a cbot|writeln>writeln</a></code> et"
" <code><a cbot|eof>eof</a></code>.\n"
"<a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|category"
">catégories</a>."
#. type: \b; header
#: ../E/receive.txt:1
#, no-wrap
msgid "Instruction <code>receive</code>"
msgstr "Instruction <code>receive</code>"
#. type: Source code
#: ../E/receive.txt:3
#, no-wrap
msgid "<c/>receive ( name, power );<n/>"
msgstr "<c/>receive ( name, power );<n/>"
#. type: Plain text
#: ../E/receive.txt:5
#, no-wrap
msgid ""
"Retrieves an information from the closest <a object|exchange>information"
" exchange post</a>."
msgstr ""
"Reçoit une information de la <a object|exchange>borne</a> la plus proche."
#. type: Plain text
#: ../E/receive.txt:8
#, no-wrap
msgid ""
"Name of the information required from the exchange post. This name is a"
" string: it must be written in quotation marks \"\"."
msgstr ""
"Nom de l'information à lire dans la borne. Ce nom est une chaîne de"
" caractères; il doit donc être donné entre guillemets \"\"."
#. type: Plain text
#: ../E/receive.txt:11
#, no-wrap
msgid ""
"Power of the receiver, which corresponds to maximal distance between the"
" receiver and the exchange post. If the distance is longer, no information is"
" received. Default value is 10 metres."
msgstr ""
"Puissance du récepteur, qui correspond à la distance maximale jusqu'où peut"
" être la borne. La valeur par défaut est de 10 mètres."
#. type: Plain text
#: ../E/receive.txt:14
#, no-wrap
msgid ""
"Value of the retrieved information. If no exchange post is close enough, or"
" if the name of the requested information does not exist in the exchange"
" post, the value <code>nan</code> is returned."
msgstr ""
"Valeur de l'information lue. Si aucune borne d'informations n'est à"
" proximité, ou si le nom de l'information à lire n'existe pas dans la borne,"
" la valeur <code>nan</code> est retournée."
#. type: Plain text
#: ../E/receive.txt:17
#, no-wrap
msgid ""
"<code><a cbot|send>send</a></code>, <code><a cbot|testinfo>testinfo</a></code"
"> and <code><a cbot|delinfo>deleteinfo</a></code>.\n"
"<a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category"
">categories</a>."
msgstr ""
"<code><a cbot|send>send</a></code>, <code><a cbot|testinfo>testinfo</a></code"
"> et <code><a cbot|delinfo>deleteinfo</a></code>.\n"
"<a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|category"
">catégories</a>."
#. type: \b; header
#: ../E/recycle.txt:1
#, no-wrap
msgid "Instruction <code>recycle</code>"
msgstr "Instruction <code>recycle</code>"
#. type: Source code
#: ../E/recycle.txt:3
#, no-wrap
msgid "<c/>recycle ( );<n/>"
msgstr "<c/>recycle ( );<n/>"
#. type: Plain text
#: ../E/recycle.txt:5
#, no-wrap
msgid ""
"Recycles the derelict bot in front of the <a object|botrecy>recycler</a> into"
" a <a object|titan>titanium cube</a>."
msgstr ""
"Récupère l'épave placée devant le <a object|botrecy>robot</a>, qui sera"
" transformée en <a object|titan>titanium</a>."
#. type: Plain text
#: ../E/recycle.txt:8
#, no-wrap
msgid ""
"Zero if OK, or a value different from zero if an error occurred.\n"
"<code>== 0 </code>the derelict bot has been recycled\n"
"<code>!= 0 </code>error, no derelict bot could be recycled"
msgstr ""
"Zéro si tout est ok, ou valeur non nulle si une erreur est intervenue.\n"
"<code>== 0 </code>épave recyclée\n"
"<code>!= 0 </code>recyclage impossible"
#. type: \b; header
#: ../E/retobj.txt:1
#, no-wrap
msgid "Instruction <code>retobject</code>"
msgstr "Instruction <code>retobject</code>"
#. type: Source code
#: ../E/retobj.txt:3
#, no-wrap
msgid "<c/>retobject ( number );<n/>"
msgstr "<c/>retobject ( rank );<n/>"
#. type: Plain text
#: ../E/retobj.txt:5
#, no-wrap
msgid "Returns the object corresponding to the given number."
msgstr "Retourne un objet d'après son rang."
#. type: \t; header
#: ../E/retobj.txt:7
#, no-wrap
msgid "number: <code><a cbot|int>int</a></code>"
msgstr "rank: <code><a cbot|int>int</a></code>"
#. type: Plain text
#: ../E/retobj.txt:8
#, no-wrap
msgid ""
"Number of the object, between 0 and n. \"n\" represents the total number of"
" objects in the scene. "
msgstr ""
"Rang de l'objet, compris entre 0 et n. \"n\" représente ici le nombre total"
" d'objets dans la scène."
#. type: Plain text
#: ../E/retobj.txt:11
#, no-wrap
msgid ""
"Object corresponding to the number. The return value <code><a cbot|null>null<"
"/a></code> means that no object corresponds to this number, because the"
" number was too high, and there are not so many objects in the scene. "
msgstr ""
"Objet trouvé. La valeur <code><a cbot|null>null</a></code> indique que rien"
" n'a été trouvé, par exemple lorsque le rang est trop grand."
#. type: \b; header
#: ../E/return.txt:1
#, no-wrap
msgid "Instruction <code>return</code>"
msgstr "Instruction <code>return</code>"
#. type: Plain text
#: ../E/return.txt:2
#, no-wrap
msgid "Returns from a function. Syntax:"
msgstr ""
"Cette instruction permet de sortir immédiatement d'une <a cbot|function"
">fonction</a>. Syntaxe:"
#. type: Source code
#: ../E/return.txt:4
#, no-wrap
msgid ""
"void function ( )\n"
"{\n"
"\treturn;\n"
"}"
msgstr ""
"<c/>void fonction ( )\n"
"{\n"
"\treturn;\n"
"}"
#. type: Plain text
#: ../E/return.txt:10
#, no-wrap
msgid ""
"If the <a cbot|function>function</a> has a return type, the <code>return<"
"/code> instruction must be followed by the value to be returned:"
msgstr ""
"Lorsqu'une <a cbot|function>fonction</a> rend un résultat, <code>return</code"
"> doit être suivi de la valeur à retourner:"
#. type: Source code
#: ../E/return.txt:12
#, no-wrap
msgid ""
"float Pi ( )\n"
"{\n"
"\treturn 3.1415;\n"
"}"
msgstr ""
"float Pi ( )\n"
"{\n"
"\treturn 3.1415;\n"
"}"
#. type: Source code
#: ../E/return.txt:17
#, no-wrap
msgid ""
"float Mean (float a, float b)\n"
"{\n"
"\treturn (a+b)/2;\n"
"}"
msgstr ""
"float Moyenne (float a, float b)\n"
"{\n"
"\treturn (a+b)/2;\n"
"}"
#. type: Source code
#: ../E/return.txt:22
#, no-wrap
msgid ""
"string Sign (float a)\n"
"{\n"
"\tif ( a > 0 ) return \"positive\";\n"
"\tif ( a < 0 ) return \"negative\";\n"
"\treturn \"null\";\n"
"}"
msgstr ""
"string Signe (float a)\n"
"{\n"
"\tif ( a > 0 ) return \"positif\";\n"
"\tif ( a < 0 ) return \"négatif\";\n"
"\treturn \"nul\";\n"
"}"
#. type: \b; header
#: ../E/search.txt:1
#, no-wrap
msgid "Instruction <code>search</code>"
msgstr "Instruction <code>search</code>"
#. type: Source code
#: ../E/search.txt:3
#, no-wrap
msgid "<c/>search ( category, position );<n/>"
msgstr "<c/>search ( catégorie, pos );<n/>"
#. type: \t; header
#: ../E/produce.txt:9 ../E/topo.txt:7
#, no-wrap
msgid "position: <code><a cbot|point>point</a></code>"
msgstr "pos: <code><a cbot|point>point</a></code>"
#. type: Plain text
#: ../E/search.txt:20
#, no-wrap
msgid ""
"<code>search</code> returns the object of the given category that is closest"
" to the position indicated here. "
msgstr "Position à partir de laquelle s'effectue la recherche."
#. type: Plain text
#: ../E/search.txt:23
#, no-wrap
msgid ""
"Characteristics of the object that has been found. The value <code><a"
" cbot|null>null</a></code> means that no object of this category has been"
" found. "
msgstr ""
"Objet trouvé. La valeur <code><a cbot|null>null</a></code> indique que rien"
" n'a été trouvé."
#. type: \b; header
#: ../E/send.txt:1
#, no-wrap
msgid "Instruction <code>send</code>"
msgstr "Instruction <code>send</code>"
#. type: Source code
#: ../E/send.txt:3
#, no-wrap
msgid "<c/>send ( name, value, power );<n/>"
msgstr "<c/>send ( name, value, power );<n/>"
#. type: Plain text
#: ../E/send.txt:5
#, no-wrap
msgid ""
"Sends an information to the closest <a object|exchange>information exchange"
" post</a>."
msgstr ""
"Envoie une information dans la <a object|exchange>borne</a> la plus proche."
#. type: Plain text
#: ../E/send.txt:8
#, no-wrap
msgid ""
"Name of the information to be sent to the exchange post. This name is a"
" string: it must be written in quotation marks \"\".\n"
"If there is any information having this name, a new entry is created, as far"
" as the total number of entries does not exceed 10. If there is already an"
" information having this name, value is simply replaced by the new."
msgstr ""
"Nom de l'information à écrire dans la borne. Ce nom est une chaîne de"
" caractères; il doit donc être donné entre guillemets \"\".\n"
"S'il n'existe aucune information ayant ce nom, une nouvelle entrée est créée,"
" pour autant que le nombre total d'entrées ne dépasse pas 10. S'il existe"
" déjà une information ayant ce nom, la valeur est simplement remplacée par la"
" nouvelle."
#. type: \t; header
#: ../E/send.txt:11
#, no-wrap
msgid "value: <code>float</code>"
msgstr "value: <code>float</code>"
#. type: Plain text
#: ../E/send.txt:12
#, no-wrap
msgid "Value of the information to be sent."
msgstr "Valeur de l'information à envoyer."
#. type: Plain text
#: ../E/send.txt:15
#, no-wrap
msgid ""
"Power of the transmitter, which corresponds to the maximal distance to where"
" information can be the sent. Default value is 10 metres."
msgstr ""
"Puissance de l'émetteur, qui correspond à la distance maximale jusqu'où peut"
" être la borne. La valeur par défaut est de 10 mètres."
#. type: Plain text
#: ../E/send.txt:18
#, no-wrap
msgid ""
"<code><a cbot|receive>receive</a></code>, <code><a cbot|testinfo>testinfo</a"
"></code> and <code><a cbot|delinfo>deleteinfo</a></code>.\n"
"<a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category"
">categories</a>."
msgstr ""
"<code><a cbot|receive>receive</a></code>, <code><a cbot|testinfo>testinfo</a"
"></code> et <code><a cbot|delinfo>deleteinfo</a></code>.\n"
"<a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|category"
">catégories</a>."
#. type: \b; header
#: ../E/shield.txt:1
#, no-wrap
msgid "Instruction <code>shield</code>"
msgstr "Instruction <code>shield</code>"
#. type: Source code
#: ../E/shield.txt:3
#, no-wrap
msgid "<c/>shield ( oper, radius );<n/>"
msgstr "<c/>shield ( oper, radius );<n/>"
#. type: Plain text
#: ../E/shield.txt:5
#, no-wrap
msgid ""
"Activates or deactivates the shield of the <a object|botshld>ahielder</a>."
" You can of course move the shielder when the shield is active. It protects"
" all objects that are inside the shielded sphere from enemy fire. The radius"
" of the sphere can range between 10 and 25 meters."
msgstr ""
"Déploie ou replie le bouclier du <a object|botshld>robot</a>. Lorsque le"
" bouclier est déployé, il est possible d'avancer. Le bouclier protège de"
" toutes les attaques <a object|mother>ennemies</a> dans un rayon compris"
" entre 10 et 25 mètres."
#. type: \t; header
#: ../E/shield.txt:7
#, no-wrap
msgid "oper: <code><a cbot|float>float</a></code>"
msgstr "oper: <code><a cbot|float>float</a></code>"
#. type: Plain text
#: ../E/shield.txt:8
#, no-wrap
msgid ""
"<code>1</code> activates the shield.\n"
"<code>0</code> deactivates the shield\n"
"A normal <a object|power>power cell</a> fully charged can maintain the shield"
" active during 20 seconds. When the cell is empty, the shield deactivates."
msgstr ""
"<code>1</code> déploie le bouclier.\n"
"<code>0</code> replie le bouclier.\n"
"Une <a object|power>pile normale</a> à pleine charge permet de maintenir le"
" bouclier pendant 20 secondes avec le rayon maximal de 25 mètres. Lorsque la"
" pile est plate, le bouclier se replie."
#. type: \t; header
#: ../E/shield.txt:12
#, no-wrap
msgid "radius: <code><a cbot|float>float</a></code>"
msgstr "radius: <code><a cbot|float>float</a></code>"
#. type: Plain text
#: ../E/shield.txt:13
#, no-wrap
msgid "Radius of the shield, ranging between 10 and 25 meters."
msgstr "Rayon du bouclier, compris entre 10 et 25 mètres."
#. type: \b; header
#: ../E/sizeof.txt:1
#, no-wrap
msgid "Instruction <code>sizeof</code>"
msgstr "Instruction <code>sizeof</code>"
#. type: Plain text
#: ../E/sizeof.txt:2
#, no-wrap
msgid ""
"The sizeof function lets you know the number of elements contained in an <a"
" cbot|array>array</a>.\n"
"That is the index of the last element plus one (\"empty\" elements are"
" counted)."
msgstr ""
"L'instruction <code>sizeof(array)</code> permet de connaître le nombre"
" d'éléments contenus dans un <a cbot|array>tableau</a>.\n"
"En fait, c'est le dernier élément existant plus 1 (les cases \"vides\" sont"
" comptées)."
#. type: Source code
#: ../E/sizeof.txt:5
#, no-wrap
msgid ""
"{\n"
"\tint a[12];\n"
"\ta[5] = 345;\n"
"\tmessage( sizeof(a) ); // will display 6\n"
"}"
msgstr ""
"{\n"
"\tint a[12];\n"
"\ta[5] = 345;\n"
"\tmessage( sizeof(a) ); // affiche 6\n"
"}"
#. type: Plain text
#: ../E/sizeof.txt:11
#, no-wrap
msgid ""
"In this example we have 6 elements in the array after <code>a[5]=345</code>."
" The non initialized elements <code>[0]</code>, <code>[1]</code>, <code>[2]<"
"/code>, <code>[3]</code> and <code>[4]</code> will be counted."
msgstr ""
"Dans cet exemple, il y a 6 éléments dans le tableau après avoir fait <code"
">a[5]=345</code>. Les éléments non initialisés <code>[0]</code>, <code>[1]<"
"/code>, <code>[2]</code>, <code>[3]</code> et <code>[4]</code> sont comptés"
" avec l'élément <code>[5]</code>."
#. type: Plain text
#: ../E/sizeof.txt:13
#, no-wrap
msgid "With multidimensionnal arrays you can get the size of a sub array:"
msgstr ""
"Avec un tableau à plusieurs dimensions, il est possible d'obtenir n'importe"
" quelle taille:"
#. type: Source code
#: ../E/sizeof.txt:15
#, no-wrap
msgid ""
"float xy[][]; // 2 dimensionnal array\n"
"xy[5][10] = 67;\n"
"message( sizeof(xy) ); // will display 6\n"
"message( sizeof(xy[5]) ); // will display 11\n"
msgstr ""
"float xy[][]; // un tableau à 2 dimensions\n"
"xy[5][10] = 67;\n"
"message( sizeof(xy) ); // affiche 6\n"
"message( sizeof(xy[5]) ); // affiche 11\n"
#. type: \b; header
#: ../E/sniff.txt:1
#, no-wrap
msgid "Instruction <code>sniff</code>"
msgstr "Instruction <code>sniff</code>"
#. type: Source code
#: ../E/sniff.txt:3
#, no-wrap
msgid "<c/>sniff ( );<n/>"
msgstr "<c/>sniff ( );<n/>"
#. type: Plain text
#: ../E/sniff.txt:5
#, no-wrap
msgid ""
"Sounds the underground in front of the <a object|botsr>sniffer</a>. According"
" to what raw materials were detected, the following objects will be created: "
msgstr ""
"Effectue un sondage du sous-sol devant le <a object|botsr>robot</a>. En"
" fonction du sous-sol, les objets suivants sont créés:"
#. type: Plain text
#: ../E/sniff.txt:7
#, no-wrap
msgid ""
"<code>TitaniumSpot</code> -> <a object|stonspot>Red cross</a>\n"
"<code>UraniumSpot </code> -> <a object|uranspot>Yellow circle</a>\n"
"<code>PowerSpot </code> -> <a object|enerspot>Green cross</a>"
msgstr ""
"<code>TitaniumSpot</code> -> <a object|stonspot>Croix rouge</a>\n"
"<code>UraniumSpot </code> -> <a object|uranspot>Rond jaune</a>\n"
"<code>PowerSpot </code> -> <a object|enerspot>Croix verte</a>"
#. type: Plain text
#: ../E/sniff.txt:12
#, no-wrap
msgid ""
"Zero if everything is OK, or a value different from zero if an error"
" occurred. \n"
"<code>== 0 </code>sounding performed\n"
"<code>!= 0 </code>sounding impossible"
msgstr ""
"Zéro si tout est ok, ou valeur non nulle si une erreur est intervenue.\n"
"<code>== 0 </code>sondage effectué\n"
"<code>!= 0 </code>sondage impossible"
#. type: \b; header
#: ../E/space.txt:1
#, no-wrap
msgid "Instruction <code>space</code>"
msgstr "Instruction <code>space</code>"
#. type: Source code
#: ../E/space.txt:3
#, no-wrap
msgid "<c/>space ( center, rmin, rmax, dist );<n/>"
msgstr "<c/>space ( center, rmin, rmax, dist );<n/>"
#. type: Plain text
#: ../E/space.txt:5
#, no-wrap
msgid ""
"Determines the position of the nearest free space around a given position."
msgstr "Calcule un emplacement libre autour d'un point central."
#. type: \t; header
#: ../E/space.txt:7
#, no-wrap
msgid "center: <code><a cbot|point>point</a></code> (default: bot position)"
msgstr ""
"center: <code><a cbot|point>point</a></code> (position du robot par défaut)"
#. type: Plain text
#: ../E/flatspace.txt:8 ../E/space.txt:8
#, no-wrap
msgid "Desired position of the free space."
msgstr "Position centrale autour de laquelle la recherche est effectuée."
#. type: \t; header
#: ../E/flatspace.txt:13 ../E/space.txt:10
#, no-wrap
msgid ""
"rmin: <code><a cbot|float>float</a></code> (default value: <code>8</code>)"
msgstr ""
"rmin: <code><a cbot|float>float</a></code> (<code>10</code> par défaut)"
#. type: Plain text
#: ../E/flatspace.txt:14 ../E/space.txt:11
#, no-wrap
msgid "Minimum distance from the desired position."
msgstr "Rayon minimal à partir duquel la recherche est effectuée."
#. type: \t; header
#: ../E/flatspace.txt:16 ../E/space.txt:13
#, no-wrap
msgid ""
"rmax: <code><a cbot|float>float</a></code> (default value: <code>50</code>)"
msgstr ""
"rmax: <code><a cbot|float>float</a></code> (<code>50</code> par défaut)"
#. type: Plain text
#: ../E/flatspace.txt:17 ../E/space.txt:14
#, no-wrap
msgid "Maximum distance from the desired position."
msgstr "Rayon maximal après lequel la recherche est stoppée."
#. type: \t; header
#: ../E/flatspace.txt:19 ../E/space.txt:16
#, no-wrap
msgid ""
"dist: <code><a cbot|float>float</a></code> (default value: <code>4</code>)"
msgstr "dist: <code><a cbot|float>float</a></code> (<code>4</code> par défaut)"
#. type: Plain text
#: ../E/flatspace.txt:20 ../E/space.txt:17
#, no-wrap
msgid "Required distance between two free spaces."
msgstr "Distance requise entre deux emplacements libres."
#. type: \t; header
#: ../E/flatspace.txt:22 ../E/space.txt:19
#, no-wrap
msgid "Return: <code><a cbot|point>point</a></code>"
msgstr "Valeur retournée: <code><a cbot|point>point</a></code>"
#. type: Plain text
#: ../E/flatspace.txt:23 ../E/space.txt:20
#, no-wrap
msgid "Position of the free space."
msgstr "Position libre."
#. type: \b; header
#: ../E/static.txt:1
#, no-wrap
msgid "Instruction <code>static</code> (for specialists)"
msgstr "Instruction <code>static</code> (pour spécialistes)"
#. type: Plain text
#: ../E/static.txt:2
#, no-wrap
msgid ""
"<a cbot|class>Class</a> members declared with <code>static</code> are shared"
" between all instances of the class."
msgstr ""
"Les éléments d'une <a cbot|class>classe</a> précédés du mot <code>static<"
"/code> sont partagés en commun avec toutes les instances de cette classe."
" C'est à dire qu'une valeur écrite par l'une des instances sera lisible par"
" toutes les autres."
#. type: Source code
#: ../E/static.txt:4
#, no-wrap
msgid ""
"public class MyClass\n"
"{\n"
"\tstatic int nb = 1;\n"
"\tstatic string [ ] list = null;\n"
"}\n"
"void Test ()\n"
"{\n"
"\tMyClasse item1();\n"
"\tMyClasse item2();\n"
"\titem1.nb = 3;\n"
"\titem1.list[item1.nb] = \"Hello\";\n"
"\tmessage( item2.list[item2.nb] ); // display \"Hello\"\n"
"}"
msgstr ""
"public class MaClass\n"
"{\n"
"\tstatic int nb = 1;\n"
"\tstatic string [ ] liste = null;\n"
"}\n"
"void Test ()\n"
"{\n"
"\tMaClasse item1();\n"
"\tMaClasse item2();\n"
"\titem1.nb = 3;\n"
"\titem1.liste[item1.nb] = \"Hello\";\n"
"\tmessage( item2.liste[item2.nb] ); // affiche \"Hello\"\n"
"}"
#. type: Plain text
#: ../E/static.txt:18
#, no-wrap
msgid ""
"<code>Static</code> members can be declared <code><a cbot|private>private</a"
"></code> so they will be only acessible from within class members (including"
" constructors and destructors)."
msgstr ""
"Les éléments <code>static</code> peuvent également être déclarés comme <code"
"><a cbot|private>private</a></code>. Dans ce cas, ces éléments ne sont"
" accessibles que dans les méthodes de la classe (constructeur et destructeur"
" inclus)."
#. type: Plain text
#: ../E/static.txt:21
#, no-wrap
msgid ""
"<code><a cbot|class>class</a></code>, <code><a cbot|synchro>synchronized</a><"
"/code>\n"
"<a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category"
">categories</a>."
msgstr ""
"<code><a cbot|class>class</a></code>, <code><a cbot|synchro>synchronized</a><"
"/code>\n"
"<a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|category"
">catégories</a>."
#. type: \b; header
#: ../E/strfind.txt:1
#, no-wrap
msgid "Instruction <code>strfind</code>"
msgstr "Instruction <code>strfind</code>"
#. type: Plain text
#: ../E/strfind.txt:2
#, no-wrap
msgid ""
"Find a substring in a string and returns the position of the first substring"
" found or <a cbot|nan>nan</a> if the substring has not been found."
msgstr ""
"Cette instruction cherche une sous-chaîne dans une chaîne et retourne la"
" position du début de la sous-chaîne."
#. type: Source code
#: ../E/strfind.txt:5
#, no-wrap
msgid "<c/>strfind ( string, sub );<n/>"
msgstr "<c/>strfind ( string, sub );<n/>"
#. type: \t; header
#: ../E/strfind.txt:7
#, no-wrap
msgid "string: <code><a cbot|string>string</a></code>"
msgstr "string: <code><a cbot|string>string</a></code>"
#. type: Plain text
#: ../E/strfind.txt:8
#, no-wrap
msgid "String we are searching in."
msgstr "Chaîne dans laquelle on effectue la recherche."
#. type: \t; header
#: ../E/strfind.txt:10
#, no-wrap
msgid "sub: <code><a cbot|string>string</a></code>"
msgstr "sub: <code><a cbot|string>string</a></code>"
#. type: Plain text
#: ../E/strfind.txt:11
#, no-wrap
msgid "Substring we are searching for."
msgstr "Sous-chaîne recherchée."
#. type: Plain text
#: ../E/array.txt:35 ../E/strfind.txt:13 ../E/strleft.txt:10 ../E/strlen.txt:7 ../E/strlower.txt:7 ../E/strmid.txt:13 ../E/strright.txt:10 ../E/strupper.txt:7 ../E/strval.txt:4 ../E/strval.txt:11 ../E/writeln.txt:11
#, no-wrap
msgid "Examples:"
msgstr "Examples:"
#. type: Source code
#: ../E/strfind.txt:14
#, no-wrap
msgid ""
"<c/>\tint pos = strfind(\"abcdef\", \"ab\"); // pos will be 0\n"
"\tint pos = strfind(\"abcdef\", \"de\"); // pos will be 3\n"
"\tint pos = strfind(\"abcdef\", \"xy\"); // pos will be <a cbot|nan>nan</a>"
msgstr ""
"<c/>\tint pos = strfind(\"abcdef\", \"ab\"); // pos vaut 0\n"
"\tint pos = strfind(\"abcdef\", \"de\"); // pos vaut 3\n"
"\tint pos = strfind(\"abcdef\", \"xy\"); // pos vaut <a cbot|nan>nan</a>"
#. type: Plain text
#: ../E/strfind.txt:19
#, no-wrap
msgid ""
"<code><a cbot|strlen>strlen</a></code>, <code><a cbot|strleft>strleft</a><"
"/code>, <code><a cbot|strright>strright</a></code>, <code><a cbot|strmid"
">strmid</a></code>, <code><a cbot|strval>strval</a></code>, <code><a"
" cbot|strupper>strupper</a></code>, <code><a cbot|strlower>strlower</a></code"
">\n"
"<a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category"
">categories</a>."
msgstr ""
"<code><a cbot|strlen>strlen</a></code>, <code><a cbot|strleft>strleft</a><"
"/code>, <code><a cbot|strright>strright</a></code>, <code><a cbot|strmid"
">strmid</a></code>, <code><a cbot|strval>strval</a></code>, <code><a"
" cbot|strupper>strupper</a></code>, <code><a cbot|strlower>strlower</a></code"
">\n"
"<a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|category"
">catégories</a>."
#. type: \b; header
#: ../E/string.txt:1
#, no-wrap
msgid "Type <code>string</code>"
msgstr "Type <code>string</code>"
#. type: Plain text
#: ../E/string.txt:2
#, no-wrap
msgid "Use a variable of this type for storing characters or strings."
msgstr ""
"Ce type permet de représenter une chaîne de caractères, qui contiendra"
" quelques caractères, ou toute une phrase."
#. type: Plain text
#: ../E/string.txt:4
#, no-wrap
msgid "For example: "
msgstr "Par exemple:"
#. type: Source code
#: ../E/string.txt:5
#, no-wrap
msgid ""
"<c/>\t\"Hello!\"\n"
"\t\"This is a string\"\n"
"\t\"x\"\n"
"\t\"\" // empty string"
msgstr ""
"<c/>\"bonjour\"\n"
"\"c'est une chaîne\"\n"
"\"x\"\n"
"\"\" // chaîne vide"
#. type: Plain text
#: ../E/string.txt:10
#, no-wrap
msgid "You can append two strings with the <code>+</code> operator :"
msgstr "Pour appondre deux chaînes, on utilise l'opérateur <code>+</code>:"
#. type: Source code
#: ../E/string.txt:11
#, no-wrap
msgid "<c/>\t\"Good morning,\" + \" \" + \"Sir\""
msgstr "<c/>\"bonjour\" + \" \" + \"Monsieur\""
#. type: Plain text
#: ../E/string.txt:13
#, no-wrap
msgid "Returns the string:"
msgstr "Donne la chaîne:"
#. type: Source code
#: ../E/string.txt:14
#, no-wrap
msgid "<c/>\t\"Good morning, Sir\""
msgstr "<c/>\"bonjour Monsieur\""
#. type: Plain text
#: ../E/string.txt:16
#, no-wrap
msgid ""
"If you want to put a quotation mark (\") or a backslash (\\) in a string you"
" must write:"
msgstr ""
"Pour mettre un guillemet ou un slash inversé dans une chaîne, il faut écrire:"
#. type: Source code
#: ../E/string.txt:17
#, no-wrap
msgid "<c/>\"This is \\\"very\\\" important\""
msgstr "<c/>\"Ceci est \\\"très\\\" important\""
#. type: Plain text
#: ../E/string.txt:18
#, no-wrap
msgid "<n/>which will result in the string <c/> This is \"very\" important."
msgstr ""
"<n/>, ce qui donnera la chaîne de caractères <c/> Ceci est \"très\" important."
#. type: Source code
#: ../E/string.txt:19
#, no-wrap
msgid "<c/>\"%user%\\\\ant.txt\""
msgstr "<c/>\"%user%\\\\ant.txt\""
#. type: Plain text
#: ../E/string.txt:20
#, no-wrap
msgid "<n/>will result in <c/>%user%\\ant.txt"
msgstr "<n/>, ce qui donnera <c/>%user%\\ant.txt"
#. type: Plain text
#: ../E/string.txt:22
#, no-wrap
msgid ""
"Following instructions can be used with strings:\n"
"<code><a cbot|strlen>strlen</a> </code>Get string length\n"
"<code><a cbot|strleft>strleft</a> </code>Extract left part\n"
"<code><a cbot|strright>strright</a> </code>Extract right part\n"
"<code><a cbot|strmid>strmid</a> </code>Extract center part\n"
"<code><a cbot|strfind>strfind</a> </code>Find a substring.\n"
"<code><a cbot|strval>strval</a> </code>Convert string to number\n"
"<code><a cbot|strupper>strupper</a> </code>Convert to upper case\n"
"<code><a cbot|strlower>strlower</a> </code>Convert to lower case"
msgstr ""
"Les instructions suivantes sont utiles pour gérer les chaînes de caractères:\n"
"<code><a cbot|strlen>strlen</a> </code>Longueur d'une chaîne.\n"
"<code><a cbot|strleft>strleft</a> </code>Extrait la partie gauche.\n"
"<code><a cbot|strright>strright</a> </code>Extrait la partie droite.\n"
"<code><a cbot|strmid>strmid</a> </code>Extrait la partie centrale.\n"
"<code><a cbot|strfind>strfind</a> </code>Cherche une sous-chaîne.\n"
"<code><a cbot|strval>strval</a> </code>Convertit en un nombre.\n"
"<code><a cbot|strupper>strupper</a> </code>Convertit en majuscules.\n"
"<code><a cbot|strlower>strlower</a> </code>Convertit en minuscules."
#. type: \b; header
#: ../E/strleft.txt:1
#, no-wrap
msgid "Instruction <code>strleft</code>"
msgstr "Instruction <code>strleft</code>"
#. type: Plain text
#: ../E/strleft.txt:2
#, no-wrap
msgid "Extracts the first (that is, leftmost) characters from a string."
msgstr "Cette instruction extrait la partie gauche d'une chaîne de caractères."
#. type: Source code
#: ../E/strleft.txt:5
#, no-wrap
msgid "<c/>strleft ( string, len );<n/>"
msgstr "<c/>strleft ( string, len );<n/>"
#. type: \t; header
#: ../E/strleft.txt:7 ../E/strmid.txt:10 ../E/strright.txt:7
#, no-wrap
msgid "len: <code><a cbot|int>int</a></code>"
msgstr "len: <code><a cbot|int>int</a></code>"
#. type: Plain text
#: ../E/strleft.txt:8 ../E/strmid.txt:11 ../E/strright.txt:8
#, no-wrap
msgid "Number of characters to be extracted."
msgstr "Nombre de caractères à extraire depuis la droite."
#. type: Source code
#: ../E/strleft.txt:11
#, no-wrap
msgid ""
"<c/>\tstring s = strleft(\"abcdef\", 2); // s is \"ab\"\n"
"\tstring s = strleft(\"abc\", 10); // s is \"abc\""
msgstr ""
"<c/>\tstring s = strleft(\"abcdef\", 2); // s vaut \"ab\"\n"
"\tstring s = strleft(\"abc\", 10); // s vaut \"abc\""
#. type: Plain text
#: ../E/strleft.txt:15
#, no-wrap
msgid ""
"<code><a cbot|strlen>strlen</a></code>, <code><a cbot|strright>strright</a><"
"/code>, <code><a cbot|strmid>strmid</a></code>, <code><a cbot|strfind"
">strfind</a></code>, <code><a cbot|strval>strval</a></code>, <code><a"
" cbot|strupper>strupper</a></code>, <code><a cbot|strlower>strlower</a></code"
">\n"
"<a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category"
">categories</a>."
msgstr ""
"<code><a cbot|strlen>strlen</a></code>, <code><a cbot|strright>strright</a><"
"/code>, <code><a cbot|strmid>strmid</a></code>, <code><a cbot|strfind"
">strfind</a></code>, <code><a cbot|strval>strval</a></code>, <code><a"
" cbot|strupper>strupper</a></code>, <code><a cbot|strlower>strlower</a></code"
">\n"
"<a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|category"
">catégories</a>."
#. type: \b; header
#: ../E/strlen.txt:1
#, no-wrap
msgid "Instruction <code>strlen</code>"
msgstr "Instruction <code>strlen</code>"
#. type: Plain text
#: ../E/strlen.txt:2
#, no-wrap
msgid "Get the length of a string."
msgstr "Cette instruction retourne la longueur d'une chaîne de caractères."
#. type: Source code
#: ../E/strlen.txt:5
#, no-wrap
msgid "<c/>strlen ( string );<n/>"
msgstr "<c/>strlen ( string );<n/>"
#. type: Source code
#: ../E/strlen.txt:8
#, no-wrap
msgid ""
"<c/>\tint len = strlen(\"abc\"); // len is 3\n"
"\tint len = strlen(\"\"); // len is 0\n"
"\tif ( strlen(s) == 0 ) // is string empty ?"
msgstr ""
"<c/>\tint len = strlen(\"abc\"); // len vaut 3\n"
"\tint len = strlen(\"\"); // len vaut 0\n"
"\tif ( strlen(s) == 0 ) // chaîne s vide ?"
#. type: Plain text
#: ../E/strlen.txt:13
#, no-wrap
msgid ""
"<code><a cbot|strleft>strleft</a></code>, <code><a cbot|strright>strright</a"
"></code>, <code><a cbot|strmid>strmid</a></code>, <code><a cbot|strfind"
">strfind</a></code>, <code><a cbot|strval>strval</a></code>, <code><a"
" cbot|strupper>strupper</a></code>, <code><a cbot|strlower>strlower</a></code"
">\n"
"<a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category"
">categories</a>."
msgstr ""
"<code><a cbot|strleft>strleft</a></code>, <code><a cbot|strright>strright</a"
"></code>, <code><a cbot|strmid>strmid</a></code>, <code><a cbot|strfind"
">strfind</a></code>, <code><a cbot|strval>strval</a></code>, <code><a"
" cbot|strupper>strupper</a></code>, <code><a cbot|strlower>strlower</a></code"
">\n"
"<a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|category"
">catégories</a>."
#. type: \b; header
#: ../E/strlower.txt:1
#, no-wrap
msgid "Instruction <code>strlower</code>"
msgstr "Instruction <code>strlower</code>"
#. type: Plain text
#: ../E/strlower.txt:2
#, no-wrap
msgid "Convert all characters in a string to lowercase."
msgstr ""
"Cette instruction convertit tous les caractères d'une chaîne en minuscules."
#. type: Source code
#: ../E/strlower.txt:5
#, no-wrap
msgid "<c/>strlower ( string );<n/>"
msgstr "<c/>strlower ( string );<n/>"
#. type: Source code
#: ../E/strlower.txt:8
#, no-wrap
msgid "<c/>\tstring s = strlower(\"Abc\"); // s is \"abc\""
msgstr "<c/>\tstring s = strlower(\"Abc\"); // s vaut \"abc\""
#. type: Plain text
#: ../E/strlower.txt:11
#, no-wrap
msgid ""
"<code><a cbot|strlen>strlen</a></code>, <code><a cbot|strleft>strleft</a><"
"/code>, <code><a cbot|strright>strright</a></code>, <code><a cbot|strmid"
">strmid</a></code>, <code><a cbot|strfind>strfind</a></code>, <code><a"
" cbot|strval>strval</a></code>, <code><a cbot|strupper>strupper</a></code>\n"
"<a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category"
">categories</a>."
msgstr ""
"<code><a cbot|strlen>strlen</a></code>, <code><a cbot|strleft>strleft</a><"
"/code>, <code><a cbot|strright>strright</a></code>, <code><a cbot|strmid"
">strmid</a></code>, <code><a cbot|strfind>strfind</a></code>, <code><a"
" cbot|strval>strval</a></code>, <code><a cbot|strupper>strupper</a></code>\n"
"<a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|category"
">catégories</a>."
#. type: \b; header
#: ../E/strmid.txt:1
#, no-wrap
msgid "Instruction <code>strmid</code>"
msgstr "Instruction <code>strmid</code>"
#. type: Plain text
#: ../E/strmid.txt:2
#, no-wrap
msgid ""
"Extracts a substring of a given length starting at a given position from a"
" string."
msgstr ""
"Cette instruction extrait la partie centrale d'une chaîne de caractères."
#. type: Source code
#: ../E/strmid.txt:5
#, no-wrap
msgid "<c/>strmid ( string, pos, len );<n/>"
msgstr "<c/>strmid ( string, pos, len );<n/>"
#. type: \t; header
#: ../E/strmid.txt:7
#, no-wrap
msgid "pos: <code><a cbot|int>int</a></code>"
msgstr "pos: <code><a cbot|int>int</a></code>"
#. type: Plain text
#: ../E/strmid.txt:8
#, no-wrap
msgid ""
"The index of the first character that is to be included in the extracted"
" substring."
msgstr "Position du premier caractère à extraire depuis la gauche."
#. type: Source code
#: ../E/strmid.txt:14
#, no-wrap
msgid ""
"<c/>\tstring s = strmid(\"abcdef\", 1, 2); // s is \"bc\"\n"
"\tstring s = strmid(\"abcdef\", 4, 5); // s is \"ef\"\n"
"\tstring s = strmid(\"abcdef\", 9, 2); // s is \"\""
msgstr ""
"<c/>\tstring s = strmid(\"abcdef\", 1, 2); // s vaut \"bc\"\n"
"\tstring s = strmid(\"abcdef\", 4, 5); // s vaut \"ef\"\n"
"\tstring s = strmid(\"abcdef\", 9, 2); // s vaut \"\""
#. type: Plain text
#: ../E/strmid.txt:19
#, no-wrap
msgid ""
"<code><a cbot|strlen>strlen</a></code>, <code><a cbot|strleft>strleft</a><"
"/code>, <code><a cbot|strright>strright</a></code>, <code><a cbot|strfind"
">strfind</a></code>, <code><a cbot|strval>strval</a></code>, <code><a"
" cbot|strupper>strupper</a></code>, <code><a cbot|strlower>strlower</a></code"
">\n"
"<a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category"
">categories</a>."
msgstr ""
"<code><a cbot|strlen>strlen</a></code>, <code><a cbot|strleft>strleft</a><"
"/code>, <code><a cbot|strright>strright</a></code>, <code><a cbot|strfind"
">strfind</a></code>, <code><a cbot|strval>strval</a></code>, <code><a"
" cbot|strupper>strupper</a></code>, <code><a cbot|strlower>strlower</a></code"
">\n"
"<a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|category"
">catégories</a>."
#. type: \b; header
#: ../E/strright.txt:1
#, no-wrap
msgid "Instruction <code>strright</code>"
msgstr "Instruction <code>strright</code>"
#. type: Plain text
#: ../E/strright.txt:2
#, no-wrap
msgid "Extracts the last (that is, rightmost) characters from a string."
msgstr "Cette instruction extrait la partie droite d'une chaîne de caractères."
#. type: Source code
#: ../E/strright.txt:5
#, no-wrap
msgid "<c/>strright ( string, len );<n/>"
msgstr "<c/>strright ( string, len );<n/>"
#. type: Source code
#: ../E/strright.txt:11
#, no-wrap
msgid ""
"<c/>\tstring s = strright(\"abcdef\", 2); // s is \"ef\"\n"
"\tstring s = strright(\"abc\", 10); // s is \"abc\""
msgstr ""
"<c/>\tstring s = strright(\"abcdef\", 2); // s vaut \"ef\"\n"
"\tstring s = strright(\"abc\", 10); // s vaut \"abc\""
#. type: Plain text
#: ../E/strright.txt:15
#, no-wrap
msgid ""
"<code><a cbot|strlen>strlen</a></code>, <code><a cbot|strleft>strleft</a><"
"/code>, <code><a cbot|strmid>strmid</a></code>, <code><a cbot|strfind"
">strfind</a></code>, <code><a cbot|strval>strval</a></code>, <code><a"
" cbot|strupper>strupper</a></code>, <code><a cbot|strlower>strlower</a></code"
">\n"
"<a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category"
">categories</a>."
msgstr ""
"<code><a cbot|strlen>strlen</a></code>, <code><a cbot|strleft>strleft</a><"
"/code>, <code><a cbot|strmid>strmid</a></code>, <code><a cbot|strfind"
">strfind</a></code>, <code><a cbot|strval>strval</a></code>, <code><a"
" cbot|strupper>strupper</a></code>, <code><a cbot|strlower>strlower</a></code"
">\n"
"<a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|category"
">catégories</a>."
#. type: \b; header
#: ../E/strupper.txt:1
#, no-wrap
msgid "Instruction <code>strupper</code>"
msgstr "Instruction <code>strupper</code>"
#. type: Plain text
#: ../E/strupper.txt:2
#, no-wrap
msgid "Convert all characters in a string to uppercase."
msgstr ""
"Cette instruction convertit tous les caractères d'une chaîne en majuscules."
#. type: Source code
#: ../E/strupper.txt:5
#, no-wrap
msgid "<c/>strupper ( string );<n/>"
msgstr "<c/>strupper ( string );<n/>"
#. type: Source code
#: ../E/strupper.txt:8
#, no-wrap
msgid "<c/>\tstring s = strupper(\"Abc\"); // s is \"ABC\""
msgstr "<c/>\tstring s = strupper(\"Abc\"); // s vaut \"ABC\""
#. type: Plain text
#: ../E/strupper.txt:11
#, no-wrap
msgid ""
"<code><a cbot|strlen>strlen</a></code>, <code><a cbot|strleft>strleft</a><"
"/code>, <code><a cbot|strright>strright</a></code>, <code><a cbot|strmid"
">strmid</a></code>, <code><a cbot|strfind>strfind</a></code>, <code><a"
" cbot|strval>strval</a></code>, <code><a cbot|strlower>strlower</a></code>\n"
"<a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category"
">categories</a>."
msgstr ""
"<code><a cbot|strlen>strlen</a></code>, <code><a cbot|strleft>strleft</a><"
"/code>, <code><a cbot|strright>strright</a></code>, <code><a cbot|strmid"
">strmid</a></code>, <code><a cbot|strfind>strfind</a></code>, <code><a"
" cbot|strval>strval</a></code>, <code><a cbot|strlower>strlower</a></code>\n"
"<a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|category"
">catégories</a>."
#. type: \b; header
#: ../E/strval.txt:1
#, no-wrap
msgid "Instruction <code>strval</code>"
msgstr "Instruction <code>strval</code>"
#. type: Plain text
#: ../E/strval.txt:2
#, no-wrap
msgid ""
"Convert a string to a number. Don't confuse the string <code>\"45\"</code>"
" that contains actually the two characters <code>4</code> and <code>5</code>"
" and the number <code>45</code>."
msgstr ""
"Cette instruction convertit une chaîne représentant un nombre en un nombre."
" Il ne faut pas confondre la chaîne <code>\"45\"</code> qui contient les deux"
" caractères <code>4</code> et <code>5</code> et le nombre <code>45</code>."
#. type: Source code
#: ../E/strval.txt:5
#, no-wrap
msgid ""
"<c/>\tstring s = \"45\"+\"12\"; // s contains \"4512\"\n"
"\tfloat n = 45 + 12; // n contains 67"
msgstr ""
"<c/>\tstring s = \"45\"+\"12\"; // s vaut \"4512\"\n"
"\tfloat n = 45 + 12; // n vaut 67"
#. type: Source code
#: ../E/strval.txt:9
#, no-wrap
msgid "<c/>strval ( string );<n/>"
msgstr "<c/>strval ( string );<n/>"
#. type: Source code
#: ../E/strval.txt:12
#, no-wrap
msgid ""
"<c/>\tfloat n = strval(\"1.23\"); // n is 1.23\n"
"\tfloat n = strval(\"12abc45\"); // n is 12\n"
"\tfloat n = strval(\"abc\"); // n is 0\n"
"\tfloat n = strval(\"100\")+2; // n is 102"
msgstr ""
"<c/>\tfloat n = strval(\"1.23\"); // n vaut 1.23\n"
"\tfloat n = strval(\"12abc45\"); // n vaut 12\n"
"\tfloat n = strval(\"abc\"); // n vaut 0\n"
"\tfloat n = strval(\"100\")+2; // n vaut 102"
#. type: Plain text
#: ../E/strval.txt:18
#, no-wrap
msgid ""
"<code><a cbot|strlen>strlen</a></code>, <code><a cbot|strleft>strleft</a><"
"/code>, <code><a cbot|strright>strright</a></code>, <code><a cbot|strmid"
">strmid</a></code>, <code><a cbot|strfind>strfind</a></code>, <code><a"
" cbot|strupper>strupper</a></code>, <code><a cbot|strlower>strlower</a></code"
">\n"
"<a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category"
">categories</a>."
msgstr ""
"<code><a cbot|strlen>strlen</a></code>, <code><a cbot|strleft>strleft</a><"
"/code>, <code><a cbot|strright>strright</a></code>, <code><a cbot|strmid"
">strmid</a></code>, <code><a cbot|strfind>strfind</a></code>, <code><a"
" cbot|strupper>strupper</a></code>, <code><a cbot|strlower>strlower</a></code"
">\n"
"<a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|category"
">catégories</a>."
#. type: \b; header
#: ../E/synchro.txt:1
#, no-wrap
msgid "Instruction <code>synchronized</code> (for specialists)"
msgstr "Instruction <code>synchronized</code> (pour spécialistes)"
#. type: Plain text
#: ../E/synchro.txt:2
#, no-wrap
msgid ""
"A <a cbot|class>class</a> method can be declared <code>synchronized</code>."
" This is to make sure that the method is never being executed by more than"
" one bot at the same time."
msgstr ""
"Les méthodes d'une <a cbot|class>classe</a> peuvent être déclarées <code"
">synchronized</code>. Dans ce cas, on assure que deux exécutions de ces"
" méthodes ne peuvent pas être simultanées."
#. type: Plain text
#: ../E/synchro.txt:4
#, no-wrap
msgid "The following example illustrates the problem:"
msgstr "Considérez par exemple, la classe absurde suivante:"
#. type: Source code
#: ../E/synchro.txt:6
#, no-wrap
msgid ""
"class blocking\n"
"{\n"
"\tstatic int nb = 33;\n"
"\tsynchronized int inc( )\n"
"\t{\n"
"\t\tint val = nb;\n"
"\t\twait ( 2 ); // wait 2 sec.\n"
"\t\tnb = nb + 1;\n"
"\t\treturn val;\n"
"\t}\n"
"}"
msgstr ""
"public class bloquage\n"
"{\n"
"\tstatic int nb = 33;\n"
"\tsynchronized inc( )\n"
"\t{\n"
"\t\tint val = nb;\n"
"\t\twait ( 2 ); // pour voir\n"
"\t\tnb = nb + 1;\n"
"\t\treturn val;\n"
"\t}\n"
"}"
#. type: Plain text
#: ../E/synchro.txt:18
#, no-wrap
msgid ""
"What happens if two bots execute the <code>inc</code> method at the same"
" time?\n"
"Both of them will execute <code>val=nb</code> and wait 2 seconds so both of"
" them will have <code>val=33</code>. With <code>synchronized</code> the first"
" bot starts execution with <code>val=33</code> and then waits 2 seconds and"
" returns. Only once the first bot has returned from the <code>inc</code>"
" method, the second bot will be allowed to enter the <code>inc</code> method"
" and therefore the second bot will always have <code>val=34</code>."
msgstr ""
"Que se passe-t-il, sans le mot <code>synchronized</code>, si deux robots"
" exécutent la méthode <code>inc</code> à peu prêt en même temps?\n"
"Tous les deux vont faire <code>val=nb</code> avant d'attendre 2 secondes,"
" donc les deux auront <code>val=33</code>.\n"
"Puis tous les deux vont incrémenter <code>nb</code>, qui va passer à <code"
">35</code>.\n"
"Avec <code>synchronized</code>, le premier des robots va commencer"
" l'exécution avec <code>val=33</code>, et attendre les 2 secondes, alors que"
" le second robot va attendre. Lorsque le premier robot va poursuivre, mettre"
" <code>nb=34</code> et quitter en rendant la valeur <code>33</code>, alors"
" seulement le second robot va pouvoir commencer la fonction avec <code"
">val=34</code>."
#. type: Plain text
#: ../E/synchro.txt:21
#, no-wrap
msgid ""
"You can have more than one synchronized method in your <a cbot|class>class</a"
"> in order to prevent simultaneous execution across more than one method. In"
" other words: as long as a bot's program is inside a synchronized method, no"
" other bot can enter any synchronized method of the same class."
msgstr ""
"Il est possible d'avoir plus d'une méthode synchrone par <a cbot|class>class<"
"/a> pour prévenir l'exécution simultanée à travers plusieurs méthodes. En"
" d'autres termes: tant que le programme d'un robot est en train d'exécuter"
" une méthode synchrone, aucun autre robot ne peut exécuter aucune autre"
" méthode synchrone de la même classe."
#. type: Plain text
#: ../E/synchro.txt:24
#, no-wrap
msgid ""
"<code><a cbot|class>class</a></code>, <code><a cbot|static>static</a></code>\n"
"<a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category"
">categories</a>."
msgstr ""
"<code><a cbot|class>class</a></code>, <code><a cbot|static>static</a></code>\n"
"<a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|category"
">catégories</a>."
#. type: \b; header
#: ../E/term.txt:1
#, no-wrap
msgid "Semicolon"
msgstr "Le point-virgule"
#. type: Plain text
#: ../E/term.txt:2
#, no-wrap
msgid ""
"Always use a semicolon <c/>;<n/> after a simple expression. For example: "
msgstr "Le point-virgule <c/>;<n/> termine une expression simple. Par exemple:"
#. type: Source code
#: ../E/term.txt:4
#, no-wrap
msgid "\tint counter = 0;"
msgstr "\tint compteur = 0;"
#. type: Plain text
#: ../E/term.txt:6
#, no-wrap
msgid "However, after a <a cbot|bloc>bloc</a>, never put a semicolon:"
msgstr "Il n'est pas nécessaire pour terminer un <a cbot|bloc>bloc</a>:"
#. type: Source code
#: ../E/term.txt:8
#, no-wrap
msgid ""
"\t{\n"
"\t\tfloat dist;\n"
"\t\tdist = distance(p1, p2);\n"
"\t} <n/>// no semicolon here!<c/>"
msgstr ""
"\t{\n"
"\t\tfloat dist;\n"
"\t\tdist = distance(p1, p2);\n"
"\t} <n/>// pas de ; ici!<c/>"
#. type: Plain text
#: ../E/term.txt:13
#, no-wrap
msgid ""
"Do not use a semicolon either immediately after the instructions <code><a"
" cbot|while>while</a></code>, <code><a cbot|if>if</a></code> or <code><a"
" cbot|for>for</a></code>:"
msgstr ""
"Il ne doit jamais être utilisé après un <code><a cbot|while>while</a></code>,"
" un <code><a cbot|if>if</a></code> ou un <code><a cbot|for>for</a></code>:"
#. type: Source code
#: ../E/term.txt:15
#, no-wrap
msgid ""
"\tif ( a < b ) <n/>// no semicolon here!<c/>\n"
"\t{\n"
"\t\tb = 100-a;\n"
"\t}"
msgstr ""
"\tif ( a < b ) <n/>// surtout pas de ; ici<c/>\n"
"\t{\n"
"\t\tb = 100-a;\n"
"\t}"
#. type: Plain text
#: ../E/term.txt:20
#, no-wrap
msgid ""
"An instruction is always ended by a semicolon, and not by the end of the"
" line. So you can very well put several instructions on the same line: "
msgstr ""
"Une instruction est terminée par le point-virgule, et non par la fin de la"
" ligne. Vous pouvez donc très bien mettre plusieurs instructions sur la même"
" ligne:"
#. type: Source code
#: ../E/term.txt:22
#, no-wrap
msgid ""
"\tint d=20;\n"
"\tmove(d);\n"
"\tturn(90);"
msgstr ""
"\tint d=20;\n"
"\tmove(d);\n"
"\tturn(90);"
#. type: Plain text
#: ../E/term.txt:26
#, no-wrap
msgid "Is equivalent to:"
msgstr "Est équivalent à:"
#. type: Source code
#: ../E/term.txt:28
#, no-wrap
msgid "\tint d=20; move(d); turn(90);"
msgstr "\tint d=20; move(d); turn(90);"
#. type: \b; header
#: ../E/testinfo.txt:1
#, no-wrap
msgid "Instruction <code>testinfo</code>"
msgstr "Instruction <code>testinfo</code>"
#. type: Source code
#: ../E/testinfo.txt:3
#, no-wrap
msgid "<c/>testinfo ( name, power );<n/>"
msgstr "<c/>testinfo ( name, power );<n/>"
#. type: Plain text
#: ../E/testinfo.txt:5
#, no-wrap
msgid ""
"Tests if an information exists in the closest <a object|exchange>information"
" exchange post</a>."
msgstr ""
"Teste si une information existe dans la <a object|exchange>borne</a> la plus"
" proche."
#. type: Plain text
#: ../E/testinfo.txt:8
#, no-wrap
msgid ""
"Name of the information to be tested in the exchange post. This name is a"
" string: it must be written in quotation marks \"\"."
msgstr ""
"Nom de l'information à tester dans la borne. Ce nom est une chaîne de"
" caractères; il doit donc être donné entre guillemets \"\"."
#. type: Plain text
#: ../E/testinfo.txt:11
#, no-wrap
msgid ""
"Power of the transmitter, which corresponds to the maximal distance between"
" the transmitter and the exchange post. If the distance is longer, the"
" function returns <code>false</code>. Default value is 10 metres."
msgstr ""
"Puissance de l'émetteur, qui correspond à la distance maximale jusqu'où peut"
" être la borne. La valeur par défaut est de 10 mètres."
#. type: \t; header
#: ../E/testinfo.txt:13
#, no-wrap
msgid "Return: <code><a cbot|bool>bool</a></code>"
msgstr "Valeur retournée: <code><a cbot|bool>bool</a></code>"
#. type: Plain text
#: ../E/testinfo.txt:14
#, no-wrap
msgid ""
"Return <code>true</code> if the information exists. Return and <code>false<"
"/code> if the information does not exist or if the receiver is too far away"
" from the exchange post."
msgstr ""
"Retourne <code>true</code> si l'information et <code>false</code> dans le cas"
" contraire."
#. type: Plain text
#: ../E/testinfo.txt:17
#, no-wrap
msgid ""
"<code><a cbot|receive>receive</a></code>, <code><a cbot|send>send</a></code>"
" and <code><a cbot|delinfo>deleteinfo</a></code>.\n"
"<a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category"
">categories</a>."
msgstr ""
"<code><a cbot|receive>receive</a></code>, <code><a cbot|send>send</a></code>"
" et <code><a cbot|delinfo>deleteinfo</a></code>.\n"
"<a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|category"
">catégories</a>."
#. type: \b; header
#: ../E/this.txt:1
#, no-wrap
msgid "Instruction <code>this</code>"
msgstr "Instruction <code>this</code>"
#. type: Plain text
#: ../E/this.txt:2
#, no-wrap
msgid ""
"Occasionally, a <a cbot|class>class</a> method needs to know the reference to"
" the instance it is acting upon. For example the instance might want to pass"
" it's own reference to another function. An implicit reference name <code"
">this</code> is available to methods and <code>this</code> is a reference to"
" the current instance."
msgstr ""
"A l'intérieur d'une méthode d'une <a cbot|class>classe</a>, il est possible"
" d'utiliser le mot <code>this</code> qui est une référence à l'instance"
" courante. La plupart du temps, la référence <code>this</code> est utilisée"
" lorsqu'on désire passer une référence à l'instance courante comme paramètre"
" à une fonction."
#. type: Source code
#: ../E/this.txt:4
#, no-wrap
msgid ""
"public class MyClass\n"
"{\n"
"\tint m_int;\n"
"\tstring m_str;\n"
"\tvoid MyFunction()\n"
"\t{\n"
"\t\tOtherFunction(this);\n"
"\t\tm_int = 2;\n"
"\t}\n"
"}\n"
"\n"
"void OtherFunction(MyClass obj)\n"
"{\n"
"\tmessage(obj.m_str);\n"
"}\n"
"\n"
"extern void object::Test()\n"
"{\n"
"\tMyClass item();\n"
"\titem.m_str = \"Hello\";\n"
"\titem.MyFunction(); // display \"Hello\"\n"
"}"
msgstr ""
"public class MyClass\n"
"{\n"
"\tint m_int;\n"
"\tstring m_str;\n"
"\tvoid MyFunction()\n"
"\t{\n"
"\t\tOtherFunction(this);\n"
"\t\tm_int = 2;\n"
"\t}\n"
"}\n"
"\n"
"void OtherFunction(MyClass obj)\n"
"{\n"
"\tmessage(obj.m_str);\n"
"}\n"
"\n"
"extern void object::Test()\n"
"{\n"
"\tMyClass item();\n"
"\titem.m_str = \"Hello\";\n"
"\titem.MyFunction(); // affiche \"Hello\"\n"
"}"
#. type: Plain text
#: ../E/this.txt:27
#, no-wrap
msgid ""
"You can also put <code>this</code> before a field name in a method but this"
" is not necessary. In the example above in the method <code>MyFunction()<"
"/code> following two lines have strictly the same meaning:"
msgstr ""
"Il est aussi possible d'écrire <code>this.</code> devant un nom de champ, ce"
" qui est plus explicite mais pas nécessaire. Dans l'exemple ci-dessus, nous"
" pouvons écrire dans la fonction <code>MyFunction()</code>:"
#. type: Source code
#: ../E/this.txt:29
#, no-wrap
msgid ""
"\tm_int = 2;\n"
"\tthis.m_int = 2; // identical"
msgstr ""
"\tm_int = 2;\n"
"\tthis.m_int = 2; // identique"
#. type: Plain text
#: ../E/this.txt:32
#, no-wrap
msgid ""
"In a method of the <code><a cbot|object>object</a></code> class, you can also"
" use <code>this.</code> before a fieldname."
msgstr ""
"Dans une fonction de la classe <code><a cbot|object>object</a></code>, il est"
" possible d'accéder à la position du robot, à son orientation, etc. En fait,"
" on accède ainsi implicitement à l'instance du robot. Il est aussi possible"
" d'écrire <code>this.</code> devant un nom de champ, ce qui est plus"
" explicite:"
#. type: Source code
#: ../E/this.txt:34
#, no-wrap
msgid ""
"extern void object::Display()\n"
"{\n"
"\tmessage(orientation);\n"
"\tmessage(this.orientation); // same thing but\n"
"\t // more explicit\n"
"}"
msgstr ""
"extern void object::Display()\n"
"{\n"
"\tmessage(orientation);\n"
"\tmessage(this.orientation); // plus explicite\n"
"}"
#. type: Plain text
#: ../E/this.txt:41
#, no-wrap
msgid ""
"However if a field name is hidden by a parameter declaration or a variable"
" declaration you must use <code>this</code>. In the following example the"
" name <code>value</code> of the parameter is the same as the name of the"
" field <code>value</code> of the <a cbot|class>class</a> <code>MyClass</code"
">, we must therefore write <code>this.value</code> in order to distinguish"
" the field from the parameter."
msgstr ""
"Il est cependant nécessaire d'utiliser <code>this</code> lorsque le nom d'un"
" champ est caché par une déclaration de variable ou de paramètre. L'exemple"
" suivant montre une <a cbot|class>classe</a> appelée <code>MaClasse</code>"
" avec une méthode <code>Put</code>. Comme le nom <code>value</code> du"
" paramètre est le même que le nom du champ de la classe, il est nécessaire"
" d'utiliser <code>this.value</code> pour utiliser le champ de la classe:"
#. type: Source code
#: ../E/this.txt:43
#, no-wrap
msgid ""
"public class MyClass\n"
"{\n"
"\tint value;\n"
"\tvoid Put( int value )\n"
"\t{\n"
"\t\tthis.value = value;\n"
"\t}\n"
"}"
msgstr ""
"public class MaClasse\n"
"{\n"
"\tint value;\n"
"\tvoid Put( int value )\n"
"\t{\n"
"\t\tthis.value = value;\n"
"\t}\n"
"}"
#. type: Plain text
#: ../E/this.txt:53
#, no-wrap
msgid ""
"<code><a cbot|class>class</a></code>\n"
"<a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category"
">categories</a>."
msgstr ""
"<a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|category"
">catégories</a>."
#. type: \b; header
#: ../E/thump.txt:1
#, no-wrap
msgid "Instruction <code>thump</code>"
msgstr "Instruction <code>thump</code>"
#. type: Source code
#: ../E/thump.txt:3
#, no-wrap
msgid "<c/>thump ( );<n/>"
msgstr "<c/>thump ( );<n/>"
#. type: Plain text
#: ../E/thump.txt:5
#, no-wrap
msgid ""
"Activates the weapon system of the <a object|bottump>thumper</a>, that turns"
" ants and spiders belly up and makes them completely harmless for a while."
msgstr "Applanit le terrain autour du <a object|bottump>robot</a>."
#. type: Plain text
#: ../E/thump.txt:8
#, no-wrap
msgid ""
"Zero if everything is OK, a value different from zero if an error occurred. \n"
"<code>== 0 </code>Thumping performed\n"
"<code>!= 0 </code>Operation impossible"
msgstr ""
"Zéro si tout est ok, ou valeur non nulle si une erreur est intervenue.\n"
"<code>== 0 </code>terrain applani\n"
"<code>!= 0 </code>opération impossible"
#. type: \b; header
#: ../E/topo.txt:1
#, no-wrap
msgid "Instruction <code>topo</code>"
msgstr "Instruction <code>topo</code>"
#. type: Source code
#: ../E/topo.txt:3
#, no-wrap
msgid "<c/>topo ( position );<n/>"
msgstr "<c/>topo ( position );<n/>"
#. type: Plain text
#: ../E/topo.txt:5
#, no-wrap
msgid ""
"Returns the altitude of the ground at a give position. The altitude zero"
" corresponds to sea level. A negative value indicates that at this position"
" ground is covered with water. "
msgstr ""
"Retourne l'élévation d'un point quelconque du terrain. Le niveau zéro"
" correspond toujours au niveau de la mer. Une valeur négative indique donc"
" que le point en question se trouve sous l'eau."
#. type: Plain text
#: ../E/topo.txt:8
#, no-wrap
msgid "Coordinates of the position whose altitude you want to know. "
msgstr "Coordonnée de la position dont on désire connaître l'élévation."
#. type: Plain text
#: ../E/topo.txt:11
#, no-wrap
msgid "Altitude of the ground at the given position."
msgstr "Elévation du point donné en entrée."
#. type: \b; header
#: ../E/true.txt:1
#, no-wrap
msgid "Type <code>true</code>"
msgstr "Type <code>true</code>"
#. type: Plain text
#: ../E/true.txt:2
#, no-wrap
msgid ""
"This value means that a condition is true; it is one of the two values that a"
" <a cbot|bool>boolean</a> <a cbot|var>variable</a> can take."
msgstr ""
"Cette valeur signifie \"vrai\" pour une <a cbot|var>variable</a> <a cbot|bool"
">booléenne</a>."
#. type: \b; header
#: ../E/turn.txt:1
#, no-wrap
msgid "Instruction <code>turn</code>"
msgstr "Instruction <code>turn</code>"
#. type: Plain text
#: ../E/turn.txt:2
#, no-wrap
msgid ""
"Use the instruction <c/>turn();<n/> to instruct the bot to perform a rotation"
" on itself of a certain number of degrees."
msgstr ""
"Utilisez l'instruction <c/>turn();<n/> pour faire tourner le robot d'un"
" certain nombre de degrés sur lui-même."
#. type: Plain text
#: ../E/turn.txt:5
#, no-wrap
msgid ""
"90 degreed means a quarter turn, 180 degrees means a half turn. A positive"
" angle will perform a counterclockwise rotation, a negative angle means a"
" clockwise rotation. Here are some examples with <c/>turn();<n/>:"
msgstr ""
"90 degrés signifie un quart de tour, 180 degrés signifie un demi-tour, 360"
" degrés signifie un tour complet. Voici quelques exemples avec <c/>turn();<n/"
">:"
#. type: Plain text
#: ../E/turn.txt:7
#, no-wrap
msgid ""
"<c/>turn(90);<n/> quarter turn to the left\n"
"<c/>turn(-90);<n/> quarter turn to the right (negative angle)\n"
"<c/>turn(180);<n/> half turn"
msgstr ""
"<c/>turn(90);<n/> quart de tour à gauche\n"
"<c/>turn(-90);<n/> quart de tour à droite (angle négatif)\n"
"<c/>turn(180);<n/> demi-tour"
#. type: Plain text
#: ../E/turn.txt:11
#, no-wrap
msgid ""
"In order to turn the bot towards an object found with the instruction <c/><a"
" cbot|radar>radar</a>();<n/>, you must calculate the rotation angle with the"
" instruction <code><a cbot|direct>direction</a>()</code>:"
msgstr ""
"Pour se tourner vers un objet trouvé avec l'instruction <c/><a cbot|radar"
">radar</a>();<n/>, il faut calculer l'angle de la rotation avec l'instruction"
" <code><a cbot|direct>direction</a>()</code>:"
#. type: Source code
#: ../E/turn.txt:13
#, no-wrap
msgid ""
"\titem = <a cbot|radar>radar</a>(AlienSpider);\n"
"\tturn(<a cbot|direct>direction</a>(item.position));"
msgstr ""
"\tchose = <a cbot|radar>radar</a>(AlienSpider);\n"
"\tturn(<a cbot|direct>direction</a>(chose.position));"
#. type: Plain text
#: ../E/turn.txt:16
#, no-wrap
msgid ""
"After these lines, just fire the cannon, and there is one hostile element"
" less."
msgstr "Puis il suffit de faire feu, et il y a un élément hostile en moins."
#. type: Source code
#: ../E/turn.txt:20
#, no-wrap
msgid "<c/>turn ( angle );<n/>"
msgstr "<c/>turn ( angle );<n/>"
#. type: Plain text
#: ../E/turn.txt:22
#, no-wrap
msgid ""
"Turns the bot with a given angle, right or left, without moving either"
" forward or backward. "
msgstr ""
"Tourne d'un certain angle, à gauche ou à droite, sans avancer ni reculer."
#. type: Plain text
#: ../E/turn.txt:25
#, no-wrap
msgid ""
"Angle of the required rotation, in degrees. A positive value turns left, a"
" negative value turns right. <code>turn(180)</code> turns round completely. "
msgstr ""
"Angle de la rotation désirée, en degrés. Une valeur positive fait tourner à"
" gauche et une valeur négative à droite. 180 signifie un demi-tour."
#. type: Plain text
#: ../E/turn.txt:28
#, no-wrap
msgid ""
"Zero if everything is OK, or a value different from zero if an error"
" occurred. \n"
"<code>== 0 </code>rotation performed\n"
"<code>!= 0 </code>rotation impossible"
msgstr ""
"Zéro si tout est ok, ou valeur non nulle si une erreur est intervenue.\n"
"<code>== 0 </code>rotation effectuée\n"
"<code>!= 0 </code>rotation impossible"
#. type: \b; header
#: ../E/type.txt:1
#, no-wrap
msgid "Variable types"
msgstr "Les types des variables"
#. type: Plain text
#: ../E/type.txt:2
#, no-wrap
msgid ""
"When you define a <a cbot|var>variable</a>, you must give two elements: "
msgstr "Une <a cbot|var>variable</a> est décrite par trois éléments:"
#. type: Bullet: '1)'
#: ../E/type.txt:4
#, no-wrap
msgid "a name"
msgstr "Un nom."
#. type: Bullet: '2)'
#: ../E/type.txt:5
#, no-wrap
msgid "a type"
msgstr "Le type du contenu."
#. type: Plain text
#: ../E/type.txt:7
#, no-wrap
msgid ""
"Once you defined a variable, you can use it to put information in it."
" However, the information that a variable can contain must always be of the"
" correct type: a variable of type <a cbot|float>float</a> can not contain a"
" string, etc."
msgstr ""
"Une fois la variable définie, elle peut être utilisée pour stocker de"
" l'information. Cependant, l'information contenue dans une variable doit"
" toujours être du bon type: une variable de type <a cbot|float>float</a> ne"
" peut pas contenir de chaîne de caractères, etc."
#. type: Source code
#: ../E/type.txt:11
#, no-wrap
msgid "<code><a cbot|int>int</a></code>"
msgstr "<code><a cbot|int>int</a></code>"
#. type: Plain text
#: ../E/type.txt:12
#, no-wrap
msgid "For a whole number (12, -500, etc.)."
msgstr "Pour un nombre entier (12, -500, etc.)."
#. type: Source code
#: ../E/type.txt:14
#, no-wrap
msgid "<code><a cbot|float>float</a></code>"
msgstr "<code><a cbot|float>float</a></code>"
#. type: Plain text
#: ../E/type.txt:15
#, no-wrap
msgid "For a real number (12, 3.14, 0.2, -99.98, etc.)."
msgstr "Pour un nombre réel (3.14, 0.2, -99.98, etc.)."
#. type: Source code
#: ../E/type.txt:17
#, no-wrap
msgid "<code><a cbot|bool>bool</a></code>"
msgstr "<code><a cbot|bool>bool</a></code>"
#. type: Plain text
#: ../E/type.txt:18
#, no-wrap
msgid ""
"For a boolean variable, that can only take the values <code>true</code> or <"
"code>false</code>."
msgstr "Pour un variable booléenne valant vrai ou faux (true ou false)."
#. type: Source code
#: ../E/type.txt:20
#, no-wrap
msgid "<code><a cbot|string>string</a></code>"
msgstr "<code><a cbot|string>string</a></code>"
#. type: Plain text
#: ../E/type.txt:21
#, no-wrap
msgid "For texts (\"Hello!\", \"No object found\", etc.)"
msgstr "Pour une chaîne de caractères (\"bonjour\", \"le chat\", etc.)"
#. type: Source code
#: ../E/type.txt:23
#, no-wrap
msgid "<code><a cbot|point>point</a></code>"
msgstr "<code><a cbot|point>point</a></code>"
#. type: Plain text
#: ../E/type.txt:24
#, no-wrap
msgid ""
"For the coordinates of a point in space; a variable of this type consists of"
" three parts named x, y and z."
msgstr "Pour une coordonnée dans l'espace x,y,z."
#. type: Source code
#: ../E/type.txt:26
#, no-wrap
msgid "<code><a cbot|object>object</a></code>"
msgstr "<code><a cbot|object>object</a></code>"
#. type: Plain text
#: ../E/type.txt:27
#, no-wrap
msgid ""
"A variable of this type contains the information about an object (bot,"
" building, enemy, etc.)."
msgstr "Pour décrire un objet (robot, bâtiment, etc.)."
#. type: Source code
#: ../E/type.txt:29
#, no-wrap
msgid "<code><a cbot|void>void</a></code>"
msgstr "<code><a cbot|void>void</a></code>"
#. type: Plain text
#: ../E/type.txt:30
#, no-wrap
msgid ""
"This type is an \"empty type\", that you use when you do not want to specify"
" a type."
msgstr "Pour indiquer \"rien\"."
#. type: \b; header
#: ../E/var.txt:1
#, no-wrap
msgid "Variables"
msgstr "Les variables"
#. type: Plain text
#: ../E/var.txt:2
#, no-wrap
msgid ""
"A variable is like a box, where you can put some information. The content of"
" the variable can change during the execution of the program."
msgstr ""
"Une variable est un nom qui repère un emplacement en mémoire, dont on peut"
" faire évoluer la valeur durant l'exécution du programme."
#. type: Plain text
#: ../E/var.txt:4
#, no-wrap
msgid ""
"For example, you can use a variable to count the number of titanium ore units"
" that the grabber has collected and carried to the converter. First, you must"
" find a name for it: the name should not be too long, but explain by itself"
" what the variable is used for. Let's call it <code>countTit</code>. This"
" variable must contain only whole numbers, so choose the type <code>int</code"
">. At the beginning of the program, you must declare the variable. Then you"
" put the value <code>0</code> into the variable, and every time you grab a"
" titanium ore, you increase the variable by <code>1</code>. At every moment,"
" the variable contains the number of titanium ore units that the grabber"
" collected."
msgstr ""
"Par exemple, pour compter le nombre d'<a object|mother>ennemis</a> présents,"
" vous pouvez déclarer une variable <code>compteur</code> et l'initialiser à"
" zéro. Chaque fois que vous rencontrez un ennemi, vous ajoutez 1 à la"
" variable <code>compteur</code>. Lorsque vous aurez fini de balayer une zone"
" donnée, la variable contiendra le nombre d'ennemis présents dans cette zone."
#. type: Plain text
#: ../E/var.txt:6
#, no-wrap
msgid ""
"For the declaration of the variable, write the following line: \n"
"<c/><s/>\tint countTit;<n/>"
msgstr ""
"La déclaration de la variable <code>compteur</code> s'écrit avec:\n"
"<c/><s/>\tint compteur;<n/>"
#. type: Plain text
#: ../E/var.txt:9
#, no-wrap
msgid ""
"To put <code>0</code> into the variable, write:\n"
"<c/><s/>\tcountTit = 0;<n/>"
msgstr ""
"L'initialisation à zéro se fait avec:\n"
"<c/><s/>\tcompteur = 0;<n/>"
#. type: Plain text
#: ../E/var.txt:12
#, no-wrap
msgid ""
"At every titanium ore grabbed, write:\n"
"<c/><s/>\tcountTit = countTit + 1<n/>"
msgstr ""
"À chaque ennemi trouvé, vous l'augmentez de 1 avec:\n"
"<c/><s/>\tcompteur = compteur+1;<n/>"
#. type: Plain text
#: ../E/var.txt:15
#, no-wrap
msgid ""
"You have much freedom in the choice of the name for a variable, you can call"
" them by any name, f. ex.: <code>dist</code>, <code>direct</code>, <code>p2<"
"/code>, <code>a</code>, <code>x</code>, <code>nothing_2_shoot_at</code>,"
" etc.\n"
"A variable name must always begin with a letter. It can be followed by any"
" combination of letters, digits or the underscore character <code>_</code>."
" You can of course not use the keywords of the CBOT language like <code><a"
" cbot|for>for</a></code>, <code><a cbot|while>while</a></code>, <code><a"
" cbot|break>break</a></code>, <code><a cbot|continue>continue</a></code>, <"
"code>do</code>, etc.\n"
"You should be careful about the choice of the names that you give to"
" variables; writing a program can become very difficult if you forget the"
" names of variables or if you do not remember what they are used for."
" Elaborate your own system to find variable names, and do not use names like"
" <code>Bmo45</code>, <code>a</code> or <code>tgBinX</code>."
msgstr ""
"Notez bien que le nom <code>compteur</code> n'est qu'un exemple. Vous avez"
" pratiquement toute liberté pour inventer le nom qui vous convient le mieux."
" Par exemple: <code>dist</code>, <code>direct</code>, <code>p2</code>, <code"
">a</code>, <code>x</code>, <code>chute_2_pierre</code>, etc.\n"
"Le nom doit commencer par une lettre. Il peut contenir ensuite des lettres ou"
" des chiffres, ainsi que le caractère souligné. De plus, vous ne pouvez pas"
" utiliser les mots-clés réservés du langage, tels que <code><a cbot|for>for<"
"/a></code>, <code><a cbot|while>while</a></code>, <code><a cbot|break>break<"
"/a></code>, <code><a cbot|continue>continue</a></code>, <code>do</code>,"
" etc.\n"
"On utilise parfois des noms anglais, parfois des noms français, parfois des"
" abréviations, cela n'a pas d'importance. Ce qu'il faut, c'est que le nom"
" exprime clairement à quoi sert la variable. <code>Bmo45</code>, <code>a<"
"/code>, <code>tgbin</code> ne sont pas des très bons exemples, mais c'est à"
" vous de choisir!"
#. type: Plain text
#: ../E/var.txt:19
#, no-wrap
msgid ""
"In the example above, the keyword <code>int</code> indicates that this"
" variable can contain only whole numbers, which is adequate to counting"
" objects. If you want to measure a distance, better use a variable that can"
" contain also real numbers, with a fractional part (like 3.45 or 0.034): in"
" this case, use the type <code>float</code>."
msgstr ""
"In the example above, the keyword <code>int</code> indicates that this"
" variable can contain only whole numbers, which is adequate to counting"
" objects. If you want to measure a distance, better use a variable that can"
" contain also real numbers, with a fractional part (like 3.45 or 0.034): in"
" this case, use the type <code>float</code>."
#. type: Plain text
#: ../E/var.txt:21
#, no-wrap
msgid "In fact, a variable is made up of three parts:"
msgstr "En fait, une variable est décrite par trois éléments:"
#. type: Bullet: '1)'
#: ../E/var.txt:22
#, no-wrap
msgid "the name,"
msgstr "Son nom,"
#. type: Bullet: '2)'
#: ../E/var.txt:23
#, no-wrap
msgid "the type of the information stored inside,"
msgstr "Le type du contenu,"
#. type: Bullet: '3)'
#: ../E/var.txt:24
#, no-wrap
msgid "the content, i.e. the information itself."
msgstr "Le contenu."
#. type: \t; header
#: ../E/var.txt:26
#, no-wrap
msgid "the name"
msgstr "Le nom"
#. type: Plain text
#: ../E/var.txt:27
#, no-wrap
msgid ""
"You need the name to be able to distinguish the different variables from each"
" other."
msgstr "Le nom permet d'accéder au contenu."
#. type: \t; header
#: ../E/var.txt:29
#, no-wrap
msgid "the type"
msgstr "Le type"
#. type: Plain text
#: ../E/var.txt:30
#, no-wrap
msgid ""
"The <a cbot|type>type</a> determines what kind of information the variable"
" can contain. According to the type, a variable can contain a whole number, a"
" real number, a string, the coordinates of a point, information about an"
" object, etc. \n"
"Here is a list of the most common variable types:"
msgstr ""
"Le <a cbot|type>type</a> détermine ce que contient la variable. En effet, une"
" variable peut contenir un nombre entier, un nombre réel, une chaîne de"
" caractères, une coordonnée d'un point, etc.\n"
"Les types les plus courants sont:"
#. type: Bullet: 'o'
#: ../E/var.txt:32
#, no-wrap
msgid "<code><a cbot|int>int</a></code> for a whole number (12, -500, etc.)"
msgstr ""
"<code><a cbot|int>int</a></code> pour un nombre entier (12, -500, etc.)"
#. type: Bullet: 'o'
#: ../E/var.txt:33
#, no-wrap
msgid ""
"<code><a cbot|float>float</a></code> for a real number (3.14, 0.2, -99.98,"
" etc.)"
msgstr ""
"<code><a cbot|float>float</a></code> pour un nombre réel (3.14, 0.2, -99.98,"
" etc.)"
#. type: Bullet: 'o'
#: ../E/var.txt:34
#, no-wrap
msgid ""
"<code><a cbot|string>string</a></code> for a character string (\"Hello!\","
" \"No object found\", etc.)"
msgstr ""
"<code><a cbot|string>string</a></code> pour une chaîne de caractères"
" (\"bonjour\", \"le chat\", etc.)"
#. type: Bullet: 'o'
#: ../E/var.txt:35
#, no-wrap
msgid "<code><a cbot|point>point</a></code> for a x,y,z-coordinate in space"
msgstr ""
"<code><a cbot|point>point</a></code> pour une coordonnée dans l'espace x,y,z"
#. type: Bullet: 'o'
#: ../E/var.txt:36
#, no-wrap
msgid ""
"<code><a cbot|object>object</a></code> for information about an object (bot,"
" building, etc.)"
msgstr ""
"<code><a cbot|object>object</a></code> pour décrire un objet (robot,"
" bâtiment, etc.)"
#. type: \t; header
#: ../E/var.txt:38
#, no-wrap
msgid "The content"
msgstr "Le contenu"
#. type: Plain text
#: ../E/var.txt:39
#, no-wrap
msgid ""
"The content of a variable is an information of the kind specified in the"
" type. It can change during the execution of the program. "
msgstr ""
"Le contenu d'une variable peut être une ou plusieurs valeurs, une chaîne de"
" caractères ou une coordonnée, selon le type."
#. type: Plain text
#: ../E/var.txt:41
#, no-wrap
msgid ""
"Once you declared a variable, it still does not contain any value. Before you"
" can use it, you must put a value inside: \n"
"<c/><s/>\tint i, j;"
msgstr ""
"Lorsqu'une variable est déclarée, elle n'a encore aucune valeur. Avant de"
" l'utiliser, il faut obligatoirement lui assigner une valeur:\n"
"<c/><s/>\tint i, j;"
#. type: Source code
#: ../E/var.txt:43
#, no-wrap
msgid ""
"\tj = 25; // j takes the value 25\n"
"\tj = i; // can not write this, because i has got no content yet."
msgstr ""
"\tj = 25; // j prend la valeur 25\n"
"\tj = i; // impossible, car i est inconnu"
#. type: Plain text
#: ../E/var.txt:46
#, no-wrap
msgid ""
"You can also declare a variable and put a value inside in the same line,"
" writing: \n"
"<c/><s/>\tint countTit = 0;"
msgstr ""
"Notez que vous pouvez très bien déclarer une variable et l'initialiser"
" directement avec:\n"
"<c/><s/>\tint i=0;"
#. type: Plain text
#: ../E/var.txt:49
#, no-wrap
msgid ""
"When you assign a value to a variable with the equals sign <code>=</code>,"
" the value on the right side is copied into the value on the left side."
" Consider the following example: \n"
"<c/><s/>\tint i, j;"
msgstr ""
"Notez que l'assignation <code>=</code> copie la valeur de l'<a cbot|expr"
">expression</a> de droite dans la variable de gauche. Soit l'exemple"
" suivant:\n"
"<c/><s/>\tint i, j;"
#. type: Source code
#: ../E/var.txt:51
#, no-wrap
msgid ""
"\ti = 5+2; // i takes the value 7\n"
"\tj = i+6; // j takes the value of i plus 6, this is 13\n"
"\ti = j; // i takes the value of j, this is 13"
msgstr ""
"\ti = 5+2; // i prend la valeur 7\n"
"\tj = 6+i; // j prend la valeur de i, c-à-d. 13\n"
"\ti = j; // i prend la valeur de j, c-à-d. 13"
#. type: Plain text
#: ../E/var.txt:55
#, no-wrap
msgid ""
"At the end of this example, both variables <code>i</code> and <code>j</code>"
" contain the value <code>13</code>."
msgstr ""
"A la fin de cet exemple, les variables <code>i</code> et <code>j</code>"
" contiennent toutes deux la valeur <code>13</code>."
#. type: Plain text
#: ../E/var.txt:57
#, no-wrap
msgid ""
"The following assignment is not correct, because on the left side of the"
" equals sign <code>=</code>, there can be only a variable name:\n"
"<c/><s/>\ti+2 = j; // impossible"
msgstr ""
"L'assignation suivante est incorrecte, car il ne peut y avoir qu'un nom de"
" variable simple à gauche du signe <code>=</code>:\n"
"<c/><s/>\ti+2 = j; // impossible"
#. type: Plain text
#: ../E/var.txt:60
#, no-wrap
msgid ""
"If you want to exchange the values of two variables, you must use a third"
" variable. Here is an example to exchange the content of two variables <code"
">a</code> and <code>b</code> :\n"
"<c/><s/>\tint temp;"
msgstr ""
"Pour permuter les contenus de deux variables, il faut obligatoirement"
" utiliser une troisième variable temporaire. Voici comment permuter <code>a<"
"/code> et <code>b</code>:\n"
"<c/><s/>\tint temp;"
#. type: Source code
#: ../E/var.txt:62
#, no-wrap
msgid ""
"\ttemp = a; // temp takes the value of a\n"
"\ta = b; // the content of b is copied into a\n"
"\tb = temp; // the content of temp is copied into b"
msgstr ""
"\ttemp = a; // temp prend la valeur de a\n"
"\ta = b; // b est copié dans a\n"
"\tb = temp; // temp est copié dans a"
#. type: \b; header
#: ../E/void.txt:1
#, no-wrap
msgid "Type <code>void</code>"
msgstr "Type <code>void</code>"
#. type: Plain text
#: ../E/void.txt:2
#, no-wrap
msgid "Use this type when you want to declare a function that returns nothing."
msgstr "Ce type particulier signifie qu'il n'y a rien."
#. type: Plain text
#: ../E/void.txt:4
#, no-wrap
msgid ""
"Example:\n"
"<c/><s/>void MyFunction(int a)"
msgstr ""
"Examples:\n"
"<c/><s/>void MyFunction(int a)"
#. type: Source code
#: ../E/void.txt:6
#, no-wrap
msgid ""
"{\n"
"\t...\n"
"}"
msgstr ""
"{\n"
"\t...\n"
"}"
#. type: \b; header
#: ../E/wait.txt:1
#, no-wrap
msgid "Instruction <code>wait</code>"
msgstr "Instruction <code>wait</code>"
#. type: Plain text
#: ../E/wait.txt:2
#, no-wrap
msgid ""
"The instruction <c/>wait();<n/> instructs the bot to wait for some seconds,"
" according to the value written in brackets."
msgstr ""
"L'instruction <c/>wait();<n/> permet d'attendre un certain laps de temps"
" donné en secondes."
#. type: Plain text
#: ../E/wait.txt:5
#, no-wrap
msgid ""
"In order to wait until the <a object|power>power cell</a> is recharged on a"
" power station, wait 5 seconds with <c/>wait(5);<n/>."
msgstr ""
"Pour attendre que le robot se soit rechargé sur une station des recharge,"
" attendez 5 secondes en écrivant <c/>wait(5);<n/>."
#. type: Plain text
#: ../E/wait.txt:7
#, no-wrap
msgid ""
"In order to wait until the <a object|convert>converter</a> finished"
" transforming some <a object|titanore>titanium ore</a> in a <a object|titan"
">titanium cube</a>, wait 15 seconds with <c/>wait(15);<n/>."
msgstr ""
"Pour attendre que le <a object|convert>convertisseur</a> ait transformé du <a"
" object|titanore>minerai d'uranium</a> en un <a object|titan>cube de"
" titanium</a>, attendez 15 secondes avec <c/>wait(15);<n/>."
#. type: Source code
#: ../E/wait.txt:11
#, no-wrap
msgid "<c/>wait ( time );<n/>"
msgstr "<c/>wait ( time );<n/>"
#. type: Plain text
#: ../E/wait.txt:13
#, no-wrap
msgid "Waits for a moment."
msgstr "Attend un certain temps."
#. type: Plain text
#: ../E/wait.txt:16
#, no-wrap
msgid "Specifies the time that the bot must wait."
msgstr "Durée à attendre, en secondes."
#. type: \b; header
#: ../E/while.txt:1
#, no-wrap
msgid "Instruction <code>while</code>"
msgstr "Instruction <code>while</code>"
#. type: Plain text
#: ../E/while.txt:2
#, no-wrap
msgid ""
"The instruction <code>while () {}</code> is used to repeat a set of"
" instructions several times."
msgstr ""
"L'instruction <code>while () {}</code> permet de répéter des instructions"
" plusieurs fois."
#. type: Plain text
#: ../E/while.txt:5
#, no-wrap
msgid ""
"The most frequent use of <code>while</code> consists in repeating a set of"
" instructions again and again. In order to achieve this, write <code>while"
" (true) {}</code> and put the instructions to be repeated in braces <code>{}<"
"/code>. As an example, here is a program that repeats again and again the"
" following actions:"
msgstr ""
"L'utilisation la plus courante de <code>while</code> consiste à répéter des"
" instructions encore et encore, à l'infini. Pour ce faire, on écrit <code"
">while (true) {}</code> et on met les instructions à répéter entre les"
" accolades <code>{}</code>. As an example, here is a program that repeats"
" again and again the following actions:"
#. type: Bullet: 'o'
#: ../E/while.txt:6
#, no-wrap
msgid "look for a spider,"
msgstr "cherche une araignée,"
#. type: Bullet: 'o'
#: ../E/while.txt:7
#, no-wrap
msgid "turn towards it,"
msgstr "tourne dans sa direction,"
#. type: Bullet: 'o'
#: ../E/while.txt:8
#, no-wrap
msgid "shoot."
msgstr "tire,"
#. type: Source code
#: ../E/while.txt:10
#, no-wrap
msgid ""
"\twhile (true)\n"
"\t{\n"
"\t\titem = <a cbot|radar>radar</a>(AlienSpider);\n"
"\t\t<a cbot|turn>turn</a>(direction(item.position));\n"
"\t\t<a cbot|fire>fire</a>(1);\n"
"\t}"
msgstr ""
"\twhile (true)\n"
"\t{\n"
"\t\tchose = <a cbot|radar>radar</a>(AlienSpider);\n"
"\t\t<a cbot|turn>turn</a>(direction(chose.position));\n"
"\t\t<a cbot|fire>fire</a>(1);\n"
"\t}"
#. type: Plain text
#: ../E/while.txt:17
#, no-wrap
msgid "Just execute this program once, and it will kill all spiders around it."
msgstr ""
"Il suffit d'exécuter ce programme une seule fois, il tuera toutes les"
" araignées autour de lui."
#. type: Source code
#: ../E/while.txt:21
#, no-wrap
msgid ""
"<code>while ( condition )\n"
"{\n"
"\t</code>Instructions ...<c/>\n"
"}"
msgstr ""
"<code>while ( condition )\n"
"{\n"
"\t</code>Instructions ...<c/>\n"
"}"
#. type: Plain text
#: ../E/while.txt:26
#, no-wrap
msgid ""
"This instruction allows you to perform the instructions inside the <a"
" cbot|bloc>block</a> several times."
msgstr ""
"Cette structure de boucle permet d'exécuter plusieurs fois les instructions"
" comprises dans le <a cbot|bloc>bloc</a>."
#. type: Plain text
#: ../E/while.txt:28
#, no-wrap
msgid ""
"Be careful not to confuse the instruction <code>while( ) { }</code> with the"
" instruction <c/><a cbot|do>do</a> { } while( );<n/>; the latter tests the"
" condition only after the instructions in the block have been performed a"
" first time. "
msgstr ""
"Attention de ne pas confondre <code>while( ) { }</code> avec <c/><a cbot|do"
">do</a> { } while( );<n/>, qui n'effectue le test qu'après le premier tour de"
" boucle."
#. type: Source code
#: ../E/while.txt:34
#, no-wrap
msgid ""
"<c/>int i = 0;\n"
"while ( i < 10 )\n"
"{\n"
"\t<n/>Instructions ...<c/>\n"
"\ti = i+1;\n"
"}"
msgstr ""
"<c/>int i = 0;\n"
"while ( i < 10 )\n"
"{\n"
"\t<n/>Instructions ...<c/>\n"
"\ti = i+1;\n"
"}"
#. type: Plain text
#: ../E/while.txt:42
#, no-wrap
msgid ""
"Do not put a <a cbot|term>semicolon</a> at the end of the line <code>while ("
" )</code>."
msgstr ""
"Il ne faut pas mettre un <a cbot|term>point-virgule</a> à la fin de la ligne"
" <code>while ( )</code>."
#. type: Plain text
#: ../E/while.txt:44
#, no-wrap
msgid ""
"The instructions <code><a cbot|break>break</a></code> and <code><a"
" cbot|continue>continue</a></code> can be useful inside a block following the"
" instruction <code>while { }</code>."
msgstr ""
"Les instructions <code><a cbot|break>break</a></code> et <code><a"
" cbot|continue>continue</a></code> sont utiles à l'intérieur d'un bloc <code"
">while { }</code>."
#. type: \b; header
#: ../E/writeln.txt:1
#, no-wrap
msgid "Instruction <code>writeln</code>"
msgstr "Instruction <code>writeln</code>"
#. type: Plain text
#: ../E/writeln.txt:2
#, no-wrap
msgid ""
"Write one line of text to an open file in the files/ folder. This is a method"
" of the <code><a cbot|file>file</a></code> class. This is the reason why we"
" always write <code>handle.writeln()</code>:"
msgstr ""
"L'instruction <c/>writeln();<n/> écrit une ligne de texte dans un fichier"
" ouvert dans le dossier files/. Cette instruction est une méthode de la"
" classe <code><a cbot|file>file</a></code>. C'est la raison pour laquelle on"
" n'écrit jamais <code>writeln()</code> tout seul, mais <code"
">handle.writeln()</code>:"
#. type: Source code
#: ../E/writeln.txt:4
#, no-wrap
msgid "\thandle.writeln(\"abc\");"
msgstr "\thandle.writeln(\"abc\");"
#. type: Plain text
#: ../E/writeln.txt:6
#, no-wrap
msgid ""
"The file must have been opened for writing (<code>\"w\"</code>) with the <"
"code><a cbot|open>open</a></code> instruction. The line will automatically be"
" terminated by the end of line characters 0x0D (CR) and 0x0A (LF)."
msgstr ""
"Le fichier doit être ouvert avec l'instruction <code><a cbot|open>open</a><"
"/code> et le mode <code>\"w\"</code> (écriture). Dans le fichier, la ligne"
" sera automatiquement terminée par les deux caractères de fin de ligne 0x0D"
" (CR) et 0x0A (LF)."
#. type: Source code
#: ../E/writeln.txt:9
#, no-wrap
msgid "<c/>handle.writeln ( string );<n/>"
msgstr "<c/>writeln ( string );<n/>"
#. type: Source code
#: ../E/writeln.txt:13
#, no-wrap
msgid "\twriteln(\"Line of text\");"
msgstr "\twriteln(\"Ligne de texte\");"
#. type: Source code
#: ../E/writeln.txt:15
#, no-wrap
msgid ""
"\tstring s1 = \"abc\";\n"
"\tstring s2 = \"def\";\n"
"\twriteln(s1 + \" \" + s2);"
msgstr ""
"\tstring s1 = \"abc\";\n"
"\tstring s2 = \"def\";\n"
"\twriteln(s1 + \" \" + s2);"
#. type: Plain text
#: ../E/writeln.txt:20
#, no-wrap
msgid ""
"<code><a cbot|file>file</a></code>, <code><a cbot|open>open</a></code>, <code"
"><a cbot|close>close</a></code>, <code><a cbot|readln>readln</a></code> and <"
"code><a cbot|eof>eof</a></code>.\n"
"<a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category"
">categories</a>."
msgstr ""
"<code><a cbot|file>file</a></code>, <code><a cbot|open>open</a></code>, <code"
"><a cbot|close>close</a></code>, <code><a cbot|readln>readln</a></code> et <"
"code><a cbot|eof>eof</a></code>.\n"
"<a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|category"
">catégories</a>."
#. type: \b; header
#: ../E/acos.txt:1
#, no-wrap
msgid "Instruction <code>acos</code>"
msgstr "Instruction <code>acos</code>"
#. type: Source code
#: ../E/acos.txt:3
#, no-wrap
msgid "<c/>acos ( value );<n/>"
msgstr "<c/>acos( valeur);</n>"
#. type: \t; header
#: ../E/acos.txt:5 ../E/asin.txt:5 ../E/atan.txt:5 ../E/ceil.txt:6 ../E/floor.txt:6 ../E/round.txt:6 ../E/sqrt.txt:5 ../E/trunc.txt:6
#, no-wrap
msgid "value: <code><a cbot|float>float</a></code>"
msgstr "valeur : <code><a cbot|float>float</a></code>"
#. type: Plain text
#: ../E/acos.txt:6 ../E/asin.txt:6
#, no-wrap
msgid "Number between -1 and 1 (including both)."
msgstr "Nombre entre -1 et 1 (compris)."
#. type: Plain text
#: ../E/acos.txt:9
#, no-wrap
msgid "Arcus cosine (in degrees) of the value."
msgstr "Arc cosinus de la valeur (en degrés)."
#. type: Plain text
#: ../E/acos.txt:12 ../E/asin.txt:12 ../E/atan.txt:12 ../E/atan2.txt:17 ../E/cos.txt:12 ../E/pow.txt:15 ../E/rand.txt:9 ../E/sin.txt:12 ../E/sqrt.txt:12 ../E/tan.txt:12
#, no-wrap
msgid ""
"<a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|expr>expressions<"
"/a>."
msgstr ""
"<a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|expr"
">expressions</a>."
#. type: Source code
#: ../E/aim.txt:3
#, no-wrap
msgid "<c/>aim ( y, x );<n/>"
msgstr "<c/>aim ( y, x );<n/>"
#. type: Plain text
#: ../E/aim.txt:5
#, no-wrap
msgid ""
"This instruction sets the vertical and the horizontal angle of the cannon."
" The following robots are equipped with a cannon: "
msgstr ""
"Cette instruction définit les angles verticaux et horizontaux du canon. "
"Les robots suivants sont équipés de canons:"
#. type: Plain text
#: ../E/aim.txt:10
#, no-wrap
msgid ""
"When controlling the robot through programming, the gun can be also turned"
" left or right by turning the whole robot with the instruction <code><a"
" cbot|turn>turn</a></code>."
msgstr ""
"Lorsqu'un robot est contrôlé par un programme, le canon peut aussi être"
" tourné horizontalement en tournant le robot entier, avec l'instruction <code"
"><a"
" cbot|turn>turn</a></code>."
#. type: \t; header
#: ../E/aim.txt:12 ../E/atan2.txt:7 ../E/pow.txt:8
#, no-wrap
msgid "y: <code><a cbot|float>float</a></code>"
msgstr "y: <code><a cbot|float>float</a></code>"
#. type: \t; header
#: ../E/aim.txt:15
#, no-wrap
msgid "x: <code><a cbot|float>float</a></code> (default value: <code>0</code>)"
msgstr ""
"x: <code><a cbot|float>float</a></code> (valuer par défaut : <code>0</code>)"
#. type: Plain text
#: ../E/aim.txt:16
#, no-wrap
msgid ""
"Angle in degrees of the gun relative to the robot. A positive value orients"
" the gun to the right. The angle must range from <code>-40</code> to <code"
">+40</code> degrees for all shooters."
msgstr ""
"Angle en degrés du canon par rapport au robot. Une valeur positive oriente le"
" canon vers la droite. L'angle doit être compris entre <code>-40</code> et <"
"code>+40</code> degrés, pour tous les robots équipés."
#. type: \b; header
#: ../E/asin.txt:1
#, no-wrap
msgid "Instruction <code>asin</code>"
msgstr "Instruction <code>asin</code>"
#. type: Source code
#: ../E/asin.txt:3
#, no-wrap
msgid "<c/>asin ( value );<n/>"
msgstr "<c/>asin ( value );<n/>"
#. type: Plain text
#: ../E/asin.txt:9
#, no-wrap
msgid "Arcus sine (in degrees) of the value."
msgstr "Arc sinus de la valeur (en degrés)."
#. type: \b; header
#: ../E/atan.txt:1
#, no-wrap
msgid "Instruction <code>atan</code>"
msgstr "Instruction <code>atan</code>"
#. type: Source code
#: ../E/atan.txt:3
#, no-wrap
msgid "<c/>atan ( value );<n/>"
msgstr "<c/>atan ( value );<n/>"
#. type: Plain text
#: ../E/atan.txt:6 ../E/atan2.txt:8 ../E/atan2.txt:11 ../E/ceil.txt:7 ../E/floor.txt:7 ../E/round.txt:7 ../E/trunc.txt:7
#, no-wrap
msgid "Number."
msgstr "Nombre."
#. type: Plain text
#: ../E/atan.txt:9
#, no-wrap
msgid "Arcus tangent (in degrees) of the value."
msgstr "Arc tangente de la valeur (en degrés)."
#. type: \b; header
#: ../E/atan2.txt:1
#, no-wrap
msgid "Instruction <code>atan2</code>"
msgstr "Instruction <code>atan2</code>"
#. type: Source code
#: ../E/atan2.txt:3
#, no-wrap
msgid "<c/>atan2 ( y, x );<n/>"
msgstr "<c/>atan2 ( y, x );<n/>"
#. type: Plain text
#: ../E/atan2.txt:5
#, no-wrap
msgid ""
"The purpose of using two arguments instead of one is to gather information on"
" the signs of the inputs in order to return the appropriate quadrant of the"
" computed angle, which is not possible for the single-argument <c/><a"
" cbot|atan>atan();</a><n/> function. For example, consider a point <code>(-1,"
" -1)</code>: <c/>atan(-1/-1);<n/> is <code>45.00</code> degrees, whereas <c/"
">atan2(-1, -1);<n/> is <code>-135.00</code> degrees, which is obviously more"
" correct in this case."
msgstr ""
"L'intérêt d'utiliser deux arguments au lieu d'un est l'obtention de"
" l'information sur les signes des entrées, afin de retourner le quadrant"
" correct pour l'angle calculé, ce qui n'est pas possible avec la fonction <c/"
"><a cbot|atan>atan();</a><n/> à un seul argument. Par exemple, pour un point"
" <code>(-1,"
" -1)</code>: <c/>atan(-1/-1);<n/> vaut <code>45.00</code> degrés, mais <c/"
">atan2(-1, -1);<n/> vaut <code>-135.00</code> degrés, ce qui est évidemment"
" plus correct dans ce cas."
#. type: \t; header
#: ../E/atan2.txt:10 ../E/pow.txt:5
#, no-wrap
msgid "x: <code><a cbot|float>float</a></code>"
msgstr "x: <code><a cbot|float>float</a></code>"
#. type: Plain text
#: ../E/atan2.txt:14
#, no-wrap
msgid "Arcus tangent (in degrees) of <code>y/x</code>."
msgstr "Arc tangente de <code>y/x</code> (en degrés)."
#. type: \b; header
#: ../E/build.txt:1
#, no-wrap
msgid "Instruction <code>build</code>"
msgstr "Instruction <code>build</code>"
#. type: Plain text
#: ../E/build.txt:2
#, no-wrap
msgid ""
"The instruction <c/>build();<n/> instructs the bot to build a building of the"
" given <a cbot|category>category</a>. Currently works for <a object|botgc"
">Grabbers</a>, <a object|human>Me</a> and <a object|tech>Tech</a>."
msgstr ""
#. type: Plain text
#: ../E/build.txt:5
#, no-wrap
msgid ""
"This command is mostly useful in an attempt to build a fully automatised"
" base, where an <a object|human>astronaut</a> does not need to do anything"
" except starting a program and watching bots working. What is more, it makes"
" beating the game by using only programming a possible task (however, it is a"
" challenge rather for experienced gamers, who beat the whole game at least"
" once)."
msgstr ""
#. type: Plain text
#: ../E/build.txt:7
#, no-wrap
msgid ""
"Here is an example of a program that looks for the nearest <a object|titan"
">titanium cube</a>, goes to the position and builds a <a object|factory>bot"
" factory</a>."
msgstr ""
#. type: Source code
#: ../E/build.txt:9
#, no-wrap
msgid ""
" <a cbot|object>object</a> item = <a cbot|radar>radar</a>(<a object|titan"
">Titanium</a>);\n"
" <a cbot|goto>goto</a>(item.position);\n"
" build(<a object|factory>BotFactory</a>);"
msgstr ""
#. type: Source code
#: ../E/build.txt:15
#, no-wrap
msgid "<c/>build ( cat );<n/>"
msgstr ""
#. type: Plain text
#: ../E/build.txt:17
#, no-wrap
msgid ""
"Tells the robot to build a building using a titanium cube placed on a flat"
" ground nearby."
msgstr ""
#. type: \t; header
#: ../E/build.txt:19 ../E/buildingenabled.txt:16 ../E/canbuild.txt:16 ../E/detect.txt:11 ../E/factory.txt:10 ../E/radar.txt:22
#, no-wrap
msgid "cat: <code><a cbot|int>int</a></code>"
msgstr ""
#. type: Plain text
#: ../E/build.txt:20 ../E/buildingenabled.txt:17 ../E/canbuild.txt:17
#, no-wrap
msgid "<a cbot|category>Category</a> of a building."
msgstr ""
#. type: Plain text
#: ../E/build.txt:23
#, no-wrap
msgid ""
"Normally an error stops the program. You can prevent the program from"
" stopping on errors by using the <code><a cbot|errmode>errmode</a>(0)</code>"
" instruction. A value different from zero if an error occurred is then"
" returned by <code>build()</code>.\n"
"<code>== 0 </code>Successfully built\n"
"<code>!= 0 </code>Impossible to build (for example, the nearest titanium cube"
" is too far away or the specified building is not available in the mission)"
msgstr ""
#. type: Plain text
#: ../E/build.txt:28
#, no-wrap
msgid ""
"<a cbot|canbuild>canbuild</a>, <a cbot|buildingenabled>buildingenabled</a>, <"
"a cbot>programming</a>, <a cbot|type>types</a> and <a cbot|category"
">categories</a>."
msgstr ""
#. type: \b; header
#: ../E/buildingenabled.txt:1
#, no-wrap
msgid "Instruction <code>buildingenabled</code>"
msgstr ""
#. type: Plain text
#: ../E/buildingenabled.txt:2
#, no-wrap
msgid ""
"The instruction <c/>buildingenabled();<n/> lets you know if a building of the"
" given <a cbot|category>category</a> can be built in the level."
msgstr ""
#. type: Plain text
#: ../E/buildingenabled.txt:5
#, no-wrap
msgid ""
"It is similar to the <c/><a cbot|canbuild>canbuild();</a><n/> instruction."
" However, it does not check if a required research has been done."
msgstr ""
#. type: Source code
#: ../E/buildingenabled.txt:7
#, no-wrap
msgid ""
" <a cbot|if>if</a> (buildingenabled(<a object|factory>BotFactory</a>))\n"
" {\n"
" \tbuild(<a object|factory>BotFactory</a>);\n"
" }"
msgstr ""
#. type: Source code
#: ../E/buildingenabled.txt:14
#, no-wrap
msgid "<c/>buildingenabled ( cat );<n/>"
msgstr ""
#. type: \t; header
#: ../E/buildingenabled.txt:19 ../E/busy.txt:10 ../E/canbuild.txt:19 ../E/canresearch.txt:10 ../E/detect.txt:23 ../E/researched.txt:10
#, no-wrap
msgid "Return value: <code><a cbot|bool>bool</a></code>"
msgstr ""
#. type: Plain text
#: ../E/buildingenabled.txt:20
#, no-wrap
msgid ""
"<code>true</code> if the building can be built in the level even if required"
" research has not been done, <code>false</code> otherwise."
msgstr ""
#. type: Plain text
#: ../E/buildingenabled.txt:23
#, no-wrap
msgid ""
"<a cbot|build>build</a>, <a cbot|canbuild>canbuild</a>, <a object|research"
">ResearchCenter</a>, <a cbot>programming</a>, <a cbot|type>types</a> and <a"
" cbot|category>categories</a>."
msgstr ""
#. type: \b; header
#: ../E/busy.txt:1
#, no-wrap
msgid "Instruction <code>busy</code>"
msgstr ""
#. type: Source code
#: ../E/busy.txt:3
#, no-wrap
msgid "<c/><a cbot|object>object</a>.busy ( );<n/>"
msgstr ""
#. type: Plain text
#: ../E/busy.txt:5
#, no-wrap
msgid "Checks if the object is busy."
msgstr ""
#. type: \t; header
#: ../E/busy.txt:7 ../E/destroy.txt:7 ../E/factory.txt:7 ../E/research.txt:7 ../E/takeoff.txt:7
#, no-wrap
msgid "<a cbot|object>object</a>"
msgstr ""
#. type: Plain text
#: ../E/busy.txt:8
#, no-wrap
msgid ""
"Any building which can take some action (e.g. <a cbot|convert>Converter</a>)."
msgstr ""
#. type: Plain text
#: ../E/busy.txt:11
#, no-wrap
msgid ""
"<code><format const>true</format></code> if the object is doing something"
" (e.g. converting)\n"
"<code><format const>false</format></code> if the object is not doing anything"
msgstr ""
#. type: \b; header
#: ../E/canbuild.txt:1
#, no-wrap
msgid "Instruction <code>canbuild</code>"
msgstr ""
#. type: Plain text
#: ../E/canbuild.txt:2
#, no-wrap
msgid ""
"The instruction <c/>canbuild();<n/> lets you know if <a object|botgc"
">Grabbers</a>, <a object|human>Me</a> or <a object|human>Tech</a> can build a"
" building of the given <a cbot|category>category</a>. "
msgstr ""
#. type: Plain text
#: ../E/canbuild.txt:5
#, no-wrap
msgid ""
"It helps to prevent errors in programs using the <c/><a cbot|build>build();<"
"/a><n/> instruction. Here is an example:"
msgstr ""
#. type: Source code
#: ../E/canbuild.txt:7
#, no-wrap
msgid ""
" <a cbot|if>if</a> (canbuild(<a object|factory>BotFactory</a>))\n"
" {\n"
" \tbuild(<a object|factory>BotFactory</a>);\n"
" }"
msgstr ""
#. type: Source code
#: ../E/canbuild.txt:14
#, no-wrap
msgid "<c/>canbuild ( cat );<n/>"
msgstr ""
#. type: Plain text
#: ../E/canbuild.txt:20
#, no-wrap
msgid ""
"<code>true</code> if the building can be built, <code>false</code> otherwise."
msgstr ""
#. type: Plain text
#: ../E/canbuild.txt:23
#, no-wrap
msgid ""
"<a cbot|build>build</a>, <a cbot|buildingenabled>buildingenabled</a>, <a cbot"
">programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>."
msgstr ""
#. type: \b; header
#: ../E/canresearch.txt:1
#, no-wrap
msgid "Instruction <code>canresearch</code>"
msgstr ""
#. type: Source code
#: ../E/canresearch.txt:3
#, no-wrap
msgid "<c/>canresearch ( research );<n/>"
msgstr ""
#. type: Plain text
#: ../E/canresearch.txt:5
#, no-wrap
msgid "Checks if the <a cbot|researches>research</a> can be done in the level."
msgstr ""
#. type: \t; header
#: ../E/canresearch.txt:7 ../E/researched.txt:7
#, no-wrap
msgid "research: <code><a cbot|int>int</a></code>"
msgstr ""
#. type: Plain text
#: ../E/canresearch.txt:8 ../E/research.txt:11 ../E/researched.txt:8
#, no-wrap
msgid "<a cbot|researches>Research name</a>."
msgstr ""
#. type: Plain text
#: ../E/canresearch.txt:11
#, no-wrap
msgid ""
"<format const>true</format> if the research can be done (even if it is"
" already done, to check that, use the <a cbot|researched>researched</a>"
" instruction)\n"
"<format const>false</format> if the research cannot be done"
msgstr ""
#. type: Plain text
#: ../E/canresearch.txt:15
#, no-wrap
msgid ""
"<a cbot|researches>Research names</a>, <a cbot|research>research</a>, <a"
" cbot|researched>researched</a>, <a cbot>programming</a>, <a cbot|type>types<"
"/a> and <a cbot|category>categories</a>."
msgstr ""
#. type: Plain text
#: ../E/category.txt:6
#, no-wrap
msgid "Below are the different categories available:"
msgstr ""
#. type: \t; header
#: ../E/category.txt:8
#, no-wrap
msgid "Buildings:"
msgstr ""
#. type: \t; header
#: ../E/category.txt:32
#, no-wrap
msgid "Portable Objects:"
msgstr ""
#. type: \t; header
#: ../E/category.txt:45
#, no-wrap
msgid "Robots:"
msgstr ""
#. type: \t; header
#: ../E/category.txt:77
#, no-wrap
msgid "Enemies:"
msgstr ""
#. type: \t; header
#: ../E/category.txt:87
#, no-wrap
msgid "Miscellaneous:"
msgstr ""
#. type: \t; header
#: ../E/category.txt:96
#, no-wrap
msgid "Flags and Other Indicators:"
msgstr ""
#. type: \b; header
#: ../E/ceil.txt:1
#, no-wrap
msgid "Instruction <code>ceil</code>"
msgstr ""
#. type: Source code
#: ../E/ceil.txt:3
#, no-wrap
msgid "<c/>ceil ( value );<n/>"
msgstr ""
#. type: Plain text
#: ../E/ceil.txt:4
#, no-wrap
msgid "Rounds up a number."
msgstr ""
#. type: Plain text
#: ../E/ceil.txt:10
#, no-wrap
msgid ""
"Ceiling of the value, i.e. the smallest integer not less than <code>value<"
"/code>. For example, <code>ceil(2.1)</code> is <code>3.0</code>."
msgstr ""
#. type: Plain text
#: ../E/ceil.txt:13 ../E/floor.txt:13 ../E/trunc.txt:13
#, no-wrap
msgid ""
"<a cbot|round>round</a>, <a cbot>programming</a>, <a cbot|type>types</a> and"
" <a cbot|expr>expressions</a>."
msgstr ""
#. type: \b; header
#: ../E/colors.txt:1
#, no-wrap
msgid "Value <code>Colors</code>"
msgstr ""
#. type: Plain text
#: ../E/colors.txt:2
#, no-wrap
msgid ""
"Color names are used to define a specific color to use. They can be passed to"
" functions like <a cbot|pendown>pendown</a> or <a cbot|pencolor>pencolor</a>."
msgstr ""
#. type: Plain text
#: ../E/colors.txt:4
#, no-wrap
msgid ""
"In a program, colors are always displayed on a <format const>red background<"
"/format>. If a color isn't highlighted in red, it is misspelled. Caps and"
" lower cases should be kept as is."
msgstr ""
#. type: Plain text
#: ../E/colors.txt:6
#, no-wrap
msgid "Below are the different colors available:"
msgstr ""
#. type: Plain text
#: ../E/colors.txt:8
#, no-wrap
msgid ""
"<code><format const>White</format></code>\n"
"<code><format const>Black</format></code>\n"
"<code><format const>Gray</format></code>\n"
"<code><format const>LightGray</format></code>\n"
"<code><format const>Red</format></code>\n"
"<code><format const>Pink</format></code>\n"
"<code><format const>Purple</format></code>\n"
"<code><format const>Orange</format></code>\n"
"<code><format const>Yellow</format></code>\n"
"<code><format const>Beige</format></code>\n"
"<code><format const>Brown</format></code>\n"
"<code><format const>Skin</format></code>\n"
"<code><format const>Green</format></code>\n"
"<code><format const>LightGreen</format></code>\n"
"<code><format const>Blue</format></code>\n"
"<code><format const>LightBlue</format></code>"
msgstr ""
#. type: Plain text
#: ../E/colors.txt:25
#, no-wrap
msgid "You can also draw colored symbols:"
msgstr ""
#. type: Plain text
#: ../E/colors.txt:27
#, no-wrap
msgid ""
"<code><format const>BlackArrow</format></code>\n"
"<code><format const>RedArrow</format></code>"
msgstr ""
#. type: \b; header
#: ../E/cos.txt:1
#, no-wrap
msgid "Instruction <code>cos</code>"
msgstr ""
#. type: Source code
#: ../E/cos.txt:3
#, no-wrap
msgid "<c/>cos ( angle );<n/>"
msgstr ""
#. type: Plain text
#: ../E/cos.txt:6 ../E/sin.txt:6
#, no-wrap
msgid "Angle in degrees."
msgstr ""
#. type: Plain text
#: ../E/cos.txt:9
#, no-wrap
msgid "Cosine of the angle."
msgstr ""
#. type: \b; header
#: ../E/destroy.txt:1
#, no-wrap
msgid "Instruction <code>destroy</code>"
msgstr ""
#. type: Source code
#: ../E/destroy.txt:3
#, no-wrap
msgid "<c/><a cbot|object>object</a>.destroy ( );<n/>"
msgstr ""
#. type: Plain text
#: ../E/destroy.txt:5
#, no-wrap
msgid "Destroys an object."
msgstr ""
#. type: Plain text
#: ../E/destroy.txt:8
#, no-wrap
msgid "<a object|destroy>Destroyer</a>."
msgstr ""
#. type: Plain text
#: ../E/destroy.txt:11
#, no-wrap
msgid ""
"Normally an error stops the program. You can prevent the program from"
" stopping on errors by using the <code><a cbot|errmode>errmode</a>(0)</code>"
" instruction. A value different from zero if an error occurred is then"
" returned by <code>destroy()</code>.\n"
"<code>== 0 </code>The operation of destroying of an object was started\n"
"<code>!= 0 </code>The instruction could not be done (e.g. nothing to destroy)"
msgstr ""
#. type: \b; header
#: ../E/detect.txt:1
#, no-wrap
msgid "Instruction <code>detect</code>"
msgstr ""
#. type: Plain text
#: ../E/detect.txt:2
#, no-wrap
msgid ""
"With the instruction <c/>detect();<n/>, you can look for objects like <a"
" object|mother>enemies</a>, bots, buildings or raw materials, which are in"
" front of the bot. It is a simpler version of <c/><a cbot|radar>radar</a>();<"
"n/>."
msgstr ""
#. type: Source code
#: ../E/detect.txt:6
#, no-wrap
msgid "<c/>detect ( cat );<n/>"
msgstr ""
#. type: Plain text
#: ../E/detect.txt:8
#, no-wrap
msgid ""
"Detects the nearest object of the specified <a cbot|category>category</a>"
" being in front of the bot. It is similar to the following instruction:"
msgstr ""
#. type: Source code
#: ../E/detect.txt:9
#, no-wrap
msgid "<c/>radar(cat, 0, 45, 0, 20);<n/>"
msgstr ""
#. type: Bullet: 'o'
#: ../E/detect.txt:12 ../E/radar.txt:23
#, no-wrap
msgid ""
"<a cbot|category>Category</a> of the objects that should be detected. For"
" example, when you are looking for an ant, write <code>radar(AlienAnt)</code"
">. "
msgstr ""
#. type: Bullet: 'o'
#: ../E/detect.txt:13
#, no-wrap
msgid ""
"<a cbot|array>Array</a> of categories of the objects that should be detected."
" For example, when you are looking only for grabbers:<c/>"
msgstr ""
#. type: Source code
#: ../E/detect.txt:14
#, no-wrap
msgid ""
"int bots[4];\n"
"bots[0] = WheeledGrabber;\n"
"bots[1] = TrackedGrabber;\n"
"bots[2] = WingedGrabber;\n"
"bots[3] = LeggedGrabber;\n"
"object nearestGrabber = radar(bots);"
msgstr ""
#. type: Bullet: 'o'
#: ../E/detect.txt:21 ../E/search.txt:17
#, no-wrap
msgid ""
"Keyword <format const>Any</format> if you are looking for any object"
" (including even plants and so on)."
msgstr ""
#. type: Plain text
#: ../E/detect.txt:24
#, no-wrap
msgid ""
"<format const>true</format> if the object was found\n"
"<format const>false</format> if the object was not found"
msgstr ""
#. type: \b; header
#: ../E/factory.txt:1
#, no-wrap
msgid "Instruction <code>factory</code>"
msgstr ""
#. type: Source code
#: ../E/factory.txt:3
#, no-wrap
msgid "<c/><a cbot|object>object</a>.factory ( cat, program );<n/>"
msgstr ""
#. type: Plain text
#: ../E/factory.txt:5
#, no-wrap
msgid ""
"Starts a construction of a bot of the given <a cbot|category>category</a> and"
" runs the specified program on it after the construction is finished."
msgstr ""
#. type: Plain text
#: ../E/factory.txt:8
#, no-wrap
msgid "<a object|factory>BotFactory</a>"
msgstr ""
#. type: Plain text
#: ../E/factory.txt:11
#, no-wrap
msgid "<a cbot|category>Category</a> of the robot to construct."
msgstr ""
#. type: \t; header
#: ../E/factory.txt:13
#, no-wrap
msgid ""
"program: <code><a cbot|string>string</a></code> (default value: <code>\"\"<"
"/code>)"
msgstr ""
#. type: Plain text
#: ../E/factory.txt:14
#, no-wrap
msgid ""
"Program that will be run on the bot after factory finishes the construction."
" This can be either a <a cbot|public>public</a> <a cbot|function>function</a"
">, a <a cbot|file>filename</a> or just a raw source code."
msgstr ""
#. type: Plain text
#: ../E/factory.txt:17
#, no-wrap
msgid ""
"Normally an error stops the program. You can prevent the program from"
" stopping on errors by using the <code><a cbot|errmode>errmode</a>(0)</code>"
" instruction. A value different from zero if an error occurred is then"
" returned by <code>factory()</code>.\n"
"<code>== 0 </code>The construction successfully started\n"
"<code>!= 0 </code>The construction could not be started (e.g. no <a"
" object|titan>Titanium</a> in the factory, the bot is not researched)"
msgstr ""
#. type: Plain text
#: ../E/factory.txt:22
#, no-wrap
msgid ""
"<a cbot|researched>researched</a>, <a cbot|>wait</a>, <a cbot>programming</a"
">, <a cbot|type>types</a> and <a cbot|category>categories</a>."
msgstr ""
#. type: \b; header
#: ../E/flatspace.txt:1
#, no-wrap
msgid "Instruction <code>flatspace</code>"
msgstr ""
#. type: Source code
#: ../E/flatspace.txt:3
#, no-wrap
msgid "<c/>flatspace ( center, flatmin, rmin, rmax, dist );<n/>"
msgstr ""
#. type: Plain text
#: ../E/flatspace.txt:5
#, no-wrap
msgid ""
"Determines the position of the nearest free space with at least <code"
">flatmin</code> of flat ground around a given position. Works similar to <c/"
"><a cbot|space>space();</a><n/>. Useful for finding a place for a <a"
" cbot|category>building</a>."
msgstr ""
#. type: \t; header
#: ../E/flatspace.txt:10
#, no-wrap
msgid "flatmin: <code><a cbot|float>float</a></code>"
msgstr ""
#. type: Plain text
#: ../E/flatspace.txt:11
#, no-wrap
msgid "Minimum radius of flat ground around the desired position."
msgstr ""
#. type: \b; header
#: ../E/floor.txt:1
#, no-wrap
msgid "Instruction <code>floor</code>"
msgstr ""
#. type: Source code
#: ../E/floor.txt:3
#, no-wrap
msgid "<c/>floor ( value );<n/>"
msgstr ""
#. type: Plain text
#: ../E/floor.txt:4
#, no-wrap
msgid "Rounds down a number."
msgstr ""
#. type: Plain text
#: ../E/floor.txt:10
#, no-wrap
msgid ""
"Floor of the value, i.e. the largest integer not greater than <code>value<"
"/code>. For example, <code>floor(2.9)</code> is <code>2.00</code>."
msgstr ""
#. type: Plain text
#: ../E/for.txt:19
#, no-wrap
msgid ""
"Example: count from 1 to 4\n"
"<c/><s/><c/>for ( i = 1 ; i <= 4 ; i++ )"
msgstr ""
#. type: Plain text
#: ../E/function.txt:2
#, no-wrap
msgid "Function, simply put, is an instruction created by you."
msgstr ""
#. type: \b; header
#: ../E/function.txt:4
#, no-wrap
msgid "Main function"
msgstr ""
#. type: Plain text
#: ../E/function.txt:5
#, no-wrap
msgid ""
"You probably already know how to create a function. Every program in CBOT"
" must have a main function, which looks like this:"
msgstr ""
#. type: Source code
#: ../E/function.txt:7
#, no-wrap
msgid ""
"extern void object::ProgramName()\n"
"{\n"
"\t\n"
"\t// instructions\n"
"\t\n"
"}"
msgstr ""
#. type: Plain text
#: ../E/function.txt:14
#, no-wrap
msgid ""
"Nothing but a name can be changed in the main function. The keyword <code><a"
" cbot|extern>extern</a></code> distinguish the main function from others."
msgstr ""
#. type: Plain text
#: ../E/function.txt:17
#, no-wrap
msgid ""
"With functions you can divide your program into several parts. Each of them"
" will execute a specific task. For example, see the following program:"
msgstr ""
#. type: Source code
#: ../E/function.txt:19
#, no-wrap
msgid ""
"extern void object::Remote()\n"
"{\n"
"\tsend(\"order\", 1, 100);\n"
"\twait(5);\n"
"\tsend(\"order\", 3, 100);\n"
"\twait(5);\n"
"\tsend(\"order\", 2, 100);\n"
"\twait(5);\n"
"\tsend(\"order\", 4, 100);\n"
"\twait(5);\n"
"}"
msgstr ""
#. type: Plain text
#: ../E/function.txt:31
#, no-wrap
msgid ""
"<code><a cbot|send>send</a></code> and <code><a cbot|wait>wait</a></code> are"
" repeated several times. So it would be a good thing if we created a function"
" that executes these two instructions:"
msgstr ""
#. type: Source code
#: ../E/function.txt:33
#, no-wrap
msgid ""
"void SendToPost(float op)\n"
"{\n"
"\tsend(\"order\", op, 100);\n"
"\twait(5);\n"
"}\n"
"\n"
"extern void object::Remote()\n"
"{\n"
"\tSendToPost(1);\n"
"\tSendToPost(3);\n"
"\tSendToPost(2);\n"
"\tSendToPost(4);\n"
"}"
msgstr ""
#. type: Plain text
#: ../E/function.txt:47
#, no-wrap
msgid ""
"Now the program is much easier to read. It is a good practice to split the"
" program into several functions with self-describing names."
msgstr ""
#. type: \b; header
#: ../E/function.txt:49
#, no-wrap
msgid "Syntax"
msgstr ""
#. type: Source code
#: ../E/function.txt:51
#, no-wrap
msgid ""
"result_type FunctionName(optional_parameters)\n"
"{\n"
"\tbody\n"
"}"
msgstr ""
#. type: Plain text
#: ../E/function.txt:56
#, no-wrap
msgid ""
"Result <a cbot|type>type</a> should be <a cbot/void>void</a> if the function"
" does not give any. Body is just a set of instructions. Function name must be"
" created with the exact same rules applied to <a cbot|var>variables</a>."
msgstr ""
#. type: \t; header
#: ../E/function.txt:58
#, no-wrap
msgid "Parameters"
msgstr ""
#. type: Plain text
#: ../E/function.txt:59
#, no-wrap
msgid "A function can have parameters:"
msgstr ""
#. type: Source code
#: ../E/function.txt:61
#, no-wrap
msgid ""
"void Example(int a, float x, string s)\n"
"{\n"
"\tmessage(a);\n"
"\tmessage(x);\n"
"\tmessage(s);\n"
"}"
msgstr ""
#. type: Plain text
#: ../E/function.txt:68
#, no-wrap
msgid ""
"The <code>Example</code> function will receive an <a cbot|int>integer</a> <"
"code>a</code>, a <a cbot|float>floating point number</a> <code>x</code> and a"
" <a cbot|string>string</a> <code>s</code>. Parameters are \"passed by"
" value\", that is the values of parameter variables in a function are copies"
" of the values the caller specified as variables. If you pass an <code><a"
" cbot|int>int</a></code> to a function, its parameter is a copy of whatever"
" value was being passed as the argument, and the function can change its"
" parameter value without affecting values in the code that invoked the"
" function."
msgstr ""
#. type: Plain text
#: ../E/function.txt:70
#, no-wrap
msgid ""
"If you pass a <a cbot|class>class</a> instance or an <a cbot|array>array</a>"
" as parameter to a function, the function only receives a <a cbot|pointer"
">reference</a> to the instance or the array. That means if you modify the"
" instance or the array in the function, the instance or the array that has"
" been specified by the caller will be actually modified."
msgstr ""
#. type: \t; header
#: ../E/function.txt:72
#, no-wrap
msgid "Result"
msgstr ""
#. type: Plain text
#: ../E/function.txt:73
#, no-wrap
msgid ""
"A function can also return a result with the <code><a cbot|return>return</a><"
"/code> instruction. Therefore the function must be declared no longer as <"
"code><a cbot|void>void</a></code> but as an other <a cbot|type>type</a>:"
msgstr ""
#. type: Source code
#: ../E/function.txt:75
#, no-wrap
msgid ""
"float Average(float a, float b)\n"
"{\n"
"\treturn (a+b)/2;\n"
"}\n"
"\n"
"extern void object::Test( )\n"
"{\n"
"\tfloat value;\n"
"\tvalue = Average(2, 6);\n"
"\tmessage(value); // will display 4\n"
"}"
msgstr ""
#. type: Plain text
#: ../E/function.txt:87
#, no-wrap
msgid "Some other examples:"
msgstr ""
#. type: Source code
#: ../E/function.txt:89
#, no-wrap
msgid ""
"float Pi()\n"
"{\n"
"\treturn 3.1415;\n"
"}\n"
"\n"
"string Sign(float a)\n"
"{\n"
"\tif (a > 0) return \"positive\";\n"
"\tif (a < 0) return \"negative\";\n"
"\treturn \"null\";\n"
"}"
msgstr ""
#. type: \b; header
#: ../E/function.txt:102
#, no-wrap
msgid "Overloading"
msgstr ""
#. type: Plain text
#: ../E/function.txt:103
#, no-wrap
msgid ""
"You can declare several functions with the same name but different parameters:"
msgstr ""
#. type: Source code
#: ../E/function.txt:105
#, no-wrap
msgid ""
"float Pythagoras(float a, float b)\n"
"{\n"
"\treturn sqrt((a*a)+(b*b));\n"
"}\n"
"\n"
"float Pythagoras(float a, float b, float c)\n"
"{\n"
"\treturn sqrt((a*a)+(b*b)+(c*c));\n"
"}"
msgstr ""
#. type: Plain text
#: ../E/function.txt:115
#, no-wrap
msgid ""
"CBOT will call either the one or the other function depending on the"
" parameters passed. They must be distinguishable, i.e. you can't declare two"
" functions with the same name and parameter types in the exact same order,"
" e.g. declaring <code>int Pythagoras(float b, float a)</code> will result in"
" error. Note that result type does not matter."
msgstr ""
#. type: \b; header
#: ../E/function.txt:117
#, no-wrap
msgid "Public functions"
msgstr ""
#. type: \b; header
#: ../E/function.txt:120
#, no-wrap
msgid "object::"
msgstr ""
#. type: Plain text
#: ../E/function.txt:121
#, no-wrap
msgid ""
"Declaring a function as a part of the <a cbot|object>object</a> namespace"
" gives it access to <code><a cbot|this>this</a></code> <a cbot|pointer"
">pointer</a>, in other words, to all available properties of the robot which"
" the program is run on."
msgstr ""
#. type: Source code
#: ../E/function.txt:123
#, no-wrap
msgid ""
"void object::Example()\n"
"{\n"
"\tmessage(this.category);\n"
"}"
msgstr ""
#. type: Plain text
#: ../E/object.txt:2
#, no-wrap
msgid ""
"Use this type for variables that contain the characteristics of an object, be"
" it a bot, a building, some raw material, an enemy, etc. Here are all"
" properties of an object: "
msgstr ""
#. type: Plain text
#: ../E/object.txt:4
#, no-wrap
msgid ""
"<code><a cbot|int>int</a> object.category </code><a cbot|category"
">Category</a> of the object\n"
"<code><a cbot|point>point</a> object.position </code>Position of the"
" object (x,y,z)\n"
"<code><a cbot|float>float</a> object.orientation </code>Orientation of the"
" object (0..360)\n"
"<code><a cbot|float>float</a> object.pitch </code>Forward/backward"
" angle of the object\n"
"<code><a cbot|float>float</a> object.roll </code>Right/left angle of"
" the object \n"
"<code><a cbot|float>float</a> object.energyLevel </code>Energy level"
" (0..1)\n"
"<code><a cbot|float>float</a> object.shieldLevel </code>Shield level"
" (0..1)\n"
"<code><a cbot|float>float</a> object.temperature </code>Jet temperature"
" (0..1)\n"
"<code><a cbot|float>float</a> object.altitude </code>Altitude above"
" ground\n"
"<code><a cbot|float>float</a> object.lifeTime </code>Lifetime of the"
" object\n"
"<code>object object.energyCell </code>Power cell on the bot\n"
"<code>object object.load </code>Object carried by the bot\n"
"<code><a cbot|int>int</a> object.team </code>The object's team"
" (see <a battles>code battles</a>)\n"
"<code><a cbot|point>point</a> object.velocity </code>Velocity of the"
" object"
msgstr ""
#. type: Plain text
#: ../E/object.txt:19
#, no-wrap
msgid ""
"Also, some objects have additional methods (instructions). See them in <a"
" cbot>the main list</a> in the <c/>\"Instructions specific for some objects\""
" section."
msgstr ""
#. type: Plain text
#: ../E/object.txt:22
#, no-wrap
msgid ""
"The <n/><a cbot|category>category</a> of an object allows you to know what it"
" is, f. ex. what kind of bot, building, enemy, etc."
msgstr ""
#. type: Source code
#: ../E/object.txt:60
#, no-wrap
msgid "<code>team</code>"
msgstr ""
#. type: Plain text
#: ../E/object.txt:61
#, no-wrap
msgid ""
"The bot's team. Used in <a battles>code battles</a>. If the object has no"
" team assigned (e.g. in no team-based levels, the object being a resource),"
" this is equal to <code>0</code>."
msgstr ""
#. type: Source code
#: ../E/object.txt:63
#, no-wrap
msgid "<code>velocity</code>"
msgstr ""
#. type: Plain text
#: ../E/object.txt:64
#, no-wrap
msgid ""
"Current velocity of the object. Should be treated as a three-dimensional"
" vector."
msgstr ""
#. type: \b; header
#: ../E/pencolor.txt:1
#, no-wrap
msgid "Instruction <code>pencolor</code>"
msgstr ""
#. type: Source code
#: ../E/pencolor.txt:3
#, no-wrap
msgid "<c/>pencolor ( color );<n/>"
msgstr ""
#. type: Plain text
#: ../E/pencolor.txt:4
#, no-wrap
msgid ""
"The instruction <c/>pencolor();<n/> instructs the bot to change the color of"
" the pencil."
msgstr ""
#. type: \t; header
#: ../E/pencolor.txt:6 ../E/pendown.txt:6
#, no-wrap
msgid ""
"color: <code><a cbot|int>int</a></code> (default value: <code>Black</code>)"
msgstr ""
#. type: Plain text
#: ../E/pencolor.txt:7 ../E/pendown.txt:7
#, no-wrap
msgid "<a cbot|colors>Color name</a>."
msgstr ""
#. type: Plain text
#: ../E/pencolor.txt:10
#, no-wrap
msgid ""
"Normally an error stops the program. You can prevent the program from"
" stopping on errors by using the <code><a cbot|errmode>errmode</a>(0)</code>"
" instruction. A value different from zero if an error occurred is then"
" returned by <c/>pencolor();<n/>.\n"
"<code>== 0 </code>The color was changed\n"
"<code>!= 0 </code>The instruction did not work"
msgstr ""
#. type: \b; header
#: ../E/pendown.txt:1
#, no-wrap
msgid "Instruction <code>pendown</code>"
msgstr ""
#. type: Source code
#: ../E/pendown.txt:3
#, no-wrap
msgid "<c/>pendown ( color, width );<n/>"
msgstr ""
#. type: Plain text
#: ../E/pendown.txt:4
#, no-wrap
msgid ""
"The instruction <c/>pendown();<n/> instructs the bot to have the pen down, so"
" it starts drawing."
msgstr ""
#. type: \t; header
#: ../E/pendown.txt:9
#, no-wrap
msgid ""
"width: <code><a cbot|float>float</a></code> (default value: <code>0.5</code>)"
msgstr ""
#. type: Plain text
#: ../E/pendown.txt:10 ../E/penwidth.txt:7
#, no-wrap
msgid ""
"Width of the pen. The width cannot be higher than <code>1.0</code> and cannot"
" be lower than <code>0.0</code>. Passing a higher value will result in the"
" width being the highest possible and passing a lower value will result in"
" the width being the lowest possible."
msgstr ""
#. type: Plain text
#: ../E/pendown.txt:13
#, no-wrap
msgid ""
"Normally an error stops the program. You can prevent the program from"
" stopping on errors by using the <code><a cbot|errmode>errmode</a>(0)</code>"
" instruction. A value different from zero if an error occurred is then"
" returned by <c/>pendown();<n/>.\n"
"<code>== 0 </code>The pen is now down\n"
"<code>!= 0 </code>The instruction did not work"
msgstr ""
#. type: \b; header
#: ../E/penup.txt:1
#, no-wrap
msgid "Instruction <code>penup</code>"
msgstr ""
#. type: Source code
#: ../E/penup.txt:3
#, no-wrap
msgid "<c/>penup ( );<n/>"
msgstr ""
#. type: Plain text
#: ../E/penup.txt:4
#, no-wrap
msgid ""
"The instruction <c/>penup();<n/> instructs the bot to have the pen up, so it"
" stops drawing. The pen is up by default, so it should be used only after"
" using <code><a cbot|pendown>pendown</a></code>."
msgstr ""
#. type: Plain text
#: ../E/penup.txt:7
#, no-wrap
msgid ""
"Normally an error stops the program. You can prevent the program from"
" stopping on errors by using the <code><a cbot|errmode>errmode</a>(0)</code>"
" instruction. A value different from zero if an error occurred is then"
" returned by <c/>penup();<n/>.\n"
"<code>== 0 </code>The pen is now up\n"
"<code>!= 0 </code>The instruction did not work"
msgstr ""
#. type: \b; header
#: ../E/penwidth.txt:1
#, no-wrap
msgid "Instruction <code>penwidth</code>"
msgstr ""
#. type: Source code
#: ../E/penwidth.txt:3
#, no-wrap
msgid "<c/>penwidth ( color );<n/>"
msgstr ""
#. type: Plain text
#: ../E/penwidth.txt:4
#, no-wrap
msgid ""
"The instruction <c/>penwidth();<n/> instructs the bot to change the width of"
" the pencil."
msgstr ""
#. type: \t; header
#: ../E/penwidth.txt:6
#, no-wrap
msgid "width: <code><a cbot|float>float</a></code>"
msgstr ""
#. type: Plain text
#: ../E/penwidth.txt:10
#, no-wrap
msgid ""
"Normally an error stops the program. You can prevent the program from"
" stopping on errors by using the <code><a cbot|errmode>errmode</a>(0)</code>"
" instruction. A value different from zero if an error occurred is then"
" returned by <c/>penwidth();<n/>.\n"
"<code>== 0 </code>The width was changed\n"
"<code>!= 0 </code>The instruction did not work"
msgstr ""
#. type: \b; header
#: ../E/pow.txt:1
#, no-wrap
msgid "Instruction <code>pow</code>"
msgstr ""
#. type: Source code
#: ../E/pow.txt:3
#, no-wrap
msgid "<c/>pow ( x, y );<n/>"
msgstr ""
#. type: Plain text
#: ../E/pow.txt:6
#, no-wrap
msgid "Base."
msgstr ""
#. type: Plain text
#: ../E/pow.txt:9
#, no-wrap
msgid "Exponent."
msgstr ""
#. type: Plain text
#: ../E/pow.txt:12
#, no-wrap
msgid "x to the y (x raised to the yth power)."
msgstr ""
#. type: Source code
#: ../E/radar.txt:15
#, no-wrap
msgid "<c/>radar ( cat, angle, focus, min, max, sens, filter );<n/>"
msgstr ""
#. type: Bullet: 'o'
#: ../E/radar.txt:24
#, no-wrap
msgid ""
"<a cbot|array>Array</a> of categories of the objects that should be detected."
" For example, when you are looking only for grabbers:"
msgstr ""
#. type: Plain text
#: ../E/radar.txt:25 ../E/search.txt:10
#, no-wrap
msgid "<c/><s/>int bots[4];"
msgstr ""
#. type: Source code
#: ../E/radar.txt:26
#, no-wrap
msgid ""
"bots[0] = WheeledGrabber;\n"
"bots[1] = TrackedGrabber;\n"
"bots[2] = WingedGrabber;\n"
"bots[3] = LeggedGrabber;\n"
"object nearestGrabber = radar(bots);<n/>"
msgstr ""
#. type: Bullet: 'o'
#: ../E/radar.txt:31
#, no-wrap
msgid ""
"Keyword <format const>Any</format> if you are looking for any object"
" (including even plants and so on). Filters may be useful to use with this"
" keyword."
msgstr ""
#. type: \t; header
#: ../E/radar.txt:33
#, no-wrap
msgid ""
"angle: <code><a cbot|float>float</a></code> (default value: <code>0</code>)"
msgstr ""
#. type: \t; header
#: ../E/radar.txt:39
#, no-wrap
msgid ""
"focus: <code><a cbot|float>float</a></code> (default value: <code>360</code>)"
msgstr ""
#. type: \t; header
#: ../E/radar.txt:42
#, no-wrap
msgid ""
"min: <code><a cbot|float>float</a></code> (default value: <code>0</code>)"
msgstr ""
#. type: \t; header
#: ../E/radar.txt:45
#, no-wrap
msgid ""
"max: <code><a cbot|float>float</a></code> (default value: <code>1000</code>)"
msgstr ""
#. type: \t; header
#: ../E/radar.txt:48
#, no-wrap
msgid ""
"sens: <code><a cbot|float>float</a></code> (default value: <code>1</code>)"
msgstr ""
#. type: \t; header
#: ../E/radar.txt:51
#, no-wrap
msgid ""
"filter: <code><a cbot|int>int</a></code> (default value: <code><format const"
">FilterNone</format></code>)"
msgstr ""
#. type: Plain text
#: ../E/radar.txt:52
#, no-wrap
msgid ""
"Determines which type of objects should be detected. Especially useful in use"
" with an <a cbot|array>array</a> or <format const>Any</format>. The following"
" filters are available:"
msgstr ""
#. type: Plain text
#: ../E/radar.txt:54
#, no-wrap
msgid ""
"<code><format const>FilterNone</format> </code>Detects everything"
" (default)\n"
"<code><format const>FilterOnlyLanding</format> </code>Detects only objects"
" being on the ground\n"
"<code><format const>FilterOnlyFlying</format> </code>Detects only objects"
" not being on the ground\n"
"<code><format const>FilterFriendly</format> </code>Detects only allies"
" (objects in the same team)\n"
"<code><format const>FilterEnemy</format> </code>Detects only enemies"
" (objects in an other team except neutral)\n"
"<code><format const>FilterNeutral</format> </code>Detects only neutral"
" objects (e.g. resources)"
msgstr ""
#. type: Plain text
#: ../E/radar.txt:61
#, no-wrap
msgid ""
"The last three are mainly useful in <a battles>code battles</a>. You can also"
" pass a team ID to search only for objects from a specific team. Attention:"
" you should use <format const>FilterNeutral</format> instead of <code>0</code"
"> or else it will not work."
msgstr ""
#. type: Plain text
#: ../E/radar.txt:63
#, no-wrap
msgid ""
"Filters and IDs can be mixed using bitwise OR operator <code>|</code>, for"
" example <c/>radar(Any, 0, 360, 0, 1000, 1, 2 | FilterOnlyLanding);<n/> will"
" only detect an object from team <code>2</code> that is on the ground."
" Attention: you can specify only one team ID at once, but you can specify"
" several filters at once."
msgstr ""
#. type: \b; header
#: ../E/rand.txt:1
#, no-wrap
msgid "Instruction <code>rand</code>"
msgstr ""
#. type: Source code
#: ../E/rand.txt:3
#, no-wrap
msgid "<c/>rand ( );<n/>"
msgstr ""
#. type: Plain text
#: ../E/rand.txt:6
#, no-wrap
msgid "Pseudorandom number between 0 and 1 (including 0, but excluding 1)."
msgstr ""
#. type: \b; header
#: ../E/research.txt:1
#, no-wrap
msgid "Instruction <code>research</code>"
msgstr ""
#. type: Source code
#: ../E/research.txt:3
#, no-wrap
msgid "<c/><a cbot|object>object</a>.research ( type );<n/>"
msgstr ""
#. type: Plain text
#: ../E/research.txt:5
#, no-wrap
msgid "Starts a <a cbot|researches>research</a> of the given type."
msgstr ""
#. type: Plain text
#: ../E/research.txt:8
#, no-wrap
msgid "<a object|research>ResearchCenter</a> or <a object|labo>AutoLab</a>."
msgstr ""
#. type: \t; header
#: ../E/research.txt:10
#, no-wrap
msgid "type: <code><a cbot|int>int</a></code>"
msgstr ""
#. type: Plain text
#: ../E/research.txt:14
#, no-wrap
msgid ""
"Normally an error stops the program. You can prevent the program from"
" stopping on errors by using the <code><a cbot|errmode>errmode</a>(0)</code>"
" instruction. A value different from zero if an error occurred is then"
" returned by <code>research()</code>.\n"
"<code>== 0 </code>The research successfully started\n"
"<code>!= 0 </code>The research could not be started (e.g. the research is"
" disabled in the level, no power cell)"
msgstr ""
#. type: Plain text
#: ../E/research.txt:19
#, no-wrap
msgid ""
"<a cbot|researches>Research names</a>, <a cbot|canresearch>canresearch</a>, <"
"a cbot|researched>researched</a>, <a cbot>programming</a>, <a cbot|type"
">types</a> and <a cbot|category>categories</a>."
msgstr ""
#. type: \b; header
#: ../E/researched.txt:1
#, no-wrap
msgid "Instruction <code>researched</code>"
msgstr ""
#. type: Source code
#: ../E/researched.txt:3
#, no-wrap
msgid "<c/>researched ( research );<n/>"
msgstr ""
#. type: Plain text
#: ../E/researched.txt:5
#, no-wrap
msgid "Checks if the <a cbot|researches>research</a> was done in the level."
msgstr ""
#. type: Plain text
#: ../E/researched.txt:11
#, no-wrap
msgid ""
"<format const>true</format> if the research was done\n"
"<format const>false</format> if the research was not done"
msgstr ""
#. type: Plain text
#: ../E/researched.txt:15
#, no-wrap
msgid ""
"<a cbot|researches>Research names</a>, <a cbot|research>research</a>, <a"
" cbot|canresearch>canresearch</a>, <a cbot|canbuild>canbuild</a> <a cbot"
">programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>."
msgstr ""
#. type: \b; header
#: ../E/researches.txt:1
#, no-wrap
msgid "Value <code>Research names</code>"
msgstr ""
#. type: Plain text
#: ../E/researches.txt:2
#, no-wrap
msgid ""
"Research names represent the types of available researches in the CBOT"
" language. You can use them to control <a object|research>ResearchCenter</a>"
" by passing them to appropriate instructions (e.g. <a cbot|research>research<"
"/a>, <a cbot|canresearch>canresearch</a>, <a cbot|researched>researched</a>)."
msgstr ""
#. type: Plain text
#: ../E/researches.txt:4
#, no-wrap
msgid ""
"In a program, research names are always displayed on a <format const>red"
" background</format>. If a research name is not highlighted in red, it is"
" misspelled. Caps and lower cases should be kept as is."
msgstr ""
#. type: Plain text
#: ../E/researches.txt:6
#, no-wrap
msgid "Below are the different research names available."
msgstr ""
#. type: \t; header
#: ../E/researches.txt:8
#, no-wrap
msgid "Done by <a object|research>ResearchCenter</a>:"
msgstr ""
#. type: Plain text
#: ../E/researches.txt:9
#, no-wrap
msgid ""
"<code><format const>ResearchTracked</format> </code>Tracked bots (e.g."
" <a object|botgc>tracked grabber</a>)\n"
"<code><format const>ResearchWinged</format> </code>Winged bots (e.g. <"
"a object|botgj>winged grabber</a>)\n"
"<code><format const>ResearchShooter</format> </code>Bots with cannon"
" (e.g. <a object|botfc>tracked shooter</a>)\n"
"<code><format const>ResearchPhazerShooter</format> </code><a object|botphaz"
">Phazer shooter</a>\n"
"<code><format const>ResearchThumper</format> </code><a object|bottump"
">Thumper</a>\n"
"<code><format const>ResearchShielder</format> </code><a object|botshld"
">Shielder</a>\n"
"<code><format const>ResearchDefenseTower</format> </code><a object|tower"
">Defense tower</a>\n"
"<code><format const>ResearchNuclearPlant</format> </code><a object|nuclear"
">Nuclear plant</a>"
msgstr ""
#. type: \t; header
#: ../E/researches.txt:18
#, no-wrap
msgid "Done by <a object|labo>AutoLab</a>:"
msgstr ""
#. type: Plain text
#: ../E/researches.txt:19
#, no-wrap
msgid ""
"<code><format const>ResearchLegged</format> </code>Legged bots (e.g. <"
"a object|botgs>legged grabber</a>)\n"
"<code><format const>ResearchOrgaShooter</format> </code>Bots with orgaball"
" cannon (e.g. <a object|botoc>tracked orga shooter</a>)"
msgstr ""
#. type: \t; header
#: ../E/researches.txt:22
#, no-wrap
msgid "Impossible to research:"
msgstr ""
#. type: Plain text
#: ../E/researches.txt:23
#, no-wrap
msgid ""
"<code><format const>ResearchSniffer</format> </code>Sniffers (e.g. <a"
" object|botsc>tracked sniffer</a>)\n"
"<code><format const>ResearchSubber</format> </code><a object|botsub"
">Subber</a>\n"
"<code><format const>ResearchRecycler</format> </code><a object|botrecy"
">Recycler</a>"
msgstr ""
#. type: Plain text
#: ../E/researches.txt:28
#, no-wrap
msgid ""
"<a cbot>CBOT Language</a>, <a cbot|type>variables</a> and <a cbot|category"
">categories</a>."
msgstr ""
#. type: \b; header
#: ../E/round.txt:1
#, no-wrap
msgid "Instruction <code>round</code>"
msgstr ""
#. type: Source code
#: ../E/round.txt:3
#, no-wrap
msgid "<c/>round ( value );<n/>"
msgstr ""
#. type: Plain text
#: ../E/round.txt:4
#, no-wrap
msgid "Rounds a number."
msgstr ""
#. type: Plain text
#: ../E/round.txt:10
#, no-wrap
msgid ""
"Rounded <code>value</code>. For example, <code>round(2.5)</code> is <code"
">3.0</code>, whereas <code>round(2.4)</code> is <code>2.0</code>."
msgstr ""
#. type: Plain text
#: ../E/round.txt:13
#, no-wrap
msgid ""
"<a cbot|trunc>trunc</a>, <a cbot|floor>floor</a>, <a cbot|ceil>ceil</a>, <a"
" cbot>programming</a>, <a cbot|type>types</a> and <a cbot|expr>expressions</a"
">."
msgstr ""
#. type: Plain text
#: ../E/search.txt:5
#, no-wrap
msgid ""
"Detects the object of the given category that is closest to the given"
" position. Similar to <c/><a cbot|radar>radar();</a><n/>, but can search"
" starting from the specific point instead of the actual bot's position."
msgstr ""
#. type: Bullet: 'o'
#: ../E/search.txt:8
#, no-wrap
msgid ""
"<a cbot|category>Category</a> of the objects that should be detected. For"
" example, when you are looking for an ant, write <code>search(AlienAnt)</code"
">. "
msgstr ""
#. type: Bullet: 'o'
#: ../E/search.txt:9
#, no-wrap
msgid ""
"<a cbot|array>Array</a> of categories of the objects that should be detected."
" For example, when you are looking only for grabbers, starting from a certain"
" point in the level:"
msgstr ""
#. type: Source code
#: ../E/search.txt:11
#, no-wrap
msgid ""
"bots[0] = WheeledGrabber;\n"
"bots[1] = TrackedGrabber;\n"
"bots[2] = WingedGrabber;\n"
"bots[3] = LeggedGrabber;\n"
"point p(50, 24, 0);\n"
"object grabberNearestThePoint = search(bots, p);<n/>"
msgstr ""
#. type: \t; header
#: ../E/search.txt:19
#, no-wrap
msgid ""
"position: <code><a cbot|point>point</a></code> (default value: <code><a"
" cbot|this>this</a>.<a cbot|object>position</a></code>)"
msgstr ""
#. type: \b; header
#: ../E/sin.txt:1
#, no-wrap
msgid "Instruction <code>sin</code>"
msgstr ""
#. type: Source code
#: ../E/sin.txt:3
#, no-wrap
msgid "<c/>sin ( angle );<n/>"
msgstr ""
#. type: Plain text
#: ../E/sin.txt:9
#, no-wrap
msgid "Sine of the angle."
msgstr ""
#. type: \b; header
#: ../E/sqrt.txt:1
#, no-wrap
msgid "Instruction <code>sqrt</code>"
msgstr ""
#. type: Source code
#: ../E/sqrt.txt:3
#, no-wrap
msgid "<c/>sqrt ( value );<n/>"
msgstr ""
#. type: Plain text
#: ../E/sqrt.txt:6
#, no-wrap
msgid "Non-negative number."
msgstr ""
#. type: Plain text
#: ../E/sqrt.txt:9
#, no-wrap
msgid "Square root of the value."
msgstr ""
#. type: \b; header
#: ../E/switch.txt:1
#, no-wrap
msgid ""
"Instructions <code>switch</code>, <code>case</code> and <code>default</code>"
msgstr ""
#. type: Plain text
#: ../E/switch.txt:2
#, no-wrap
msgid ""
"With the instruction <code>switch() {}</code> you can execute a proper set of"
" instructions (a case) basing on some value."
msgstr ""
#. type: Plain text
#: ../E/switch.txt:5
#, no-wrap
msgid ""
"Note: the <a cbot|busy>busy</a> instruction might be much better to use in"
" this scenario."
msgstr ""
#. type: Plain text
#: ../E/switch.txt:7
#, no-wrap
msgid ""
"See the following <a cbot|function>function</a>: the bot will be <a cbot|wait"
">waiting</a> a proper amount of time for a certain task to be completed:"
msgstr ""
#. type: Source code
#: ../E/switch.txt:9
#, no-wrap
msgid ""
"public void WaitForTaskCompleted(object building)\n"
"{\n"
"\tint cat = building.category;\n"
"\t<a cbot|if>if</a> (cat == Converter) wait(15);\n"
"\telse if (cat == BotFactory) wait(15);\n"
"\telse if (cat == PowerPlant) wait(12);\n"
"\telse message(\"Undefined wait time\", DisplayError);\n"
"}"
msgstr ""
#. type: Plain text
#: ../E/switch.txt:18
#, no-wrap
msgid ""
"This function can be also written using the <code>switch() {}</code>"
" instruction:"
msgstr ""
#. type: Source code
#: ../E/switch.txt:20
#, no-wrap
msgid ""
"public void WaitForTaskCompleted(object building)\n"
"{\n"
"\tswitch (building.category)\n"
"\t{\n"
"\t\tcase Converter: wait(15); break;\n"
"\t\tcase BotFactory: wait(15); break;\n"
"\t\tcase PowerPlant: wait(12); break;\n"
"\t\tdefault: message(\"Undefined wait time\", DisplayError);\n"
"\t}\n"
"}"
msgstr ""
#. type: Plain text
#: ../E/switch.txt:31
#, no-wrap
msgid ""
"Which way to write this kind of choice structures, is a matter of taste."
msgstr ""
#. type: Plain text
#: ../E/switch.txt:33
#, no-wrap
msgid "You can also make cases like this:"
msgstr ""
#. type: Source code
#: ../E/switch.txt:35
#, no-wrap
msgid ""
"switch (building.category)\n"
"{\n"
"\tcase Converter:\n"
"\tcase BotFactory:\n"
"\t\twait(15); break;\n"
"\tcase PowerPlant: wait(12); break;\n"
"\tdefault: message(\"Undefined wait time\", DisplayError);\n"
"}"
msgstr ""
#. type: Plain text
#: ../E/switch.txt:44
#, no-wrap
msgid ""
"<a object|convert>Converter</a> and <a object|factory>bot factory</a> have"
" the same waiting time, so in order to not write the same instructions twice,"
" we made multiple cases run the same code. In fact, all code after the"
" highest case used will be executed if we do not <code><a cbot|break>break</a"
"></code> it."
msgstr ""
#. type: Source code
#: ../E/switch.txt:48
#, no-wrap
msgid ""
"<c/>switch ( value )\n"
"{\n"
"\tcase value1: instructions1\n"
"\tcase value2: instructions2\n"
"\t...\n"
"\tcase valueN: instructionsN\n"
"\tdefault: instructionsDefault\n"
"}"
msgstr ""
#. type: Plain text
#: ../E/switch.txt:57
#, no-wrap
msgid ""
"With this conditional structure you can execute <code>instructions1</code> or"
" <code>instructions2</code> ... or <code>instructionsN</code> or <code"
">instructionsDefault</code> depending on the <code>value</code>."
msgstr ""
#. type: Plain text
#: ../E/switch.txt:59
#, no-wrap
msgid ""
"If the <code>value</code> is equal to <code>value1</code>, <code"
">instructions1</code> to <code>N</code> (including <code>instructionsDefault<"
"/code>) are executed.\n"
"If the <code>value</code> is equal to <code>value2</code>, <code"
">instructions2</code> to <code>N</code> (including <code>instructionsDefault<"
"/code>) are executed.\n"
"And so on.\n"
"If the <code>value</code> is equal to <code>valueN</code>, <code"
">instructionsN</code> and <code>instructionsDefault</code> are executed.\n"
"If the <code>value</code> is not equal to any value in the given cases, <code"
">instructionsDefault</code> are executed."
msgstr ""
#. type: Plain text
#: ../E/switch.txt:65
#, no-wrap
msgid ""
"You can exit from the the <code>switch() {}</code> instruction using <code><a"
" cbot|break>break</a></code>."
msgstr ""
#. type: Plain text
#: ../E/switch.txt:68
#, no-wrap
msgid ""
"Do not put a <a cbot|term>semicolon</a> at the end of the <code>switch ( ) {"
" }</code> instruction."
msgstr ""
"Il ne faut pas mettre de <a cbot|term>point-virgule</a> à la fin de"
" l'instruction <code>switch ( ) { }</code>."
#. type: \b; header
#: ../E/takeoff.txt:1
#, no-wrap
msgid "Instruction <code>takeoff</code>"
msgstr ""
#. type: Source code
#: ../E/takeoff.txt:3
#, no-wrap
msgid "<c/><a cbot|object>object</a>.takeoff ( );<n/>"
msgstr ""
#. type: Plain text
#: ../E/takeoff.txt:5
#, no-wrap
msgid "Takes off the spaceship."
msgstr ""
#. type: Plain text
#: ../E/takeoff.txt:8
#, no-wrap
msgid "<a object|base>SpaceShip</a>"
msgstr ""
#. type: Plain text
#: ../E/takeoff.txt:11
#, no-wrap
msgid ""
"Normally an error stops the program. You can prevent the program from"
" stopping on errors by using the <code><a cbot|errmode>errmode</a>(0)</code>"
" instruction. A value different from zero if an error occurred is then"
" returned by <code>takeoff()</code>.\n"
"<code>== 0 </code>Spaceship takes off\n"
"<code>!= 0 </code>Spaceship could not take off (e.g. mission is not finished"
" yet)"
msgstr ""
#. type: \b; header
#: ../E/tan.txt:1
#, no-wrap
msgid "Instruction <code>tan</code>"
msgstr ""
#. type: Source code
#: ../E/tan.txt:3
#, no-wrap
msgid "<c/>tan ( angle );<n/>"
msgstr ""
#. type: Plain text
#: ../E/tan.txt:6
#, no-wrap
msgid "Angle in degrees (except multiples of 90)."
msgstr ""
#. type: Plain text
#: ../E/tan.txt:9
#, no-wrap
msgid "Tangent of the angle."
msgstr ""
#. type: \b; header
#: ../E/trunc.txt:1
#, no-wrap
msgid "Instruction <code>trunc</code>"
msgstr ""
#. type: Source code
#: ../E/trunc.txt:3
#, no-wrap
msgid "<c/>trunc ( value );<n/>"
msgstr ""
#. type: Plain text
#: ../E/trunc.txt:4
#, no-wrap
msgid ""
"Truncation is a method of approximating a decimal number by dropping all"
" decimal places past a certain point without rounding. For positive numbers,"
" it works like the <c/><a cbot|floor>floor();</a><n/> function, and for"
" negative numbers, it works like the <c/><a cbot|ceil>ceil();</a><n/>"
" function. It can be said that it rounds towards zero."
msgstr ""
#. type: Plain text
#: ../E/trunc.txt:10
#, no-wrap
msgid ""
"Truncated <code>value</code>. For example, <code>trunc(-2.5)</code> is <code"
">-2.00</code>."
msgstr ""
#. type: Plain text
#: ../E/category.txt:4
#, no-wrap
msgid ""
"In a program, categories are always displayed like that: <format const"
">category</format>. If a category isn't highlighted, it is misspelled. Caps"
" and lower cases should be kept as is."
msgstr ""
#. type: Plain text
#: ../E/type.txt:9
#, no-wrap
msgid ""
"In a program, the name of a type is always displayed like that: <format type"
">type</format>. If the name of a type is not highlighted, this means that the"
" name is misspelled. Type names are always written with lower case"
" characters. Here is a list of the different types: "
msgstr ""
#. type: \b; header
#: ../E/produce.txt:1
#, no-wrap
msgid "Instruction <code>produce</code>"
msgstr ""
#. type: Source code
#: ../E/produce.txt:3
#, no-wrap
msgid "<c/>produce ( position, orientation, category, program, power );<n/>"
msgstr ""
#. type: Bullet: 'o'
#: ../E/produce.txt:4
#, no-wrap
msgid "r"
msgstr ""
#. type: Source code
#: ../E/produce.txt:5
#, no-wrap
msgid "<c/>produce ( category, power );<n/>"
msgstr ""
#. type: Plain text
#: ../E/produce.txt:7
#, no-wrap
msgid "Immediately creates an <a cbot|category>object</a>."
msgstr ""
#. type: \t; header
#: ../E/produce.txt:12
#, no-wrap
msgid "orientation: <code><a cbot|float>float</a></code>"
msgstr ""
#. type: Plain text
#: ../E/produce.txt:13
#, no-wrap
msgid "Orientation (angle) of the object."
msgstr ""
#. type: Plain text
#: ../E/produce.txt:16
#, no-wrap
msgid "<a cbot|category>Category</a> of the object."
msgstr ""
#. type: \t; header
#: ../E/produce.txt:18
#, no-wrap
msgid "program: <code><a cbot|string>string</a></code>"
msgstr ""
#. type: Plain text
#: ../E/produce.txt:22
#, no-wrap
msgid "Energy level."
msgstr ""
#. type: \t; header
#: ../E/produce.txt:24
#, no-wrap
msgid "Return: <code><a cbot|void>void</a></code>"
msgstr ""
#. type: Plain text
#: ../E/produce.txt:25
#, no-wrap
msgid "Nothing."
msgstr ""
#. type: \b; header
#: ../E/produce.txt:27
#, no-wrap
msgid "Example usage"
msgstr ""
#. type: Plain text
#: ../E/produce.txt:28
#, no-wrap
msgid ""
"It is used by <a object|mother>AlienQueen</a> to produce <a object|egg"
">AlienEggs</a>."
msgstr ""
#. type: Plain text
#: ../E/produce.txt:10
#, no-wrap
msgid ""
"Where object will be created. The second syntax creates the object at the"
" current bot's position."
msgstr ""
#. type: Plain text
#: ../E/produce.txt:19
#, no-wrap
msgid ""
"Program for the object. Will have effect only for programmable objects like"
" robots or aliens."
msgstr ""
#. type: Plain text
#: ../E/expr.txt:2
#, no-wrap
msgid ""
"Expressions are used for various calculations with many different variables,"
" which return the desired result. What distinguishes them from standard"
" instructions are operators, which are described below."
msgstr ""
#. type: \b; header
#: ../E/expr.txt:8
#, no-wrap
msgid "Binary operations"
msgstr ""
#. type: Plain text
#: ../E/expr.txt:9
#, no-wrap
msgid ""
"Assuming that <code>a</code>, <code>b</code> can be values of declared and"
" initialized variables of types <code>t1</code> and <code>t2</code>, the"
" binary operations can be described as follows:"
msgstr ""
#. type: Source code
#: ../E/expr.txt:10
#, no-wrap
msgid "<code>r = a op b</code>"
msgstr ""
#. type: Plain text
#: ../E/expr.txt:11
#, no-wrap
msgid ""
"Where <code>r</code> is the result of the operation and <code>op</code> is a"
" binary operator which works with values of types <code>t1</code> and <code"
">t2</code>."
msgstr ""
#. type: \t; header
#: ../E/expr.txt:13
#, no-wrap
msgid "Order of operations"
msgstr ""
#. type: Plain text
#: ../E/expr.txt:14
#, no-wrap
msgid ""
"Let <code>a op1 b op2 c</code> be a legal expression, then the following"
" rules apply:"
msgstr ""
#. type: Bullet: 'o'
#: ../E/expr.txt:15
#, no-wrap
msgid ""
"If <code>op1 == op2</code> or <code>op1</code> is as strong as <code>op2<"
"/code> or <code>op1</code> is stronger than <code>op2</code>, first calculate"
" <code>a op1 b</code> and store its result in a temporary variable <code>r<"
"/code>, then calculate <code>r op2 c</code>, which is the final result of the"
" expression."
msgstr ""
#. type: Bullet: 'o'
#: ../E/expr.txt:16
#, no-wrap
msgid ""
"If <code>op1</code> is weaker than <code>op2</code>, first calculate <code>b"
" op2 c</code> and store its result in a temporary variable <code>r</code>,"
" then calculate <code>a op1 r</code>, which is the final result of the"
" expression."
msgstr ""
#. type: Plain text
#: ../E/expr.txt:18
#, no-wrap
msgid ""
"Note: an operation can be made stronger by surrounding it in brackets, so for"
" example assuming that <code>op1</code> is weaker than <code>op2</code>, in"
" an expression <code>(a op1 b) op2 c</code> the <code>a op1 b</code>"
" operation will be executed first."
msgstr ""
#. type: Plain text
#: ../E/expr.txt:20
#, no-wrap
msgid ""
"Tip: always use brackets if you are not sure about the order of operations,"
" do not try to remember how strong are each of the operators. Generally it"
" should be fairly obvious."
msgstr ""
#. type: Plain text
#: ../E/expr.txt:22
#, no-wrap
msgid ""
"Here is a complicated example, which uses arithemtic operations described"
" below, showing how expressions are calculated:\n"
"<c/>Assume a, b, c, d, x, y, z, e are all initialized variables of type float"
" or int. Then the following expression should be calculated the following"
" way:\n"
" a * b + c - d / x % (y * z) - e =\n"
"= r1 + c - d / x % (y * z) - e = , r1 = a * b\n"
"= r2 - d / x % (y * z) - e = , r2 = r1 + c\n"
"= r2 - r3 % (y * z) - e = , r3 = d / x\n"
"= r2 - r3 % r4 - e = , r4 = y * z\n"
"= r2 - r5 - e = , r5 = r3 % r4\n"
"= r6 - e = , r6 = r2 - r5\n"
"= r7 , r7 = r6 - e\n"
"r7 is the final result of this expression."
msgstr ""
#. type: \b; header
#: ../E/expr.txt:35
#, no-wrap
msgid "Assignment operator"
msgstr ""
#. type: Plain text
#: ../E/expr.txt:36
#, no-wrap
msgid ""
"<code>=</code> is the assignment operator. It is used to store the result of"
" an expression in a variable."
msgstr ""
#. type: Plain text
#: ../E/expr.txt:38
#, no-wrap
msgid ""
"On the left side of this operator there must be so called l-value and on the"
" right side - r-value. L-values are just <a cbot|var>variables</a><n/>,"
" r-values are expressions or just usual values. This makes the assignment"
" operator kind of special, because what is l-value is pretty restrictive (it"
" cannot be an expression, constant and so on, only single variable). Also,"
" the type of l-value must match the type of r-value (unless a conversion is"
" possible, for example assigning a <code><a cbot|float>float</a></code> to <"
"code><a cbot|int>int</a></code>)."
msgstr ""
#. type: Source code
#: ../E/expr.txt:42
#, no-wrap
msgid ""
" float a;\n"
" float b = 2.0 * (a = 4.0); // b == 8.0"
msgstr ""
#. type: Plain text
#: ../E/expr.txt:45
#, no-wrap
msgid ""
"This example is actually really confusing, but this property is actually"
" useful, because it lets doing something like this:"
msgstr ""
#. type: Source code
#: ../E/expr.txt:47
#, no-wrap
msgid ""
" float a, b, c, d, e;\n"
" a = b = c = d = e = 1.0; // a == b == c == d == e == 1.0"
msgstr ""
#. type: \b; header
#: ../E/expr.txt:50
#, no-wrap
msgid "Basic arithmetic operations"
msgstr ""
#. type: Plain text
#: ../E/expr.txt:51
#, no-wrap
msgid ""
"Binary operators below are working with fundamental number types (<code><a"
" cbot|int>int</a></code>, <code><a cbot|float>float</a></code>)."
msgstr ""
#. type: \t; header
#: ../E/expr.txt:53 ../E/expr.txt:89 ../E/expr.txt:115 ../E/expr.txt:140 ../E/expr.txt:163
#, no-wrap
msgid "List"
msgstr ""
#. type: Plain text
#: ../E/expr.txt:54
#, no-wrap
msgid ""
"<code>+</code> addition\n"
"<code>-</code> subtraction\n"
"<code>*</code> multiplication\n"
"<code>/</code> division\n"
"<code>%</code> remainder of the division (only for the type <code><a"
" cbot|int>int</a></code>)"
msgstr ""
#. type: \t; header
#: ../E/expr.txt:60
#, no-wrap
msgid "Notes"
msgstr ""
#. type: Bullet: 'o'
#: ../E/expr.txt:61
#, no-wrap
msgid ""
"The <code>*</code>, <code>/</code>, <code>%</code> are all stronger than <"
"code>+</code> and <code>-</code>."
msgstr ""
#. type: Bullet: 'o'
#: ../E/expr.txt:62
#, no-wrap
msgid ""
"The result <a cbot|type>type</a> is always <code><a cbot|float>float</a><"
"/code>. If <code>a</code> or <code>b</code> are of type <code><a cbot|int"
">int</a></code>, they are automatically converted to <code><a cbot|float"
">float</a></code>. Note: this means that results of intermediate calculations"
" tends to be as precise as possible, the precision is lost only during"
" converting the final (<code><a cbot|float>float</a></code>) result to <code"
"><a cbot|int>int</a></code>, for example by the assignment <code>=</code>"
" operator."
msgstr ""
#. type: \t; header
#: ../E/expr.txt:64
#, no-wrap
msgid "Real life examples"
msgstr ""
#. type: \t; header
#: ../E/expr.txt:81
#, no-wrap
msgid "Compound assignment operators"
msgstr ""
#. type: Plain text
#: ../E/expr.txt:82
#, no-wrap
msgid ""
"Besides the <code>=</code> operator for variable assignment there are several"
" compound-assignment operators."
msgstr ""
#. type: Plain text
#: ../E/expr.txt:84
#, no-wrap
msgid ""
"The compound-assignment operators combine the <code>=</code> assignment"
" operator with another binary operator such as <code>+</code> or <code>-<"
"/code>. Compound-assignment operators perform the operation specified by the"
" additional operator and then assign the result to the left operand. For"
" example, a compound-assignment expression such as"
msgstr ""
#. type: Source code
#: ../E/expr.txt:85
#, no-wrap
msgid "<code>lvalue += expression</code>"
msgstr ""
#. type: Source code
#: ../E/expr.txt:87
#, no-wrap
msgid "<code>lvalue = lvalue + expression</code>"
msgstr ""
#. type: \b; header
#: ../E/expr.txt:96
#, no-wrap
msgid "String concatenation"
msgstr ""
#. type: Plain text
#: ../E/expr.txt:97
#, no-wrap
msgid ""
"If at least one of the values used with the <code>+</code> operator is a <a"
" cbot|string>string</a>, then the operation of concatenation is performed."
" The result of the operator is then a string, which is created by joining"
" end-to-end the string and the other value. If the other value is not a"
" string, then it is converted to string beforehand."
msgstr ""
#. type: Source code
#: ../E/expr.txt:101
#, no-wrap
msgid ""
"\tstring s = \"a\" + \"bc\"; // returns \"abc\"\n"
"\tstring s = 1 + \"bc\"; // returns \"1bc\"\n"
"\tstring s = 2.5 + \"bc\"; // returns \"2.5bc\"\n"
"\tstring s = \"a\" + true; // returns \"atrue\""
msgstr ""
#. type: Plain text
#: ../E/expr.txt:106
#, no-wrap
msgid ""
"Tip: the properties of the concatenation <code>+</code> operator is useful"
" with the <a cbot|message>message();</a> function, because it does not work"
" with other types than string. An empty string can be used together with a"
" value in order to create a string, which actually can be passed to the <a"
" cbot|message>message();</a> function:"
msgstr ""
#. type: \b; header
#: ../E/expr.txt:177
#, no-wrap
msgid "Prefix and postfix increment- and decrement operators"
msgstr ""
#. type: Plain text
#: ../E/expr.txt:180
#, no-wrap
msgid "For example to increment the variable <code>a</code> you can write"
msgstr ""
#. type: Source code
#: ../E/expr.txt:181
#, no-wrap
msgid "<c/>a++;<n/>"
msgstr ""
#. type: Plain text
#: ../E/expr.txt:182
#, no-wrap
msgid "instead of"
msgstr ""
#. type: Source code
#: ../E/expr.txt:183
#, no-wrap
msgid "<c/>a = a + 1;<n/>"
msgstr ""
#. type: Plain text
#: ../E/expr.txt:185
#, no-wrap
msgid ""
"The result of the operation <code>a++</code> is the value of the variable <"
"code>a</code> *before* the increment. If you use the prefix operator <code"
">++a</code> the result of the operation is the value of the variable <code>a<"
"/code> *after* the increment. The same holds for the <code>--</code>"
" decrement operator."
msgstr ""
#. type: Plain text
#: ../E/expr.txt:4
#, no-wrap
msgid ""
"Specifically speaking, an expression is an ordered series of operations which"
" yield a result. Operations consist of operators, which are special <a"
" cbot|function>functions</a> <code>T f(t1 x1, t2 x2, ..., tn xn)</code>,"
" where <code>xi</code> is a value of type <code>ti</code>, and <code>T</code>"
" is the result type. For example, <code>float +(float a, float b)</code>"
" returns a sum of values <code>a</code> and <code>b</code>. Note: Operators"
" are a part of the CBOT language and they cannot be defined in program. Also,"
" the operators cannot be used as usual <a cbot|function>functions</a>, they"
" need to be written using a special notation depending on the operator, for"
" example <code>a+b</code>."
msgstr ""
#. type: Plain text
#: ../E/expr.txt:6
#, no-wrap
msgid ""
"In nearly all operations, <a cbot>constants</a>, <a cbot|var>variables</a>, <"
"a cbot|function>functions</a> returning non-<a cbot|void>void</a> type and"
" also other operations can be used as values."
msgstr ""
#. type: Plain text
#: ../E/expr.txt:40
#, no-wrap
msgid ""
"Note: it may be not obvious at first, but notice that <code>=</code> is an"
" *operator* not an instruction. This mean that it can be used in the middle"
" of an other expression! The result of <code>=</code> is the value which was"
" assigned to the l-value - the result of the expression on the right. Example:"
msgstr ""
#. type: Source code
#: ../E/expr.txt:66
#, no-wrap
msgid ""
" int i = 12 + 3; // i == 15\n"
" int i = 2 - 5; // i == -3\n"
" \n"
" float f = 3.01 * 10; // f == 30.1\n"
" \n"
" int i = 5 / 3; // i == 1 (automatic conversion to int)\n"
" float f = 5 / 3; // f == 1.67\n"
" float f = 5 / 0; // returns an error (division by zero)\n"
" \n"
" int i = 13 % 5; // i == 3\n"
" int i = -8 % 3; // i == -2\n"
" \n"
" float f = sin(90) * i; // f == -2.0\n"
" "
msgstr ""
#. type: Source code
#: ../E/expr.txt:108
#, no-wrap
msgid ""
" float pi = 3.14;\n"
" // message(pi); // does not work\n"
" message(\"\"+pi);"
msgstr ""
#. type: Source code
#: ../E/expr.txt:189
#, no-wrap
msgid ""
" a = 2;\n"
" b = a++;\n"
" // now b contains 2 and a contains 3"
msgstr ""
#. type: Source code
#: ../E/expr.txt:193
#, no-wrap
msgid ""
" a = 2;\n"
" b = ++a;\n"
" // now b contains 3 and a contains 3"
msgstr ""
#. type: \b; header
#: ../E/expr.txt:137
#, no-wrap
msgid "Logical operators"
msgstr ""
#. type: Plain text
#: ../E/expr.txt:138
#, no-wrap
msgid ""
"Logical operators work with values of type <a cbot|bool>bool</a> and they"
" always return a <a cbot|bool>bool</a>. They are mainly used in <a cbot|cond"
">conditions</a>."
msgstr ""
#. type: \b; header
#: ../E/expr.txt:150
#, no-wrap
msgid "Ternary operator"
msgstr ""
#. type: Plain text
#: ../E/expr.txt:151
#, no-wrap
msgid ""
"The ternary operator is nothing more than a syntax sugar. It is also known as"
" \"inline if\". It might be confusing at first, because its syntax is a"
" little more complicated than other operators. It can be described as"
" follows:\n"
"<code>(condition) ? (result when true) : (result when false)</code>\n"
"Brackets are not needed."
msgstr ""
#. type: Plain text
#: ../E/expr.txt:155
#, no-wrap
msgid ""
"Firstly, the condition is valued and then the first result is returned if the"
" condition is true, otherwise the second result is returned."
msgstr ""
#. type: \t; header
#: ../E/expr.txt:157
#, no-wrap
msgid "Example"
msgstr ""
#. type: Source code
#: ../E/expr.txt:158
#, no-wrap
msgid "<c/>float c = ((3.0 > 2.0) ? 10.0 : -10.0); // c == 10.0<n/>"
msgstr ""
#. type: Plain text
#: ../E/cond.txt:2
#, no-wrap
msgid ""
"A condition is a special <a cbot|expr>expression</a> that returns a <a"
" cbot|bool>boolean</a> value, that can only be either <code><a cbot|true"
">true</a></code> or <code><a cbot|false>false</a></code>. With a condition,"
" you can choose f. ex. if the instructions in a <code><a cbot|while>while</a"
"></code> loop must be repeated again, or if the instruction in a <code><a"
" cbot|if>if</a></code> bloc must be executed."
msgstr ""
#. type: \b; header
#: ../E/expr.txt:112
#, no-wrap
msgid "Comparison operators"
msgstr ""
#. type: Plain text
#: ../E/expr.txt:113
#, no-wrap
msgid ""
"Comparison operators work with values of type <a cbot|bool>float</a> and they"
" always return a <a cbot|bool>bool</a>. They are mainly used in <a cbot|cond"
">conditions</a>."
msgstr ""
#. type: Plain text
#: ../E/expr.txt:141
#, no-wrap
msgid ""
"<code>!a </code>not <code>a</code>\n"
"<code>a && b </code><code>a</code> and <code>b</code>\n"
"<code>a || b </code><code>a</code> or <code>b</code>"
msgstr ""
#. type: Plain text
#: ../E/expr.txt:146
#, no-wrap
msgid ""
"<code>!false </code>returns true\n"
"<code>true && false </code>returns false \n"
"<code>true || false </code>returns true"
msgstr ""
#. type: \b; header
#: ../E/expr.txt:160
#, no-wrap
msgid "Bitwise operators"
msgstr ""
#. type: Plain text
#: ../E/expr.txt:161
#, no-wrap
msgid ""
"Bitwise operators are similar to the logical operator, because they are"
" operating on bits (which can be only 0 or 1, conditions can have a value"
" only of false or true). So in theory, they should be working with basically"
" any type of variable, because each value in the computer must be stored as a"
" sequence of bits."
msgstr ""
#. type: Plain text
#: ../E/expr.txt:164
#, no-wrap
msgid ""
"<code>a & b </code><code>a</code> AND <code>b</code>\n"
"<code>a | b </code><code>a</code> OR <code>b</code>\n"
"<code>a ^ b </code><code>a</code> XOR <code>b</code>\n"
"<code>a >> b </code>shift bits of <code>a</code> to the right <code>b</code>"
" times\n"
"<code>a << b </code>shift bits of <code>a</code> to the left <code>b</code>"
" times"
msgstr ""
#. type: Plain text
#: ../E/expr.txt:171
#, no-wrap
msgid ""
"<code>2 & 1 </code>returns 0\n"
"<code>2 | 1 </code>returns 3\n"
"<code>2 ^ 2 </code>returns 0\n"
"<code>2 >> 1 </code>returns 1\n"
"<code>2 << 1 </code>returns 4"
msgstr ""
#. type: Source code
#: ../E/array.txt:4
#, no-wrap
msgid ""
"int [ ] a; // an array of int\n"
"int a [12]; // an array of int limited to 12 elements\n"
"string s[3]; // an array of 3 strings\n"
"float xy[][]; // a 2 dimensionnal array of floats"
msgstr ""
#. type: \b; header
#: ../E/array.txt:30
#, no-wrap
msgid "Initialization syntax"
msgstr ""
#. type: Plain text
#: ../E/array.txt:31
#, no-wrap
msgid "You can initialize a new array using the following syntax:"
msgstr ""
#. type: Source code
#: ../E/array.txt:33
#, no-wrap
msgid "type arrayName[] = { value0, value1, value2, ..., valueN };"
msgstr ""
#. type: Source code
#: ../E/array.txt:37
#, no-wrap
msgid ""
"int numbers[] = { 10, 20, 30 };\n"
"MyClass objects[] = { new MyClass(1), new MyClass(2) };"
msgstr ""
#. type: Plain text
#: ../E/radar.txt:2
#, no-wrap
msgid ""
"With the instruction <c/>radar();<n/>, you can look for objects like <a"
" object|mother>enemies</a>, bots, buildings or raw materials."
msgstr ""
#. type: Plain text
#: ../E/radar.txt:81
#, no-wrap
msgid ""
"<c/><a cbot|radarall>radarall</a>();<n/>, <a cbot>programming</a>, <a"
" cbot|type>types</a> and <a cbot|category>categories</a>."
msgstr ""
#. type: \b; header
#: ../E/radarall.txt:1
#, no-wrap
msgid "Instruction <code>radarall</code>"
msgstr ""
#. type: Plain text
#: ../E/radarall.txt:2
#, no-wrap
msgid ""
"<c/>radarall();<n/> is an enhancement of the <c/><a cbot|radar>radar</a>();<"
"n/> function -- it detects all objects matching the given criteria."
msgstr ""
#. type: \b; header
#: ../E/radarall.txt:4
#, no-wrap
msgid "Example<c/>"
msgstr ""
#. type: Source code
#: ../E/radarall.txt:13
#, no-wrap
msgid "<c/>radarall ( cat, angle, focus, min, max, sens, filter );<n/>"
msgstr ""
#. type: Plain text
#: ../E/radarall.txt:15
#, no-wrap
msgid ""
"The function works generally the same as the <c/><a cbot|radar>radar</a>();<"
"n/> function with the only difference being that it returns an <a cbot|array"
">array</a> of <a cbot|object>objects</a> instead of one object. If no object"
" is found, <code><a cbot|null>null</a></code> is returned."
msgstr ""
#. type: Plain text
#: ../E/radarall.txt:17
#, no-wrap
msgid ""
"The order of objects in the returned array is sorted by distance and depends"
" on the <code>sens</code> parameter. The first object in the array is the"
" object which would be returned by the <c/>radar();<n/> function called with"
" the exactly same parameters."
msgstr ""
#. type: Plain text
#: ../E/radarall.txt:20
#, no-wrap
msgid ""
"<c/><a cbot|radar>radar</a>();<n/>, <a cbot>programming</a>, <a cbot|type"
">types</a> and <a cbot|category>categories</a>."
msgstr ""
#. type: Plain text
#: ../E/for.txt:11
#, no-wrap
msgid "This set of instructions is executed before the first loop instance."
msgstr ""
#. type: Plain text
#: ../E/for.txt:17
#, no-wrap
msgid ""
"This set of instructions is executed at the end of every instance of the"
" loop. "
msgstr ""
#. type: \t; header
#: ../E/for.txt:38
#, no-wrap
msgid "Executing more instructions"
msgstr ""
#. type: Plain text
#: ../E/for.txt:39
#, no-wrap
msgid ""
"In the <code>before</code> and <code>end</code> part of a <code>for</code>"
" loop you can specify more than one instruction by using comma. Example:"
msgstr ""
#. type: Source code
#: ../E/for.txt:41
#, no-wrap
msgid ""
"int i = 0;\n"
"int j;\n"
"for (i++, j = 2; i < 3 && j > 0; i++, j--)\n"
"{\n"
" message(i);\n"
" message(j);\n"
"}"
msgstr ""
"int i = 0;\n"
"int j;\n"
"for (i++, j = 2; i < 3 && j > 0; i++, j--)\n"
"{\n"
" message(i);\n"
" message(j);\n"
"}"
#. type: Plain text
#: ../E/for.txt:49
#, no-wrap
msgid "The output of the above code is <code>1 2 2 1</code>."
msgstr ""
#. type: Source code
#: ../E/radarall.txt:5
#, no-wrap
msgid ""
"object[] items = radarall(PowerCell);\n"
"for (int i = 0; i < sizeof(items); ++i)\n"
"{\n"
" message(items[i].id);\n"
"}"
msgstr ""
#. type: Plain text
#: ../E/category.txt:98
#, no-wrap
msgid ""
" <code><a object|flag>BlueFlag</a> </code>Blue Flag\n"
" <code><a object|flag>RedFlag</a> </code>Red Flag\n"
" <code><a object|flag>GreenFlag</a> </code>Green Flag\n"
" <code><a object|flag>YellowFlag</a> </code>Yellow Flag\n"
" <code><a object|flag>VioletFlag</a> </code>Violet Flag\n"
" <code><a object|waypoint>WayPoint</a> </code>Checkpoint\n"
" <code><a object|target2>Target2</a> </code>Flying"
" checkpoint\n"
" <code><a object|enerspot>EnergySpot</a> </code>Underground"
" Energy Deposit\n"
" <code><a object|stonspot>TitaniumSpot</a> </code>Underground"
" Titanium Deposit\n"
" <code><a object|uranspot>UraniumSpot</a> </code>Underground"
" Uranium Deposit"
msgstr ""
#. type: Plain text
#: ../E/category.txt:10
#, no-wrap
msgid ""
"<button 176/> <code><a object|huston>Houston</a> </code>Mission"
" Control\n"
"<button 171/> <code><a object|base>SpaceShip</a> </code>Spaceship\n"
"<button 160/> <code><a object|factory>BotFactory</a> </code>Robot"
" Factory\n"
"<button 163/> <code><a object|research>ResearchCenter</a> </code>Research"
" Center\n"
"<button 168/> <code><a object|radar>RadarStation</a> </code>Radar\n"
"<button 172/> <code><a object|exchange>ExchangePost</a> </code"
">Information Exchange Post\n"
"<button 169/> <code><a object|repair>RepairCenter</a> </code>Repair"
" Center\n"
"<button 165/> <code><a object|tower>DefenseTower</a> </code>Defense"
" Tower\n"
"<button 166/> <code><a object|labo>AutoLab</a> </code>Organic"
" Matter Analyzer \n"
"<button 164/> <code><a object|station>PowerStation</a> </code>Power"
" Station\n"
"<button 167/> <code><a object|energy>PowerPlant</a> </code>Power Cell"
" Factory\n"
"<button 170/> <code><a object|nuclear>NuclearPlant</a> </code>Nuclear"
" Plant\n"
"<button 162/> <code><a object|convert>Converter</a> </code>Titanium"
" Converter\n"
"<button 161/> <code><a object|derrick>Derrick</a> </code>Derrick\n"
"<button 174/> <code><a object|captor>PowerCaptor</a> </code>Parabolic"
" Lightning Conductor\n"
"<button 175/> <code><a object|safe>Vault</a> </code>Vault\n"
" <code><a object|start>StartArea</a> </code>Starting Pad\n"
" <code><a object|goal>GoalArea</a> </code>Finishing Pad\n"
" <code><a object|target1>Target1</a> </code>Flying target\n"
" <code><a object|nest>AlienNest</a> </code>Alien Nest"
msgstr ""