From 634192640b88e1ba435e744a9d5060339ec58499 Mon Sep 17 00:00:00 2001 From: Martin Doucha Date: Sat, 31 Mar 2018 21:42:01 +0200 Subject: [PATCH] Translate exercises chapter 6 and 7 --- icons/tproc1b_cs.png | Bin 0 -> 1816 bytes icons/tremot2a_cs.png | Bin 0 -> 34673 bytes levels/exercises/chapter005/level004/po/cs.po | 2 +- levels/exercises/chapter006/level001/po/cs.po | 240 ++++++++++ levels/exercises/chapter006/level002/po/cs.po | 148 ++++++ levels/exercises/chapter006/level003/po/cs.po | 218 +++++++++ levels/exercises/chapter007/level001/po/cs.po | 358 ++++++++++++++ levels/exercises/chapter007/level002/po/cs.po | 438 ++++++++++++++++++ levels/exercises/chapter007/level003/po/cs.po | 386 +++++++++++++++ 9 files changed, 1789 insertions(+), 1 deletion(-) create mode 100644 icons/tproc1b_cs.png create mode 100644 icons/tremot2a_cs.png create mode 100644 levels/exercises/chapter006/level001/po/cs.po create mode 100644 levels/exercises/chapter006/level002/po/cs.po create mode 100644 levels/exercises/chapter006/level003/po/cs.po create mode 100644 levels/exercises/chapter007/level001/po/cs.po create mode 100644 levels/exercises/chapter007/level002/po/cs.po create mode 100644 levels/exercises/chapter007/level003/po/cs.po diff --git a/icons/tproc1b_cs.png b/icons/tproc1b_cs.png new file mode 100644 index 0000000000000000000000000000000000000000..72894d8e50cc839d5370d49ce7758129da4ad0bb GIT binary patch literal 1816 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\n" "Language-Team: Czech \n" "Language: Czech\n" diff --git a/levels/exercises/chapter006/level001/po/cs.po b/levels/exercises/chapter006/level001/po/cs.po new file mode 100644 index 00000000..9c0ea154 --- /dev/null +++ b/levels/exercises/chapter006/level001/po/cs.po @@ -0,0 +1,240 @@ +# This file is part of the Colobot: Gold Edition source code +# Copyright (C) 2001-2016, Daniel Roux, EPSITEC SA & TerranovaTeam +# This file is distributed under the same license as the Colobot package. +# next_ghost , 2018. +msgid "" +msgstr "" +"Project-Id-Version: 0.1.11\n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: 2018-03-25 21:32+02\n" +"Last-Translator: next_ghost \n" +"Language-Team: Czech \n" +"Language: Czech\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n" +"X-Language: cs_CZ\n" +"X-Source-Language: en_US\n" + +#. type: Title-text +#: ../scene.txt:1 +#, no-wrap +msgid "A function" +msgstr "Funkce" + +#. type: Resume-text +#: ../scene.txt:2 +#, no-wrap +msgid "Create a function in order to make your program shorter." +msgstr "Napište funkci, abyste si zjednodušili program." + +#. type: ScriptName-text +#: ../scene.txt:3 +#, no-wrap +msgid "Move" +msgstr "Trasa" + +#. type: \b; header +#: ../help/help.E.txt:1 +#, no-wrap +msgid "Exercise" +msgstr "Cvičení" + +#. type: Plain text +#: ../help/help.E.txt:2 +#, no-wrap +msgid "The bot must pass over all the blue crosses on the ground. The way that must be covered is made of two squares. The first one measures 15 meters, the second 25 meters." +msgstr "Robot musí projet přes všechny modré křížky na zemi. Trasa se skládá ze dvou čtverců. První čtverec měří 15 metrů, druhý 25 metrů." + +#. type: Image filename +#: ../help/help.E.txt:4 +#, no-wrap +msgid "tproc1a" +msgstr "tproc1a" + +#. type: \b; header +#: ../help/help.E.txt:5 +#, no-wrap +msgid "General principle" +msgstr "Obecný postup" + +#. type: Plain text +#: ../help/help.E.txt:6 +#, no-wrap +msgid "In order to solve this problem, the most efficient solution consists in creating a function that instructs the bot to move on a square shape of a certain size. The main program becomes then very simple:" +msgstr "Nejjednodušším řešením tohoto úkolu je vytvořit funkci, která robota pošle objet čtverec o zadané délce. Hlavní program pak bude velmi jednoduchý:" + +#. type: Source code +#: ../help/help.E.txt:7 +#, no-wrap +msgid "" +"extern void object::Function1( )\n" +"{\n" +"\tSquare(15);\n" +"\tSquare(25);\n" +"}" +msgstr "" +"extern void object::Trasa( )\n" +"{\n" +"\tSquare(15);\n" +"\tSquare(25);\n" +"}" + +#. type: Plain text +#: ../help/help.E.txt:13 +#, no-wrap +msgid "You still have to define the function called Square. In order to do this, you will have to write some instructions outside the block that until now was the frame of each one of your programs. At the very end of the program, after the last closing brace, we will define the function Square. The program will take the following shape:" +msgstr "Teď ještě musíte naprogramovat funkci nazvanou Square. Pro vytvoření nové funkce musíte napsat několik příkazů mimo blok, který až doteď obsahoval celý Váš program. Úplně na konci programu, až za poslední složenou závorkou, definujeme funkci Square. Program pak bude vypadat takto:" + +#. type: Source code +#: ../help/help.E.txt:15 +#, no-wrap +msgid "" +"extern void object::Function1( )\n" +"{\n" +"\tmain function ...\n" +"}\n" +"\n" +"void object::Square(float length)\n" +"{\n" +"\tnew function ...\n" +"}" +msgstr "" +"extern void object::Trasa( )\n" +"{\n" +"\thlavní funkce...\n" +"}\n" +"\n" +"void object::Square(float length)\n" +"{\n" +"\tnová funkce...\n" +"}" + +#. type: Plain text +#: ../help/help.E.txt:25 +#, no-wrap +msgid "Let us look in detail at the different elements of the declaration of the function Square:" +msgstr "Podívejme se podrobně na jednotlivé prvky definice funkce Square:" + +#. type: Plain text +#: ../help/help.E.txt:27 +#, no-wrap +msgid "" +"void\n" +"This means that this function will return no value." +msgstr "" +"void\n" +"Toto znamená, že funkce nebude vracet žádnou hodnotu." + +#. type: Plain text +#: ../help/help.E.txt:30 +#, no-wrap +msgid "" +"object::\n" +"When you write this in front of the function name, you can have access in the function to all the characteristics of the bot, such as position, orientation, etc. In this exercise, this element is not compulsory, as we will not need the characteristics of the bot in the function." +msgstr "" +"object::\n" +"Když toto napíšete před název funkce, budete mít uvnitř funkce přístup ke všem vlastnostem robota, například k proměnným position, orientation, atd. V tomto cvičení můžete tento prvek vynechat, protože ve funkci Square nebudeme vlastnosti robota potřebovat." + +#. type: Plain text +#: ../help/help.E.txt:33 +#, no-wrap +msgid "" +"Square ( )\n" +"This is the name of the function. You can call it Square, or any other name." +msgstr "" +"Square ( )\n" +"Toto je název funkce. Můžete ji nazvat Square, nebo i libovolně jinak." + +#. type: Plain text +#: ../help/help.E.txt:36 +#, no-wrap +msgid "" +"float length\n" +"Here you define the parameters that the function will get when it is called. The first time the function is actually called with Square(15), the variable length will contain the value 15. The second time, length will contain 25." +msgstr "" +"float length\n" +"Zde definujete parametry, které funkci musíte předat, když ji voláte. Poprvé budeme funkci volat jako Square(15), takže proměnná length dostane hodnotu 15. Podruhé dostane proměnná length hodnotu 25." + +#. type: Bullet: '-' +#: ../help/help.E.txt:40 +#, no-wrap +msgid "First the main function Function will be executed." +msgstr "Nejprve se spustí hlavní funkce Trasa." + +#. type: Bullet: '-' +#: ../help/help.E.txt:41 +#, no-wrap +msgid "At the line Square(15), the program will follow the red arrow and enter the function Square a first time, length containing 15." +msgstr "Na řádku Square(15) program poprvé zavolá funkci Square s hodnotou 15 v proměnné length, jak znázorňuje červená šipka." + +#. type: Bullet: '-' +#: ../help/help.E.txt:42 +#, no-wrap +msgid "At the end of the function Square, the program follows the orange arrow and comes back to the main function." +msgstr "Na konci funkce Square se program vrátí po oranžové šipce zpět do hlavní funkce." + +#. type: Bullet: '-' +#: ../help/help.E.txt:43 +#, no-wrap +msgid "At the line Square(25), the program will follow the blue arrow and enter the function Square a second time." +msgstr "Na řádku Square(25) program zavolá funkci Square podruhé, jak znázorňuje modrá šipka." + +#. type: Bullet: '-' +#: ../help/help.E.txt:44 +#, no-wrap +msgid "At the end of the function Square, the program follows the light blue arrow and comes back to the main function." +msgstr "Na konci funkce Square se program opět vrátí do hlavní funkce po světle modré šipce." + +#. type: Image filename +#: ../help/help.E.txt:46 +#, no-wrap +msgid "tproc1b" +msgstr "tproc1b_cs" + +#. type: Plain text +#: ../help/help.E.txt:47 +#, no-wrap +msgid "In the function Square, use the instructions move and turn. In order to make it shorter, you can use a for loop, that will repeat the instructions move and turn 4 times; however, this is not compulsory." +msgstr "Ve funkci Square použijte příkazy move a turn. Pro zjednodušení můžete použít i cyklus for, abyste příkazy move a turn zopakovali čtyřikrát. Ale pokud nechcete, nemusíte." + +#. type: Source code +#: ../help/help.E.txt:49 +#, no-wrap +msgid "" +"void object::Square(float length)\n" +"{\n" +"\tfor ( int i=0 ; i<4 ; i=i+1 )\n" +"\t{\n" +"\t\tmove(length);\n" +"\t\tturn(90);\n" +"\t}\n" +"}" +msgstr "" +"void object::Square(float length)\n" +"{\n" +"\tfor ( int i=0 ; i<4 ; i=i+1 )\n" +"\t{\n" +"\t\tmove(length);\n" +"\t\tturn(90);\n" +"\t}\n" +"}" + +#. type: \t; header +#: ../help/help.E.txt:58 +#, no-wrap +msgid "See also" +msgstr "Užitečné odkazy" + +#. type: Plain text +#: ../help/help.E.txt:59 +#, no-wrap +msgid "Programming, types and categories." +msgstr "Programování, datové typy a kategorie." + +#. type: Plain text +#: ../help/help.E.txt:39 +#, no-wrap +msgid "Here is in detail what will happen when the program is executed:" +msgstr "Program bude po spuštění fungovat takto:" diff --git a/levels/exercises/chapter006/level002/po/cs.po b/levels/exercises/chapter006/level002/po/cs.po new file mode 100644 index 00000000..3a3b86a9 --- /dev/null +++ b/levels/exercises/chapter006/level002/po/cs.po @@ -0,0 +1,148 @@ +# This file is part of the Colobot: Gold Edition source code +# Copyright (C) 2001-2016, Daniel Roux, EPSITEC SA & TerranovaTeam +# This file is distributed under the same license as the Colobot package. +# next_ghost , 2018. +msgid "" +msgstr "" +"Project-Id-Version: 0.1.11\n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: 2018-03-26 22:24+02\n" +"Last-Translator: next_ghost \n" +"Language-Team: Czech \n" +"Language: Czech\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n" +"X-Language: cs_CZ\n" +"X-Source-Language: en_US\n" + +#. type: Title-text +#: ../scene.txt:1 +#, no-wrap +msgid "Spiral" +msgstr "Spirála" + +#. type: Resume-text +#: ../scene.txt:2 +#, no-wrap +msgid "Create a procedure in order to teach your bot to perform a spiral." +msgstr "Napište funkci, aby robot projel spirálovou dráhu." + +#. type: ScriptName-text +#: ../scene.txt:3 +#, no-wrap +msgid "Move" +msgstr "Trasa" + +#. type: \b; header +#: ../help/help.E.txt:1 +#, no-wrap +msgid "Exercise" +msgstr "Cvičení" + +#. type: Image filename +#: ../help/help.E.txt:3 +#, no-wrap +msgid "tproc2" +msgstr "tproc2" + +#. type: \b; header +#: ../help/help.E.txt:4 +#, no-wrap +msgid "Function" +msgstr "Funkce" + +#. type: Plain text +#: ../help/help.E.txt:5 +#, no-wrap +msgid "You will have noticed that the way is made of \"L\"-shaped parts that are fit one into another. The first one (dark blue) measures two times 25 meters. The second one (light blue) measures 5 meters less. Let us start with writing the function that will move the bot on a \"L\"-shaped part whose length will be given as a parameter:" +msgstr "Jistě jste si všimli, že se trasa skládá ze segmentů ve tvaru \"L\" poskládaných do sebe. Rovné úseky prvního segmentu (tmavě modrý) měří 25 metrů. V druhém segmentu (světle modrý) měří o 5 metrů méně. Nejprve napíšeme funkci, která robota pošle projet dráhu ve tvaru \"L\" s úseky zadané délky:" + +#. type: Source code +#: ../help/help.E.txt:7 +#, no-wrap +msgid "" +"void object::Part(float length)\n" +"{\n" +"\tfor ( int i=0 ; i<2 ; i=i+1 )\n" +"\t{\n" +"\t\tmove(length);\n" +"\t\tturn(90);\n" +"\t}\n" +"}" +msgstr "" +"void object::Segment(float length)\n" +"{\n" +"\tfor ( int i=0 ; i<2 ; i=i+1 )\n" +"\t{\n" +"\t\tmove(length);\n" +"\t\tturn(90);\n" +"\t}\n" +"}" + +#. type: Plain text +#: ../help/help.E.txt:16 +#, no-wrap +msgid "Now you just need to write the main function, that will call the function Part. At the beginning the variable rest will be set to 25m. The while loop will then repeat the instructions inside the block as long as rest is greater than zero. Inside the loop, first call the function Part (see above), then subtract 5m to the length of the L." +msgstr "Dále už zbývá jen napsat hlavní funkci, která bude volat funkci Segment. Na začátku se do proměnné rest uloží hodnota 25. Cyklus while pak bude příkazy uvnitř bloku opakovat, dokud proměnná rest bude větší než nula. Uvnitř cyklu nejprve zavolejte funkci Segment (viz výše), a pak odečtěte 5m z délky úseku." + +#. type: Source code +#: ../help/help.E.txt:18 +#, no-wrap +msgid "" +"extern void object::Function2( )\n" +"{\n" +"\tfloat\trest = 25;\n" +"\twhile ( rest > 0 )\n" +"\t{\n" +"\t\tPart(rest);\n" +"\t\trest = rest-5;\n" +"\t}\n" +"}" +msgstr "" +"extern void object::Trasa( )\n" +"{\n" +"\tfloat\trest = 25;\n" +"\twhile ( rest > 0 )\n" +"\t{\n" +"\t\tSegment(rest);\n" +"\t\trest = rest-5;\n" +"\t}\n" +"}" + +#. type: Plain text +#: ../help/help.E.txt:28 +#, no-wrap +msgid "The function Part will be called a last time with the value 5. Then the expression rest-5 will set the value of the variable rest to zero, and the while loop will stop." +msgstr "Funkce Segment se bude naposledy volat s hodnotou 5. Pak výraz rest-5 sníží hodnotu proměnné rest na nulu a cyklus while skončí." + +#. type: \b; header +#: ../help/help.E.txt:30 +#, no-wrap +msgid "Remark" +msgstr "Poznámky" + +#. type: Plain text +#: ../help/help.E.txt:31 +#, no-wrap +msgid "You will have noticed that in the previous exercise, the main function was at the beginning of the program, whereas in this exercise, it is at the end of the program, after the function Part. The rank order of the functions in the program does not matter, you can write a program either way." +msgstr "Jistě jste si všimli, že v předchozím cvičení byla hlavní funkce na začátku programu, zatímco v tomto cvičení je až na konci za funkcí Segment. Na pořadí funkcí v programu nezáleží, fungovat budou obě možnosti." + +#. type: \t; header +#: ../help/help.E.txt:33 +#, no-wrap +msgid "See also" +msgstr "Užitečné odkazy" + +#. type: Plain text +#: ../help/help.E.txt:34 +#, no-wrap +msgid "Programming, types and categories." +msgstr "Programování, datové typy a kategorie." + +#. type: Plain text +#: ../help/help.E.txt:2 +#, no-wrap +msgid "Follow the way in form of a spiral. The bot must move 2 times 25m forward and turn, then move 2 times 20m forward and turn, and so on." +msgstr "Projeďte spirálovou dráhu. Robot musí dvakrát popojet 25m vpřed a zatočit, pak dvakrát 20m vpřed a zatočit, a tak dále." diff --git a/levels/exercises/chapter006/level003/po/cs.po b/levels/exercises/chapter006/level003/po/cs.po new file mode 100644 index 00000000..b220c576 --- /dev/null +++ b/levels/exercises/chapter006/level003/po/cs.po @@ -0,0 +1,218 @@ +# This file is part of the Colobot: Gold Edition source code +# Copyright (C) 2001-2016, Daniel Roux, EPSITEC SA & TerranovaTeam +# This file is distributed under the same license as the Colobot package. +# next_ghost , 2018. +msgid "" +msgstr "" +"Project-Id-Version: 0.1.11\n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: 2018-03-28 23:38+02\n" +"Last-Translator: next_ghost \n" +"Language-Team: Czech \n" +"Language: Czech\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n" +"X-Language: cs_CZ\n" +"X-Source-Language: en_US\n" + +#. type: Title-text +#: ../scene.txt:1 +#, no-wrap +msgid "Remote control #2" +msgstr "Dálkové ovládání #2" + +#. type: Resume-text +#: ../scene.txt:2 +#, no-wrap +msgid "Remote control a robot using an information exchange post, so it will pass over the 6 blue waypoints." +msgstr "Ovládejte robota na dálku prostřednictvím komunikační stanice, aby projel přes 6 modrých kontrolních bodů." + +#. type: ScriptName-text +#: ../scene.txt:3 +#, no-wrap +msgid "remote" +msgstr "Ovladac" + +#. type: \b; header +#: ../help/help.E.txt:1 +#, no-wrap +msgid "Exercise" +msgstr "Cvičení" + +#. type: Plain text +#: ../help/help.E.txt:2 +#, no-wrap +msgid "" +"Remote control a robot using an information exchange post, so it will pass over the 6 blue waypoints.\n" +"The main actors of this exercise are:" +msgstr "" +"Ovládejte robota na dálku prostřednictvím komunikační stanice, aby projel přes 6 modrých kontrolních bodů.\n" +"Hlavní role v tomto cvičení hrají:" + +#. type: Bullet: '1)' +#: ../help/help.E.txt:5 +#, no-wrap +msgid "A wheeled grabber robot without an energy cell. This is the master you have to program." +msgstr "Pojízdné rameno bez baterie. To je velitel, kterého budete programovat." + +#. type: Bullet: '2)' +#: ../help/help.E.txt:6 +#, no-wrap +msgid "An information exchange post that receives information from the master and then transmits it to the slave." +msgstr "Komunikační stanice, která přijme informace od odesílatele a pošle je příjemci." + +#. type: Bullet: '3)' +#: ../help/help.E.txt:7 +#, no-wrap +msgid "A practice bot which waits for orders from the exchange post. This robot has already been programmed." +msgstr "Cvičný robot, který čeká na povely od komunikační stanice. Tento robot už je naprogramovaný." + +#. type: Image filename +#: ../help/help.E.txt:9 +#, no-wrap +msgid "tremot2a" +msgstr "tremot2a_cs" + +#. type: Plain text +#: ../help/help.E.txt:10 +#, no-wrap +msgid "An information exchange post stores \"name/value\" couples. To control the \"slave\" robot we use two couples:" +msgstr "Do komunikační stanice lze ukládat informace v podobě dvojice \"název-hodnota\". K ovládání \"dělníka\" budeme potřebovat dvě takové dvojice:" + +#. type: Bullet: '1)' +#: ../help/help.E.txt:12 +#, no-wrap +msgid "name=\"order\", value=order number" +msgstr "název=\"order\", hodnota=číslo povelu" + +#. type: Bullet: '2)' +#: ../help/help.E.txt:13 +#, no-wrap +msgid "nom=\"param\", valuer=parameter for the operation" +msgstr "název=\"param\", hodnota=parametr pro daný povel" + +#. type: Plain text +#: ../help/help.E.txt:15 +#, no-wrap +msgid "" +"Order #1 means \"move\" and order #2 means \"turn\". The parameter is the distance to move or the turning angle. For example to make the slave move 20 meters write:\n" +"\tsend(\"order\", 1, 100); // order \"move\"" +msgstr "" +"Povel #1 znamená \"move\" a povel #2 znamená \"turn\". Parametr je pak délka jízdy v metrech nebo úhel otočení. Například aby dělník popojel o 20 metrů, napište:\n" +"\tsend(\"order\", 1, 100); // příkaz \"move\"" + +#. type: Source code +#: ../help/help.E.txt:17 +#, no-wrap +msgid "\tsend(\"param\", 20, 100); // distance 20 meters" +msgstr "\tsend(\"param\", 20, 100); // vzdálenost 20 metrů" + +#. type: Plain text +#: ../help/help.E.txt:19 +#, no-wrap +msgid "" +"These two instruction send following 2 pieces of information to the exchange post:\n" +" order=1\n" +" param=20" +msgstr "" +"Výše uvedené příkazy pošlou komunikační stanici dvě informace:\n" +" order=1\n" +" param=20" + +#. type: Plain text +#: ../help/help.E.txt:23 +#, no-wrap +msgid "" +"The slave robot waits for an order and executes it. Once the order has been executed by the slave, it removes the order from the exchange post. Once an order has been sent, the master must wait for the slave finishing the order before sending the next order. This is done by testing if the order is still inside the exchange post. Just write:\n" +"\twhile ( testinfo(\"order\", 100) ) // wait for end of work" +msgstr "" +"Dělník čeká na povel, a pak ho vykoná. Po splnění povelu ho dělník z komunikační stanice vymaže. Než velitel pošle další povel, musí čekat, až dělník splní ten předchozí. Musíte tedy kontrolovat, jestli je v komunikační stanici stále nějaký povel uložený. Jednoduše napište:\n" +"\twhile ( testinfo(\"order\", 100) ) // čekat na splnění povelu" + +#. type: Source code +#: ../help/help.E.txt:25 +#, no-wrap +msgid "" +"\t{\n" +"\t\twait(1);\n" +"\t}" +msgstr "" +"\t{\n" +"\t\twait(1);\n" +"\t}" + +#. type: Plain text +#: ../help/help.E.txt:29 +#, no-wrap +msgid "" +"As we must give more than one order its most convenient to write a function SendToPost, that sends the order and wait for its completion:\n" +"void object::SendToPost(float order, float param)" +msgstr "" +"Protože budeme posílat několik povelů za sebou, hodilo by se na to napsat funkci SendToPost, která odešle povel a počká na jeho splnění:\n" +"void object::SendToPost(float order, float param)" + +#. type: Source code +#: ../help/help.E.txt:31 +#, no-wrap +msgid "" +"{\n" +"\tsend(\"param\", param, 100); // send the parameter\n" +"\tsend(\"order\", order, 100); // send the order\n" +"\n" +"\twhile ( testinfo(\"order\", 100) ) // wait for end of work\n" +"\t{\n" +"\t\twait(1);\n" +"\t}\n" +"}" +msgstr "" +"{\n" +"\tsend(\"param\", param, 100); // odeslat parametr\n" +"\tsend(\"order\", order, 100); // odeslat povel\n" +"\n" +"\twhile ( testinfo(\"order\", 100) ) // čekat na splnění povelu\n" +"\t{\n" +"\t\twait(1);\n" +"\t}\n" +"}" + +#. type: Plain text +#: ../help/help.E.txt:41 +#, no-wrap +msgid "" +"To move forward by 20 meters, you must write in the main program:\n" +"\tSendToPost(1, 20); // move(20);" +msgstr "" +"Když má pak dělník popojet o 20 metrů, napište v hlavním programu:\n" +"\tSendToPost(1, 20); // move(20);" + +#. type: Plain text +#: ../help/help.E.txt:44 +#, no-wrap +msgid "This is the route the robot must travel through:" +msgstr "Zde je trasa, kterou musí dělník projet:" + +#. type: Image filename +#: ../help/help.E.txt:46 +#, no-wrap +msgid "tremot2b" +msgstr "tremot2b" + +#. type: Plain text +#: ../help/help.E.txt:47 +#, no-wrap +msgid "It's up to you to finish the programming." +msgstr "Dopsat zbytek programu už je na Vás." + +#. type: \t; header +#: ../help/help.E.txt:49 +#, no-wrap +msgid "See also" +msgstr "Užitečné odkazy" + +#. type: Plain text +#: ../help/help.E.txt:50 +#, no-wrap +msgid "Programming, types and categories." +msgstr "Programování, datové typy a kategorie." diff --git a/levels/exercises/chapter007/level001/po/cs.po b/levels/exercises/chapter007/level001/po/cs.po new file mode 100644 index 00000000..d5c055a8 --- /dev/null +++ b/levels/exercises/chapter007/level001/po/cs.po @@ -0,0 +1,358 @@ +# This file is part of the Colobot: Gold Edition source code +# Copyright (C) 2001-2016, Daniel Roux, EPSITEC SA & TerranovaTeam +# This file is distributed under the same license as the Colobot package. +# next_ghost , 2018. +msgid "" +msgstr "" +"Project-Id-Version: 0.1.11\n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: 2018-03-30 17:28+02\n" +"Last-Translator: next_ghost \n" +"Language-Team: Czech \n" +"Language: Czech\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n" +"X-Language: cs_CZ\n" +"X-Source-Language: en_US\n" + +#. type: Title-text +#: ../scene.txt:1 +#, no-wrap +msgid "Remote control #3" +msgstr "Dálkové ovládání #3" + +#. type: Resume-text +#: ../scene.txt:2 +#, no-wrap +msgid "Remote control a bot without using an information exchange post by using a string." +msgstr "Ovládejte robota na dálku pomocí textového řetězce bez použití komunikační stanice." + +#. type: ScriptName-text +#: ../scene.txt:3 +#, no-wrap +msgid "Remote3" +msgstr "Ovladac3" + +#. type: \b; header +#: ../help/help.E.txt:1 +#, no-wrap +msgid "Exercice" +msgstr "Cvičení" + +#. type: Plain text +#: ../help/help.E.txt:2 +#, no-wrap +msgid "Remote control a slave robot without using an information exchange post. The robot should pass over the 6 blue crosses. You must use a string to pass the orders to the slave bot. This string contains the order the slave shoud execute, for exemple \"move(20)\". You can see that this is the same syntax as used in the CBOT language but we could have chosen any other syntax for exemple something like \"advance=20\". The string will be a static class member that will be used to communicate from the master to the slave." +msgstr "Ovládejte na dálku jiného robota bez použití komunikační stanice. Robot má za úkol přejet přes 6 modrých křížků. Pro předání povelů dělníkovi musíte použít textový řetězec. Tento řetězec bude obsahovat povely, které má dělník vykonat, například \"move(20)\". Všimněte si, že se příkazy budou zapisovat ve stejné syntaxi jako v jazyce CBOT, ale mohli jsme zvolit i libovolný jiný formát, například něco jako \"advance=20\". Velitel bude dělníkovi předávat řetězec s povely přes atribut třídy deklarovaný jako static." + +#. type: Bullet: '1)' +#: ../help/help.E.txt:5 +#, no-wrap +msgid "The wheeled grabber without an energy pack and therefore immobile. This is the master you should program so it will transmit orders to the slave." +msgstr "Pojízdné rameno bez baterie, tím pádem nepojízdné. To je velitel, kterého musíte naprogramovat, aby předával povely dělníkovi." + +#. type: Bullet: '2)' +#: ../help/help.E.txt:6 +#, no-wrap +msgid "The slave practice bot which is already programmed and just waits for orders from the master." +msgstr "Cvičný robot, který už je naprogramovaný a jen čeká na povely od velitele." + +#. type: \b; header +#: ../help/help.E.txt:8 +#, no-wrap +msgid "The slave" +msgstr "Dělník" + +#. type: Plain text +#: ../help/help.E.txt:9 +#, no-wrap +msgid "First of all we must understand how the program of the slave works. The class exchange contains the mechanism for exchaning the orders. We declare a static class member m_order which will contain the order to be executed. The word static insures that the member m_order is shared between all instances of the class exchange." +msgstr "Nejprve si musíme vysvětlit, jak funguje program dělníka. Třída exchange poskytuje mechanismus pro předávání povelů. V ní je deklarovaný statický atribut m_order, kam budeme povely ukládat. Klíčové slovo static znamená, že všechny instance třídy exchange budou atribut m_order sdílet mezi sebou." + +#. type: Plain text +#: ../help/help.E.txt:11 +#, no-wrap +msgid "public class exchange" +msgstr "public class exchange" + +#. type: Source code +#: ../help/help.E.txt:12 +#, no-wrap +msgid "" +"{\n" +"\tstatic private string m_order = \"\";" +msgstr "" +"{\n" +"\tstatic private string m_order = \"\";" + +#. type: Plain text +#: ../help/help.E.txt:15 +#, no-wrap +msgid "The put method will be used by the master robot for transmitting an order. As long as the string m_order is not empty, the slave has not finished the order and the put method will return false and will do nothing." +msgstr "Velitel bude pro předání povelu volat metodu put. Pokud atribut m_order nebude prázdný, dělník ještě nedokončil předchozí příkaz, takže metoda put vrátí hodnotu false a nebude nic dělat." + +#. type: Plain text +#: ../help/help.E.txt:17 +#, no-wrap +msgid "\tsynchronized bool put(string order)" +msgstr "\tsynchronized bool put(string order)" + +#. type: Source code +#: ../help/help.E.txt:18 +#, no-wrap +msgid "" +"\t{\n" +"\t\tif ( m_order == \"\" )\n" +"\t\t{\n" +"\t\t\tm_order = order;\n" +"\t\t\treturn true;\n" +"\t\t}\n" +"\t\telse\n" +"\t\t{\n" +"\t\t\treturn false;\n" +"\t\t}\n" +"\t}" +msgstr "" +"\t{\n" +"\t\tif ( m_order == \"\" )\n" +"\t\t{\n" +"\t\t\tm_order = order;\n" +"\t\t\treturn true;\n" +"\t\t}\n" +"\t\telse\n" +"\t\t{\n" +"\t\t\treturn false;\n" +"\t\t}\n" +"\t}" + +#. type: Plain text +#: ../help/help.E.txt:30 +#, no-wrap +msgid "Another method get will be used by the slave to retrieve the orders. This method returns the string contained in m_order and empties it, so a new order can be accepted:" +msgstr "Dělník si pak povely přečte pomocí metody get. Tato metoda vrátí řetězec uložený v atributu m_order a vymaže ho, aby se do něj mohl uložit nový povel:" + +#. type: Plain text +#: ../help/help.E.txt:32 +#, no-wrap +msgid "\tsynchronized string get()" +msgstr "\tsynchronized string get()" + +#. type: Source code +#: ../help/help.E.txt:33 +#, no-wrap +msgid "" +"\t{\n" +"\t\tstring ret = m_order;\n" +"\t\tm_order = \"\";\n" +"\t\treturn ret;\n" +"\t}\n" +"}" +msgstr "" +"\t{\n" +"\t\tstring ret = m_order;\n" +"\t\tm_order = \"\";\n" +"\t\treturn ret;\n" +"\t}\n" +"}" + +#. type: Plain text +#: ../help/help.E.txt:40 +#, no-wrap +msgid "The main program of the slave contains an instance of the class exchange called list." +msgstr "Hlavní program dělníka obsahuje instanci třídy exchange nazvanou list." + +#. type: Plain text +#: ../help/help.E.txt:42 +#, no-wrap +msgid "extern void object::Slave3( )" +msgstr "extern void object::Slave3( )" + +#. type: Source code +#: ../help/help.E.txt:43 +#, no-wrap +msgid "" +"{\n" +"\texchange list();\n" +"\tstring todo;" +msgstr "" +"{\n" +"\texchange list();\n" +"\tstring todo;" + +#. type: Plain text +#: ../help/help.E.txt:47 +#, no-wrap +msgid "The outer while loop lasts for ever. The inner while loop waits for an order by using the get method of the exchange class. As soon as get returns a non empty string, the while loop stops." +msgstr "Vnější cyklus while se opakuje donekonečna. Vnitřní cyklus while čeká na povel a stále volá metodu get třídy exchange. Když metoda get vrátí neprázdný řetězec, vnitřní cyklus skončí." + +#. type: Plain text +#: ../help/help.E.txt:49 +#, no-wrap +msgid "\twhile ( true )" +msgstr "\twhile ( true )" + +#. type: Source code +#: ../help/help.E.txt:50 +#, no-wrap +msgid "" +"\t{\n" +"\t\twhile ( true )\n" +"\t\t{\n" +"\t\t\ttodo = list.get();\n" +"\t\t\tif ( todo != \"\" ) break;\n" +"\t\t\twait(1);\n" +"\t\t}" +msgstr "" +"\t{\n" +"\t\twhile ( true )\n" +"\t\t{\n" +"\t\t\ttodo = list.get();\n" +"\t\t\tif ( todo != \"\" ) break;\n" +"\t\t\twait(1);\n" +"\t\t}" + +#. type: Plain text +#: ../help/help.E.txt:58 +#, no-wrap +msgid "Now we have received the order in the todo variable. All we have to do is execute it:" +msgstr "Když máme povel uložený v proměnné todo, zbývá ho jen provést:" + +#. type: Plain text +#: ../help/help.E.txt:60 +#, no-wrap +msgid "\t\tif ( strfind(todo, \"move\") == 0 )" +msgstr "\t\tif ( strfind(todo, \"move\") == 0 )" + +#. type: Source code +#: ../help/help.E.txt:61 +#, no-wrap +msgid "" +"\t\t{\n" +"\t\t\tmove(strval(strmid(todo,5)));\n" +"\t\t}\n" +"\t\tif ( strfind(todo, \"turn\") == 0 )\n" +"\t\t{\n" +"\t\t\tturn(strval(strmid(todo,5)));\n" +"\t\t}\n" +"\t}\n" +"}" +msgstr "" +"\t\t{\n" +"\t\t\tmove(strval(strmid(todo,5)));\n" +"\t\t}\n" +"\t\tif ( strfind(todo, \"turn\") == 0 )\n" +"\t\t{\n" +"\t\t\tturn(strval(strmid(todo,5)));\n" +"\t\t}\n" +"\t}\n" +"}" + +#. type: \b; header +#: ../help/help.E.txt:71 +#, no-wrap +msgid "The master" +msgstr "Velitel" + +#. type: Plain text +#: ../help/help.E.txt:72 +#, no-wrap +msgid "In the master we write an function called SendOrder which will send an order to the slave:" +msgstr "Pro velitele napíšeme funkci SendOrder, která pošle povel dělníkovi:" + +#. type: Plain text +#: ../help/help.E.txt:74 +#, no-wrap +msgid "void object::SendOrder(string order)" +msgstr "void object::SendOrder(string order)" + +#. type: Source code +#: ../help/help.E.txt:75 +#, no-wrap +msgid "" +"{\n" +"\texchange list();\n" +"\t\n" +"\twhile ( list.put(order) == false )\n" +"\t{\n" +"\t\twait(1);\n" +"\t}\n" +"}" +msgstr "" +"{\n" +"\texchange list();\n" +"\t\n" +"\twhile ( list.put(order) == false )\n" +"\t{\n" +"\t\twait(1);\n" +"\t}\n" +"}" + +#. type: Plain text +#: ../help/help.E.txt:84 +#, no-wrap +msgid "" +"The while loop waits until a pending order has been terminated, that is the slaved has exited from the get method.\n" +"Now the main program of the master is very simple:" +msgstr "" +"Cyklus while bude čekat na přijetí předchozího povelu, tedy dokud dělník nedokončí volání metody get.\n" +"Dál už bude hlavní program velitele celkem jednoduchý:" + +#. type: Plain text +#: ../help/help.E.txt:87 +#, no-wrap +msgid "extern void object::Remote3( )" +msgstr "extern void object::Ovladac3( )" + +#. type: Source code +#: ../help/help.E.txt:88 +#, no-wrap +msgid "" +"{\n" +"\tSendOrder(\"move(20)\");\n" +"\tSendOrder(\"turn(90)\");\n" +"\tSendOrder(\"move(20)\");\n" +"\tSendOrder(\"turn(90)\");\n" +"\tSendOrder(\"move(10)\");\n" +"\tSendOrder(\"turn(90)\");\n" +"\tSendOrder(\"move(10)\");\n" +"\tSendOrder(\"turn(-90)\");\n" +"\tSendOrder(\"move(10)\");\n" +"}" +msgstr "" +"{\n" +"\tSendOrder(\"move(20)\");\n" +"\tSendOrder(\"turn(90)\");\n" +"\tSendOrder(\"move(20)\");\n" +"\tSendOrder(\"turn(90)\");\n" +"\tSendOrder(\"move(10)\");\n" +"\tSendOrder(\"turn(90)\");\n" +"\tSendOrder(\"move(10)\");\n" +"\tSendOrder(\"turn(-90)\");\n" +"\tSendOrder(\"move(10)\");\n" +"}" + +#. type: Plain text +#: ../help/help.E.txt:100 +#, no-wrap +msgid " show these instruction at any time." +msgstr "Tyto instrukce si můžete kdykoliv znovu přečíst klávesou ." + +#. type: \t; header +#: ../help/help.E.txt:102 +#, no-wrap +msgid "See also" +msgstr "Užitečné odkazy" + +#. type: Plain text +#: ../help/help.E.txt:103 +#, no-wrap +msgid "Controls and programming." +msgstr "Ovládání a programování." + +#. type: Plain text +#: ../help/help.E.txt:4 +#, no-wrap +msgid "The two main actors of this exercise are:" +msgstr "Hlavní role v tomto cvičení hrají:" diff --git a/levels/exercises/chapter007/level002/po/cs.po b/levels/exercises/chapter007/level002/po/cs.po new file mode 100644 index 00000000..18f0a9b5 --- /dev/null +++ b/levels/exercises/chapter007/level002/po/cs.po @@ -0,0 +1,438 @@ +# This file is part of the Colobot: Gold Edition source code +# Copyright (C) 2001-2016, Daniel Roux, EPSITEC SA & TerranovaTeam +# This file is distributed under the same license as the Colobot package. +# next_ghost , 2018. +msgid "" +msgstr "" +"Project-Id-Version: 0.1.11\n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: 2018-03-31 13:39+02\n" +"Last-Translator: next_ghost \n" +"Language-Team: Czech \n" +"Language: Czech\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n" +"X-Language: cs_CZ\n" +"X-Source-Language: en_US\n" + +#. type: Title-text +#: ../scene.txt:1 +#, no-wrap +msgid "Remote control #4" +msgstr "Dálkové ovládání #4" + +#. type: Resume-text +#: ../scene.txt:2 +#, no-wrap +msgid "Remote control a bot without using an information exchange post by defining a class for the orders." +msgstr "Ovládejte robota na dálku bez použití komunikační stanice. Pro předání povelů definujte třídu." + +#. type: ScriptName-text +#: ../scene.txt:3 +#, no-wrap +msgid "Remote4" +msgstr "Ovladac4" + +#. type: \b; header +#: ../help/help.E.txt:1 +#, no-wrap +msgid "Exercise" +msgstr "Cvičení" + +#. type: Plain text +#: ../help/help.E.txt:2 +#, no-wrap +msgid "Remote control a slave robot without using an information exchange post. The robot should pass over the 6 blue crosses. You must use a static variable to pass the orders to the slave bot." +msgstr "Ovládejte na dálku jiného robota bez použití komunikační stanice. Robot má za úkol přejet přes 6 modrých křížků. Pro předání povelů dělníkovi musíte použít proměnnou deklarovanou jako static." + +#. type: Bullet: '1)' +#: ../help/help.E.txt:5 +#, no-wrap +msgid "The wheeled grabber without an energy pack and therefore immobile. This is the master you should program so it will transmit orders to the slave." +msgstr "Pojízdné rameno bez baterie, tím pádem nepojízdné. To je velitel, kterého musíte naprogramovat, aby předával povely dělníkovi." + +#. type: Bullet: '2)' +#: ../help/help.E.txt:6 +#, no-wrap +msgid "The slave practice bot which is already programmed and just waits for orders from the master." +msgstr "Cvičný robot, který už je naprogramovaný a jen čeká na povely od velitele." + +#. type: \b; header +#: ../help/help.E.txt:8 +#, no-wrap +msgid "The slave" +msgstr "Dělník" + +#. type: Plain text +#: ../help/help.E.txt:9 +#, no-wrap +msgid "First of all we must understand how the program of the slave works. The class order contains two members: m_type is the order to execute (move or turn) and m_param is the distance to move or the rotation angle:" +msgstr "Nejprve si musíme vysvětlit, jak funguje program dělníka. Třída order obsahuje dva atributy: m_type určuje příkaz, který se má provést (move nebo turn) a m_param určuje délku jízdy nebo úhel otočení:" + +#. type: Plain text +#: ../help/help.E.txt:11 +#, no-wrap +msgid "public class order" +msgstr "public class order" + +#. type: Source code +#: ../help/help.E.txt:12 +#, no-wrap +msgid "" +"{\n" +"\tint m_type = nan;\n" +"\tfloat m_param;\n" +"}" +msgstr "" +"{\n" +"\tint m_type = nan;\n" +"\tfloat m_param;\n" +"}" + +#. type: Plain text +#: ../help/help.E.txt:17 +#, no-wrap +msgid "A second class exchange contains the mechanism for exchanging the orders. We declare a static class member m_order which will contain the order to be executed. The word static insures that the member m_order is shared between all instances of the class exchange." +msgstr "Další třída exchange poskytuje mechanismus pro předávání povelů. V ní je deklarovaný statický atribut m_order, kam budeme povely ukládat. Klíčové slovo static znamená, že všechny instance třídy exchange budou atribut m_order sdílet mezi sebou." + +#. type: Plain text +#: ../help/help.E.txt:19 +#, no-wrap +msgid "public class exchange" +msgstr "public class exchange" + +#. type: Source code +#: ../help/help.E.txt:20 +#, no-wrap +msgid "" +"{\n" +"\tstatic private order m_order = new order;" +msgstr "" +"{\n" +"\tstatic private order m_order = new order;" + +#. type: Plain text +#: ../help/help.E.txt:23 +#, no-wrap +msgid "The put method will be used by the master robot for transmitting an order. As long as m_order is different from nan, the slave has not finished the order and the put method will return false and will do nothing:" +msgstr "Velitel bude pro předání povelu volat metodu put. Pokud atribut m_order neobsahuje hodnotu nan, dělník ještě nedokončil předchozí příkaz, takže metoda put vrátí hodnotu false a nebude nic dělat:" + +#. type: Plain text +#: ../help/help.E.txt:25 +#, no-wrap +msgid "\tsynchronized bool put(order a)" +msgstr "\tsynchronized bool put(order a)" + +#. type: Source code +#: ../help/help.E.txt:26 +#, no-wrap +msgid "" +"\t{\n" +"\t\tif ( m_order.m_type == nan )\n" +"\t\t{\n" +"\t\t\tm_order = a;\n" +"\t\t\treturn true;\n" +"\t\t}\n" +"\t\telse\n" +"\t\t{\n" +"\t\t\treturn false;\n" +"\t\t}\n" +"\t}" +msgstr "" +"\t{\n" +"\t\tif ( m_order.m_type == nan )\n" +"\t\t{\n" +"\t\t\tm_order = a;\n" +"\t\t\treturn true;\n" +"\t\t}\n" +"\t\telse\n" +"\t\t{\n" +"\t\t\treturn false;\n" +"\t\t}\n" +"\t}" + +#. type: Plain text +#: ../help/help.E.txt:38 +#, no-wrap +msgid "Another method get will be used by the slave to retrieve the orders. This method returns the order to be executed:" +msgstr "Dělník si pak povely přečte pomocí metody get. Tato metoda vrátí povel, který se má provést:" + +#. type: Plain text +#: ../help/help.E.txt:40 +#, no-wrap +msgid "\tsynchronized order get()" +msgstr "\tsynchronized order get()" + +#. type: Source code +#: ../help/help.E.txt:41 +#, no-wrap +msgid "" +"\t{\n" +"\t\treturn m_order;\n" +"\t}" +msgstr "" +"\t{\n" +"\t\treturn m_order;\n" +"\t}" + +#. type: Plain text +#: ../help/help.E.txt:45 +#, no-wrap +msgid "A third method delete will be used by the slave to indicate that the order has been executed:" +msgstr "Dělník nakonec oznámí splnění povelu metodou delete:" + +#. type: Plain text +#: ../help/help.E.txt:47 +#, no-wrap +msgid "\tsynchronized void delete()" +msgstr "\tsynchronized void delete()" + +#. type: Source code +#: ../help/help.E.txt:48 +#, no-wrap +msgid "" +"\t{\n" +"\t\tm_order.m_type = nan;\n" +"\t}\n" +"}" +msgstr "" +"\t{\n" +"\t\tm_order.m_type = nan;\n" +"\t}\n" +"}" + +#. type: Plain text +#: ../help/help.E.txt:53 +#, no-wrap +msgid "The main program of the slave contains an instance of the class exchange called list. We put () after the word list in order to create an instance of the class exchange." +msgstr "Hlavní program dělníka obsahuje instanci třídy exchange nazvanou list. Závorky za slovem list znamenají, že vytváříme instanci třídy exchange." + +#. type: Plain text +#: ../help/help.E.txt:55 +#, no-wrap +msgid "extern void object::Slave3( )" +msgstr "extern void object::Slave3( )" + +#. type: Source code +#: ../help/help.E.txt:56 +#, no-wrap +msgid "" +"{\n" +"\texchange list();\n" +"\torder todo;" +msgstr "" +"{\n" +"\texchange list();\n" +"\torder todo;" + +#. type: Plain text +#: ../help/help.E.txt:60 +#, no-wrap +msgid "The outer while loop lasts for ever. The inner while loop waits for an order by using the get method of the exchange class. As soon as get returns a value different from nan, the while loop stops." +msgstr "Vnější cyklus while se opakuje donekonečna. Vnitřní cyklus while čeká na povel a stále volá metodu get třídy exchange. Když metoda get vrátí jinou hodnotu než nan, vnitřní cyklus skončí." + +#. type: Plain text +#: ../help/help.E.txt:62 +#, no-wrap +msgid "\twhile ( true )" +msgstr "\twhile ( true )" + +#. type: Source code +#: ../help/help.E.txt:63 +#, no-wrap +msgid "" +"\t{\n" +"\t\twhile ( true )\n" +"\t\t{\n" +"\t\t\ttodo = list.get();\n" +"\t\t\tif ( todo.m_type != nan ) break;\n" +"\t\t\twait(1);\n" +"\t\t}" +msgstr "" +"\t{\n" +"\t\twhile ( true )\n" +"\t\t{\n" +"\t\t\ttodo = list.get();\n" +"\t\t\tif ( todo.m_type != nan ) break;\n" +"\t\t\twait(1);\n" +"\t\t}" + +#. type: Plain text +#: ../help/help.E.txt:71 +#, no-wrap +msgid "Now we have received the order in the todo variable. All we have to do is execute it:" +msgstr "Když máme povel uložený v proměnné todo, zbývá ho jen provést:" + +#. type: Plain text +#: ../help/help.E.txt:73 +#, no-wrap +msgid "\t\tif ( todo.m_type == 1 )" +msgstr "\t\tif ( todo.m_type == 1 )" + +#. type: Source code +#: ../help/help.E.txt:74 +#, no-wrap +msgid "" +"\t\t{\n" +"\t\t\tmove(todo.m_param);\n" +"\t\t}\n" +"\t\telse if ( todo.m_type == 2 )\n" +"\t\t{\n" +"\t\t\tturn(todo.m_param);\n" +"\t\t}\n" +"\t\telse\n" +"\t\t{\n" +"\t\t\tmessage(\"Unknown order\");\n" +"\t\t}" +msgstr "" +"\t\t{\n" +"\t\t\tmove(todo.m_param);\n" +"\t\t}\n" +"\t\telse if ( todo.m_type == 2 )\n" +"\t\t{\n" +"\t\t\tturn(todo.m_param);\n" +"\t\t}\n" +"\t\telse\n" +"\t\t{\n" +"\t\t\tmessage(\"Unknown order\");\n" +"\t\t}" + +#. type: Plain text +#: ../help/help.E.txt:86 +#, no-wrap +msgid "As soon as the execution of the order is finished, we must call the delete method so the master knows that another order can be sent:" +msgstr "Po splnění povelu ještě musíme zavolat metodu delete, aby velitel věděl, že může poslat další povel:" + +#. type: Plain text +#: ../help/help.E.txt:88 +#, no-wrap +msgid "\t\tlist.delete();" +msgstr "\t\tlist.delete();" + +#. type: Source code +#: ../help/help.E.txt:89 +#, no-wrap +msgid "" +"\t}\n" +"}" +msgstr "" +"\t}\n" +"}" + +#. type: \b; header +#: ../help/help.E.txt:92 +#, no-wrap +msgid "The master" +msgstr "Velitel" + +#. type: Plain text +#: ../help/help.E.txt:93 +#, no-wrap +msgid "In the master we write an function called SendOrder which will send an order to the slave:" +msgstr "Pro velitele napíšeme funkci SendOrder, která pošle povel dělníkovi:" + +#. type: Plain text +#: ../help/help.E.txt:95 +#, no-wrap +msgid "void object::SendOrder(float order, float param)" +msgstr "void object::SendOrder(float order, float param)" + +#. type: Source code +#: ../help/help.E.txt:96 +#, no-wrap +msgid "" +"{\n" +"\texchange list();\n" +"\torder todo();\n" +"\t\n" +"\ttodo.m_type = order;\n" +"\ttodo.m_param = param;\n" +"\t\n" +"\twhile ( list.put(todo) == false )\n" +"\t{\n" +"\t\twait(1);\n" +"\t}\n" +"}" +msgstr "" +"{\n" +"\texchange list();\n" +"\torder todo();\n" +"\t\n" +"\ttodo.m_type = order;\n" +"\ttodo.m_param = param;\n" +"\t\n" +"\twhile ( list.put(todo) == false )\n" +"\t{\n" +"\t\twait(1);\n" +"\t}\n" +"}" + +#. type: Plain text +#: ../help/help.E.txt:109 +#, no-wrap +msgid "" +"The while loop waits until a pending order has been terminated, that is the slaved has exited from the get method and the delete method has been called.\n" +"Now the main program of the master is very simple:" +msgstr "" +"Cyklus while bude čekat na přijetí předchozího povelu, tedy dokud dělník nedokončí volání metody get a následně nezavolá metodu delete.\n" +"Dál už bude hlavní program velitele celkem jednoduchý:" + +#. type: Plain text +#: ../help/help.E.txt:112 +#, no-wrap +msgid "extern void object::Remote4( )" +msgstr "extern void object::Ovladac4( )" + +#. type: Source code +#: ../help/help.E.txt:113 +#, no-wrap +msgid "" +"{\n" +"\tSendOrder(1, 20); // move(20);\n" +"\tSendOrder(2, 90); // turn(90);\n" +"\tSendOrder(1, 20); // move(20);\n" +"\tSendOrder(2, 90); // turn(90);\n" +"\tSendOrder(1, 10); // move(10);\n" +"\tSendOrder(2, 90); // turn(90);\n" +"\tSendOrder(1, 10); // move(10);\n" +"\tSendOrder(2,-90); // turn(-90);\n" +"\tSendOrder(1, 10); // move(10);\n" +"}" +msgstr "" +"{\n" +"\tSendOrder(1, 20); // move(20);\n" +"\tSendOrder(2, 90); // turn(90);\n" +"\tSendOrder(1, 20); // move(20);\n" +"\tSendOrder(2, 90); // turn(90);\n" +"\tSendOrder(1, 10); // move(10);\n" +"\tSendOrder(2, 90); // turn(90);\n" +"\tSendOrder(1, 10); // move(10);\n" +"\tSendOrder(2,-90); // turn(-90);\n" +"\tSendOrder(1, 10); // move(10);\n" +"}" + +#. type: Plain text +#: ../help/help.E.txt:125 +#, no-wrap +msgid " show these instruction at any time." +msgstr "Tyto instrukce si můžete kdykoliv znovu přečíst klávesou ." + +#. type: \t; header +#: ../help/help.E.txt:128 +#, no-wrap +msgid "See also" +msgstr "Užitečné odkazy" + +#. type: Plain text +#: ../help/help.E.txt:129 +#, no-wrap +msgid "Controls and programming." +msgstr "Ovládání a programování." + +#. type: Plain text +#: ../help/help.E.txt:4 +#, no-wrap +msgid "The two main actors of this exercise are:" +msgstr "Hlavní role v tomto cvičení hrají:" diff --git a/levels/exercises/chapter007/level003/po/cs.po b/levels/exercises/chapter007/level003/po/cs.po new file mode 100644 index 00000000..ead6c0ea --- /dev/null +++ b/levels/exercises/chapter007/level003/po/cs.po @@ -0,0 +1,386 @@ +# This file is part of the Colobot: Gold Edition source code +# Copyright (C) 2001-2016, Daniel Roux, EPSITEC SA & TerranovaTeam +# This file is distributed under the same license as the Colobot package. +# next_ghost , 2018. +msgid "" +msgstr "" +"Project-Id-Version: 0.1.11\n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: 2018-03-31 21:08+02\n" +"Last-Translator: next_ghost \n" +"Language-Team: Czech \n" +"Language: Czech\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n" +"X-Language: cs_CZ\n" +"X-Source-Language: en_US\n" + +#. type: Title-text +#: ../scene.txt:1 +#, no-wrap +msgid "Remote control #5" +msgstr "Dálkové ovládání #5" + +#. type: Resume-text +#: ../scene.txt:2 +#, no-wrap +msgid "Remote control a bot without using an information exchange post by storing the orders." +msgstr "Ovládejte robota na dálku bez použití komunikační stanice. Jednotlivé povely zařaďte do fronty." + +#. type: ScriptName-text +#: ../scene.txt:3 +#, no-wrap +msgid "Remote5" +msgstr "Ovladac5" + +#. type: \b; header +#: ../help/help.E.txt:1 +#, no-wrap +msgid "Exercise" +msgstr "Cvičení" + +#. type: Plain text +#: ../help/help.E.txt:2 +#, no-wrap +msgid "Remote control a slave robot without using an information exchange post. The robot should pass over the 6 blue crosses. " +msgstr "Ovládejte na dálku jiného robota bez použití komunikační stanice. Robot má za úkol přejet přes 6 modrých křížků. " + +#. type: Bullet: '1)' +#: ../help/help.E.txt:5 +#, no-wrap +msgid "The wheeled grabber without an energy pack and therefore immobile. This is the master you should program so it will transmit orders to the slave." +msgstr "Pojízdné rameno bez baterie, tím pádem nepojízdné. To je velitel, kterého musíte naprogramovat, aby předával povely dělníkovi." + +#. type: Bullet: '2)' +#: ../help/help.E.txt:6 +#, no-wrap +msgid "The slave practice bot which is already programmed and just waits for orders from the master." +msgstr "Cvičný robot, který už je naprogramovaný a jen čeká na povely od velitele." + +#. type: Plain text +#: ../help/help.E.txt:8 +#, no-wrap +msgid "The orders shall be stored, so the master will be able to transmit several orders without waiting for each order being processed. We use an array for this purpose." +msgstr "Povely budeme ukládat do fronty, aby velitel mohl poslat více povelů najednou bez čekání na jejich dokončení. K tomu můžeme využít pole." + +#. type: \b; header +#: ../help/help.E.txt:10 +#, no-wrap +msgid "The slave" +msgstr "Dělník" + +#. type: Plain text +#: ../help/help.E.txt:11 +#, no-wrap +msgid "First of all we must understand how the program of the slave works. The class order contains two members: m_type is the order to execute (move or turn) and m_param is the distance to move or the rotation angle:" +msgstr "Nejprve si musíme vysvětlit, jak funguje program dělníka. Třída order obsahuje dva atributy: m_type určuje příkaz, který se má provést (move nebo turn) a m_param určuje délku jízdy nebo úhel otočení:" + +#. type: Plain text +#: ../help/help.E.txt:13 +#, no-wrap +msgid "public class order" +msgstr "public class order" + +#. type: Source code +#: ../help/help.E.txt:14 +#, no-wrap +msgid "" +"{\n" +"\tint m_type;\n" +"\tfloat m_param;\n" +"}" +msgstr "" +"{\n" +"\tint m_type;\n" +"\tfloat m_param;\n" +"}" + +#. type: Plain text +#: ../help/help.E.txt:19 +#, no-wrap +msgid "A second class exchange contains the mechanism for exchanging the orders. We declare a static class member m_fifo which will contain the list of orders to be executed. The word static insures that the member m_fifo is shared between all instances of the class exchange." +msgstr "Další třída exchange poskytuje mechanismus pro předávání povelů. V ní je deklarovaný statický atribut m_fifo, kam budeme povely ukládat. Klíčové slovo static znamená, že všechny instance třídy exchange budou atribut m_fifo sdílet mezi sebou." + +#. type: Plain text +#: ../help/help.E.txt:21 +#, no-wrap +msgid "{" +msgstr "{" + +#. type: Source code +#: ../help/help.E.txt:22 +#, no-wrap +msgid "\tstatic private order m_fifo[] = null;" +msgstr "\tstatic private order m_fifo[] = null;" + +#. type: Plain text +#: ../help/help.E.txt:24 +#, no-wrap +msgid "The put method will be used by the master robot for transmitting an order. The order will simply be added at the end of the m_fifo array:" +msgstr "Velitel bude pro předání povelu volat metodu put. Povel se jednoduše přidá na konec pole m_fifo:" + +#. type: Plain text +#: ../help/help.E.txt:26 +#, no-wrap +msgid "\tsynchronized void put(order a)" +msgstr "\tsynchronized void put(order a)" + +#. type: Source code +#: ../help/help.E.txt:27 +#, no-wrap +msgid "" +"\t{\n" +"\t\tm_fifo[sizeof(m_fifo)] = a;\n" +"\t}" +msgstr "" +"\t{\n" +"\t\tm_fifo[sizeof(m_fifo)] = a;\n" +"\t}" + +#. type: Plain text +#: ../help/help.E.txt:31 +#, no-wrap +msgid "Another method get will be used by the slave to retrieve the orders. This method returns the order to be executed. If the list is empty, null will be returned and the robot must wait for more orders. Otherwise the first order in the list must be returned and the remaining orders must be \"scrolled up\". As an array can not be \"shortened\" we use a temporary array copy:" +msgstr "Dělník si pak povely přečte pomocí metody get. Tato metoda vrátí další povel, který se má provést. Pokud je fronta prázdná, metoda vrátí null a robot musí čekat. Jinak vrátí první povel ve frontě a zbývající povely \"posune\" na uvolněné místo. Protože pole nelze zkrátit, použijeme k tomu dočasné pole copy:" + +#. type: Plain text +#: ../help/help.E.txt:33 +#, no-wrap +msgid "\tsynchronized order get()" +msgstr "\tsynchronized order get()" + +#. type: Source code +#: ../help/help.E.txt:34 +#, no-wrap +msgid "" +"\t{\n" +"\t\tif ( sizeof(m_fifo) == 0 ) return null;\n" +"\n" +"\t\torder a = m_fifo[0];\n" +"\t\torder copy[] = null;\n" +"\t\tfor ( int i=1 ; iexchange called list. We put () after the word list in order to create an instance of the class exchange." +msgstr "Hlavní program dělníka obsahuje instanci třídy exchange nazvanou list. Závorky za slovem list znamenají, že vytváříme instanci třídy exchange." + +#. type: Plain text +#: ../help/help.E.txt:49 +#, no-wrap +msgid "extern void object::Slave5( )" +msgstr "extern void object::Slave5( )" + +#. type: Source code +#: ../help/help.E.txt:50 +#, no-wrap +msgid "" +"{\n" +"\texchange list();\n" +"\torder todo;" +msgstr "" +"{\n" +"\texchange list();\n" +"\torder todo;" + +#. type: Plain text +#: ../help/help.E.txt:54 +#, no-wrap +msgid "The outer while loop lasts for ever. The inner while loop waits for an order by using the get method of the exchange class. As soon as get returns a value different from null, the while loop stops." +msgstr "Vnější cyklus while se opakuje donekonečna. Vnitřní cyklus while čeká na povel a stále volá metodu get třídy exchange. Když metoda get vrátí jinou hodnotu než null, vnitřní cyklus skončí." + +#. type: Plain text +#: ../help/help.E.txt:56 +#, no-wrap +msgid "\twhile ( true )" +msgstr "\twhile ( true )" + +#. type: Source code +#: ../help/help.E.txt:57 +#, no-wrap +msgid "" +"\t{\n" +"\t\twhile ( true )\n" +"\t\t{\n" +"\t\t\ttodo = list.get();\n" +"\t\t\tif ( todo != null ) break;\n" +"\t\t\twait(1);\n" +"\t\t}" +msgstr "" +"\t{\n" +"\t\twhile ( true )\n" +"\t\t{\n" +"\t\t\ttodo = list.get();\n" +"\t\t\tif ( todo != null ) break;\n" +"\t\t\twait(1);\n" +"\t\t}" + +#. type: Plain text +#: ../help/help.E.txt:65 +#, no-wrap +msgid "Now we have received the order in the todo variable. All we have to do is execute it:" +msgstr "Když máme povel uložený v proměnné todo, zbývá ho jen provést:" + +#. type: Plain text +#: ../help/help.E.txt:67 +#, no-wrap +msgid "\t\tif ( todo.m_type == 1 )" +msgstr "\t\tif ( todo.m_type == 1 )" + +#. type: Source code +#: ../help/help.E.txt:68 +#, no-wrap +msgid "" +"\t\t{\n" +"\t\t\tmove(todo.m_param);\n" +"\t\t}\n" +"\t\telse if ( todo.m_type == 2 )\n" +"\t\t{\n" +"\t\t\tturn(todo.m_param);\n" +"\t\t}\n" +"\t\telse\n" +"\t\t{\n" +"\t\t\tmessage(\"Unknown order\");\n" +"\t\t}\n" +"\t}\n" +"}" +msgstr "" +"\t\t{\n" +"\t\t\tmove(todo.m_param);\n" +"\t\t}\n" +"\t\telse if ( todo.m_type == 2 )\n" +"\t\t{\n" +"\t\t\tturn(todo.m_param);\n" +"\t\t}\n" +"\t\telse\n" +"\t\t{\n" +"\t\t\tmessage(\"Unknown order\");\n" +"\t\t}\n" +"\t}\n" +"}" + +#. type: \b; header +#: ../help/help.E.txt:82 +#, no-wrap +msgid "The master" +msgstr "Velitel" + +#. type: Plain text +#: ../help/help.E.txt:83 +#, no-wrap +msgid "In the master we write a function called SendOrder which will send an order to the slave:" +msgstr "Pro velitele napíšeme funkci SendOrder, která pošle povel dělníkovi:" + +#. type: Plain text +#: ../help/help.E.txt:85 +#, no-wrap +msgid "void object::SendOrder(float order, float param)" +msgstr "void object::SendOrder(float order, float param)" + +#. type: Source code +#: ../help/help.E.txt:86 +#, no-wrap +msgid "" +"{\n" +"\texchange list();\n" +"\torder todo();\n" +"\t\n" +"\ttodo.m_type = order;\n" +"\ttodo.m_param = param;\n" +"\tlist.put(todo);\n" +"}" +msgstr "" +"{\n" +"\texchange list();\n" +"\torder todo();\n" +"\t\n" +"\ttodo.m_type = order;\n" +"\ttodo.m_param = param;\n" +"\tlist.put(todo);\n" +"}" + +#. type: Plain text +#: ../help/help.E.txt:95 +#, no-wrap +msgid "Now the main program of the master is very simple:" +msgstr "Dál už bude hlavní program velitele celkem jednoduchý:" + +#. type: Plain text +#: ../help/help.E.txt:97 +#, no-wrap +msgid "extern void object::Remote5( )" +msgstr "extern void object::Ovladac5( )" + +#. type: Source code +#: ../help/help.E.txt:98 +#, no-wrap +msgid "" +"{\n" +"\tSendOrder(1, 20); // move(20);\n" +"\tSendOrder(2, 90); // turn(90);\n" +"\tSendOrder(1, 20); // move(20);\n" +"\tSendOrder(2, 90); // turn(90);\n" +"\tSendOrder(1, 10); // move(10);\n" +"\tSendOrder(2, 90); // turn(90);\n" +"\tSendOrder(1, 10); // move(10);\n" +"\tSendOrder(2,-90); // turn(-90);\n" +"\tSendOrder(1, 10); // move(10);\n" +"}" +msgstr "" +"{\n" +"\tSendOrder(1, 20); // move(20);\n" +"\tSendOrder(2, 90); // turn(90);\n" +"\tSendOrder(1, 20); // move(20);\n" +"\tSendOrder(2, 90); // turn(90);\n" +"\tSendOrder(1, 10); // move(10);\n" +"\tSendOrder(2, 90); // turn(90);\n" +"\tSendOrder(1, 10); // move(10);\n" +"\tSendOrder(2,-90); // turn(-90);\n" +"\tSendOrder(1, 10); // move(10);\n" +"}" + +#. type: Plain text +#: ../help/help.E.txt:110 +#, no-wrap +msgid " show these instruction at any time." +msgstr "Tyto instrukce si můžete kdykoliv znovu přečíst klávesou ." + +#. type: \t; header +#: ../help/help.E.txt:112 +#, no-wrap +msgid "See also" +msgstr "Užitečné odkazy" + +#. type: Plain text +#: ../help/help.E.txt:113 +#, no-wrap +msgid "Controls and programming." +msgstr "Ovládání a programování." + +#. type: Plain text +#: ../help/help.E.txt:4 +#, no-wrap +msgid "The two main actors of this exercise are:" +msgstr "Hlavní role v tomto cvičení hrají:"