9371 lines
369 KiB
Plaintext
9371 lines
369 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.
|
|
# B-CE <.>, 2019.
|
|
msgid ""
|
|
msgstr ""
|
|
"Project-Id-Version: colobot-data 0.1.12\n"
|
|
"Report-Msgid-Bugs-To: \n"
|
|
"POT-Creation-Date: DATE\n"
|
|
"PO-Revision-Date: 2019-06-18 08:02+0200\n"
|
|
"Last-Translator: BCE <.>\n"
|
|
"Language-Team: French <>\n"
|
|
"Language: fr\n"
|
|
"MIME-Version: 1.0\n"
|
|
"Content-Type: text/plain; charset=UTF-8\n"
|
|
"Content-Transfer-Encoding: 8bit\n"
|
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
|
"X-Generator: Lokalize 18.12.3\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 "Type du retour : <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:114 ../E/ceil.txt:12 ../E/class.txt:120 ../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/extends.txt:105 ../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:165 ../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:19 ../E/openfile.txt:11 ../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:19 ../E/produce.txt:30 ../E/protected.txt:26 ../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/super.txt:45 ../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:166 ../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:12 ../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 tireur</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 tireur organique</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 canon hachoir</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'instruction <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 tireur, la valeur doit être comprise entre <code>-10</code> et <code>+20</code> degrés. Pour les robots tireur organique, la valeur doit être comprise entre <code>-20</code> et <code>+20</code> degrés. Le robot hachoir 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 "Type du retour: <code><a cbot|int>entier (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> initialement <a cbot|null>nulle</a> :"
|
|
|
|
#. 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 titane\n"
|
|
" <code><a object|uranore>UraniumOre</a> </code>Minerai d'uranium\n"
|
|
" <code><a object|titan>Titanium</a> </code>Titane\n"
|
|
" <code><a object|power>PowerCell</a> </code>Batterie standard\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 préhenseur\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 tireur (de boules de feu)\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 tireur organique\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:75
|
|
#, 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 hachoir"
|
|
|
|
#. type: Plain text
|
|
#: ../E/category.txt:84
|
|
#, 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:94
|
|
#, 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>Épave de robot\n"
|
|
" <code><a object|ruin>Ruin</a> </code>Bâtiment en ruine"
|
|
|
|
#. type: Plain text
|
|
#: ../E/category.txt:115
|
|
#, 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: 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: \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/', précédemment ouvert par l'instruction <code><a cbot|open>open</a></code>. Ces instructions sont des méthodes 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 <a cbot|bloc>bloc</a> 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 inside Colobot save directory. 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>station relais</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 station relais. 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 station relais. 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 "Type du retour: <code><a cbot|float>réel (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 = <a cbot|radar>radar</a>(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 = <a cbot|radar>radar</a>(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><a cbot|drop>drop</a>()</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/><a cbot|drop>drop</a>();<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"
|
|
"\t<a cbot|drop>drop</a>();"
|
|
|
|
#. 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 préhenseur</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> (valeur par défaut <code>InFront</code>)"
|
|
|
|
#. 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/batterie."
|
|
|
|
#. 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><a cbot|null>null</a></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 inside Colobot save directory. 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 de caractères espace ou de virgule 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 ""
|
|
" Ecrire au lieu de\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 <a object|titan>bloc de titane</a>, 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 "Type du retour: <code><a cbot|int>int</a></code> (valeur par défaut <code>0</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>0</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/><a cbot|grab>grab</a>();<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/><a cbot|grab>grab</a>();<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 ""
|
|
"\t<a cbot|grab>grab</a>();\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 préhenseur</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/batterie."
|
|
|
|
#. 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 <a object|power>recharger</a> seulement s'il y a une <a object|station>station de recharge</a> :"
|
|
|
|
#. 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 "Type du retour: <code><a cbot|void>aucun (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 de coller/ajouter 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> (valeur par défaut <code>DisplayMessage</code>)"
|
|
|
|
#. 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 nettoyer 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 titane</a> sur la <a object|convert>raffinerie</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|pointer>Passage par 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/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>batterie standard</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 ou la batterie 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 ou la batterie 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 ni de batterie, <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 préhenseur</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 = <a cbot|radar>radar</a>(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:17
|
|
#, no-wrap
|
|
msgid "Files can only be created and opened in the files/ folder which is located in the folder inside Colobot save directory. 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:20
|
|
#, 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: 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 "Si vous passez une instance de <a cbot|class>classe</a> en paramètre, c'est toujours la référence qui est transmise à la <a cbot|function>fonction</a>. Cela signifie que si cette instance est modifiée dans la fonction, cela a un impact à l'extérieur de la fonction :"
|
|
|
|
#. 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); // affichage de toto.a qui 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: Source code
|
|
#: ../E/private.txt:6
|
|
#, 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: \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: 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: \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 = <a cbot|radar>radar</a>(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 "Type du retour: <code><a cbot|object>objet (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 ""
|
|
"\t<a cbot|radar>radar</a>(Titanium, 0, 360, 0, 1000);\n"
|
|
"\t<a cbot|radar>radar</a>(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 ""
|
|
"\t<a cbot|radar>radar</a>(Titanium, 0, 90, 0, 1000);\n"
|
|
"\t<a cbot|radar>radar</a>(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><a cbot|radar>radar</a>(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>station relais</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 station relais. 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 station relais. 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 station relais n'est à proximité, ou si le nom de l'information à lire n'existe pas dans la station, 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>bloc de titane</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>station relais</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 station relais. 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 station relais. 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>batterie standard</a> à pleine charge permet de maintenir le bouclier pendant 20 secondes avec le rayon maximal de 25 mètres. Lorsque la batterie est à plat, 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> (valeur par défaut <code>10</code>)"
|
|
|
|
#. 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> (valeur par défaut <code>50</code>)"
|
|
|
|
#. 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> (valeur par défaut <code>4</code>)"
|
|
|
|
#. 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 "Type du retour: <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. Si aucune correspondance n'est trouvée, la fausse \"valeur\"<a cbot|nan>nan (Not A Number)</a> est retournée."
|
|
|
|
#. 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"
|
|
"\"Ceci 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 ); // attendre 2 secondes 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ès 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, il met <code>nb=34</code> et quitte, alors seulement le second robot va pouvoir commencer la fonction avec <code>val=34</code> et finira en mettant <code>35</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>station relais</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 station relais. 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 station relais. 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 "Type du retour: <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 existe (dans une station relais suffisamment proche) 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 = \"Salut\";\n"
|
|
"\titem.MyFunction(); // affiche \"Salut\"\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); // identique mais 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: \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 "Activer le système d'armement du <a object|bottump>robot secoueur</a>, cela fera trembler le sol et retournera les fourmis et les araignées sur le dos : les rendant complètement inoffensives pendant un certain temps."
|
|
|
|
#. 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 secoué\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, vous pouvez utiliser une variable pour compter le nombre d'unités de minerai de titane que le préhenseur a collectées et transportées à la raffinerie. Tout d'abord, vous devez lui trouver un nom : le nom ne doit pas être trop long, mais expliquer par lui-même à quoi sert la variable. Appelons-le <code>cptTit</code>. Cette variable ne doit contenir que des nombres entiers, choisissez donc le type <code>int</code>. Au début du programme, vous devez déclarer la variable. Ensuite, vous l'initialisez en mettant la valeur <code>0</code> dans la variable, et chaque fois que vous saisissez un minerai de titane, vous augmentez la variable de <code>1</code>. A chaque instant, la variable contient le nombre d'unités de minerai de titane que le préhenseur a récupéré."
|
|
|
|
#. 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 cptTit;<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/>\tcptTit = 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 minerai de titane trouvé et saisi, vous l'augmentez de 1 avec:\n"
|
|
"<c/><s/>\tcptTit++;\t// équivalent à cptTit = cptTit+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>cptTit</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é. Par contre, 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 peut utiliser des noms anglais (plus courts et internationaux), ou plutôt des noms français, on peut aussi utiliser des abréviations, cela n'a pas d'importance. Ce qu'il faut, c'est que le nom exprime clairement à quoi sert la variable. A vous de bien choisir votre convention de nommage. Ne soyez pas trop cryptiques : <code>Bmo45</code>, <code>a</code>, <code>tgbin</code> ne sont pas de très bons exemples !"
|
|
|
|
#. 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 "Dans l'exemple ci-dessus, le mot-clé <code>int</code> indique que cette variable ne peut contenir que des nombres entiers, ce qui est suffisant pour compter les objets. Si vous voulez mesurer une distance, mieux vaut utiliser une variable qui peut aussi contenir des nombres réels, avec une partie fractionnaire (comme 3.45 ou 0.034) : dans ce cas, utilisez le 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 : 13\n"
|
|
"\ti = j; // i prend la valeur de j : 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 <a object|power>rechargé</a> 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 la <a object|convert>raffinerie</a> ait transformé du <a object|titanore>minerai de titane</a> en un <a object|titan>bloc de titane</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>. Par exemple, voici un programme qui répète à l'infini les instructions suivantes:"
|
|
|
|
#. 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> (valeur 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 "L'instruction <c/>build();<n/> demande au robot de construire un bâtiment d'une <a cbot|category>catégorie</a> voulue. Actuellement; fonctionne avec les <a object|botgc>robots préhenseurs</a>, et les humains : (<a object|human>Vous</a> et les <a object|tech>techniciens</a>."
|
|
|
|
#. 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 "Cette commande est surtout utile pour essayer de construire une base entièrement automatisée, où un <a object|human>astronaute</a> n'a pas besoin de faire quoi que ce soit sauf démarrer un programme et regarder les robots fonctionner. De plus, il permet de battre le jeu en n'utilisant que la programmation (Ce défi est plutôt pour les joueurs expérimentés, qui ont battu le jeu au moins une fois)."
|
|
|
|
#. 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 "Voici un exemple de programme qui recherche le <a object|titan>cube de titane</a> le plus proche, va à la position et construit une <a object|factory>usine de robots</a>."
|
|
|
|
#. 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 ""
|
|
" <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>);"
|
|
|
|
#. type: Source code
|
|
#: ../E/build.txt:15
|
|
#, no-wrap
|
|
msgid "<c/>build ( cat );<n/>"
|
|
msgstr "<c/>build ( cat );<n/>"
|
|
|
|
#. 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 "Demande au robot de construire un bâtiment en utilisant un cube de titane placé sur un terrain plat à proximité."
|
|
|
|
#. 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 "cat: <code><a cbot|int>int</a></code>"
|
|
|
|
#. 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 "<a cbot|category>Category</a> of a building."
|
|
|
|
#. 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 ""
|
|
"Normalement, une erreur arrête le programme. Vous pouvez empêcher le programme de s'arrêter en cas d'erreur en utilisant l'instruction <code><a cbot|errmode>errmode</a>(0)</code>. Une valeur différente de zéro en cas d'erreur est alors retournée par <code>build()</code>.\n"
|
|
"<code>== 0 </code>Construction réussie\n"
|
|
"<code>!= 0</code> Impossible de construire (par exemple, le cube de titane le plus proche est trop loin ou le bâtiment spécifié n'est pas disponible dans la mission; ou encore, le terrain n'est pas assez plat)"
|
|
|
|
#. 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 "<a cbot|canbuild>canbuild</a>, <a cbot|buildingenabled>buildingenabled</a>, <a cbot>programmation</a>, <a cbot|type>types</a> et <a cbot|category>catégories</a>."
|
|
|
|
#. type: \b; header
|
|
#: ../E/buildingenabled.txt:1
|
|
#, no-wrap
|
|
msgid "Instruction <code>buildingenabled</code>"
|
|
msgstr "Instruction <code>buildingenabled</code>"
|
|
|
|
#. 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 "L'instruction <c/>buildingenabled();<n/> vous permet de savoir si un bâtiment de la catégorie donnée <a cbot|category>catégorie</a> peut être construit dans le niveau en cours."
|
|
|
|
#. 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 "Elle est similaire à l'instruction <c/><a cbot|canbuild>canbuild();</a><n/>. À noter cependant, elle ne vérifie pas si l'éventuelle recherche requise a été effectuée."
|
|
|
|
#. 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 ""
|
|
" <a cbot|if>if</a> (buildingenabled(<a object|factory>BotFactory</a>))\n"
|
|
" {\n"
|
|
" \tbuild(<a object|factory>BotFactory</a>);\n"
|
|
" }"
|
|
|
|
#. type: Source code
|
|
#: ../E/buildingenabled.txt:14
|
|
#, no-wrap
|
|
msgid "<c/>buildingenabled ( cat );<n/>"
|
|
msgstr "<c/>buildingenabled ( cat );<n/>"
|
|
|
|
#. 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 du retour: <code><a cbot|bool>booléen (bool)</a></code>"
|
|
|
|
#. 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 "<code>true</code> si le bâtiment peut être construit dans le niveau même si la recherche requise n'a pas été faite, <code>false</code> sinon."
|
|
|
|
#. 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 "<a cbot|build>build</a>, <a cbot|canbuild>canbuild</a>, <a object|research>ResearchCenter</a>, <a cbot>programmation</a>, <a cbot|type>types</a> et <a cbot|category>catégories</a>."
|
|
|
|
#. type: \b; header
|
|
#: ../E/busy.txt:1
|
|
#, no-wrap
|
|
msgid "Instruction <code>busy</code>"
|
|
msgstr "Instruction <code>busy</code>"
|
|
|
|
#. type: Source code
|
|
#: ../E/busy.txt:3
|
|
#, no-wrap
|
|
msgid "<c/><a cbot|object>object</a>.busy ( );<n/>"
|
|
msgstr "<c/><a cbot|object>object</a>.busy ( );<n/>"
|
|
|
|
#. type: Plain text
|
|
#: ../E/busy.txt:5
|
|
#, no-wrap
|
|
msgid "Checks if the object is busy."
|
|
msgstr "Vérifier si l'objet est occupé."
|
|
|
|
#. 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 "<a cbot|object>object</a>"
|
|
|
|
#. 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 "Tout bâtiment qui peut effectuer une action (par exemple <a cbot|convert>Converter</a>)."
|
|
|
|
#. 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 ""
|
|
"<code><format const>true</format></code> si l'objet fait quelque chose (par exemple, une conversion)\n"
|
|
"<code><format const>false</format></code> si l'objet ne fait rien."
|
|
|
|
#. type: \b; header
|
|
#: ../E/canbuild.txt:1
|
|
#, no-wrap
|
|
msgid "Instruction <code>canbuild</code>"
|
|
msgstr "Instruction <code>canbuild</code>"
|
|
|
|
#. 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 "L'instruction <c/>canbuild();<n/> vous permet de savoir si les <a object|botgc>préhenseurs</a>, <a object|human>vous</a> ou les <a object|human>techniciens</a> pouvez construire un bâtiment d'une <a cbot|category>catégorie</a> donnée."
|
|
|
|
#. 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 "Elle aide à éviter des erreurs lors de l'exécution des programmes lors de l'exécution de l'instruction <c/><a cbot|build>build();</a><n/>. En voici un exemple :"
|
|
|
|
#. 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 ""
|
|
" <a cbot|if>if</a> (canbuild(<a object|factory>BotFactory</a>))\n"
|
|
" {\n"
|
|
" \tbuild(<a object|factory>BotFactory</a>);\n"
|
|
" }"
|
|
|
|
#. type: Source code
|
|
#: ../E/canbuild.txt:14
|
|
#, no-wrap
|
|
msgid "<c/>canbuild ( cat );<n/>"
|
|
msgstr "<c/>canbuild ( cat );<n/>"
|
|
|
|
#. type: Plain text
|
|
#: ../E/canbuild.txt:20
|
|
#, no-wrap
|
|
msgid "<code>true</code> if the building can be built, <code>false</code> otherwise."
|
|
msgstr "<code>true</code> si le bâtiment peut être construit, <code>false</code> sinon."
|
|
|
|
#. 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 "<a cbot|build>build</a>, <a cbot|buildingenabled>buildingenabled</a>, <a cbot>programmation</a>, <a cbot|type>types</a> et <a cbot|category>catégories</a>."
|
|
|
|
#. type: \b; header
|
|
#: ../E/canresearch.txt:1
|
|
#, no-wrap
|
|
msgid "Instruction <code>canresearch</code>"
|
|
msgstr "Instruction <code>canresearch</code>"
|
|
|
|
#. type: Source code
|
|
#: ../E/canresearch.txt:3
|
|
#, no-wrap
|
|
msgid "<c/>canresearch ( research );<n/>"
|
|
msgstr "<c/>canresearch ( research );<n/>"
|
|
|
|
#. 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 "Vérifier si une <a cbot|researches>recherche</a> peut être effectuée dans le niveau en cours."
|
|
|
|
#. type: \t; header
|
|
#: ../E/canresearch.txt:7 ../E/researched.txt:7
|
|
#, no-wrap
|
|
msgid "research: <code><a cbot|int>int</a></code>"
|
|
msgstr "research: <code><a cbot|int>int</a></code>"
|
|
|
|
#. 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 "<a cbot|researches>Research name</a>."
|
|
|
|
#. 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 ""
|
|
"<format const>true</format> si la recherche peut être effectuée dans le niveau en cours (même si elle a déjà été recherchée, pour vérifier cela, utilisez l'instruction <a cbot|researched>researched</a>)\n"
|
|
"<format const>false</format> si la recherche ne peut pas être effectuée."
|
|
|
|
#. 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 "<a cbot|researches>Research names</a>, <a cbot|research>research</a>, <a cbot|researched>researched</a>, <a cbot>programmation</a>, <a cbot|type>types</a> et <a cbot|category>catégories</a>."
|
|
|
|
#. type: Plain text
|
|
#: ../E/category.txt:6
|
|
#, no-wrap
|
|
msgid "Below are the different categories available:"
|
|
msgstr "Vous trouverez ci-dessous les différentes catégories disponibles :"
|
|
|
|
#. type: \t; header
|
|
#: ../E/category.txt:8
|
|
#, no-wrap
|
|
msgid "Buildings:"
|
|
msgstr "Bâtiments :"
|
|
|
|
#. type: \t; header
|
|
#: ../E/category.txt:32
|
|
#, no-wrap
|
|
msgid "Portable Objects:"
|
|
msgstr "Objets transportables :"
|
|
|
|
#. type: \t; header
|
|
#: ../E/category.txt:45
|
|
#, no-wrap
|
|
msgid "Robots:"
|
|
msgstr "Robots :"
|
|
|
|
#. type: \t; header
|
|
#: ../E/category.txt:82
|
|
#, no-wrap
|
|
msgid "Enemies:"
|
|
msgstr "Ennemis"
|
|
|
|
#. type: \t; header
|
|
#: ../E/category.txt:92
|
|
#, no-wrap
|
|
msgid "Miscellaneous:"
|
|
msgstr "Divers :"
|
|
|
|
#. type: \t; header
|
|
#: ../E/category.txt:101
|
|
#, no-wrap
|
|
msgid "Flags and Other Indicators:"
|
|
msgstr "Drapeaux et autres indicateurs :"
|
|
|
|
#. type: \b; header
|
|
#: ../E/ceil.txt:1
|
|
#, no-wrap
|
|
msgid "Instruction <code>ceil</code>"
|
|
msgstr "Instruction <code>ceil</code>"
|
|
|
|
#. type: Source code
|
|
#: ../E/ceil.txt:3
|
|
#, no-wrap
|
|
msgid "<c/>ceil ( value );<n/>"
|
|
msgstr "<c/>ceil ( value );<n/>"
|
|
|
|
#. type: Plain text
|
|
#: ../E/ceil.txt:4
|
|
#, no-wrap
|
|
msgid "Rounds up a number."
|
|
msgstr "Arrondir un nombre."
|
|
|
|
#. 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 "Valeur entière d'un nombre, c'est-à-dire le plus petit entier non inférieur à <code>valeur</code>. Par exemple, <code>ceil(2.1)</code> est <code>3.0</code>."
|
|
|
|
#. 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 "<a cbot|round>round</a>, <a cbot>programmation</a>, <a cbot|type>types</a> et <a cbot|expr>expressions</a>."
|
|
|
|
#. type: \b; header
|
|
#: ../E/colors.txt:1
|
|
#, no-wrap
|
|
msgid "Value <code>Colors</code>"
|
|
msgstr "Valeurs de <code>Colors</code>"
|
|
|
|
#. 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 "Les noms de couleur sont utilisés pour définir une couleur spécifique à utiliser. Elles peuvent être passés à des fonctions telles que <a cbot|pendown>pendown</a> ou <a cbot|pencolor>pencolor</a>."
|
|
|
|
#. 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 "Dans un programme, les couleurs sont toujours affichées sur un fond <format const>fond rouge</format>. Si une couleur n'est pas surlignée en rouge, c'est qu'elle est mal orthographiée. Les majuscules et les minuscules sont importantes et doivent être respectées."
|
|
|
|
#. type: Plain text
|
|
#: ../E/colors.txt:6
|
|
#, no-wrap
|
|
msgid "Below are the different colors available:"
|
|
msgstr "Vous trouverez ci-dessous les différentes couleurs disponibles :"
|
|
|
|
#. 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 ""
|
|
"<code><format const>White</format></code> : Blanc\n"
|
|
"<code><format const>Black</format></code> : Noir\n"
|
|
"<code><format const>Gray</format></code> : Gris\n"
|
|
"<code><format const>LightGray</format></code> : Gris clair\n"
|
|
"<code><format const>Red</format></code> : Rouge\n"
|
|
"<code><format const>Pink</format></code> : Rose\n"
|
|
"<code><format const>Purple</format></code> : Pourpre\n"
|
|
"<code><format const>Orange</format></code> : Orange\n"
|
|
"<code><format const>Yellow</format></code> : Jaune\n"
|
|
"<code><format const>Beige</format></code> : Beige\n"
|
|
"<code><format const>Brown</format></code> : Brun\n"
|
|
"<code><format const>Skin</format></code> : couleur peau \n"
|
|
"<code><format const>Green</format></code> : Vert\n"
|
|
"<code><format const>LightGreen</format></code> : Vert clair\n"
|
|
"<code><format const>Blue</format></code> : Bleu\n"
|
|
"<code><format const>LightBlue</format></code> : Bleu clair"
|
|
|
|
#. type: Plain text
|
|
#: ../E/colors.txt:25
|
|
#, no-wrap
|
|
msgid "You can also draw colored symbols:"
|
|
msgstr "Vous pouvez aussi dessiner des symboles colorisés :"
|
|
|
|
#. type: Plain text
|
|
#: ../E/colors.txt:27
|
|
#, no-wrap
|
|
msgid ""
|
|
"<code><format const>BlackArrow</format></code>\n"
|
|
"<code><format const>RedArrow</format></code>"
|
|
msgstr ""
|
|
"<code><format const>BlackArrow</format></code>: flèches noires\n"
|
|
"<code><format const>RedArrow</format></code>: flèches rouges"
|
|
|
|
#. type: \b; header
|
|
#: ../E/cos.txt:1
|
|
#, no-wrap
|
|
msgid "Instruction <code>cos</code>"
|
|
msgstr "Instruction <code>cos</code>"
|
|
|
|
#. type: Source code
|
|
#: ../E/cos.txt:3
|
|
#, no-wrap
|
|
msgid "<c/>cos ( angle );<n/>"
|
|
msgstr "<c/>cos ( angle );<n/>"
|
|
|
|
#. type: Plain text
|
|
#: ../E/cos.txt:6 ../E/sin.txt:6
|
|
#, no-wrap
|
|
msgid "Angle in degrees."
|
|
msgstr "Angle en degrés."
|
|
|
|
#. type: Plain text
|
|
#: ../E/cos.txt:9
|
|
#, no-wrap
|
|
msgid "Cosine of the angle."
|
|
msgstr "Cosinus d'un angle."
|
|
|
|
#. type: \b; header
|
|
#: ../E/destroy.txt:1
|
|
#, no-wrap
|
|
msgid "Instruction <code>destroy</code>"
|
|
msgstr "Instruction <code>destroy</code>"
|
|
|
|
#. type: Source code
|
|
#: ../E/destroy.txt:3
|
|
#, no-wrap
|
|
msgid "<c/><a cbot|object>object</a>.destroy ( );<n/>"
|
|
msgstr "<c/><a cbot|object>object</a>.destroy ( );<n/>"
|
|
|
|
#. type: Plain text
|
|
#: ../E/destroy.txt:5
|
|
#, no-wrap
|
|
msgid "Destroys an object."
|
|
msgstr "Détruire un objet."
|
|
|
|
#. type: Plain text
|
|
#: ../E/destroy.txt:8
|
|
#, no-wrap
|
|
msgid "<a object|destroy>Destroyer</a>."
|
|
msgstr "<a object|destroy>Destructeur</a>."
|
|
|
|
#. 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 ""
|
|
"Normalement, une erreur arrête le programme. Vous pouvez empêcher le programme de s'arrêter en cas d'erreur en utilisant l'instruction <code><a cbot|errmode>errmode</a>(0)</code>. Une valeur différente de zéro en cas d'erreur est alors retournée par <code>destroy()</code>.\n"
|
|
"<code>== 0 </code> L'opération de destruction d'un objet a été commencée\n"
|
|
"<code>!= 0 </code> L'instruction ne peut être réalisée (ex.: rien à détruire)"
|
|
|
|
#. type: \b; header
|
|
#: ../E/detect.txt:1
|
|
#, no-wrap
|
|
msgid "Instruction <code>detect</code>"
|
|
msgstr "Instruction <code>detect</code>"
|
|
|
|
#. 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 "Avec l'instruction <c/>detect();<n/>, vous pouvez rechercher des objets comme des <a object|mother>ennemis</a>, des robots, des bâtiments ou de la matière première, qui sont devant le robot. C'est une version plus simple de <c/><a cbot|radar>radar</a>();<n/>."
|
|
|
|
#. type: Source code
|
|
#: ../E/detect.txt:6
|
|
#, no-wrap
|
|
msgid "<c/>detect ( cat );<n/>"
|
|
msgstr "<c/>detect ( cat );<n/>"
|
|
|
|
#. 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 "Détecte l'objet le plus proche de la <a cbot|category>catégorie spécifiée</a> étant devant le robot. Elle est similaire à l'instruction suivante :"
|
|
|
|
#. type: Source code
|
|
#: ../E/detect.txt:9
|
|
#, no-wrap
|
|
msgid "<c/>radar(cat, 0, 45, 0, 20);<n/>"
|
|
msgstr "<c/><a cbot|radar>radar</a>(cat, 0, 45, 0, 20);<n/>"
|
|
|
|
#. 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 "<a cbot|category>Catégorie/a> de l'objet qui doit être détecté. Par exemple, si vous cherchez une fourmi, écrivez <code><a cbot|radar>radar</a>(AlienAnt)</code>. "
|
|
|
|
#. 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 "<a cbot|array>Tableau</a> de catégories des objets à détecter. Par exemple, lorsque vous cherchez uniquement des préhenseurs :<c/>"
|
|
|
|
#. 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 ""
|
|
"int bots[4];\n"
|
|
"bots[0] = WheeledGrabber;\n"
|
|
"bots[1] = TrackedGrabber;\n"
|
|
"bots[2] = WingedGrabber;\n"
|
|
"bots[3] = LeggedGrabber;\n"
|
|
"object nearestGrabber = <a cbot|radar>radar</a>(bots);"
|
|
|
|
#. 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 "Mot clef <format const>Any</format> si vous cherchez tous type d'objets (incluant les plantes etc.)."
|
|
|
|
#. 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 ""
|
|
"<format const>true</format> si l'objet a été trouvé\n"
|
|
"<format const>false</format> sinon"
|
|
|
|
#. type: \b; header
|
|
#: ../E/factory.txt:1
|
|
#, no-wrap
|
|
msgid "Instruction <code>factory</code>"
|
|
msgstr "Instruction <code>factory</code>"
|
|
|
|
#. type: Source code
|
|
#: ../E/factory.txt:3
|
|
#, no-wrap
|
|
msgid "<c/><a cbot|object>object</a>.factory ( cat, program );<n/>"
|
|
msgstr "<c/><a cbot|object>object</a>.factory ( cat, program );<n/>"
|
|
|
|
#. 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 "Démarrer la construction d'un robot de la <a cbot|category>catégorie</a> précisée et que ce dernier démarre immédiatement le programme spécifié également dès qu'il est prêt."
|
|
|
|
#. type: Plain text
|
|
#: ../E/factory.txt:8
|
|
#, no-wrap
|
|
msgid "<a object|factory>BotFactory</a>"
|
|
msgstr "<a object|factory>Usine de robots</a>"
|
|
|
|
#. type: Plain text
|
|
#: ../E/factory.txt:11
|
|
#, no-wrap
|
|
msgid "<a cbot|category>Category</a> of the robot to construct."
|
|
msgstr "<a cbot|category>Catégorie</a> du robot à construire."
|
|
|
|
#. type: \t; header
|
|
#: ../E/factory.txt:13
|
|
#, no-wrap
|
|
msgid "program: <code><a cbot|string>string</a></code> (default value: <code>\"\"</code>)"
|
|
msgstr "program: <code><a cbot|string>string</a></code> (valeur par défaut: <code>\"\"</code>)"
|
|
|
|
#. 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 "Programme qui sera exécuté sur le robot après la fin de la construction en usine. Cela peut être soit le nom d'une <a cbot|function>fonction</a> <a cbot|public>publique</a> , un <a cbot|file>nom de fichier</a> ou simplement un code source brut."
|
|
|
|
#. 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 ""
|
|
"Normalement, une erreur arrête le programme. Vous pouvez empêcher le programme de s'arrêter en cas d'erreur en utilisant l'instruction <code><a cbot|errmode>errmode</a>(0)</code>. Une valeur différente de zéro en cas d'erreur est alors retournée par <code>factory()</code>.\n"
|
|
"<code>== 0 </code>La construction a démarré avec succès\n"
|
|
"<code>!= 0 </code>La construction n'a pu démarrer (par ex. pas de <a object|titan>titane</a> dans l'usine ou le type de robot demandé n'a pas été recherché)"
|
|
|
|
#. 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 "<a cbot|researched>researched</a>, <a cbot|>wait</a>, <a cbot>programmation</a>, <a cbot|type>types</a> et <a cbot|category>catégories</a>."
|
|
|
|
#. type: \b; header
|
|
#: ../E/flatspace.txt:1
|
|
#, no-wrap
|
|
msgid "Instruction <code>flatspace</code>"
|
|
msgstr "Instruction <code>flatspace</code>"
|
|
|
|
#. type: Source code
|
|
#: ../E/flatspace.txt:3
|
|
#, no-wrap
|
|
msgid "<c/>flatspace ( center, flatmin, rmin, rmax, dist );<n/>"
|
|
msgstr "<c/>flatspace ( center, flatmin, rmin, rmax, dist );<n/>"
|
|
|
|
#. 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 "Détermine la position de l'espace libre le plus proche avec au moins <code>flatmin</code> de terrain plat autour d'une position donnée. Fonctionne comme <c/><a cbot|space>space();</a><n/>. Utile pour trouver une place pour un <a cbot|category>bâtiment</a>."
|
|
|
|
#. type: \t; header
|
|
#: ../E/flatspace.txt:10
|
|
#, no-wrap
|
|
msgid "flatmin: <code><a cbot|float>float</a></code>"
|
|
msgstr "flatmin: <code><a cbot|float>réel</a></code>"
|
|
|
|
#. type: Plain text
|
|
#: ../E/flatspace.txt:11
|
|
#, no-wrap
|
|
msgid "Minimum radius of flat ground around the desired position."
|
|
msgstr "Rayon minimum du sol plat autour de la position désirée."
|
|
|
|
#. type: \b; header
|
|
#: ../E/floor.txt:1
|
|
#, no-wrap
|
|
msgid "Instruction <code>floor</code>"
|
|
msgstr "Instruction <code>floor</code>"
|
|
|
|
#. type: Source code
|
|
#: ../E/floor.txt:3
|
|
#, no-wrap
|
|
msgid "<c/>floor ( value );<n/>"
|
|
msgstr "<c/>floor ( valeur );<n/>"
|
|
|
|
#. type: Plain text
|
|
#: ../E/floor.txt:4
|
|
#, no-wrap
|
|
msgid "Rounds down a number."
|
|
msgstr "Partie entière d'un nombre."
|
|
|
|
#. 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 "Tronque la valeur entière, c'est-à-dire le plus grand entier ne dépassant pas <code>valeur</code>. Par exemple, <code>floor(2.9)</code> est <code>2.00</code>."
|
|
|
|
#. 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 ""
|
|
"Example: compter de 1 à 4\n"
|
|
"<c/><s/><c/>for ( i = 1 ; i <= 4 ; i++ )"
|
|
|
|
#. type: Plain text
|
|
#: ../E/function.txt:2
|
|
#, no-wrap
|
|
msgid "Function, simply put, is an instruction created by you."
|
|
msgstr "Une fonction : une instruction créée par vous."
|
|
|
|
#. type: \b; header
|
|
#: ../E/function.txt:4
|
|
#, no-wrap
|
|
msgid "Main function"
|
|
msgstr "Fonction principale"
|
|
|
|
#. 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 "Vous savez probablement déjà comment créer une fonction. Chaque programme du CBOT doit avoir une fonction principale, qui ressemble à ceci :"
|
|
|
|
#. type: Source code
|
|
#: ../E/function.txt:7
|
|
#, no-wrap
|
|
msgid ""
|
|
"extern void object::ProgramName()\n"
|
|
"{\n"
|
|
"\t\n"
|
|
"\t// instructions\n"
|
|
"\t\n"
|
|
"}"
|
|
msgstr ""
|
|
"extern void object::nomFonctionPrincipale()\n"
|
|
"{\n"
|
|
"\t\n"
|
|
"\t;// ..instructions.. (sans oublier les ';')\n"
|
|
"\t\n"
|
|
"}"
|
|
|
|
#. 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 "Grâce aux fonctions, vous pouvez diviser votre programme en plusieurs parties plus simple. Chacune d'elles exécutera une tâche spécifique. Par exemple :"
|
|
|
|
#. 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 ""
|
|
"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"
|
|
"}"
|
|
|
|
#. 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 "<code><a cbot|send>send</a></code> et <code><a cbot|wait>wait</a></code> sont répétés plusieurs fois. Ce serait donc une bonne chose si nous créions une fonction qui exécute ces deux instructions :"
|
|
|
|
#. 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 ""
|
|
"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"
|
|
"}"
|
|
|
|
#. 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 "Maintenant, le programme est beaucoup plus facile à lire. C'est une bonne pratique de diviser le programme en plusieurs fonctions avec des noms auto-descriptifs."
|
|
|
|
#. type: \b; header
|
|
#: ../E/function.txt:49
|
|
#, no-wrap
|
|
msgid "Syntax"
|
|
msgstr "Syntaxe"
|
|
|
|
#. type: Source code
|
|
#: ../E/function.txt:51
|
|
#, no-wrap
|
|
msgid ""
|
|
"result_type FunctionName(optional_parameters)\n"
|
|
"{\n"
|
|
"\tbody\n"
|
|
"}"
|
|
msgstr ""
|
|
"TypeResultat nomFonction(parametresOptionnels)\n"
|
|
"{\n"
|
|
"\tcontenu;\n"
|
|
"}"
|
|
|
|
#. 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 "<a cbot|type>TypeResultat</a> doit être précisé comme <a cbot/void>void</a> si la fonction ne retourne rien. Contenu est un ensemble d'instructions. NomFonction doit être choisi comme un nom de <a cbot|var>variable</a>, sans espace..."
|
|
|
|
#. type: \t; header
|
|
#: ../E/function.txt:58
|
|
#, no-wrap
|
|
msgid "Parameters"
|
|
msgstr "Paramètres"
|
|
|
|
#. type: Plain text
|
|
#: ../E/function.txt:59
|
|
#, no-wrap
|
|
msgid "A function can have parameters:"
|
|
msgstr "Une fonction peut avoir des paramètres:"
|
|
|
|
#. 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 ""
|
|
"void exemple(int a, float x, string s)\n"
|
|
"{\n"
|
|
"\tmessage(a);\n"
|
|
"\tmessage(x);\n"
|
|
"\tmessage(s);\n"
|
|
"}"
|
|
|
|
#. 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 "La fonction <code>exemple</code> recevra un <a cbot|int>entier</a> <code>a</code>, un <a cbot|float>réel</a> <code>x</code> et une <a cbot| string>chaîne</a> <code>s</code>. Les paramètres sont \"passés par valeur\", c'est-à-dire que les valeurs des variables paramètres dans une fonction sont des copies des valeurs que l'appelant a spécifiées comme variables. Si vous passez un <code><a cbot|int>int</a></code> à une fonction, son paramètre est une copie de n'importe quelle valeur passée en argument, et la fonction peut changer sa valeur de paramètre sans affecter les valeurs du code qui a appelé la fonction."
|
|
|
|
#. 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 "Par contre, si vous passez une instance de <a cbot|class>classe</a> ou un <a cbot|array>tableau</a> en paramètre d'une fonction, la fonction reçoit seulement une <a cbot|pointer>référence</a> à l'instance ou au tableau. Cela signifie que si vous modifiez l'instance ou le tableau dans la fonction, l'instance ou le tableau qui a été spécifié par l'appelant sera effectivement modifié."
|
|
|
|
#. type: \t; header
|
|
#: ../E/function.txt:72
|
|
#, no-wrap
|
|
msgid "Result"
|
|
msgstr "Résultat"
|
|
|
|
#. 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 "Une fonction peut aussi retourner un résultat avec l'instruction <code><a cbot|return>return</a></code>. Par conséquent, la fonction ne doit plus être déclarée comme <code><a cbot|void>void</a></code> mais comme retournant une valeur d'un autre <a cbot|type>type</a> :"
|
|
|
|
#. 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 ""
|
|
"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); // affichera 4\n"
|
|
"}"
|
|
|
|
#. type: Plain text
|
|
#: ../E/function.txt:87
|
|
#, no-wrap
|
|
msgid "Some other examples:"
|
|
msgstr "Quelques autres exemples :"
|
|
|
|
#. 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 ""
|
|
"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"
|
|
"}"
|
|
|
|
#. type: \b; header
|
|
#: ../E/function.txt:102
|
|
#, no-wrap
|
|
msgid "Overloading"
|
|
msgstr "Surcharge"
|
|
|
|
#. type: Plain text
|
|
#: ../E/function.txt:103
|
|
#, no-wrap
|
|
msgid "You can declare several functions with the same name but different parameters:"
|
|
msgstr "Vous pouvez déclarer plusieurs fonctions avec le même nom, mais avec des paramètres différents :"
|
|
|
|
#. 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 ""
|
|
"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"
|
|
"}"
|
|
|
|
#. 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 "CBOT appellera l'une ou l'autre fonction en fonction des paramètres passés. Ils doivent pouvoir être distingués, c'est-à-dire que vous ne pouvez pas déclarer deux fonctions avec le même nom et les mêmes types de paramètres dans le même ordre exact, par exemple en déclarant <code>int Pythagoras(float b, float a)</code> entraînera une erreur. Notez que le type de résultat n'a pas d'importance."
|
|
|
|
#. type: \b; header
|
|
#: ../E/function.txt:120
|
|
#, no-wrap
|
|
msgid "object::"
|
|
msgstr "object::"
|
|
|
|
#. 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 "Déclarer une fonction comme faisant partie de l'espace de nommage <a cbot|object>object</a> lui donne accès au pointeur <a cbot|pointer>pointeur</a> <code><a cbot|this>this</a></code> , c'est-à-dire à toutes les propriétés disponibles du robot où le programme est exécuté."
|
|
|
|
#. type: Source code
|
|
#: ../E/function.txt:123
|
|
#, no-wrap
|
|
msgid ""
|
|
"void object::Example()\n"
|
|
"{\n"
|
|
"\tmessage(this.category);\n"
|
|
"}"
|
|
msgstr ""
|
|
"void object::Example()\n"
|
|
"{\n"
|
|
"\tmessage(this.category);\n"
|
|
"}"
|
|
|
|
#. 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 "Utilisez ce type pour les variables qui contiennent les caractéristiques d'un objet, que ce soit un robot, un bâtiment, une matière première, un ennemi, etc. Voici toutes les propriétés d'un objet : "
|
|
|
|
#. 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 ""
|
|
"<code><a cbot|int>int</a> object.category </code><a cbot|category>Catégorie</a> de l'objet\n"
|
|
"<code><a cbot|point>point</a> object.position </code>Position de l'objet (x,y,z)\n"
|
|
"<code><a cbot|float>float</a> object.orientation </code>Orientation de l'objet (0..360)\n"
|
|
"<code><a cbot|float>float</a> object.pitch </code>Angle de bascule de l'objet\n"
|
|
"<code><a cbot|float>float</a> object.roll </code>Angle d'inclinaison de l'object \n"
|
|
"<code><a cbot|float>float</a> object.energyLevel </code>Niveau d'énergie (0..1)\n"
|
|
"<code><a cbot|float>float</a> object.shieldLevel </code>Niveau de bouclier (0..1)\n"
|
|
"<code><a cbot|float>float</a> object.temperature </code>Chaleur du jet (0..1)\n"
|
|
"<code><a cbot|float>float</a> object.altitude </code>Altitude par rapport au sol\n"
|
|
"<code><a cbot|float>float</a> object.lifeTime </code>Durée de vie de l'objet\n"
|
|
"<code>object object.energyCell </code>batterie ou pile du robot\n"
|
|
"<code>object object.load </code>Objet transporté par le préhenseur\n"
|
|
"<code><a cbot|int>int</a> object.team </code>Équipe de l'objet (Voir <a battles>batailles de code</a>)\n"
|
|
"<code><a cbot|point>point</a> object.velocity </code>Vitesse de l'objet"
|
|
|
|
#. 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 "De plus, certains objets ont des méthodes (instructions) supplémentaires. Se reporter à la <a cbot>la liste principale</a> dans la section <c/>\"Instructions spécifiques pour certains objets\"."
|
|
|
|
#. 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 "<n/>La <a cbot|category>catégorie</a> d'un objet vous permet de savoir de quoi il s'agit, par exemple de quel type de robot, bâtiment, ennemi, etc."
|
|
|
|
#. type: Source code
|
|
#: ../E/object.txt:60
|
|
#, no-wrap
|
|
msgid "<code>team</code>"
|
|
msgstr "<code>team</code>"
|
|
|
|
#. 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 "L'équipe du robot. Utilisé dans <a battles>bataille de codes</a>. Si l'objet n'a pas d'équipe affectée (par exemple, dans les niveau non basé sur les équipes ou l'objet étant une ressource), ceci est égal à <code>0</code>."
|
|
|
|
#. type: Source code
|
|
#: ../E/object.txt:63
|
|
#, no-wrap
|
|
msgid "<code>velocity</code>"
|
|
msgstr "<code>velocity</code>"
|
|
|
|
#. type: Plain text
|
|
#: ../E/object.txt:64
|
|
#, no-wrap
|
|
msgid "Current velocity of the object. Should be treated as a three-dimensional vector."
|
|
msgstr "Vitesse actuelle de l'objet, dans chacun des axes x,y et z. Doit être traité comme un vecteur tridimensionnel."
|
|
|
|
#. type: \b; header
|
|
#: ../E/pencolor.txt:1
|
|
#, no-wrap
|
|
msgid "Instruction <code>pencolor</code>"
|
|
msgstr "Instruction <code>pencolor</code>"
|
|
|
|
#. type: Source code
|
|
#: ../E/pencolor.txt:3
|
|
#, no-wrap
|
|
msgid "<c/>pencolor ( color );<n/>"
|
|
msgstr "<c/>pencolor ( color );<n/>"
|
|
|
|
#. 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 "L'instruction <c/>pencolor();<n/> demande au robot de changer la couleur de son crayon."
|
|
|
|
#. 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 "color: <code><a cbot|int>int</a></code> (valeur par défaut: <code>Black</code>)"
|
|
|
|
#. type: Plain text
|
|
#: ../E/pencolor.txt:7 ../E/pendown.txt:7
|
|
#, no-wrap
|
|
msgid "<a cbot|colors>Color name</a>."
|
|
msgstr "<a cbot|colors>Couleur</a>."
|
|
|
|
#. 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 ""
|
|
"Normalement, une erreur arrête le programme. Vous pouvez empêcher le programme de s'arrêter en cas d'erreur en utilisant l'instruction <code><a cbot|errmode>errmode</a>(0)</code>. Une valeur différente de zéro en cas d'erreur est alors retournée par <c/>pencolor();<n/>.\n"
|
|
"<code>== 0 </code> La couleur a été modifiée\n"
|
|
"<code>!= 0 </code> L'instruction ne fonctionne pas"
|
|
|
|
#. type: \b; header
|
|
#: ../E/pendown.txt:1
|
|
#, no-wrap
|
|
msgid "Instruction <code>pendown</code>"
|
|
msgstr "Instruction <code>pendown</code>"
|
|
|
|
#. type: Source code
|
|
#: ../E/pendown.txt:3
|
|
#, no-wrap
|
|
msgid "<c/>pendown ( color, width );<n/>"
|
|
msgstr "<c/>pendown ( color, width );<n/>"
|
|
|
|
#. 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 "L'instruction <c/>pendown();<n/> demande au robot de baisser son crayon au sol, donc il commence à dessiner."
|
|
|
|
#. 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 "width: <code><a cbot|float>float</a></code> (valeur par défaut: <code>0.5</code>)"
|
|
|
|
#. 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 "Largeur du crayon. La largeur ne peut être supérieure à <code>1.0</code> et ne peut être inférieure à <code>0.0</code>. Si vous passez une valeur supérieure, la largeur sera la plus grande possible et si vous passez une valeur inférieure, la largeur sera la plus petite possible."
|
|
|
|
#. 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 ""
|
|
"Normalement, une erreur arrête le programme. Vous pouvez empêcher le programme de s'arrêter en cas d'erreur en utilisant l'instruction <code><a cbot|errmode>errmode</a>(0)</code>. Une valeur différente de zéro en cas d'erreur est alors retournée par <c/>pendown();<n/>.\n"
|
|
"<code>== 0 </code>Le crayon est maintenant abaissé\n"
|
|
"<code>!= 0 </code>La commande ne fonctionne pas"
|
|
|
|
#. type: \b; header
|
|
#: ../E/penup.txt:1
|
|
#, no-wrap
|
|
msgid "Instruction <code>penup</code>"
|
|
msgstr "Instruction <code>penup</code>"
|
|
|
|
#. type: Source code
|
|
#: ../E/penup.txt:3
|
|
#, no-wrap
|
|
msgid "<c/>penup ( );<n/>"
|
|
msgstr "<c/>penup ( );<n/>"
|
|
|
|
#. 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 "L'instruction <c/>penup();<n/>indique au robot d'avoir son crayon relevé, pour qu'il arrête de dessiner. Le crayon est en haut par défaut, il ne doit donc être utilisé qu'après avoir utilisé <code><a cbot|pendown>pendown</a></code>."
|
|
|
|
#. 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 ""
|
|
"Normalement, une erreur arrête le programme Vous pouvez empêcher le programme de s'arrêter en cas d'erreur en utilisant l'instruction <code><a cbot|errmode>errmode</a>(0)</code>. Une valeur différente de zéro en cas d'erreur est alors retournée par <c/>penup();.\n"
|
|
"<code>== 0 </code>Le crayon est maintenant relevé\n"
|
|
"<code>!= 0 </code>La commande ne fonctionne pas"
|
|
|
|
#. type: \b; header
|
|
#: ../E/penwidth.txt:1
|
|
#, no-wrap
|
|
msgid "Instruction <code>penwidth</code>"
|
|
msgstr "Instruction <code>penwidth</code>"
|
|
|
|
#. type: Source code
|
|
#: ../E/penwidth.txt:3
|
|
#, no-wrap
|
|
msgid "<c/>penwidth ( color );<n/>"
|
|
msgstr "<c/>penwidth ( color );<n/>"
|
|
|
|
#. 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 "L'instruction <c/>penwidth();<n/> demande au robot de changer la largeur de son trait de crayon."
|
|
|
|
#. type: \t; header
|
|
#: ../E/penwidth.txt:6
|
|
#, no-wrap
|
|
msgid "width: <code><a cbot|float>float</a></code>"
|
|
msgstr "width: <code><a cbot|float>float</a></code>"
|
|
|
|
#. 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 ""
|
|
"Normalement, une erreur arrête le programme Vous pouvez empêcher le programme de s'arrêter en cas d'erreur en utilisant l'instruction <code><a cbot|errmode>errmode</a>(0)</code>. Une valeur différente de zéro en cas d'erreur est alors retournée par <c/>penwidth();.\n"
|
|
"<code>== 0 </code> La largeur du trait a été modifiée\n"
|
|
"<code>!= 0 </code> L'instruction ne fonctionne pas"
|
|
|
|
#. type: \b; header
|
|
#: ../E/pow.txt:1
|
|
#, no-wrap
|
|
msgid "Instruction <code>pow</code>"
|
|
msgstr "Instruction <code>pow</code>"
|
|
|
|
#. type: Source code
|
|
#: ../E/pow.txt:3
|
|
#, no-wrap
|
|
msgid "<c/>pow ( x, y );<n/>"
|
|
msgstr "<c/>pow ( x, y );<n/>"
|
|
|
|
#. type: Plain text
|
|
#: ../E/pow.txt:6
|
|
#, no-wrap
|
|
msgid "Base."
|
|
msgstr "Base. (mantisse)"
|
|
|
|
#. type: Plain text
|
|
#: ../E/pow.txt:9
|
|
#, no-wrap
|
|
msgid "Exponent."
|
|
msgstr "Exposant."
|
|
|
|
#. type: Plain text
|
|
#: ../E/pow.txt:12
|
|
#, no-wrap
|
|
msgid "x to the y (x raised to the yth power)."
|
|
msgstr "x à la puissance y (x * x * x ... y fois )."
|
|
|
|
#. type: Source code
|
|
#: ../E/radar.txt:15
|
|
#, no-wrap
|
|
msgid "<c/>radar ( cat, angle, focus, min, max, sens, filter );<n/>"
|
|
msgstr "<c/>radar ( cat, angle, focus, min, max, sens, filter );<n/>"
|
|
|
|
#. 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 "<a cbot|array>Tableau</a> de catégories des objets à détecter. Par exemple, lorsque vous cherchez uniquement des préhenseurs :"
|
|
|
|
#. type: Plain text
|
|
#: ../E/radar.txt:25 ../E/search.txt:10
|
|
#, no-wrap
|
|
msgid "<c/><s/>int bots[4];"
|
|
msgstr "<c/><s/>int bots[4];"
|
|
|
|
#. 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 ""
|
|
"bots[0] = WheeledGrabber;\n"
|
|
"bots[1] = TrackedGrabber;\n"
|
|
"bots[2] = WingedGrabber;\n"
|
|
"bots[3] = LeggedGrabber;\n"
|
|
"object nearestGrabber = <a cbot|radar>radar</a>(bots);<n/>"
|
|
|
|
#. 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 "Mot clef <format const>Any</format> si vous cherchez tous type d'objets (incluant les plantes etc.). Les filtres sont particulièrement utiles avec ce mot clef."
|
|
|
|
#. type: \t; header
|
|
#: ../E/radar.txt:33
|
|
#, no-wrap
|
|
msgid "angle: <code><a cbot|float>float</a></code> (default value: <code>0</code>)"
|
|
msgstr "angle: <code><a cbot|float>float</a></code> (valeur par défaut : <code>0</code>)"
|
|
|
|
#. type: \t; header
|
|
#: ../E/radar.txt:39
|
|
#, no-wrap
|
|
msgid "focus: <code><a cbot|float>float</a></code> (default value: <code>360</code>)"
|
|
msgstr "focus : <code><a cbot|float>float</a></code> (valeur par défaut : <code>360</code>)"
|
|
|
|
#. type: \t; header
|
|
#: ../E/radar.txt:42
|
|
#, no-wrap
|
|
msgid "min: <code><a cbot|float>float</a></code> (default value: <code>0</code>)"
|
|
msgstr "min: <code><a cbot|float>float</a></code> (valeur par défaut : <code>0</code>)"
|
|
|
|
#. type: \t; header
|
|
#: ../E/radar.txt:45
|
|
#, no-wrap
|
|
msgid "max: <code><a cbot|float>float</a></code> (default value: <code>1000</code>)"
|
|
msgstr "max: <code><a cbot|float>float</a></code> (valeur par défaut : <code>1000</code>)"
|
|
|
|
#. type: \t; header
|
|
#: ../E/radar.txt:48
|
|
#, no-wrap
|
|
msgid "sens: <code><a cbot|float>float</a></code> (default value: <code>1</code>)"
|
|
msgstr "sens: <code><a cbot|float>float</a></code> (valeur par défaut : <code>1</code>)"
|
|
|
|
#. 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 "filter: <code><a cbot|int>int</a></code> (valeur par défaut : <code><format const>FilterNone</format></code>)"
|
|
|
|
#. 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 "Détermine le type d'objets à détecter. Particulièrement utile avec un <a cbot|array>array</a> ou <format const>Any</format>. Les filtres suivants sont disponibles :"
|
|
|
|
#. 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 ""
|
|
"<code><format const>FilterNone</format> </code>Détecte tout (par défaut)\n"
|
|
"<code><format const>FilterOnlyLanding</format> </code>Détecte uniquement les objets au sol\n"
|
|
"<code><format const>FilterOnlyFlying</format> </code>Détecte uniquement les objets au sol non présents\n"
|
|
"<code><format const>FilterFriendly</format> </code>Détecte uniquement les alliés (objets de la même équipe)\n"
|
|
"<code><format const>FilterEnemy</format> </code>Détecte uniquement les ennemis (objets dans une autre équipe sauf neutre)\n"
|
|
"<code><format const>FilterNeutral</format> </code>Détecte seulement les objets neutres (ex. ressources)"
|
|
|
|
#. 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 "Les trois derniers sont principalement utiles dans <a battles>bataille de codes</a>. Vous pouvez également passer un ID d'équipe pour rechercher uniquement les objets d'une équipe spécifique. Attention : vous devez utiliser <format const>FilterNeutral</format> au lieu de <code>0</code> ou sinon cela ne fonctionnera pas."
|
|
|
|
#. 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 "Les filtres et les ID peuvent être mélangés à l'aide de l'opérateur OU <code>|</code>, par exemple <c/><a cbot|radar>radar</a>(Any, 0, 360, 0, 1000, 1, 2 | FilterOnlyLanding);<n/> détecte uniquement un objet d'équipe <code>2</code> qui sont posés sur terre. Attention : vous ne pouvez spécifier qu'un seul ID d'équipe à la fois, mais vous pouvez spécifier plusieurs filtres à la fois."
|
|
|
|
#. type: \b; header
|
|
#: ../E/rand.txt:1
|
|
#, no-wrap
|
|
msgid "Instruction <code>rand</code>"
|
|
msgstr "Instruction <code>rand</code>"
|
|
|
|
#. type: Source code
|
|
#: ../E/rand.txt:3
|
|
#, no-wrap
|
|
msgid "<c/>rand ( );<n/>"
|
|
msgstr "<c/>rand ( );<n/>"
|
|
|
|
#. type: Plain text
|
|
#: ../E/rand.txt:6
|
|
#, no-wrap
|
|
msgid "Pseudorandom number between 0 and 1 (including 0, but excluding 1)."
|
|
msgstr "Nombre pseudo-aléatoire entre 0 et 1 (0 inclus, mais 1 exclu)."
|
|
|
|
#. type: \b; header
|
|
#: ../E/research.txt:1
|
|
#, no-wrap
|
|
msgid "Instruction <code>research</code>"
|
|
msgstr "Instruction <code>research</code>"
|
|
|
|
#. type: Source code
|
|
#: ../E/research.txt:3
|
|
#, no-wrap
|
|
msgid "<c/><a cbot|object>object</a>.research ( type );<n/>"
|
|
msgstr "<c/><a cbot|object>object</a>.research ( type );<n/>"
|
|
|
|
#. type: Plain text
|
|
#: ../E/research.txt:5
|
|
#, no-wrap
|
|
msgid "Starts a <a cbot|researches>research</a> of the given type."
|
|
msgstr "Démarrer une <a cbot|researches>recherche</a> d'un type donné."
|
|
|
|
#. type: Plain text
|
|
#: ../E/research.txt:8
|
|
#, no-wrap
|
|
msgid "<a object|research>ResearchCenter</a> or <a object|labo>AutoLab</a>."
|
|
msgstr "<a object|research>centre de recherche</a> ou <a object|labo>laboratoire d'analyse de matières organiques</a>."
|
|
|
|
#. type: \t; header
|
|
#: ../E/research.txt:10
|
|
#, no-wrap
|
|
msgid "type: <code><a cbot|int>int</a></code>"
|
|
msgstr "type: <code><a cbot|int>int</a></code>"
|
|
|
|
#. 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 ""
|
|
"Normalement, une erreur arrête le programme. Vous pouvez empêcher le programme de s'arrêter en cas d'erreur en utilisant l'instruction <code><a cbot|errmode>errmode</a>(0)</code>. Une valeur différente de zéro en cas d'erreur est alors retournée par <code>research()</code>.\n"
|
|
"<code> == 0 </code>La recherche a bien démarré\n"
|
|
"<code>!= 0 </code> La recherche n'a pas pu démarrer (par exemple, cette recherche n'est pas active dans le niveau ou le centre de recherche n'a pas de courant)"
|
|
|
|
#. 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 "<a cbot|researches>Noms des recherches possibles</a>, <a cbot|canresearch>canresearch()</a>, <a cbot|researched>researched()</a>, <a cbot>programmation</a>, <a cbot|type>types</a> et <a cbot|category>catégories</a>."
|
|
|
|
#. type: \b; header
|
|
#: ../E/researched.txt:1
|
|
#, no-wrap
|
|
msgid "Instruction <code>researched</code>"
|
|
msgstr "Instruction <code>researched</code>"
|
|
|
|
#. type: Source code
|
|
#: ../E/researched.txt:3
|
|
#, no-wrap
|
|
msgid "<c/>researched ( research );<n/>"
|
|
msgstr "<c/>researched ( research );<n/>"
|
|
|
|
#. type: Plain text
|
|
#: ../E/researched.txt:5
|
|
#, no-wrap
|
|
msgid "Checks if the <a cbot|researches>research</a> was done in the level."
|
|
msgstr "Vérifier si la <a cbot|researches>recherche</a> a été effectuée dans ce niveau."
|
|
|
|
#. 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 ""
|
|
"<format const>true</format> si la technologie voulue est maîtrisée\n"
|
|
"<format const>false</format> sinon"
|
|
|
|
#. 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 "<a cbot|researches>Noms des recherches possibles</a>, <a cbot|research>research()</a>, <a cbot|canresearch>canresearch</a>, <a cbot|canbuild>canbuild</a> , <a cbot>programmation</a>, <a cbot|type>types</a> et <a cbot|category>catégories</a>."
|
|
|
|
#. type: \b; header
|
|
#: ../E/researches.txt:1
|
|
#, no-wrap
|
|
msgid "Value <code>Research names</code>"
|
|
msgstr "Valeur <code>Noms des recherches possibles</code>"
|
|
|
|
#. 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 "Les Noms des recherches possibles représentent les types de recherches disponibles dans le langage CBOT. Vous pouvez les utiliser pour contrôler <a object|research>le centre de recherche</a> en les passant aux instructions appropriées (par exemple <a cbot|research>research</a>, <a cbot|canresearch>canresearch</a>, <a cbot|researched>researched</a>)."
|
|
|
|
#. 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 "Dans un programme, les noms de recherche sont toujours affichés sur un fond <format const>fond rouge</format>. Si un nom de recherche n'est pas surligné en rouge, le robot ne la reconnaîtra pas : il est mal orthographié. Les majuscules et les minuscules doivent être conservées telles quelles."
|
|
|
|
#. type: Plain text
|
|
#: ../E/researches.txt:6
|
|
#, no-wrap
|
|
msgid "Below are the different research names available."
|
|
msgstr "Vous trouverez ci-dessous les différents noms de recherche disponibles."
|
|
|
|
#. type: \t; header
|
|
#: ../E/researches.txt:8
|
|
#, no-wrap
|
|
msgid "Done by <a object|research>ResearchCenter</a>:"
|
|
msgstr "Effectuée par le <a object|research>centre de recherche</a>:"
|
|
|
|
#. 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 ""
|
|
"<code><format const>ResearchTracked</format> </code>Robots à chenilles (ex: <a object|botgc>préhenseur à chenilles</a>)\n"
|
|
"<code><format const>ResearchWinged</format> </code>Robots volants (ex: <a object|botgj>préhenseur volant</a>)\n"
|
|
"<code><format const>ResearchShooter</format> </code>Robots tireur avec canon (ex: <a object|botfc>tireur à chenilles</a>)\n"
|
|
"<code><format const>ResearchPhazerShooter</format> </code><a object|botphaz>Robot hachoir</a>\n"
|
|
"<code><format const>ResearchThumper</format> </code><a object|bottump>Trembleur</a>\n"
|
|
"<code><format const>ResearchShielder</format> </code><a object|botshld>Bouclier</a>\n"
|
|
"<code><format const>ResearchDefenseTower</format> </code><a object|tower>Tour de défense</a>\n"
|
|
"<code><format const>ResearchNuclearPlant</format> </code><a object|nuclear>Centrale nucléaire</a>"
|
|
|
|
#. type: \t; header
|
|
#: ../E/researches.txt:18
|
|
#, no-wrap
|
|
msgid "Done by <a object|labo>AutoLab</a>:"
|
|
msgstr "Effectuée par le <a object|labo>laboratoire d'analyse de matières organiques</a>:"
|
|
|
|
#. 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 ""
|
|
"<code><format const>ResearchLegged</format> </code>Robots à pattes (ex. <a object|botgs>préhenseur à pattes</a>)\n"
|
|
"<code><format const>ResearchOrgaShooter</format> </code>Canon organique (ex. <a object|botoc>tireur organique à chenilles</a>)"
|
|
|
|
#. type: \t; header
|
|
#: ../E/researches.txt:22
|
|
#, no-wrap
|
|
msgid "Impossible to research:"
|
|
msgstr "Impossible d'effectuer la recherche :"
|
|
|
|
#. 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 ""
|
|
"<code><format const>ResearchSniffer</format> </code>Renifleur (ex. <a object|botsc>Renifleur à chenilles</a>)\n"
|
|
"<code><format const>ResearchSubber</format> </code><a object|botsub>Sous-marrin</a>\n"
|
|
"<code><format const>ResearchRecycler</format> </code><a object|botrecy>Recycleur</a>"
|
|
|
|
#. 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 "<a cbot>Le langage CBOT</a>, <a cbot|type>variables</a> et <a cbot|category>catégories</a>."
|
|
|
|
#. type: \b; header
|
|
#: ../E/round.txt:1
|
|
#, no-wrap
|
|
msgid "Instruction <code>round</code>"
|
|
msgstr "Instruction <code>round</code>"
|
|
|
|
#. type: Source code
|
|
#: ../E/round.txt:3
|
|
#, no-wrap
|
|
msgid "<c/>round ( value );<n/>"
|
|
msgstr "<c/>round ( value );<n/>"
|
|
|
|
#. type: Plain text
|
|
#: ../E/round.txt:4
|
|
#, no-wrap
|
|
msgid "Rounds a number."
|
|
msgstr "Arrondir un nombre."
|
|
|
|
#. 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 "Arrondir <code>valeur</code>. Par exemple, <code>round(2.5)</code> donne<code>3.0</code>, tandis que<code>round(2.4)</code> retourne <code>2.0</code>."
|
|
|
|
#. 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 "<a cbot|trunc>trunc</a>, <a cbot|floor>floor</a>, <a cbot|ceil>ceil</a>, <a cbot>programmation</a>, <a cbot|type>types</a> et <a cbot|expr>expressions</a>."
|
|
|
|
#. 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 "Détecte l'objet de la catégorie donnée qui est le plus proche de la position donnée. Similaire à <c/><a cbot|radar>radar();</a><n/>, mais peut commencer à rechercher à partir du point spécifique au lieu de depuis la position actuelle du robot."
|
|
|
|
#. 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 "<a cbot|category>Catégorie</a> des objets qui doivent être détectés. Par exemple, lorsque vous cherchez une fourmi, écrivez <code>search(AlienAnt)</code>. "
|
|
|
|
#. 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 "<a cbot|array>Tableau</a> de catégories des objets à détecter. Par exemple, lorsque vous cherchez uniquement des préhenseurs; en commençant depuis un certain point du niveau :"
|
|
|
|
#. 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 ""
|
|
"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/>"
|
|
|
|
#. 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 "position: <code><a cbot|point>point</a></code> (valeur par défaut: <code><a cbot|this>this</a>.<a cbot|object>position</a></code>)"
|
|
|
|
#. type: \b; header
|
|
#: ../E/sin.txt:1
|
|
#, no-wrap
|
|
msgid "Instruction <code>sin</code>"
|
|
msgstr "Instruction <code>sin</code>"
|
|
|
|
#. type: Source code
|
|
#: ../E/sin.txt:3
|
|
#, no-wrap
|
|
msgid "<c/>sin ( angle );<n/>"
|
|
msgstr "<c/>sin ( angle );<n/>"
|
|
|
|
#. type: Plain text
|
|
#: ../E/sin.txt:9
|
|
#, no-wrap
|
|
msgid "Sine of the angle."
|
|
msgstr "Sinus d'un angle."
|
|
|
|
#. type: \b; header
|
|
#: ../E/sqrt.txt:1
|
|
#, no-wrap
|
|
msgid "Instruction <code>sqrt</code>"
|
|
msgstr "Instruction <code>sqrt</code>"
|
|
|
|
#. type: Source code
|
|
#: ../E/sqrt.txt:3
|
|
#, no-wrap
|
|
msgid "<c/>sqrt ( value );<n/>"
|
|
msgstr "<c/>sqrt ( value );<n/>"
|
|
|
|
#. type: Plain text
|
|
#: ../E/sqrt.txt:6
|
|
#, no-wrap
|
|
msgid "Non-negative number."
|
|
msgstr "Nombre non-négatif."
|
|
|
|
#. type: Plain text
|
|
#: ../E/sqrt.txt:9
|
|
#, no-wrap
|
|
msgid "Square root of the value."
|
|
msgstr "Racine carrée d'une valeur."
|
|
|
|
#. type: \b; header
|
|
#: ../E/switch.txt:1
|
|
#, no-wrap
|
|
msgid "Instructions <code>switch</code>, <code>case</code> and <code>default</code>"
|
|
msgstr "Instructions <code>switch</code>, <code>case</code> et <code>default</code>"
|
|
|
|
#. 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 "Avec l'instruction <code>switch() {}</code> vous pouvez exécuter un ensemble approprié d'instructions (\"case\") en vous basant sur chaque valeur voulue."
|
|
|
|
#. 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 "Note : l'instruction <a cbot|busy>busy</a> pourrait être beaucoup mieux utilisée dans ce scénario."
|
|
|
|
#. 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 "Voir la <a cbot|function>fonction</a> suivante : le robot sera en train d'<a cbot|wait>attendre</a> un temps approprié pour une certaine tâche à accomplir :"
|
|
|
|
#. 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 ""
|
|
"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"
|
|
"}"
|
|
|
|
#. type: Plain text
|
|
#: ../E/switch.txt:18
|
|
#, no-wrap
|
|
msgid "This function can be also written using the <code>switch() {}</code> instruction:"
|
|
msgstr "Cette fonction peut également être écrite en utilisant l'instruction <code>switch() {}</code> :"
|
|
|
|
#. 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 ""
|
|
"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"
|
|
"}"
|
|
|
|
#. 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 "Cette façon d'écrire ce genre de structures de choix est une question de goût."
|
|
|
|
#. type: Plain text
|
|
#: ../E/switch.txt:33
|
|
#, no-wrap
|
|
msgid "You can also make cases like this:"
|
|
msgstr "Vous pouvez aussi faire des \"cases\" regroupés comme celui-ci :"
|
|
|
|
#. 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 ""
|
|
"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"
|
|
"}"
|
|
|
|
#. 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 "La <a object|convert>raffinerie</a> et l'<a object|factory>usine de robots</a> ont le même temps d'attente, donc afin de ne pas écrire les mêmes instructions deux fois, nous avons fait exécuter le même code dans plusieurs cas. En fait, tout le code après le \"case\" le plus haut sera exécuté si nous ne faisons pas de <code><a cbot|break>break</a></code>."
|
|
|
|
#. 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 ""
|
|
"<c/>switch ( value )\n"
|
|
"{\n"
|
|
"\tcase value1: \t\tinstructions1;\n"
|
|
"\t\tbreak;\n"
|
|
"\tcase value2: \t\tinstructions2;\n"
|
|
"\t\tbreak;\n"
|
|
"\t...\n"
|
|
"\tcase valueN: \t\tinstructionsN;\n"
|
|
"\t\tbreak;\n"
|
|
"\tdefault: \n"
|
|
"\t\tinstructionsDefault;\n"
|
|
"} <n/> Ici, ça ne ferait qu'une instruction selon le cas, \n"
|
|
"Si on étudie plutôt cette forme : \n"
|
|
"<c/> <c/>switch ( value )\n"
|
|
"{\n"
|
|
"\tcase value1: instructions1\n"
|
|
"\tcase value2: instructions2\n"
|
|
"\t...\n"
|
|
"\tcase valueN: instructionsN\n"
|
|
"\t\tbreak;\n"
|
|
"\tdefault: instructionsDefault\n"
|
|
"}"
|
|
|
|
#. 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 "Avec cette structure conditionnelle, vous pouvez exécuter <code>instructions1</code> ou <code>instructions2</code> ou <code>instructionsN</code> ou <code>instructionsDefault</code> selon le <code> valeur</code> puis toutes les autres (tant qu'il n'y a pas de break et que le bloc du switch n'est pas terminé)."
|
|
|
|
#. 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 ""
|
|
"Si <code>value</code> est égal à <code>value1</code>, alors on exécute <code>instructions1</code> jusqu'à <code>N</code> .\n"
|
|
"Si <code>value</code> est égal à <code>value2</code>, alors on exécute <code>instructions2</code> jusqu'à <code>N</code> .\n"
|
|
"etc...\n"
|
|
"Si <code>value</code> est égal à <code>valueN</code>, alors on exécute <code>instructionsN</code>.\n"
|
|
"Si <code>value</code> ne fait pas partie des valeurs citées dans les \"cases\", alors on exécute <code>instructionsDefault</code>."
|
|
|
|
#. 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 "Vous pouvez quitter l'instruction <code>switch() {}</code> en utilisant <code><a cbot|break>break</a></code>."
|
|
|
|
#. 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 "Instruction <code>takeoff</code>"
|
|
|
|
#. type: Source code
|
|
#: ../E/takeoff.txt:3
|
|
#, no-wrap
|
|
msgid "<c/><a cbot|object>object</a>.takeoff ( );<n/>"
|
|
msgstr "<c/><a cbot|object>object</a>.takeoff ( );<n/>"
|
|
|
|
#. type: Plain text
|
|
#: ../E/takeoff.txt:5
|
|
#, no-wrap
|
|
msgid "Takes off the spaceship."
|
|
msgstr "Faire décoller le vaisseau spatial."
|
|
|
|
#. type: Plain text
|
|
#: ../E/takeoff.txt:8
|
|
#, no-wrap
|
|
msgid "<a object|base>SpaceShip</a>"
|
|
msgstr "<a object|base>SpaceShip</a>"
|
|
|
|
#. 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 ""
|
|
"Normalement, une erreur arrête le programme. Vous pouvez empêcher le programme de s'arrêter en cas d'erreur en utilisant l'instruction <code><a cbot|errmode>errmode</a>(0)</code>. Une valeur différente de zéro en cas d'erreur est alors retournée par <code>takeoff()</code>.\n"
|
|
"<code>== 0 </code>Le vaisseau spatial se referme puis décolle\n"
|
|
"<code>!= 0 </code>Le vaisseau spatial n'a pas pu décoller (par exemple, la mission n'est pas encore terminée ou quelque chose empêche les portes de se refermer)"
|
|
|
|
#. type: \b; header
|
|
#: ../E/tan.txt:1
|
|
#, no-wrap
|
|
msgid "Instruction <code>tan</code>"
|
|
msgstr "Instruction <code>tan</code>"
|
|
|
|
#. type: Source code
|
|
#: ../E/tan.txt:3
|
|
#, no-wrap
|
|
msgid "<c/>tan ( angle );<n/>"
|
|
msgstr "<c/>tan ( angle );<n/>"
|
|
|
|
#. type: Plain text
|
|
#: ../E/tan.txt:6
|
|
#, no-wrap
|
|
msgid "Angle in degrees (except multiples of 90)."
|
|
msgstr "Angle en degrés (en ne précisant jamais de multiples de 90)."
|
|
|
|
#. type: Plain text
|
|
#: ../E/tan.txt:9
|
|
#, no-wrap
|
|
msgid "Tangent of the angle."
|
|
msgstr "Tangente d'un angle."
|
|
|
|
#. type: \b; header
|
|
#: ../E/trunc.txt:1
|
|
#, no-wrap
|
|
msgid "Instruction <code>trunc</code>"
|
|
msgstr "Instruction <code>trunc</code>"
|
|
|
|
#. type: Source code
|
|
#: ../E/trunc.txt:3
|
|
#, no-wrap
|
|
msgid "<c/>trunc ( value );<n/>"
|
|
msgstr "<c/>trunc ( value );<n/>"
|
|
|
|
#. 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 "La troncature est une méthode d'approximation d'un nombre décimal en enlevant les décimales après un certain point sans arrondir. Pour les nombres positifs, il fonctionne comme la fonction <c/><a cbot|floor>floor();</a><n/>, et pour les nombres négatifs, il fonctionne comme la fonction <c/><a cbot|ceil>ceil();</a><n/>. On peut dire qu'il s'arrondit vers zéro."
|
|
|
|
#. 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 "<code>Valeur tronquée</code>. Par exemple, <code>trunc(-2.5)</code> donne<code>-2.00</code>."
|
|
|
|
#. 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 "Dans un programme, les catégories sont toujours affichées comme ça : <format const>catégorie</format>. Si une catégorie n'est pas surlignée, c'est qu'elle est mal orthographiée. Les majuscules et les minuscules doivent être conservées telles quelles."
|
|
|
|
#. 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 "Dans un programme, le nom d'un type est toujours affiché comme ça : <type de format>type</format>. Si le nom d'un type n'est pas surligné, cela signifie que le nom est mal orthographié. Les noms de type sont toujours écrits en minuscules. Voici une liste des différents types : "
|
|
|
|
#. type: \b; header
|
|
#: ../E/produce.txt:1
|
|
#, no-wrap
|
|
msgid "Instruction <code>produce</code>"
|
|
msgstr "Instruction <code>produce</code>"
|
|
|
|
#. type: Source code
|
|
#: ../E/produce.txt:3
|
|
#, no-wrap
|
|
msgid "<c/>produce ( position, orientation, category, program, power );<n/>"
|
|
msgstr "<c/>produce ( position, orientation, category, program, power );<n/>"
|
|
|
|
#. type: Bullet: 'o'
|
|
#: ../E/produce.txt:4
|
|
#, no-wrap
|
|
msgid "r"
|
|
msgstr "ou"
|
|
|
|
#. type: Source code
|
|
#: ../E/produce.txt:5
|
|
#, no-wrap
|
|
msgid "<c/>produce ( category, power );<n/>"
|
|
msgstr "<c/>produce ( category, power );<n/>"
|
|
|
|
#. type: Plain text
|
|
#: ../E/produce.txt:7
|
|
#, no-wrap
|
|
msgid "Immediately creates an <a cbot|category>object</a>."
|
|
msgstr "Créer immédiatement un <a cbot|category>objet</a>."
|
|
|
|
#. type: \t; header
|
|
#: ../E/produce.txt:12
|
|
#, no-wrap
|
|
msgid "orientation: <code><a cbot|float>float</a></code>"
|
|
msgstr "orientation: <code><a cbot|float>float</a></code>"
|
|
|
|
#. type: Plain text
|
|
#: ../E/produce.txt:13
|
|
#, no-wrap
|
|
msgid "Orientation (angle) of the object."
|
|
msgstr "Orientation (angle) de l'objet."
|
|
|
|
#. type: Plain text
|
|
#: ../E/produce.txt:16
|
|
#, no-wrap
|
|
msgid "<a cbot|category>Category</a> of the object."
|
|
msgstr "<a cbot|category>Catégorie</a> de l'objet."
|
|
|
|
#. type: \t; header
|
|
#: ../E/produce.txt:18
|
|
#, no-wrap
|
|
msgid "program: <code><a cbot|string>string</a></code>"
|
|
msgstr "program: <code><a cbot|string>string</a></code>"
|
|
|
|
#. type: Plain text
|
|
#: ../E/produce.txt:22
|
|
#, no-wrap
|
|
msgid "Energy level."
|
|
msgstr "Niveau d'énergie."
|
|
|
|
#. type: \t; header
|
|
#: ../E/produce.txt:24
|
|
#, no-wrap
|
|
msgid "Return: <code><a cbot|void>void</a></code>"
|
|
msgstr "Type du retour: aucun (<code><a cbot|void>void</a></code>)"
|
|
|
|
#. type: Plain text
|
|
#: ../E/produce.txt:25
|
|
#, no-wrap
|
|
msgid "Nothing."
|
|
msgstr "Rien."
|
|
|
|
#. type: \b; header
|
|
#: ../E/produce.txt:27
|
|
#, no-wrap
|
|
msgid "Example usage"
|
|
msgstr "Exemple d'utilisation"
|
|
|
|
#. 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 "Cette fonction est utilisée par <a object|mother>la reine mère alien</a> pour produire ses <a object|egg>œufs</a>."
|
|
|
|
#. 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 "Où l'objet sera créé. La seconde syntaxe crée l'objet à la position actuelle du robot."
|
|
|
|
#. 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 "Programme pour l'objet. N'aura d'effet que pour les objets programmables comme les robots ou les aliens."
|
|
|
|
#. 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 "Des expressions sont utilisées pour différents calculs avec de nombreuses variables différentes, qui donnent le résultat souhaité. Ce qui les distingue des instructions standard, ce sont les opérateurs, qui sont décrits ci-dessous."
|
|
|
|
#. type: \b; header
|
|
#: ../E/expr.txt:8
|
|
#, no-wrap
|
|
msgid "Binary operations"
|
|
msgstr "Opérateurs binaires"
|
|
|
|
#. 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 "En supposant que <code>a</code> et <code>b</code> peuvent être des valeurs de variables déclarées et initialisées de types <code>t1</code> et <code>t2</code>, les opérations binaires peuvent être décrites ainsi :"
|
|
|
|
#. type: Source code
|
|
#: ../E/expr.txt:10
|
|
#, no-wrap
|
|
msgid "<code>r = a op b</code>"
|
|
msgstr "<code>r = a op b</code>"
|
|
|
|
#. 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 "Où <code>r</code> est le résultat de l'opération et <code>op</code> est un opérateur binaire qui travaille avec des valeurs de types <code>t1</code> et <code>t2</code>."
|
|
|
|
#. type: \t; header
|
|
#: ../E/expr.txt:13
|
|
#, no-wrap
|
|
msgid "Order of operations"
|
|
msgstr "Ordre des opérations"
|
|
|
|
#. 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 "En admettant que <code>a op1 b op2 c</code> soit une expression légale, alors les règles suivantes s'appliquent :"
|
|
|
|
#. 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 "Si <code>op1 == op2</code> ou <code>op1</code> est aussi fort que <code>op2</code> ou <code>op1</code> est plus fort que <code>op2</code>, calcule d'abord <code>a op1 b</code> et stocker son résultat dans une variable temporaire <code>r</code>, puis calcule <code>r op2 c</code>, qui correspond au résultat final de l'expression."
|
|
|
|
#. 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 "Si <code>op1</code> est moins fort que <code>op2</code>, calcule d'abord <code>b op2 c</code> et enregistrer son résultat dans une variable temporaire <code>r</code>, puis calcule <code>a op1 r</code>, qui correspond au résultat final de l'expression."
|
|
|
|
#. 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 "Note : une opération peut être rendue plus forte en l'entourant entre parenthèses, par exemple en supposant que <code>op1</code> est plus faible que <code>op2</code>, dans une expression <code>(a op1 b) op2 c</code> le <code>a op1 b</code> sera la premier opération exécutée."
|
|
|
|
#. 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 "Conseil : toujours utiliser des parenthèses si vous n'êtes pas sûr de l'ordre des opérations, n'essayez pas de vous rappeler la force de chacun des opérateurs. En général, cela devrait être assez évident."
|
|
|
|
#. 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 ""
|
|
"Voici un exemple compliqué, qui utilise les opérations arithmétiques décrites ci-dessous, montrant comment les expressions sont calculées:\n"
|
|
"<c/>Supposons que a, b, c, d, e, x, y et z sont toutes des variables initialisées de type float ou int. Ensuite, l'expression suivante devrait être calculée de la manière suivante :\n"
|
|
" a * b + c - d / x % (y * z) - e = ?? \n"
|
|
"= r1 + c - d / x % (y * z) - e , avec r1 = a * b\n"
|
|
"= r2 - d / x % (y * z) - e , avec r2 = r1 + c\n"
|
|
"= r2 - r3 % (y * z) - e , avec r3 = d / x\n"
|
|
"= r2 - r3 % r4 - e , avec r4 = y * z\n"
|
|
"= r2 - r5 - e , avec r5 = r3 % r4\n"
|
|
"= r6 - e , avec r6 = r2 - r5\n"
|
|
"= r7, avec r7 = r6 - e\n"
|
|
"r7 est le résultat de cette expression."
|
|
|
|
#. type: \b; header
|
|
#: ../E/expr.txt:35
|
|
#, no-wrap
|
|
msgid "Assignment operator"
|
|
msgstr "Opérateur d'affectation"
|
|
|
|
#. 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 "<code>=</code> est l'opérateur d'affectation. Il permet de stocker le résultat d'une expression dans une variable."
|
|
|
|
#. 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 "Sur le côté gauche de cet opérateur il doit y avoir la valeur dite \"l-value\" et sur le côté droit la valeur \"r-value\". La valeur \"l-value\" ne peuvent être que des <a cbot|var>variables</a><n/>, les valeurs \"r-value\" sont des expressions ou juste des valeurs standard. Ceci rend l'opérateur d'assignation assez spéciale, parce que la l-value est assez restrictive (elle ne peut pas être une expression, constante et ainsi de suite, seulement une variable). De plus, le type de l-value doit correspondre au type de valeur r-value (à moins qu'une conversion ne soit possible, par exemple en assignant un <code><a cbot|float>réel (float)</a></code> dans un <code><a cbot|int>entier (int)</a></code>)."
|
|
|
|
#. type: Source code
|
|
#: ../E/expr.txt:42
|
|
#, no-wrap
|
|
msgid ""
|
|
" float a;\n"
|
|
" float b = 2.0 * (a = 4.0); // b == 8.0"
|
|
msgstr ""
|
|
" float a;\n"
|
|
" float b = 2.0 * (a = 4.0); // b == 8.0"
|
|
|
|
#. 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 "Cet exemple est en fait vraiment déroutant, mais cette propriété est en fait utile, car elle permet de faire quelque chose comme ceci :"
|
|
|
|
#. 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 ""
|
|
" float a, b, c, d, e;\n"
|
|
" a = b = c = d = e = 1.0; // a == b == c == d == e == 1.0"
|
|
|
|
#. type: \b; header
|
|
#: ../E/expr.txt:50
|
|
#, no-wrap
|
|
msgid "Basic arithmetic operations"
|
|
msgstr "Opérations arithmétiques de base"
|
|
|
|
#. 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 "Les opérateurs binaires ci-dessous fonctionnent avec les types de nombres fondamentaux (<code><a cbot|int>int</a></code>, <code><a cbot|float>float</a></code>)."
|
|
|
|
#. 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 "Listes"
|
|
|
|
#. 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 ""
|
|
"<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: \t; header
|
|
#: ../E/expr.txt:60
|
|
#, no-wrap
|
|
msgid "Notes"
|
|
msgstr "Notes"
|
|
|
|
#. 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 "Les opérations <code>*</code>, <code>/</code>, <code>%</code> sont plus fortes que <code>+</code> et <code>-</code>."
|
|
|
|
#. 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 ""
|
|
"Le <a cbot|type>type</a>de résultat est toujours <code><a cbot|float>float</a></code>. Si <code>a</code> ou <code>b</code> sont de type <code><a cbot|int>int</a></code>, ils sont automatiquement convertis en <code><a cbot|float>float</a></code>. \n"
|
|
"Note : cela signifie que les résultats des calculs intermédiaires ont tendance à être aussi précis que possible, la précision n'est perdue que lors de la conversion du résultat final (<code><a cbot|float>float</a></code>) en <code><a cbot|int>int</a></code>, par exemple avec l'opérateur d'assignation <code>=</code>."
|
|
|
|
#. type: \t; header
|
|
#: ../E/expr.txt:64
|
|
#, no-wrap
|
|
msgid "Real life examples"
|
|
msgstr "Exemples dans la vie réelle"
|
|
|
|
#. type: \t; header
|
|
#: ../E/expr.txt:81
|
|
#, no-wrap
|
|
msgid "Compound assignment operators"
|
|
msgstr "Opérateurs d'assignation composée"
|
|
|
|
#. 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 "En plus de l'opérateur <code>=</code> pour l'assignation de variables, il existe plusieurs opérateurs d'assignation composée."
|
|
|
|
#. 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 "Les opérateurs d'assignation composée combinent l'opérateur assignation <code>=</code> avec un autre opérateur binaire tel que <code>+</code> ou <code>-</code>. Les opérateurs d'assignation composée effectuent l'opération spécifiée par l'opérateur supplémentaire et affectent ensuite le résultat à l'opérande de gauche. Par exemple, une expression d'affectation composée telle que"
|
|
|
|
#. type: Source code
|
|
#: ../E/expr.txt:85
|
|
#, no-wrap
|
|
msgid "<code>lvalue += expression</code>"
|
|
msgstr "<code>lvalue += expression</code>"
|
|
|
|
#. type: Source code
|
|
#: ../E/expr.txt:87
|
|
#, no-wrap
|
|
msgid "<code>lvalue = lvalue + expression</code>"
|
|
msgstr "<code>lvalue = lvalue + expression</code>"
|
|
|
|
#. type: \b; header
|
|
#: ../E/expr.txt:96
|
|
#, no-wrap
|
|
msgid "String concatenation"
|
|
msgstr "Concaténation de chaînes (string)"
|
|
|
|
#. 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 "Si au moins une des valeurs utilisées avec l'opérateur <code>+</code> est un <a cbot|string>string</a>, l'opération de concaténation est effectuée. Le résultat de l'opérateur est alors une chaîne, qui est créée en joignant la chaîne de bout en bout et l'autre valeur. Si l'autre valeur n'est pas une chaîne de caractères, elle est convertie en chaîne au préalable."
|
|
|
|
#. 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 ""
|
|
"\tstring s = \"a\" + \"bc\"; // retourne \"abc\"\n"
|
|
"\tstring s = 1 + \"bc\"; // retourne \"1bc\"\n"
|
|
"\tstring s = 2.5 + \"bc\"; // retourne \"2.5bc\"\n"
|
|
"\tstring s = \"a\" + true; // retourne \"atrue\""
|
|
|
|
#. 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 "Astuce : les propriétés de l'opérateur concaténation <code>+</code> sont utiles avec la fonction <a cbot|message>message();</a>, car elle ne fonctionne pas avec d'autres types que la chaîne. Une chaîne vide peut être utilisée avec une valeur pour créer une chaîne, qui peut être passée à la fonction <a cbot|message>message();</a> :"
|
|
|
|
#. type: \b; header
|
|
#: ../E/expr.txt:177
|
|
#, no-wrap
|
|
msgid "Prefix and postfix increment- and decrement operators"
|
|
msgstr "Opérateurs préfixés et postfixés d'incrémentation et de décrémentation"
|
|
|
|
#. type: Plain text
|
|
#: ../E/expr.txt:180
|
|
#, no-wrap
|
|
msgid "For example to increment the variable <code>a</code> you can write"
|
|
msgstr "Par exemple pour pré-incrémenter la variable <code>a</code> vous pouvez écrire"
|
|
|
|
#. type: Source code
|
|
#: ../E/expr.txt:181
|
|
#, no-wrap
|
|
msgid "<c/>a++;<n/>"
|
|
msgstr "<c/>a++;<n/>"
|
|
|
|
#. type: Plain text
|
|
#: ../E/expr.txt:182
|
|
#, no-wrap
|
|
msgid "instead of"
|
|
msgstr "au lieu de"
|
|
|
|
#. type: Source code
|
|
#: ../E/expr.txt:183
|
|
#, no-wrap
|
|
msgid "<c/>a = a + 1;<n/>"
|
|
msgstr "<c/>a = a + 1;<n/>"
|
|
|
|
#. 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 "Le résultat de l'opération <code>a++</code> est la valeur de la variable <code>a</code> *avant* l'incrément. Si vous utilisez le préfixe opérateur <code>++a</code> le résultat de l'opération est la valeur de la variable <code>a</code> *après* l'incrément. Il en va de même pour l'opérateur <code>--</code> de décrémentation."
|
|
|
|
#. 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 ""
|
|
"Plus précisément, une expression est une série ordonnée d'opérations qui donnent un résultat. Les opérations se composent d'opérateurs, qui sont des <a cbot|function>fonctions</a> spéciales <code>T f(t1 x1, t2 x2, ..., tn xn)</code>, où <code>xi</code> est une valeur du type <code>ti</code> et <code>T</code> est le type de résultat. \n"
|
|
" Par exemple, <code>float +(float a, float b)</code> renvoie une somme de valeurs <code>a</code> et <code>b</code>. \n"
|
|
"Note : Les opérateurs font partie du langage CBOT et ne peuvent pas être définis dans le programme. De plus, les opérateurs ne peuvent pas être utilisés comme les <a cbot|function>fonctions</a> habituelles , elles doivent être écrites avec une notation spéciale selon l'opérateur, par exemple <code>a+b</code>."
|
|
|
|
#. 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 "Presque toutes les opérations, <a cbot>constantes</a>, <a cbot|var>variables</a>, <a cbot|function>fonctions</a> et d'autres, sauf le type <a cbot|void>void</a>, peuvent être utilisées comme valeurs."
|
|
|
|
#. 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 "Note : ce n'est peut-être pas évident au début, mais remarquez que <code>=</code> est un *opérateur* et non une instruction. Cela signifie qu'il peut être utilisé au milieu d'une autre expression ! Le résultat de <code>=<</code> est la valeur attribuée à la valeur de droite. Exemple :"
|
|
|
|
#. 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 ""
|
|
" 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 ( conversion automatique en int)\n"
|
|
" float f = 5 / 3; // f == 1.67\n"
|
|
" float f = 5 / 0; // retourne une erreur (division par zéro)\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"
|
|
" "
|
|
|
|
#. type: Source code
|
|
#: ../E/expr.txt:108
|
|
#, no-wrap
|
|
msgid ""
|
|
" float pi = 3.14;\n"
|
|
" // message(pi); // does not work\n"
|
|
" message(\"\"+pi);"
|
|
msgstr ""
|
|
" float pi = 3.14;\n"
|
|
" // message(pi); // ne fonctionnerait pas : une chaîne est attendue en paramètre de message....\n"
|
|
" message(\"\"+pi);\t//fonctionne"
|
|
|
|
#. 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 ""
|
|
" a = 2;\n"
|
|
" b = a++; \n"
|
|
" // ici, b contient 2 et a contient 3"
|
|
|
|
#. 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 ""
|
|
" a = 2;\n"
|
|
" b = ++a; \n"
|
|
" // ici, b contient 3 et a contient 3"
|
|
|
|
#. type: \b; header
|
|
#: ../E/expr.txt:137
|
|
#, no-wrap
|
|
msgid "Logical operators"
|
|
msgstr "Opérateurs logiques"
|
|
|
|
#. 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 "Les opérateurs logiques travaillent avec des valeurs de type booléennes <a cbot|bool>bool</a> et retournent toujours un <a cbot|bool>bool</a>. Elles sont principalement utilisées dans des <a cbot|cond>conditions</a>."
|
|
|
|
#. type: \b; header
|
|
#: ../E/expr.txt:150
|
|
#, no-wrap
|
|
msgid "Ternary operator"
|
|
msgstr "Opérateur ternaire"
|
|
|
|
#. 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 ""
|
|
"L'opérateur ternaire n'est rien de plus qu'un astuce syntaxique. Il est également connu sous le nom de \"inline if\". Il peut être déroutant au début, parce que sa syntaxe est un peu plus compliquée que celle des autres opérateurs. Elle peut être décrite comme suit:\n"
|
|
"<code>(condition) ? (résultat quand vrai) : (résultat quand faux)</code>\n"
|
|
"Les parenthèses ne sont pas nécessaires."
|
|
|
|
#. 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 "Tout d'abord, la condition est évaluée, puis le premier résultat est retourné si la condition est vraie, sinon le second résultat est retourné."
|
|
|
|
#. type: \t; header
|
|
#: ../E/expr.txt:157 ../E/extends.txt:4 ../E/extends.txt:65 ../E/private.txt:4 ../E/protected.txt:4 ../E/super.txt:4
|
|
#, no-wrap
|
|
msgid "Example"
|
|
msgstr "Exemple"
|
|
|
|
#. 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 "<c/>float c = ((3.0 > 2.0) ? 10.0 : -10.0); // c == 10.0<n/>"
|
|
|
|
#. 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 "Une condition est une <a cbot|expr>expression</a> spéciale qui retourne une valeur <a cbot|bool>booléenne</a>, qui peut être soit <code><a cbot|true>vraie (true)</a></code> soit <code><a cbot|false>fausse (false)</a></code>. Avec une condition, vous pouvez choisir par exemple si les instructions dans une boucle <code><a cbot|while>while</a></code> doivent être répétées à nouveau, ou si l'instruction dans un bloc <code><a cbot|if>if</a></code> doit être exécutée."
|
|
|
|
#. type: \b; header
|
|
#: ../E/expr.txt:112
|
|
#, no-wrap
|
|
msgid "Comparison operators"
|
|
msgstr "Opérateurs de comparaison"
|
|
|
|
#. 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 "Les opérateurs de comparaison travaillent avec des valeurs de type <a cbot|bool>float</a> et retournent toujours un <a cbot|bool>booléen (bool)</a>. Ils sont principalement utilisés dans les <a cbot|cond>conditions</a>."
|
|
|
|
#. 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 ""
|
|
"<code>!a </code>// inverse de <code>a</code>\n"
|
|
"<code>a && b </code>// <code>a</code> ET <code>b</code>\n"
|
|
"<code>a || b </code>// <code>a</code> OU <code>b</code>"
|
|
|
|
#. 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 ""
|
|
"<code>!false </code>// retourne vrai (true)\n"
|
|
"<code>true && false </code>// retourne faux (false) \n"
|
|
"<code>true || false </code>// retourne vrai (true)"
|
|
|
|
#. type: \b; header
|
|
#: ../E/expr.txt:160
|
|
#, no-wrap
|
|
msgid "Bitwise operators"
|
|
msgstr "Opérateurs bits à bits"
|
|
|
|
#. 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 "Les opérateurs bits à bits sont similaires aux opérateurs logiques, parce qu'ils opèrent sur des bits (qui peuvent être seulement 0 ou 1, les conditions peuvent valoir seulement une valeur faux ou vrai). Donc, en théorie, ils devraient fonctionner avec n'importe quel type de variable, parce que chaque valeur dans l'ordinateur doit être stockée sous la forme d'une séquence de bits."
|
|
|
|
#. 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 ""
|
|
"<code>a & b </code><code>a</code> ET <code>b</code>\n"
|
|
"<code>a | b </code><code>a</code> OU <code>b</code>\n"
|
|
"<code>a ^ b </code><code>a</code> OU EXCUSIF (XOR) <code>b</code>\n"
|
|
"<code>a >> b </code>décale les bits de <code>a</code> <code>b</code> fois vers la droite \n"
|
|
"<code>a << b </code>décale les bits of <code>a</code> <code>b</code> fois vers la gauche"
|
|
|
|
#. 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 ""
|
|
"<code>2 & 1 </code>retourne 0\n"
|
|
"<code>2 | 1 </code>retourne 3\n"
|
|
"<code>2 ^ 2 </code>retourne 0\n"
|
|
"<code>2 >> 1 </code>retourne 1\n"
|
|
"<code>2 << 1 </code>retourne 4"
|
|
|
|
#. 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 ""
|
|
"int [ ] a; // un tableau d'entiers\n"
|
|
"int a[12]; // un tableau de 12 entiers (! :le nombre d'éléments n'est pas modifiable a priori.)\n"
|
|
"string s[3]; // une chaîne (tableau) de 3 caractères\n"
|
|
"float xy[][]; // un tableau de réels à 2 dimensions (taille non spécifiée)"
|
|
|
|
#. type: \b; header
|
|
#: ../E/array.txt:30
|
|
#, no-wrap
|
|
msgid "Initialization syntax"
|
|
msgstr "Syntaxe d'initialisation"
|
|
|
|
#. type: Plain text
|
|
#: ../E/array.txt:31
|
|
#, no-wrap
|
|
msgid "You can initialize a new array using the following syntax:"
|
|
msgstr "Vous pouvez initialiser un nouveau tableau en utilisant la syntaxe suivante :"
|
|
|
|
#. type: Source code
|
|
#: ../E/array.txt:33
|
|
#, no-wrap
|
|
msgid "type arrayName[] = { value0, value1, value2, ..., valueN };"
|
|
msgstr "type arrayName[] = { value0, value1, value2, ..., valueN };"
|
|
|
|
#. 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 ""
|
|
"int numbers[] = { 10, 20, 30 };\n"
|
|
"MyClass objects[] = { new MyClass(1), new MyClass(2) };"
|
|
|
|
#. 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 "Avec l'instruction <c/><a cbot|radar>radar</a>();<n/>, vous pouvez rechercher des objets comme des <a object|mother>enemis</a>, des robots, des bâtiments ou des matières premières."
|
|
|
|
#. 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 "<c/><a cbot|radarall>radarall</a>();<n/>, <a cbot>programmation</a>, <a cbot|type>types</a> et <a cbot|category>catégories</a>."
|
|
|
|
#. type: \b; header
|
|
#: ../E/radarall.txt:1
|
|
#, no-wrap
|
|
msgid "Instruction <code>radarall</code>"
|
|
msgstr "Instruction <code>radarall</code>"
|
|
|
|
#. 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 "<c/>radarall();<n/> est une amélioration de la fonction <c/><a cbot|radar>radar</a>();<n/> -- il détecte tous les objets correspondant au critère donné."
|
|
|
|
#. type: \b; header
|
|
#: ../E/radarall.txt:4
|
|
#, no-wrap
|
|
msgid "Example<c/>"
|
|
msgstr "Exemple<c/>"
|
|
|
|
#. type: Source code
|
|
#: ../E/radarall.txt:13
|
|
#, no-wrap
|
|
msgid "<c/>radarall ( cat, angle, focus, min, max, sens, filter );<n/>"
|
|
msgstr "<c/>radarall ( cat, angle, focus, min, max, sens, filter );<n/>"
|
|
|
|
#. 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 "La fonction fonctionne de manière générale de la même manière que la fonction <c/><a cbot|radar>radar</a>();<n/>, la seule différence étant qu'elle renvoie un <a cbot|array>tableau</a> d'<a cbot|object>objects</a> plutôt qu'un seul objet. Si aucun objet n'est trouvé, la \"non-valeur\" <code><a cbot|null>null</a></code> est retournée."
|
|
|
|
#. 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 "L'ordre des objets dans le tableau retourné est trié par distance et dépend du paramètre <code>sens</code>. Le premier objet du tableau est l'objet qui serait renvoyé par la fonction <c/>radar();<n/> appelée avec exactement les mêmes paramètres."
|
|
|
|
#. 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 "<c/><a cbot|radar>radar</a>();<n/>, , <a cbot>programmation</a>, <a cbot|type>types</a> et <a cbot|category>catégories</a>."
|
|
|
|
#. type: Plain text
|
|
#: ../E/for.txt:11
|
|
#, no-wrap
|
|
msgid "This set of instructions is executed before the first loop instance."
|
|
msgstr "Cet ensemble d'instructions est exécuté avant la première instance de boucle."
|
|
|
|
#. 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 "Cet ensemble d'instructions est exécuté à la fin de chaque instance de la boucle. "
|
|
|
|
#. type: \t; header
|
|
#: ../E/for.txt:38
|
|
#, no-wrap
|
|
msgid "Executing more instructions"
|
|
msgstr "Exécution d'autres instructions"
|
|
|
|
#. 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 "Dans la partie <code>avant</code> et <code>fin</code>d'une boucle <code>pour</code>vous pouvez spécifier plus d'une instruction en utilisant des virgules. Exemple :"
|
|
|
|
#. 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 "L'affichage du code ci-dessus est <code>1 2 2 1 1</code>."
|
|
|
|
#. 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 ""
|
|
"object[] items = radarall(PowerCell);\n"
|
|
"for (int i = 0; i < sizeof(items); ++i)\n"
|
|
"{\n"
|
|
" message(items[i].id);\n"
|
|
"}"
|
|
|
|
#. type: Plain text
|
|
#: ../E/category.txt:103
|
|
#, 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>PowerSpot</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 ""
|
|
" <code><a object|flag>BlueFlag</a> </code>Drapeau bleu\n"
|
|
" <code><a object|flag>RedFlag</a> </code>Drapeau rouge\n"
|
|
" <code><a object|flag>GreenFlag</a> </code>Drapeau vert\n"
|
|
" <code><a object|flag>YellowFlag</a> </code>Drapeau jaune\n"
|
|
" <code><a object|flag>VioletFlag</a> </code>Drapeau violet\n"
|
|
" <code><a object|waypoint>WayPoint</a> </code>Point de passage\n"
|
|
" <code><a object|target2>Target2</a> </code>Point de passage aérien\n"
|
|
" <code><a object|enerspot>PowerSpot</a> </code>Énergie sous-terraine\n"
|
|
" <code><a object|stonspot>TitaniumSpot</a> </code>Strate de Titane\n"
|
|
" <code><a object|uranspot>UraniumSpot</a> </code>Strate d'Uranium"
|
|
|
|
#. 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 ""
|
|
"<button 176/> <code><a object|huston>Houston</a> </code>Contrôle mission de Huston\n"
|
|
"<button 171/> <code><a object|base>SpaceShip</a> </code>Vaisseau spacial\n"
|
|
"<button 160/> <code><a object|factory>BotFactory</a> </code>Usine de robots\n"
|
|
"<button 163/> <code><a object|research>ResearchCenter</a> </code>Centre de recherches\n"
|
|
"<button 168/> <code><a object|radar>RadarStation</a> </code>Radar\n"
|
|
"<button 172/> <code><a object|exchange>ExchangePost</a> </code>Station relais\n"
|
|
"<button 169/> <code><a object|repair>RepairCenter</a> </code>Centre de réparations\n"
|
|
"<button 165/> <code><a object|tower>DefenseTower</a> </code>Tour de défence\n"
|
|
"<button 166/> <code><a object|labo>AutoLab</a> </code>Laboratoire mobile d'analyses\n"
|
|
"<button 164/> <code><a object|station>PowerStation</a> </code>Station de recharges\n"
|
|
"<button 167/> <code><a object|energy>PowerPlant</a> </code>Usine de batteries\n"
|
|
"<button 170/> <code><a object|nuclear>NuclearPlant</a> </code>Centrale nucléaire\n"
|
|
"<button 162/> <code><a object|convert>Converter</a> </code>Raffinerie\n"
|
|
"<button 161/> <code><a object|derrick>Derrick</a> </code>Derrick\n"
|
|
"<button 174/> <code><a object|captor>PowerCaptor</a> </code>Parafoudre\n"
|
|
"<button 175/> <code><a object|safe>Vault</a> </code>Coffre\n"
|
|
" <code><a object|start>StartArea</a> </code>Plateau de départ\n"
|
|
" <code><a object|goal>GoalArea</a> </code>Plateau d'arrivée\n"
|
|
" <code><a object|target1>Target1</a> </code>Objectif volant\n"
|
|
" <code><a object|nest>AlienNest</a> </code>Nid alien"
|
|
|
|
#. type: Plain text
|
|
#: ../E/class.txt:10
|
|
#, no-wrap
|
|
msgid "Classes can be only <a cbot|public>public</a>. This means that they can be used by all bots in a mission."
|
|
msgstr "Les classes ne peuvent être que <a cbot|public>publiques</a>. Cela signifie qu'elles peuvent être utilisées par tous les robots dans une mission."
|
|
|
|
#. type: \b; header
|
|
#: ../E/class.txt:12
|
|
#, no-wrap
|
|
msgid "Class Members"
|
|
msgstr "Membre des classes"
|
|
|
|
#. type: Plain text
|
|
#: ../E/class.txt:13
|
|
#, no-wrap
|
|
msgid "Class members are fields (<a cbot|var>variables</a>) and methods (<a cbot|function>functions</a>)."
|
|
msgstr "Les membres de la classe sont des champs (<a cbot|var>variables</a>) et des méthodes (<a cbot|function>fonctions</a>)."
|
|
|
|
#. type: Plain text
|
|
#: ../E/class.txt:15
|
|
#, no-wrap
|
|
msgid "For example, the following class dubbed <code>MyClass</code> contains 4 fields (<code>a</code>, <code>b</code>, <code>x</code> and <code>s</code>) and one method (<code>MyFunction</code>)."
|
|
msgstr "Par exemple, la classe suivante intitulée <code>MyClass</code> contient 4 champs (<code>a</code>, <code>b</code>, <code>x</code> et <code>s</code>) et une méthode (<code>MyFunction</code>)."
|
|
|
|
#. type: Source code
|
|
#: ../E/class.txt:17
|
|
#, 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 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"
|
|
"}"
|
|
|
|
#. type: \t; header
|
|
#: ../E/class.txt:55
|
|
#, no-wrap
|
|
msgid "Member Initialization"
|
|
msgstr "Initialisation de variable membre"
|
|
|
|
#. type: Plain text
|
|
#: ../E/class.txt:60
|
|
#, no-wrap
|
|
msgid "Example:<c/>"
|
|
msgstr "Exemple:<c/>"
|
|
|
|
#. type: Source code
|
|
#: ../E/class.txt:61
|
|
#, 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 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"
|
|
"}"
|
|
|
|
#. type: Plain text
|
|
#: ../E/class.txt:76
|
|
#, no-wrap
|
|
msgid "As the names of the parameters of the second constructor are the same as the names of the two members <code>a</code> and <code>b</code>, we must use the <code><a cbot|this>this</a></code> <a cbot|pointer>reference</a> to avoid confusion with the parameters' names."
|
|
msgstr "Comme les noms des paramètres du second constructeur sont les mêmes que les noms des deux membres <code>a</code> et <code>b</code>, nous devons utiliser la <a cbot|pointer>référence</a> <code><a cbot|this>this</a></code> pour éviter la confusion avec les noms des paramètres."
|
|
|
|
#. type: \b; header
|
|
#: ../E/class.txt:78
|
|
#, no-wrap
|
|
msgid "Object Creation"
|
|
msgstr "Création d'objet"
|
|
|
|
#. type: Plain text
|
|
#: ../E/class.txt:79
|
|
#, no-wrap
|
|
msgid "You can create objects of type <code>YourClass</code> using the <code><a cbot|new>new</a></code> keyword. Example:"
|
|
msgstr "Vous pouvez créer des objets de type <code>VotreClasse</code>en utilisant le mot-clé <code><a cbot|new>new</a></code>. Exemple :"
|
|
|
|
#. type: \b; header
|
|
#: ../E/class.txt:90
|
|
#, no-wrap
|
|
msgid "Object Destruction"
|
|
msgstr "Destruction d'objet"
|
|
|
|
#. type: \b; header
|
|
#: ../E/class.txt:114
|
|
#, no-wrap
|
|
msgid "Passing Objects to Functions"
|
|
msgstr "Passage d'objet aux fonctions"
|
|
|
|
#. type: Plain text
|
|
#: ../E/class.txt:115
|
|
#, no-wrap
|
|
msgid "Objects in CBOT are passed by <a cbot|pointer>reference</a>. This means that when an object is passed to a <a cbot|function>function</a>, the function receives a copy of a pointer to the instance, not a copy of the object, so any modifications on the object will be visible outside of the function."
|
|
msgstr "Les objets dans CBOT sont passés par <a cbot|pointer>référence (:la zone où il est stocké en mémoire)</a>. Cela signifie que lorsqu'un objet est passé à une fonction <a cbot|function>fonction</a>, la fonction reçoit une copie d'un pointeur vers l'instance, pas une copie de l'objet, donc toute modification sur l'objet aura un impact en dehors de la fonction, c'est l'objet réellement qui est modifié."
|
|
|
|
#. type: \b; header
|
|
#: ../E/class.txt:117
|
|
#, no-wrap
|
|
msgid "Inheritance"
|
|
msgstr "Héritage"
|
|
|
|
#. type: Plain text
|
|
#: ../E/class.txt:118
|
|
#, no-wrap
|
|
msgid "A class can inherit public and protected members of another class by using the <code><a cbot|extends>extends</a></code> keyword."
|
|
msgstr "Une classe peut hériter des membres publiques et protégés d'une autre classe en utilisant le mot-clé <code><a cbot|extends>extends</a></code>."
|
|
|
|
#. type: Plain text
|
|
#: ../E/class.txt:2
|
|
#, no-wrap
|
|
msgid "This keyword allows you to create a class definition by using the following syntax:"
|
|
msgstr "Ce mot-clé vous permet de créer une définition de classe en utilisant la syntaxe suivante :"
|
|
|
|
#. type: \t; header
|
|
#: ../E/class.txt:9
|
|
#, no-wrap
|
|
msgid "All Classes Are Public"
|
|
msgstr "Toutes les classes sont publiques"
|
|
|
|
#. type: \t; header
|
|
#: ../E/class.txt:52
|
|
#, no-wrap
|
|
msgid "Class Members Modifiers"
|
|
msgstr "Modification des membres de classe"
|
|
|
|
#. type: \t; header
|
|
#: ../E/class.txt:75
|
|
#, no-wrap
|
|
msgid "Using <code><a cbot|this>this</a></code>"
|
|
msgstr "En utilisant<code><a cbot|this>this</a></code>"
|
|
|
|
#. type: Source code
|
|
#: ../E/class.txt:81
|
|
#, no-wrap
|
|
msgid ""
|
|
"extern void object::Test()\n"
|
|
"{\n"
|
|
"\tMyClass object1(); // Call default constructor (without parameters)\n"
|
|
"\tMyClass object2(4, 5); // Call constructor with two int parameters\n"
|
|
"\tMyClass object3; // No constructor called, object3 == null\n"
|
|
"\tobject3 = new MyClass(); // We call constructor now, object3 != null\n"
|
|
"}"
|
|
msgstr ""
|
|
"extern void object::Test()\n"
|
|
"{\n"
|
|
"\tMyClass object1(); // Appelle le constructeur par défaut (sans paramètre)\n"
|
|
"\tMyClass object2(4, 5); // Appelle le constructeur avec deux paramètres entiers\n"
|
|
"\tMyClass object3; // Pas de constructeur appelé, l'object object3 vaut \"null\"\n"
|
|
"\tobject3 = new MyClass(); // Maintenant, initialise object3 avec le constructeur par défaut, ses membres existent et sont initialisés\n"
|
|
"}"
|
|
|
|
#. type: Plain text
|
|
#: ../E/class.txt:91
|
|
#, no-wrap
|
|
msgid "You can also define a destructor. This must be a <code><a cbot|void>void</a></code> fonction without parameters, which has the same name as the class but prefixed with the <code>~</code> character. The destructor is called automatically as soon as the class instance is no more referenced by anyone. Example:"
|
|
msgstr "Vous pouvez également définir un destructeur. Il doit s'agir d'une fonction <code><a cbot|void>void</a></code> sans paramètres, qui porte le même nom que la classe mais préfixé par le caractère <code>~</code>. Le destructeur est appelé automatiquement dès que l'instance de classe n'est plus référencée, cad n'est plus sensée exister. Exemple :"
|
|
|
|
#. type: Source code
|
|
#: ../E/class.txt:93
|
|
#, 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"
|
|
"extern void object::Test()\n"
|
|
"{\n"
|
|
"\t // counter == 0\n"
|
|
"\tMyClass item1( ); // counter == 1\n"
|
|
"\tMyClass item2( ); // counter == 2\n"
|
|
"\titem1 = null; // counter == 1\n"
|
|
"}\n"
|
|
"// counter == 0"
|
|
msgstr ""
|
|
"public class MyClass\n"
|
|
"{\n"
|
|
"\tstatic private int counter = 0; // compteur d'instances\n"
|
|
"\tvoid MyClass( )\n"
|
|
"\t{\n"
|
|
"\t\tcounter++; // une nouvelle instance\n"
|
|
"\t}\n"
|
|
"\tvoid ~MyClass( )\n"
|
|
"\t{\n"
|
|
"\t\tcounter--; // une instance en moins\n"
|
|
"\t}\n"
|
|
"}\n"
|
|
"extern void object::Test()\n"
|
|
"{\n"
|
|
"\t // counter == 0\n"
|
|
"\tMyClass item1( ); // counter == 1\n"
|
|
"\tMyClass item2( ); // counter == 2\n"
|
|
"\titem1 = null; // counter == 1\n"
|
|
"}\n"
|
|
"// counter == 0"
|
|
|
|
#. type: \b; header
|
|
#: ../E/class.txt:28
|
|
#, no-wrap
|
|
msgid "Accessing Class Members"
|
|
msgstr "Accès aux membres d'une classe"
|
|
|
|
#. type: Plain text
|
|
#: ../E/class.txt:29
|
|
#, no-wrap
|
|
msgid "Class members can be accessed outside of the class definition by using the <code>.</code> operator. Example:"
|
|
msgstr "Il est possible d'accéder aux membres de la classe en dehors de leur définition en utilisant l'opérateur <code>.</code>. Exemple :"
|
|
|
|
#. type: Plain text
|
|
#: ../E/class.txt:50
|
|
#, no-wrap
|
|
msgid "Class members are <a cbot|public>public</a> by default, which means that they are accessible outside of the class definition. They can also be declared as <code><a cbot|private>private</a></code> or <code><a cbot|protected>protected</a></code>. Such members can only be accessed inside of the class definition."
|
|
msgstr "Dans CBOT, les membres du classe sont <a cbot|public>publics (public)</a> par défaut, ce qui signifie qu'ils sont accessibles depuis l'exérieur de la classe. Ils peuvent également -et c'est conseillé- être déclarés comme <code><a cbot|private>privés (private)</a></code> ou <code><a cbot|protected>protégé (protected)</a></code>. Ces membres ne sont alors accessibles qu'à l'intérieur de la définition de classe."
|
|
|
|
#. type: Plain text
|
|
#: ../E/class.txt:53
|
|
#, no-wrap
|
|
msgid "Fields and methods can also be declared as <code><a cbot|static>static</a></code>. Methods can be additionaly declared as <code><a cbot|synchro>synchronized</a></code>."
|
|
msgstr "Les champs et méthodes peuvent également être déclarés comme <code><a cbot|static>statique (static)</a></code>. Les méthodes peuvent être déclarées en plus comme <code><a cbot|synchro>synchronisées (synchronized)</a></code>."
|
|
|
|
#. type: Plain text
|
|
#: ../E/class.txt:58
|
|
#, no-wrap
|
|
msgid "Another way of initiliazing fields is by defining a constructor which is a special method having the same name as the class. This method will be called automatically at <a cbot|new>creation</a> time of a class instance. Constructors can be <a cbot|function>overloaded</a>."
|
|
msgstr "Une autre façon d'initialiser les champs est de définir un constructeur qui est une méthode spéciale ayant le même nom que la classe. Cette méthode sera appelée automatiquement à chaque <a cbot|new>création</a> d'une instance de la classe. Les constructeurs peuvent être <a cbot|function>surchargés</a>."
|
|
|
|
#. type: Source code
|
|
#: ../E/class.txt:31
|
|
#, no-wrap
|
|
msgid ""
|
|
"public class MyClass\n"
|
|
"{\n"
|
|
"\tint myField = 0;\n"
|
|
"\tint MyFunction()\n"
|
|
"\t{\n"
|
|
"\t\treturn myField * 2;\n"
|
|
"\t}\n"
|
|
"}\n"
|
|
"\n"
|
|
"extern void object::Test()\n"
|
|
"{\n"
|
|
"\tMyClass myObject();\n"
|
|
"\tmyObject.myField = 10;\n"
|
|
"\tmessage(myObject.MyFunction()); // 20\n"
|
|
"\tMyClass mySecondObject();\n"
|
|
"\tmySecondObject.myField = myObject.myField - 2;\n"
|
|
"\tmessage(mySecondObject.MyFunction()); // 16\n"
|
|
"}"
|
|
msgstr ""
|
|
"public class MyClass\n"
|
|
"{\n"
|
|
"\tint myField = 0;\n"
|
|
"\tint MyFunction()\t{\n"
|
|
"\t\treturn myField * 2;\n"
|
|
"\t}\n"
|
|
"}\n"
|
|
"\n"
|
|
"extern void object::Test()\n"
|
|
"{\n"
|
|
"\tMyClass myObject();\n"
|
|
"\tmyObject.myField = 10;\n"
|
|
"\tmessage(myObject.MyFunction()); // 20\n"
|
|
"\tMyClass mySecondObject();\n"
|
|
"\tmySecondObject.myField = myObject.myField - 2;\n"
|
|
"\tmessage(mySecondObject.MyFunction()); // 16\n"
|
|
"}"
|
|
|
|
#. type: Plain text
|
|
#: ../E/class.txt:121
|
|
#, no-wrap
|
|
msgid ""
|
|
"<code><a cbot|public>public</a></code>, <code><a cbot|private>private</a></code>, <code><a cbot|protected>protected</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>, <code><a cbot|super>super</a></code>, <code><a cbot|extends>extends</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|protected>protected</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>, <code><a cbot|super>super</a></code>, <code><a cbot|extends>extends</a></code>\n"
|
|
"<a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|category>catégories</a>."
|
|
|
|
#. type: \b; header
|
|
#: ../E/protected.txt:1
|
|
#, no-wrap
|
|
msgid "Keyword <code>protected</code>"
|
|
msgstr "Keyword <code>protected</code>"
|
|
|
|
#. type: Plain text
|
|
#: ../E/protected.txt:2
|
|
#, no-wrap
|
|
msgid "This is an access modifier for <a cbot|class>class</a> members. Protected class members can be accessed in a child class, but they can't be accessed outside of classes definitions being part of the same inheritance tree (see the <code><a cbot|extends>extends</a></code> keyword)."
|
|
msgstr "Il s'agit d'un modificateur d'accès pour <a cbot|class>membres de classe</a>. Les membres de classe protégés sont accessibles dans la classe elle-même et dans ses classes enfant, mais ils ne sont pas accessibles en dehors des définitions de classes faisant partie de la même arborescence d'héritage (voir le mot clef <code><a cbot|extends>extends</a></code>)."
|
|
|
|
#. type: Source code
|
|
#: ../E/protected.txt:6
|
|
#, no-wrap
|
|
msgid ""
|
|
"public class Parent\n"
|
|
"{\n"
|
|
"\tprotected int field = 0;\n"
|
|
"}\n"
|
|
"\n"
|
|
"public class Child extends Parent\n"
|
|
"{\n"
|
|
"\tvoid Print()\n"
|
|
"\t{\n"
|
|
"\t\tmessage(field);\n"
|
|
"\t}\n"
|
|
"}\n"
|
|
"\n"
|
|
"extern void object::Test()\n"
|
|
"{\n"
|
|
"\tChild child();\n"
|
|
"\tchild.Print(); // 0\n"
|
|
"\t//child.field = 1; // Error!\n"
|
|
"}"
|
|
msgstr ""
|
|
"public class Mere\n"
|
|
"{\n"
|
|
"\tprotected int champProtege = 0;\n"
|
|
"}\n"
|
|
"\n"
|
|
"public class Fille extends Mere\n"
|
|
"{\n"
|
|
"\tvoid Print()\n"
|
|
"\t{\n"
|
|
"\t\tmessage(champProtege);\n"
|
|
"\t}\n"
|
|
"}\n"
|
|
"\n"
|
|
"extern void object::Test()\n"
|
|
"{\n"
|
|
"\tFille enfant();\n"
|
|
"\tenfant.Print(); // 0\n"
|
|
"\t//enfant.champProtege = 1; // Erreur !\n"
|
|
"}"
|
|
|
|
#. type: Plain text
|
|
#: ../E/private.txt:2
|
|
#, no-wrap
|
|
msgid "This is an access modifier for <a cbot|class>class</a> members. Private members are not accessible outside of the class definition."
|
|
msgstr "Il s'agit d'un modificateur d'accès pour <a cbot|class>membres de classe</a>. Les membres privés ne sont pas accessibles en dehors de la définition de la classe."
|
|
|
|
#. type: Plain text
|
|
#: ../E/private.txt:20
|
|
#, no-wrap
|
|
msgid ""
|
|
"<code><a cbot|class>class</a></code>, <code><a cbot|public>public</a></code>, <code><a cbot|protected>protected</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>, <code><a cbot|protected>protected</a></code>\n"
|
|
"<a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|category>catégories</a>."
|
|
|
|
#. type: Plain text
|
|
#: ../E/public.txt:34
|
|
#, no-wrap
|
|
msgid "<code>public</code> is also an access modifier for <a cbot|class>class</a> members, which is the default one. Public members can be accessed from outside of the class definition."
|
|
msgstr "<code>public</code> est aussi un modificateur d'accès pour les <a cbot|class>membres de classe</a>, c'est celui par défaut. Il est possible d'accéder aux membres publics en dehors de la définition de la classe. (d'autres langages sont protectifs et par défaut ont leurs membres et méthodes private par défaut)"
|
|
|
|
#. 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|protected>protected</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>, <code><a cbot|protected>protected</a></code>, <code><a cbot|function>fonctions</a></code>\n"
|
|
"<a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|category>catégories</a>."
|
|
|
|
#. type: Plain text
|
|
#: ../E/protected.txt:27
|
|
#, no-wrap
|
|
msgid ""
|
|
"<code><a cbot|class>class</a></code>, <code><a cbot|public>public</a></code>, <code><a cbot|private>private</a></code>, <code><a cbot|extends>extends</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>, <code><a cbot|private>private</a></code>, <code><a cbot|extends>extends</a></code>\n"
|
|
"<a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|category>catégories</a>."
|
|
|
|
#. type: \b; header
|
|
#: ../E/super.txt:1
|
|
#, no-wrap
|
|
msgid "Keyword <code>super</code>"
|
|
msgstr "Keyword <code>super</code>"
|
|
|
|
#. type: Plain text
|
|
#: ../E/super.txt:46
|
|
#, no-wrap
|
|
msgid ""
|
|
"<code><a cbot|class>class</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|class>class</a></code>, <code><a cbot|this>this</a></code>\n"
|
|
"<a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|category>catégories</a>."
|
|
|
|
#. type: Plain text
|
|
#: ../E/this.txt:53
|
|
#, no-wrap
|
|
msgid ""
|
|
"<code><a cbot|class>class</a></code>, <code><a cbot|super>super</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|super>super</a></code>\n"
|
|
" <a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|category>catégories</a>."
|
|
|
|
#. type: \b; header
|
|
#: ../E/extends.txt:1
|
|
#, no-wrap
|
|
msgid "Keyword <code>extends</code>"
|
|
msgstr "Keyword <code>extends</code>"
|
|
|
|
#. type: \b; header
|
|
#: ../E/extends.txt:30
|
|
#, no-wrap
|
|
msgid "Inherited Members"
|
|
msgstr "Membres hérités"
|
|
|
|
#. type: Plain text
|
|
#: ../E/extends.txt:31
|
|
#, no-wrap
|
|
msgid "Only <code><a cbot|public>public</a></code> and <code><a cbot|protected>protected</a></code> members are inherited. <code><a cbot|private>private</a></code> members are directly inaccessible even for a child, although they can be accessed indirectly through inherited methods."
|
|
msgstr "Seuls les membres <code><a cbot|public>publics</a></code> et <code><a cbot|protected>protégés</a></code> sont hérités. Les membres <code><a cbot|private>privés</a></code> sont inaccessibles directement même pour un enfant, bien qu'ils puissent être accessibles indirectement par des méthodes héritées."
|
|
|
|
#. type: Plain text
|
|
#: ../E/extends.txt:33
|
|
#, no-wrap
|
|
msgid "Constructors and destructors are not inherited, however, they can be overriden."
|
|
msgstr "Les constructeurs et les destructeurs ne sont pas hérités, cependant, ils peuvent être surchargés (remplacés)."
|
|
|
|
#. type: \b; header
|
|
#: ../E/extends.txt:35
|
|
#, no-wrap
|
|
msgid "Method Overriding"
|
|
msgstr "Surcharges de méthode"
|
|
|
|
#. type: Plain text
|
|
#: ../E/extends.txt:36
|
|
#, no-wrap
|
|
msgid "Inherited methods can be overriden (redefined) in the child class definition. Example:"
|
|
msgstr "Les méthodes héritées peuvent être redéfinies dans la définition de classe enfant. Exemple :"
|
|
|
|
#. type: Source code
|
|
#: ../E/extends.txt:38
|
|
#, no-wrap
|
|
msgid ""
|
|
"public class Parent\n"
|
|
"{\n"
|
|
"\tvoid foo()\n"
|
|
"\t{\n"
|
|
"\t\tmessage(\"foo\");\n"
|
|
"\t}\n"
|
|
"}\n"
|
|
"\n"
|
|
"public class Child extends Parent\n"
|
|
"{\n"
|
|
"\tvoid foo()\n"
|
|
"\t{\n"
|
|
"\t\tmessage(\"bar\");\n"
|
|
"\t}\n"
|
|
"}\n"
|
|
"\n"
|
|
"extern void object::Test()\n"
|
|
"{\n"
|
|
"\tChild child();\n"
|
|
"\tchild.foo(); // Will show \"bar\"\n"
|
|
"}"
|
|
msgstr ""
|
|
"public class Parent\n"
|
|
"{\n"
|
|
"\tvoid foo()\n"
|
|
"\t{\n"
|
|
"\t\tmessage(\"foo\");\n"
|
|
"\t}\n"
|
|
"}\n"
|
|
"\n"
|
|
"public class Child extends Parent\n"
|
|
"{\n"
|
|
"\tvoid foo()\n"
|
|
"\t{\n"
|
|
"\t\tmessage(\"bar\");\n"
|
|
"\t}\n"
|
|
"}\n"
|
|
"\n"
|
|
"extern void object::Test()\n"
|
|
"{\n"
|
|
"\tChild child();\n"
|
|
"\tchild.foo(); // Affichera : \"bar\"\n"
|
|
"}"
|
|
|
|
#. type: \b; header
|
|
#: ../E/extends.txt:62
|
|
#, no-wrap
|
|
msgid "Polymorphism"
|
|
msgstr "Polymorphisme"
|
|
|
|
#. type: Plain text
|
|
#: ../E/extends.txt:63
|
|
#, no-wrap
|
|
msgid "<code><a cbot|pointer>Reference</a></code> of type Parent can point to an object of type Child. However, such a pointer can't be used to access a child member. In order to access a child member, it must be assured that the Parent reference really points to a Child object. If that's the case, it can be safely copied to a pointer of type Child, which has access to the child members."
|
|
msgstr ""
|
|
"Les <code><a cbot|pointer>références</a></code> de type Parent peuvent pointer vers un objet de type enfant.\n"
|
|
"Cependant, un tel pointeur ne peut pas être utilisé pour accéder à un membre enfant. Pour accéder à un enfant membre, il faut s'assurer que la référence à Parent pointe réellement vers un objet Enfant. Si c'est le cas, il peut être copié en toute sécurité sur un pointeur de type Child, qui a accès aux membres de l'enfant."
|
|
|
|
#. type: Source code
|
|
#: ../E/extends.txt:67
|
|
#, no-wrap
|
|
msgid ""
|
|
"public class Parent\n"
|
|
"{\n"
|
|
"\tvoid foo()\n"
|
|
"\t{\n"
|
|
"\t\tmessage(\"foo\");\n"
|
|
"\t}\n"
|
|
"}\n"
|
|
"\n"
|
|
"public class Child extends Parent\n"
|
|
"{\n"
|
|
"\tvoid foo()\n"
|
|
"\t{\n"
|
|
"\t\tmessage(\"bar\");\n"
|
|
"\t}\n"
|
|
"\tvoid bar()\n"
|
|
"\t{\n"
|
|
"\t\tmessage(\"foo bar\");\n"
|
|
"\t}\n"
|
|
"}\n"
|
|
"\n"
|
|
"extern void object::Test()\n"
|
|
"{\n"
|
|
"\tParent people[2];\n"
|
|
"\tpeople[0] = new Parent();\n"
|
|
"\tpeople[1] = new Child();\n"
|
|
"\tfor (int i = 0; i < 2; ++i)\n"
|
|
"\t{\n"
|
|
"\t\tpeople[i].foo();\n"
|
|
"\t}\n"
|
|
"\t//people[1].bar(); // Error\n"
|
|
"\tChild child = people[1];\n"
|
|
"\tchild.bar(); // OK\n"
|
|
"}"
|
|
msgstr ""
|
|
"public class Parent\n"
|
|
"{\n"
|
|
"\tvoid foo()\n"
|
|
"\t{\n"
|
|
"\t\tmessage(\"foo\");\n"
|
|
"\t}\n"
|
|
"}\n"
|
|
"\n"
|
|
"public class Child extends Parent\n"
|
|
"{\n"
|
|
"\tvoid foo()\n"
|
|
"\t{\n"
|
|
"\t\tmessage(\"bar\");\n"
|
|
"\t}\n"
|
|
"\tvoid bar()\n"
|
|
"\t{\n"
|
|
"\t\tmessage(\"foo bar\");\n"
|
|
"\t}\n"
|
|
"}\n"
|
|
"\n"
|
|
"extern void object::Test()\n"
|
|
"{\n"
|
|
"\tParent people[2];\n"
|
|
"\tpeople[0] = new Parent();\n"
|
|
"\tpeople[1] = new Child();\n"
|
|
"\tfor (int i = 0; i < 2; ++i)\n"
|
|
"\t{\n"
|
|
"\t\tpeople[i].foo();\n"
|
|
"\t}\n"
|
|
"\t//people[1].bar(); // Erreur\n"
|
|
"\tChild child = people[1];\n"
|
|
"\tchild.bar(); // OK\n"
|
|
"}"
|
|
|
|
#. type: \b; header
|
|
#: ../E/extends.txt:102
|
|
#, no-wrap
|
|
msgid "Multiple Inheritance"
|
|
msgstr "Héritage multiple"
|
|
|
|
#. type: Plain text
|
|
#: ../E/extends.txt:103
|
|
#, no-wrap
|
|
msgid "A child cannot have multiple parents, however, a parent can have many children."
|
|
msgstr "Un enfant ne peut pas avoir plusieurs parents, mais un parent peut avoir plusieurs enfants."
|
|
|
|
#. type: Plain text
|
|
#: ../E/extends.txt:106
|
|
#, no-wrap
|
|
msgid ""
|
|
"<code><a cbot|class>class</a></code>, <code><a cbot|public>public</a></code>, <code><a cbot|private>private</a></code>, <code><a cbot|protected>protected</a></code>, <code><a cbot|new>new</a></code>, <code><a cbot|pointer>reference</a></code>, <code><a cbot|this>this</a></code>, <code><a cbot|super>super</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>, <code><a cbot|private>private</a></code>, <code><a cbot|protected>protected</a></code>, <code><a cbot|new>new</a></code>, <code><a cbot|pointer>reference</a></code>, <code><a cbot|this>this</a></code>, <code><a cbot|super>super</a></code>\n"
|
|
"<a cbot>Programmation</a>, <a cbot|type>types</a> et <a cbot|category>catégories</a>."
|
|
|
|
#. type: Plain text
|
|
#: ../E/super.txt:2
|
|
#, no-wrap
|
|
msgid "This keyword is similar to <code><a cbot|this>this</a></code>, however, it grants access to methods from the parent class (see the <code><a cbot|extends>extends</a></code> keyword), which is especially useful for method overriding."
|
|
msgstr "Ce mot-clé est similaire à <code><a cbot|this>this</a></code>, mais il donne accès aux méthodes de la classe mère (voir le mot-clé <code><a cbot|extends>extends</a></code>), qui est particulièrement utile pour remplacer une méthode."
|
|
|
|
#. type: Source code
|
|
#: ../E/super.txt:6
|
|
#, no-wrap
|
|
msgid ""
|
|
"public class Parent\n"
|
|
"{\n"
|
|
"\tprotected int field;\n"
|
|
"\t\n"
|
|
"\tvoid Parent()\n"
|
|
"\t{\n"
|
|
"\t\tfield = 0;\n"
|
|
"\t}\n"
|
|
"\t\n"
|
|
"\tvoid Print()\n"
|
|
"\t{\n"
|
|
"\t\tmessage(\"Parent's field: \" + field);\n"
|
|
"\t}\n"
|
|
"}\n"
|
|
"\n"
|
|
"public class Child extends Parent\n"
|
|
"{\n"
|
|
"\tprivate int childsField;\n"
|
|
"\t\n"
|
|
"\tvoid Child()\n"
|
|
"\t{\n"
|
|
"\t\tsuper.Parent();\n"
|
|
"\t\tchildsField = field + 1;\n"
|
|
"\t}\n"
|
|
"\t\n"
|
|
"\tvoid Print()\n"
|
|
"\t{\n"
|
|
"\t\tsuper.Print();\n"
|
|
"\t\tmessage(\"Child's field: \" + childsField);\n"
|
|
"\t}\n"
|
|
"}\n"
|
|
"\n"
|
|
"extern void object::Test()\n"
|
|
"{\n"
|
|
"\tChild child();\n"
|
|
"\tchild.Print(); // Will show both 0 and 1\n"
|
|
"}"
|
|
msgstr ""
|
|
"public class Mere\n"
|
|
"{\n"
|
|
"\tprotected int field;\n"
|
|
"\t\n"
|
|
"\tvoid Mere()\n"
|
|
"\t{\n"
|
|
"\t\tfield = 0;\n"
|
|
"\t}\n"
|
|
"\t\n"
|
|
"\tvoid Print()\n"
|
|
"\t{\n"
|
|
"\t\tmessage(\"Champs mère: \" + field);\n"
|
|
"\t}\n"
|
|
"}\n"
|
|
"\n"
|
|
"public class Fille extends Mere\n"
|
|
"{\n"
|
|
"\tprivate int childsField;\n"
|
|
"\t\n"
|
|
"\tvoid Fille()\n"
|
|
"\t{\n"
|
|
"\t\tsuper.Mere();\n"
|
|
"\t\tchildsField = field + 1;\n"
|
|
"\t}\n"
|
|
"\t\n"
|
|
"\tvoid Print()\n"
|
|
"\t{\n"
|
|
"\t\tsuper.Print();\n"
|
|
"\t\tmessage(\"Champs fille : \" + childsField);\n"
|
|
"\t}\n"
|
|
"}\n"
|
|
"\n"
|
|
"extern void object::Test()\n"
|
|
"{\n"
|
|
"\tFille child();\n"
|
|
"\tchild.Print(); // Affiche Champs mère : 0 puis Champs fille : 1\n"
|
|
"}"
|
|
|
|
#. type: Plain text
|
|
#: ../E/extends.txt:2
|
|
#, no-wrap
|
|
msgid "This keyword is used in a <code><a cbot|class>class</a></code> definition when we want the class to inherit members from another class. The class which is extended we usually call a parent or base, the extending class we call a child."
|
|
msgstr "Ce mot-clé est utilisé dans une définition de <code><a cbot|class>classe</a></code> quand on veut que la classe hérite des membres d'une autre classe. La classe qui est étendue appelée habituellement classe mère, un parent ou une base. Elle étend la classe que nous appelons un enfant ou classe fille."
|
|
|
|
#. type: Source code
|
|
#: ../E/extends.txt:6
|
|
#, no-wrap
|
|
msgid ""
|
|
"public class Parent\n"
|
|
"{\n"
|
|
"\tvoid foo()\n"
|
|
"\t{\n"
|
|
"\t\tmessage(\"foo\");\n"
|
|
"\t}\n"
|
|
"}\n"
|
|
"\n"
|
|
"public class Child extends Parent\n"
|
|
"{\n"
|
|
"\tvoid bar()\n"
|
|
"\t{\n"
|
|
"\t\tmessage(\"bar\");\n"
|
|
"\t}\n"
|
|
"}\n"
|
|
"\n"
|
|
"extern void object::Test()\n"
|
|
"{\n"
|
|
"\tChild child();\n"
|
|
"\tchild.foo(); // Will show \"foo\"\n"
|
|
"\tchild.bar(); // Will show \"bar\"\n"
|
|
"}"
|
|
msgstr ""
|
|
"public class Parent\n"
|
|
"{\n"
|
|
"\tvoid foo()\n"
|
|
"\t{\n"
|
|
"\t\tmessage(\"foo\");\n"
|
|
"\t}\n"
|
|
"}\n"
|
|
"\n"
|
|
"public class Child extends Parent\n"
|
|
"{\n"
|
|
"\tvoid bar()\n"
|
|
"\t{\n"
|
|
"\t\tmessage(\"bar\");\n"
|
|
"\t}\n"
|
|
"}\n"
|
|
"\n"
|
|
"extern void object::Test()\n"
|
|
"{\n"
|
|
"\tChild child();\n"
|
|
"\tchild.foo(); // Affiche \"foo\"\n"
|
|
"\tchild.bar(); // Affiche \"bar\"\n"
|
|
"}"
|
|
|
|
#. type: Plain text
|
|
#: ../E/extends.txt:60
|
|
#, no-wrap
|
|
msgid "A parent's method can be called inside an overriden method by using the <code><a cbot|super>super</a></code> keyword."
|
|
msgstr "La méthode de la classe mère peut être appelée à l'intérieur d'une méthode surchargée en utilisant le mot-clé <code><a cbot|super>super</a></code>."
|
|
|
|
#. type: Plain text
|
|
#: ../E/class.txt:56
|
|
#, no-wrap
|
|
msgid "As shown in the previous example, the class members can be initialized in the class definition (<c/>int x = 3.33;<n/>)."
|
|
msgstr "Comme montré dans l'exemple précédent, les membres de la classe peuvent être initialisés dans la définition de classe (<c/>int x = 3.33;<n/>)."
|
|
|
|
#. type: Plain text
|
|
#: ../E/open.txt:13
|
|
#, no-wrap
|
|
msgid ""
|
|
"<code>\"r\"</code> mode: open for reading.\n"
|
|
"<code>\"w\"</code> mode: open for writing.\n"
|
|
"<code>\"a\"</code> mode: open for appending."
|
|
msgstr ""
|
|
"<code>\"r\"</code> mode lecture : fichier ouvert pour lecture. \n"
|
|
"<code>\"w\"</code> mode écriture: fichier ouvert à l'écriture.<code>\"a\"</code> mode mise à jour: fichier ouvert pour ajout/modification."
|
|
|
|
#. 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 returns 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 "<c/>openfile();<n/> ouvre un fichier texte dans le dossier 'files/'. Il ne s'agit pas d'une méthode de la classe <code><a cbot|file>file</a></code> mais openfile retourne une <a cbot|pointer>référence</a> sur une nouvelle instance de la classe file. Il faut préciser deux paramètres: le nom du fichier et le mode d'ouverture."
|
|
|
|
#. type: Plain text
|
|
#: ../E/openfile.txt:6
|
|
#, no-wrap
|
|
msgid ""
|
|
"<code>\"r\"</code> mode: open for reading.\n"
|
|
"<code>\"w\"</code> mode: open for writing.\n"
|
|
"<code>\"w\"</code> mode: open for appending."
|
|
msgstr ""
|
|
"<code>\"r\"</code> mode lecture : fichier ouvert pour lecture. \n"
|
|
"<code>\"w\"</code> mode écriture: fichier ouvert à l'écriture.<code>\"a\"</code> mode mise à jour: fichier ouvert pour ajout/modification."
|
|
|
|
#. 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> distinguishes the main function from others."
|
|
msgstr ""
|
|
"Rien d'autre qu'un nom ne peut être changé dans la fonction principale. Il faut qu'elle respecte le prototype fixé. \n"
|
|
"Le mot-clé <code><a cbot|extern>extern</a></code> distingue la fonction principale des autres."
|
|
|
|
#. type: \b; header
|
|
#: ../E/function.txt:117
|
|
#, no-wrap
|
|
msgid "Public Functions"
|
|
msgstr "Fonctions publiques"
|
|
|
|
#. type: \b; header
|
|
#: ../E/function.txt:129
|
|
#, no-wrap
|
|
msgid "Default Parameters"
|
|
msgstr "Paramètres par défaut"
|
|
|
|
#. type: Plain text
|
|
#: ../E/function.txt:130
|
|
#, no-wrap
|
|
msgid "Last function parameters can have default values that can be omitted when calling."
|
|
msgstr "Les derniers paramètres des fonction peuvent avoir des valeurs par défaut qui peuvent être omises lors de l'appel."
|
|
|
|
#. type: Source code
|
|
#: ../E/function.txt:132
|
|
#, no-wrap
|
|
msgid ""
|
|
"float Add(float a = 0.0, float b = 0.0)\n"
|
|
"{\n"
|
|
"\treturn a + b;\n"
|
|
"}\n"
|
|
"\n"
|
|
"// Somewhere in the main program...\n"
|
|
"Add(); // Will return 0.0\n"
|
|
"Add(2.0); // Will return 2.0\n"
|
|
"Add(2.0, 3.0); // Will return 5.0\n"
|
|
"// ..."
|
|
msgstr ""
|
|
"float Add(float a = 0.0, float b = 0.0)\n"
|
|
"{\n"
|
|
"\treturn a + b;\n"
|
|
"}\n"
|
|
"\n"
|
|
"// Plus loin, dans le programme ou dans une autre fonction...\n"
|
|
"val=Add(); // val vaut 0.0\n"
|
|
"val=Add(2.0); // val vaut 2.0\n"
|
|
"val=Add(2.0, 3.0); // val vaut 5.0\n"
|
|
"// ..."
|
|
|
|
#. type: \t; header
|
|
#: ../E/function.txt:144
|
|
#, no-wrap
|
|
msgid "Default Parameters and Overloading"
|
|
msgstr "Paramètres par défaut et surcharge"
|
|
|
|
#. type: Plain text
|
|
#: ../E/function.txt:145
|
|
#, no-wrap
|
|
msgid "Functions with default parameters still can be overloaded, one must only ensure that function calls are not ambiguous. For example, consider the following code:"
|
|
msgstr "Les fonctions avec des paramètres par défaut peuvent encore être surchargées, il faut seulement s'assurer que les appels de fonction ne sont pas ambigus. Par exemple, considérez le code suivant :"
|
|
|
|
#. type: Source code
|
|
#: ../E/function.txt:147
|
|
#, no-wrap
|
|
msgid ""
|
|
"float Add(float a = 0.0, float b = 0.0)\n"
|
|
"{\n"
|
|
"\treturn a + b;\n"
|
|
"}\n"
|
|
"\n"
|
|
"string Add(string a = \"\", string b = \"\")\n"
|
|
"{\n"
|
|
"\treturn a + b;\n"
|
|
"}\n"
|
|
"\n"
|
|
"// Somewhere in the main program...\n"
|
|
"Add(); // Compilation error: ambiguous call\n"
|
|
"Add(\"\"); // Ok\n"
|
|
"Add(0.0); // Ok\n"
|
|
"// ..."
|
|
msgstr ""
|
|
"float Add(float a = 0.0, float b = 0.0)\n"
|
|
"{\n"
|
|
"\treturn a + b;\n"
|
|
"}\n"
|
|
"\n"
|
|
"string Add(string a = \"\", string b = \"\")\n"
|
|
"{\n"
|
|
"\treturn a + b;\n"
|
|
"}\n"
|
|
"\n"
|
|
"// plus loin dans une autre fonction...\n"
|
|
"Add(); // Erreur de compilation : appel ambigu\n"
|
|
"Add(\"\"); // Ok\n"
|
|
"Add(0.0); // Ok\n"
|
|
"// ..."
|
|
|
|
#. type: Plain text
|
|
#: ../E/function.txt:163
|
|
#, no-wrap
|
|
msgid "Note that in the above example overloading causes the first default parameter to be useless as caller needs to pass it anyway in order to distinguish the two functions."
|
|
msgstr "Notez que dans l'exemple ci-dessus, la surcharge rend le premier paramètre par défaut inutile car l'appelant doit le passer de toute façon pour pouvoir distinguer les deux fonctions."
|
|
|
|
#. type: Plain text
|
|
#: ../E/category.txt:70
|
|
#, no-wrap
|
|
msgid ""
|
|
"<button 192/> <code><a object|botbr>WheeledBuilder</a> </code>Wheeled Builder\n"
|
|
"<button 193/> <code><a object|botbc>TrackedBuilder</a> </code>Tracked Builder\n"
|
|
"<button 194/> <code><a object|botbj>WingedBuilder</a> </code>Winged Builder\n"
|
|
"<button 195/> <code><a object|botbs>LeggedBuilder</a> </code>Legged Builder"
|
|
msgstr ""
|
|
"<button 192/> <code><a object|botbr>WheeledBuilder</a> </code>Constructeur à roues\n"
|
|
"<button 193/> <code><a object|botbc>TrackedBuilder</a> </code>Constructeur à chenilles\n"
|
|
" <button 194/> <code><a object|botbj>WingedBuilder</a> </code>Constructeur volant\n"
|
|
" <button 195/> <code><a object|botbs>LeggedBuilder</a> </code>Constructeur à pattes "
|