0.1.11 - en_US to cs translation catalogue (986 entries)

note: type: \b; header
en_US: Instruction <code>abstime</code>
cs: Příkaz <code>abstime</code>

note: type: Plain text, \t; header
en_US: Syntax:
cs: Syntaxe:

note: type: Plain text
en_US: Return the time in seconds elapsed since the beginning of the mission.
cs: Vrátí čas v sekundách uplynulý od začátku mise.

note: type: \t; header
en_US: Return: <code><a cbot|float>float</a></code>
cs: Návratová hodnota: <code><a cbot|float>float</a></code>

note: type: Plain text
en_US: Time in seconds.
cs: Čas v sekundách.

note: type: \t; header
en_US: See also
cs: Užitečné odkazy

note: type: Plain text
en_US: <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
cs: <a cbot>Programování</a>, <a cbot|type>datové typy</a> a <a cbot|category>kategorie</a>.

note: type: \b; header
en_US: Instruction <code>aim</code>
cs: Příkaz <code>aim</code>

note: type: Plain text
en_US: Syntax :
cs: Syntaxe:

note: type: Bullet: 'o'
en_US: <a object|botfr>Shooter</a>
cs: <a object|botfr>Kanón</a>

note: type: Bullet: 'o'
en_US: <a object|botor>Orga shooter</a>
cs: <a object|botor>Biokanón</a>

note: type: Bullet: 'o'
en_US: <a object|botphaz>Phazer shooter</a>
cs: <a object|botphaz>Fázové dělo</a>

note: type: Plain text
en_US: 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>.
cs: Když robota ovládáte pomocí programu, můžete kanónem mířit do stran pouze tak, že otočíte celého robota pomocí příkazu <code><a cbot|turn>turn</a></code>.

note: type: \t; header
en_US: angle: <code><a cbot|float>float</a></code>
cs: úhel: <code><a cbot|float>float</a></code>

note: type: Plain text
en_US: 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.
cs: Úhel kanónu ve stupních relativně k aktuální poloze robota. Kladná hodnota znamená mířit vzhůru. Běžné kanóny a biokanóny mohou mířit v rozsahu <code>-20</code> až <code>+20</code> stupňů. Fázové dělo může mířit v rozsahu <code>-20</code> až <code>+45</code> stupňů.

note: type: \t; header
en_US: Return value: <code><a cbot|int>int</a></code>
cs: Návratová hodnota: <code><a cbot|int>int</a></code>

note: type: Plain text
en_US: Zero if everything is OK, a value different from zero if the rotation could not be performed: 
    <code>== 0 </code>The gun has now got the desired orientation
    <code>!= 0 </code>rotation impossible
cs: Nula, pokud je vše v pořádku. Nenulová hodnota, pokud příkaz nelze splnit:
    <code>== 0</code> Kanón teď míří požadovaným směrem
    <code>!= 0</code> Nelze zamířit

note: type: \b; header
en_US: Arrays
cs: Pole

note: type: Plain text
en_US: 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.
cs: Pole je prostě skupina proměnných stejného typu nebo třídy. V jazyce CBOT můžete vytvářet N-rozměrná pole. Každý rozměr je omezený na 9999 prvků. Pro deklarování pole musíte za název datového typu nebo proměnné napsat hranaté závorky <code>[]</code>.

note: type: Plain text
en_US: 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>:
cs: Když interpret jazyka CBOT narazí na deklaraci pole, tak ve skutečnosti vytvoří pouze <a cbot|pointer>ukazatel</a> s hodnotou <code><a cbot|null>null</a></code>:

note: type: Source code
en_US: int a[5];  // a is now a null reference
cs: int a[5];  // "a" je zatím jen ukazatel s hodnotou null

note: type: Plain text
en_US: As soon as you put values into the array, the elements are created and the reference is initialized:
cs: Prvky pole se vytvořit teprve když do některého z nich uložíte hodnotu:

note: type: Source code
en_US: a[2] = 213;  // a points to
                 // 3 elements [0], [1] et [2]
cs: a[2] = 213;  // "a" ukazuje na
                 // 3 prvky: [0], [1] a [2]

note: type: Plain text
en_US: 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.
cs: Po tomto přiřazení bude "<code>a</code>" obsahovat ukazatel na skutečné prvky pole. Prvky <code>[0]</code> a <code>[1]</code> se vytvoří s neinicializovanou hodnotou, protože pole nesmí obsahovat díry. Počet prvků v poli můžete zjistit příkazem <code><a cbot|sizeof>sizeof</a></code>.

note: type: Plain text
en_US: 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:
cs: Když pole deklarujete s předem danou maximální velikostí, program se zastaví s chybou při přístupu k prvku, který je mimo daný rozsah. Kompilace ale nic nenahlásí, ani když je chyba na první pohled zřejmá:

note: type: Source code
en_US: {
    	int a[5];
    	a[7] = 123;  // no error at compile time
    	             // but error at run time
    }
cs: {
    	int a[5];
    	a[7] = 123;  // žádná chyba během kompilace
    	             // ale chyba za běhu
    }

note: type: Plain text
en_US: 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.
cs: Když pole předáte jako parametr <a cbot|function>funkci</a>, daná funkce dostane pouze <a cbot|pointer>ukazatel</a> na pole. To znamená, že když některý prvek pole změníte uvnitř funkce, přepíšete tím obsah původního pole, které existuje mimo ni.

note: type: \b; header
en_US: Blocks
cs: Bloky

note: type: Plain text
en_US: 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:
cs: Několik příkazů můžete seskupit do jednoho bloku pomocí složených závorek <code>{ }</code>, například:

note: type: Source code
en_US: 	{
    		float  t;
    		t = a;
    		a = b;
    		b = t;  // switches round a and b
    	}
cs: 	{
    		float  t;
    		t = a;
    		a = b;
    		b = t;  // navzájem vymění obsah "a" a "b"
    	}

note: type: Plain text
en_US: Every instruction in the block is followed by a <a cbot|term>semicolon</a>, but the block itself is not. 
    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:
cs: Každý příkaz v bloku se ukončuje <a cbot|term>středníkem</a>, ale za samotným blokem se středník nepíše.
    Využití bloků v programu si ukážeme na následujícím příkladu s příkazem <code><a cbot|if>if</a></code>:

note: type: Source code
en_US: 	if ( a < b )
    		<n/>instruction 1<c/>;
    		<n/>instruction 2<c/>;
    	<n/>instruction 3<c/>;
cs: 	if ( a < b )
    		<n/>příkaz 1<c/>;
    		<n/>příkaz 2<c/>;
    	<n/>příkaz 3<c/>;

note: type: Plain text
en_US: 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. 
    If you want to perform instructions 1 and 2 only if the condition is true, you have to bracket them together in a block:
cs: Pokud <a cbot|cond>podmínka</a> platí, provedou se příkazy 1, 2 i 3. Pokud podmínka neplatí, přeskočí se pouze příkaz 1, a provedou se příkazy 2 a 3. Vůbec nezáleží na tom, že je příkaz 2 odsazený stejně jako příkaz 1.
    Pokud chcete aby se podmínka vztahovala na příkazy 1 i 2 společně, musíte je seskupit do bloku:

note: type: Source code
en_US: 	if ( a < b )
    	{
    		<n/>instruction 1<c/>;
    		<n/>instruction 2<c/>;
    	}
    	<n/>instruction 3<c/>;
cs: 	if ( a < b )
    	{
    		<n/>příkaz 1<c/>;
    		<n/>příkaz 2<c/>;
    	}
    	<n/>příkaz 3<c/>;

note: type: Plain text
en_US: 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. 
    You can fit blocks into other blocks, on as many levels as you need. Here is an example of imbrication on two levels :
cs: Bloky budete potřebovat hlavně v kombinaci s příkazy <code><a cbot|if>if</a></code>, <code><a cbot|while>while</a></code> a <code><a cbot|for>for</a></code> na seskupení několika příkazů, které se mají provádět jen pokud platí určitá podmínka nebo opakovat několikrát dokola.
    Bloky můžete zanořit libovolně hluboko do jiných bloků. Zde je příklad dvou úrovní zanoření:

note: type: Plain text
en_US: 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 :
cs: Otevírací <code>{</code> a zavírací složenou závorku <code>}</code> byste měli zarovnávat pro lepší čitelnost, ale není to povinné. Následující příklad je funkčně totožný jako ten předchozí, zabírá méně místa, ale opravdu nedoporučujeme psát programy tímto stylem:

note: type: Plain text
en_US: <a cbot>Instructions</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
cs: <a cbot>Příkazy</a>, <a cbot|type>datové typy</a> a <a cbot|category>kategorie</a>.

note: type: \b; header
en_US: Type <code>bool</code>
cs: Datový typ <code>bool</code>

note: type: Plain text
en_US: 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.
cs: Do proměnné tohoto typu můžete uložit booleovskou hodnotu, to znamená hodnotu, která má pouze dva povolené stavy: true nebo false.

note: type: \b; header
en_US: Instruction <code>break</code>
cs: Příkaz <code>break</code>

note: type: Source code
en_US: <c/>while ( condition )
    {
    	break;
    }
cs: <c/>while ( podmínka )
    {
    	break;
    }

note: type: Plain text
en_US: 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.
cs: Tímto příkazem můžete okamžitě ukončit cyklus <code><a cbot|while>while</a></code> nebo <code><a cbot|for>for</a></code>.

note: type: Plain text
en_US: Here is an example:
cs: Zde je příklad:

note: type: Source code
en_US: <c/>int i = 0;
    while ( true )
    {
    	<n/>Instructions ...<c/>
    	i = i+1;
    	if ( i >= 10 )
    	{
    		break;
    	}
    	<n/>more instructions ...<c/>
    }
cs: <c/>int i = 0;
    while ( true )
    {
    	<n/>Příkazy...<c/>
    	i = i+1;
    	if ( i >= 10 )
    	{
    		break;
    	}
    	<n/>další příkazy...<c/>
    }

note: type: \b; header
en_US: Value <code>Categories</code>
cs: Kategorie objektů

note: type: Plain text
en_US: Categories represent the names of objects in the CBOT language. Everything in COLOBOT is an object: robots, buildings, raw materials, etc., even yourself.
cs: Kategorie jsou pojmenované konstanty v jazyce CBOT představující různé druhy objektů. Všechno v COLOBOTu je objekt: roboti, budovy, suroviny, atd., dokonce i kosmonaut.

note: type: Plain text
en_US:        <code><a object|titanore>TitaniumOre</a>          </code>Titanium Ore
           <code><a object|uranore>UraniumOre</a>           </code>Uranium Ore
           <code><a object|titan>Titanium</a>             </code>Cube of converted Titanium
           <code><a object|power>PowerCell</a>            </code>Regular Power Cell
           <code><a object|atomic>NuclearCell</a>          </code>Nuclear Power Cell
           <code><a object|bullet>OrgaMatter</a>           </code>Organic Matter
           <code><a object|bbox>BlackBox</a>             </code>Black Box
           <code><a object|tnt>TNT</a>                  </code>Explosive device
           <code><a object|key>KeyA..D</a>              </code>Keys A, B, C and D
cs:        <code><a object|titanore>TitaniumOre</a>          </code>Titanová ruda
           <code><a object|uranore>UraniumOre</a>           </code>Uranová ruda
           <code><a object|titan>Titanium</a>             </code>Kostka zpracovaného titanu
           <code><a object|power>PowerCell</a>            </code>Obyčejná baterie
           <code><a object|atomic>NuclearCell</a>          </code>Jaderná baterie
           <code><a object|bullet>OrgaMatter</a>           </code>Organická hmota
           <code><a object|bbox>BlackBox</a>             </code>Černá skříňka
           <code><a object|tnt>TNT</a>                  </code>Výbušnina
           <code><a object|key>KeyA..D</a>              </code>Klíče A, B, C a D

note: type: Plain text
en_US: <button 158/>   <code><a object|bottr>PracticeBot</a>            </code>Practice Bot
    <button 173/>   <code><a object|bottarg>TargetBot</a>              </code>Target Bot
cs: <button 158/>   <code><a object|bottr>PracticeBot</a>            </code>Cvičný robot
    <button 173/>   <code><a object|bottarg>TargetBot</a>              </code>Cvičný cíl

note: type: Plain text
en_US: <button 137/>   <code><a object|botgr>WheeledGrabber</a>         </code>Wheeled Grabber
    <button 138/>   <code><a object|botgc>TrackedGrabber</a>         </code>Tracked Grabber
    <button 139/>   <code><a object|botgj>WingedGrabber</a>          </code>Winged Grabber
    <button 150/>   <code><a object|botgs>LeggedGrabber</a>          </code>Legged Grabber
cs: <button 137/>   <code><a object|botgr>WheeledGrabber</a>         </code>Pojízdné rameno
    <button 138/>   <code><a object|botgc>TrackedGrabber</a>         </code>Pásové rameno
    <button 139/>   <code><a object|botgj>WingedGrabber</a>          </code>Létající rameno
    <button 150/>   <code><a object|botgs>LeggedGrabber</a>          </code>Chodící rameno

note: type: Plain text
en_US: <button 140/>   <code><a object|botsr>WheeledSniffer</a>         </code>Wheeled Sniffer
    <button 141/>   <code><a object|botsc>TrackedSniffer</a>         </code>Tracked Sniffer
    <button 142/>   <code><a object|botsj>WingedSniffer</a>          </code>Winged Sniffer
    <button 152/>   <code><a object|botss>LeggedSniffer</a>          </code>Legged Sniffer
cs: <button 140/>   <code><a object|botsr>WheeledSniffer</a>         </code>Pojízdný detektor
    <button 141/>   <code><a object|botsc>TrackedSniffer</a>         </code>Pásový detektor
    <button 142/>   <code><a object|botsj>WingedSniffer</a>          </code>Létající detektor
    <button 152/>   <code><a object|botss>LeggedSniffer</a>          </code>Chodící detektor

note: type: Plain text
en_US: <button 143/>   <code><a object|botfr>WheeledShooter</a>         </code>Wheeled Shooter
    <button 144/>   <code><a object|botfc>TrackedShooter</a>         </code>Tracked Shooter
    <button 145/>   <code><a object|botfj>WingedShooter</a>          </code>Winged Shooter
    <button 151/>   <code><a object|botfs>LeggedShooter</a>          </code>Legged Shooter
cs: <button 143/>   <code><a object|botfr>WheeledShooter</a>         </code>Pojízdný kanón
    <button 144/>   <code><a object|botfc>TrackedShooter</a>         </code>Pásový kanón
    <button 145/>   <code><a object|botfj>WingedShooter</a>          </code>Létající kanón
    <button 151/>   <code><a object|botfs>LeggedShooter</a>          </code>Chodící kanón

note: type: Plain text
en_US: <button 153/>   <code><a object|botor>WheeledOrgaShooter</a>     </code>Wheeled Orga Shooter
    <button 154/>   <code><a object|botoc>TrackedOrgaShooter</a>     </code>Tracked Orga Shooter
    <button 155/>   <code><a object|botoj>WingedOrgaShooter</a>      </code>Winged Orga Shooter
    <button 156/>   <code><a object|botos>LeggedOrgaShooter</a>      </code>Legged Orga Shooter
cs: <button 153/>   <code><a object|botor>WheeledOrgaShooter</a>     </code>Pojízdný biokanón
    <button 154/>   <code><a object|botoc>TrackedOrgaShooter</a>     </code>Pásový biokanón
    <button 155/>   <code><a object|botoj>WingedOrgaShooter</a>      </code>Létající biokanón
    <button 156/>   <code><a object|botos>LeggedOrgaShooter</a>      </code>Chodící biokanón

note: type: Plain text
en_US: <button 149/>   <code><a object|botsub>Subber</a>                 </code>Subber
    <button 148/>   <code><a object|botrecy>Recycler</a>               </code>Recycler
    <button 157/>   <code><a object|botshld>Shielder</a>               </code>Shielder
    <button 146/>   <code><a object|bottump>Thumper</a>                </code>Thumper
    <button 147/>   <code><a object|botphaz>PhazerShooter</a>          </code>Phazer Shooter
cs: <button 149/>   <code><a object|botsub>Subber</a>                 </code>Ponorka
    <button 148/>   <code><a object|botrecy>Recycler</a>               </code>Recyklátor
    <button 157/>   <code><a object|botshld>Shielder</a>               </code>Mobilní štít
    <button 146/>   <code><a object|bottump>Thumper</a>                </code>Buchar
    <button 147/>   <code><a object|botphaz>PhazerShooter</a>          </code>Fázové dělo

note: type: Plain text
en_US:        <code><a object|mother>AlienQueen</a>         </code>Alien Queen
           <code><a object|egg>AlienEgg</a>           </code>Alien Egg
           <code><a object|ant>AlienAnt</a>           </code>Ant
           <code><a object|spider>AlienSpider</a>        </code>Spider
           <code><a object|wasp>AlienWasp</a>          </code>Wasp
           <code><a object|worm>AlienWorm</a>          </code>Worm
cs:        <code><a object|mother>AlienQueen</a>         </code>Královna vetřelců
           <code><a object|egg>AlienEgg</a>           </code>Vetřelčí vejce
           <code><a object|ant>AlienAnt</a>           </code>Mravenec
           <code><a object|spider>AlienSpider</a>        </code>Pavouk
           <code><a object|wasp>AlienWasp</a>          </code>Vosa
           <code><a object|worm>AlienWorm</a>          </code>Červ

note: type: Plain text
en_US: <a cbot>CBOT Language</a> and <a cbot|type>Variables</a>.
cs: <a cbot>Jazyk CBOT</a> a <a cbot|type>proměnné</a>.

note: type: \b; header
en_US: Instruction <code>class</code>
cs: Příkaz <code>class</code>

note: type: Source code
en_US: public class ClassName
    {
    	declarations;
    }
cs: public class NazevTridy
    {
    	deklarace;
    }

note: type: \b; header
en_US: Instruction <code>close</code>
cs: Příkaz <code>close</code>

note: type: Plain text
en_US: 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>:
cs: Uzavře soubor otevřený předchozím voláním příkazu <code><a cbot|open>open</a></code>. Toto je metoda třídy <code><a cbot|file>file</a></code>, takže nemůžete napsat jen samotné <code>close()</code>, ale vždy <code>handle.close()</code>:

note: type: Plain text
en_US: <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>.
    <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
cs: <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> a <code><a cbot|eof>eof</a></code>.
    <a cbot>Programování</a>, <a cbot|type>datové typy</a> a <a cbot|category>kategorie</a>.

note: type: \b; header
en_US: Conditions
cs: Podmínky

note: type: Plain text
en_US: <code>a == b  </code><code>a</code> equals <code>b</code>
    <code>a != b  </code><code>a</code> is different from <code>b</code>
    <code>a <  b  </code><code>a</code> smaller than <code>b</code>
    <code>a <= b  </code><code>a</code> smaller than or equal to <code>b</code>
    <code>a >  b  </code><code>a</code> greater than <code>b</code>
    <code>a >= b  </code><code>a</code> greater than or equal to <code>b</code>
cs: <code>x == y  </code><code>x</code> se rovná <code>y</code>
    <code>x != y  </code><code>x</code> se nerovná <code>y</code>
    <code>x <  y  </code><code>x</code> je menší než <code>y</code>
    <code>x <= y  </code><code>x</code> je menší nebo rovno <code>y</code>
    <code>x >  y  </code><code>x</code> je větší než <code>y</code>
    <code>x >= y  </code><code>x</code> je větší nebo rovno <code>y</code>

note: type: Plain text
en_US: <code>12 == 12  </code>returns true
    <code>45 != 47  </code>returns true 
    <code>99 == 98  </code>returns false
    <code>12 <  -1  </code>returns false
    <code>12 >= 10  </code>returns true 
    <code>12 >= 12  </code>returns true
cs: <code>12 == 12  </code>vrátí true
    <code>45 != 47  </code>vrátí true 
    <code>99 == 98  </code>vrátí false
    <code>12 <  -1  </code>vrátí false
    <code>12 >= 10  </code>vrátí true 
    <code>12 >= 12  </code>vrátí true

note: type: Plain text
en_US: Be careful not to confuse the equality comparison <code>==</code> with the assignment of a <a cbot|var>variable</a> <code>=</code>.
cs: Dávejte pozor, abyste si nespletli porovnání na rovnost <code>==</code> s přířazením do <a cbot|var>proměnné</a> <code>=</code>.

note: type: Plain text
en_US: <code>a == b</code> is an expression that compares <code>a</code> with <code>b</code>.
    <code>a = b</code> is an expression that copies the value of <code>b</code> into <code>a</code>.
cs: <code>x == y</code> je výraz, který porovná <code>x</code> a <code>y</code>.
    <code>x = y</code> je výraz, který zkopíruje hodnotu z <code>y</code> do <code>x</code>.

note: type: \b; header
en_US: Instruction <code>continue</code>
cs: Příkaz <code>continue</code>

note: type: Source code
en_US: <c/>while ( condition )
    {
    	continue;
    }
cs: <c/>while ( podmínka )
    {
    	continue;
    }

note: type: Plain text
en_US: 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.
cs: Tímto příkazem můžete přeskočit zbytek příkazů v <code><a cbot|bloc>bloku</a></code> uvnitř cyklu <code><a cbot|while>while</a></code> nebo <code><a cbot|for>for</a></code>: Program přeskočí na začátek dalšího opakování celého cyklu.

note: type: Source code
en_US: <c/>int i = 0;
    while ( i < 5 )
    {
    	i = i+1;
    	if ( i == 3 )
    	{
    		continue;
    	}
    	<n/>Instructions ...<c/>
    }
cs: <c/>int i = 0;
    while ( i < 5 )
    {
    	i = i+1;
    	if ( i == 3 )
    	{
    		continue;
    	}
    	<n/>Příkazy...<c/>
    }

note: type: Plain text
en_US: The instructions will only be executed for the values of <code>i</code> 1, 2, 4 and 5.
cs: Příkazy na konci bloku se provedou pouze když "<code>i</code>" bude mít hodnotu 1, 2, 4 nebo 5.

note: type: \b; header
en_US: Instruction <code>deletefile</code>
cs: Příkaz <code>deletefile</code>

note: type: Plain text
en_US: The deletefile instruction deletes an existing file in the files/ folder.
cs: Příkaz deletefile smaže existující soubor v adresáři files/.

note: type: Plain text
en_US: 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.
cs: Soubory můžete mazat pouze v adresáři files/, který se nachází v adresáři pro uložené hry Colobotu. Žádné soubory mimo adresář files/ mazat nemůžete.

note: type: Source code
en_US: <c/>deletefile ( filename );<n/>
cs: <c/>deletefile ( název_souboru );<n/>

note: type: \b; header
en_US: Instruction <code>deleteinfo</code>
cs: Příkaz <code>deleteinfo</code>

note: type: Source code
en_US: <c/>deleteinfo ( name, power );<n/>
cs: <c/>deleteinfo ( název, výkon );<n/>

note: type: Plain text
en_US: Delete an existing information in the closest <a object|exchange>information exchange post</a>.
cs: Smaže existující informaci v nejbližší <a object|exchange>komunikační stanici</a>.

note: type: \t; header
en_US: name: <code>string</code>
cs: název: <code>string</code>

note: type: Plain text
en_US: Name of the information to be deleted. This name is a string: it must be written in quotation marks "".
cs: Název informace, která se má smazat. Název je řetězec, takže jeho hodnota se musí zapisovat do uvozovek "".

note: type: \t; header
en_US: power: <code>float</code>
cs: výkon: <code>float</code>

note: type: Plain text
en_US: 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.
cs: Výkon vysílače, který odpovídá maximální vzdálenosti mezi vysílačem a komunikační stanicí. Pokud bude vzdálenost k nejbližší stanici větší, žádná informace se nesmaže. Výchozí hodnota je 10 metrů.

note: type: Plain text
en_US: <code><a cbot|receive>receive</a></code>, <code><a cbot|send>send</a></code> and <code><a cbot|testinfo>testinfo</a></code>.
    <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
cs: <code><a cbot|receive>receive</a></code>, <code><a cbot|send>send</a></code> a <code><a cbot|testinfo>testinfo</a></code>.
    <a cbot>Programování</a>, <a cbot|type>datové typy</a> a <a cbot|category>kategorie</a>.

note: type: \b; header
en_US: Instruction <code>direction</code>
cs: Příkaz <code>direction</code>

note: type: Source code
en_US: <c/>direction ( pos );<n/>
cs: <c/>direction ( bod );<n/>

note: type: Plain text
en_US: Calculates the rotation that a robot must perform in order to point towards a given position.
cs: Vypočítá úhel, o který se robot musí otočit, aby mířil čelem k zadanému bodu.

note: type: \t; header
en_US: pos: <code><a cbot|point>point</a></code>
cs: bod: <code><a cbot|point>point</a></code>

note: type: Plain text
en_US: Position towards which the robot must point.
cs: Bod, ke kterému chce robot mířit.

note: type: \t; header
en_US: Return value: <code><a cbot|float>float</a></code>
cs: Návratová hodnota: <code><a cbot|float>float</a></code>

note: type: Plain text
en_US: Angle of the rotation that must be performed. -90 means f. ex. a rotation of 90 degrees to the right.
cs: Úhel, o který se robot musí otočit. Například hodnota -90 znamená otočení o 90 stupňů doprava.

note: type: \b; header
en_US: Instruction <code>distance</code>
cs: Příkaz <code>distance</code>

note: type: Plain text
en_US: With the instruction <code>distance( , )</code> you can calculate the distance between two positions.
cs: Příkazem <code>distance( , )</code> můžete spočítat vzdálenost mezi dvěma body.

note: type: \b; header
en_US: Basic use
cs: Základní použití

note: type: Plain text
en_US: 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.
cs: Když v programu napíšete samotné slovo <code>position</code>, ziskáte tím polohu robota, který program právě vykonává. Když za název proměnné napíšete <code>.position</code>, získáte tím polohu objektu popsaného danou proměnnou.

note: type: Plain text
en_US: Here is a program that moves forward, covering exactly the distance between the bot and the closest ant:
cs: Následující program přikazuje robotu, aby popojel vpřed přesně o vzdálenost mezi ním a nejbližším mravencem:

note: type: Plain text
en_US: This is of course pure suicide. Better to stop 40 meters before, in order to be at shooting range:
cs: To je samozřejmě jasná sebevražda. Lepší by bylo zastavit 40 metrů před mravencem, aby byl robot na dostřel:

note: type: \b; header, \t; header
en_US: For specialists
cs: Pro pokročilé

note: type: Source code
en_US: <c/>distance ( pos1, pos2 );<n/>
cs: <c/>distance ( bod1, bod2 );<n/>

note: type: Plain text
en_US: Calculates the distance between two positions.
cs: Vypočítá vzdálenost mezi dvěma body.

note: type: \t; header
en_US: pos1, pos2: <code><a cbot|point>point</a></code>
cs: bod1, bod2: <code><a cbot|point>point</a></code>

note: type: Plain text
en_US: Coordinates of the two positions.
cs: Souřadnice obou bodů.

note: type: Plain text
en_US: Distance between the two positions.
cs: Vzdálenost mezi oběma body.

note: type: \b; header
en_US: Instruction <code>distance2d</code>
cs: Příkaz <code>distance2d</code>

note: type: Source code
en_US: <c/>distance2d ( pos1, pos2 );<n/>
cs: <c/>distance2d ( bod1, bod2 );<n/>

note: type: Plain text
en_US: Calculates the distance between two positions (ignores the z coordinate).
cs: Vypočítá vzdálenost mezi dvěma body (ignoruje souřadnici z).

note: type: \b; header
en_US: Instruction <code>do - while</code>
cs: Příkaz <code>do - while</code>

note: type: Source code
en_US: <code>do
    {
    	</code>Instructions ...<c/>
    }
    while ( condition );
cs: <code>do
    {
    	</code>Příkazy...<c/>
    }
    while ( podmínka );

note: type: Plain text
en_US: 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.
    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.
cs: Tento příkaz Vám umožňuje několikrát zopakovat příkazy uvnitř <a cbot|bloc>bloku</a>. Příkazy se vždy provedou alespoň jednou, protože podmínka se kontroluje až na konci bloku.
    Dávejte si pozor, abyste si nepletli cyklus <c/>do { } while( );<n/> s cyklem <code><a cbot|while>while</a> ( ) { }</code>. Druhý typ cyklu totiž kontroluje podmínku už na začátku bloku.

note: type: \t; header
en_US: <code>condition</code>
cs: <code>podmínka</code>

note: type: Plain text
en_US: The instructions in the block are performed over and over again, as long as the <a cbot|cond>condition</a> is true.
cs: Příkazy uvnitř bloku se opakují stále dokola, dokud platí <a cbot|cond>podmínka</a>.

note: type: Plain text
en_US: Here is an example :
cs: Zde je příklad:

note: type: \t; header
en_US: Attention
cs: Pozor

note: type: Plain text
en_US: Always put a <a cbot|term>semicolon</a> at the end of the line <code>while ( )</code>.
cs: V tomto případě musíte na konce řádku <code>while ( )</code> psát <a cbot|term>středník</a>.

note: type: Plain text
en_US: 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>.
cs: Uvnitř bloku za příkazem <code>do { }</code> se Vám mohou hodit příkazy <code><a cbot|break>break</a></code> a <code><a cbot|continue>continue</a></code>.

note: type: \b; header
en_US: Instruction <code>drop</code>
cs: Příkaz <code>drop</code>

note: type: Plain text
en_US: 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.
cs: Příkaz <c/>drop();<n/> přikazuje robotu, aby předmět, který právě drží v drapáku, položil na zem, na plošinku budovy nebo do zdířky pro baterii jiného robota.

note: type: Plain text
en_US: 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:
cs: Příkaz <c/>drop();<n/> zavolaný bez parametrů položí předmět před robota. Zde je krátký program, který zvedne předmět před robotem a položí ho o 5 metrů dále:

note: type: Source code
en_US: <c/>drop ( oper );<n/>
cs: <c/>drop ( místo );<n/>

note: type: Plain text
en_US: This instruction appeals to the operating arm of a <a object|botgr>grabber bot</a>, in order to drop what it is holding.
cs: Tento příkaz nařizuje <a object|botgr>robotickému rameni</a>, aby položilo předmět, který drží v drapáku.

note: type: \t; header
en_US: oper: <code><a cbot|int>int</a></code> (default value<code>InFront</code>)
cs: místo: <code><a cbot|int>int</a></code> (výchozí hodnota: <code>InFront</code>)

note: type: Plain text
en_US: Oper indicates where the robot should drop the object. If no indication is given, the object is dropped in front of the bot. 
    <code>InFront   </code>  Drops in front (default value).
    <code>Behind    </code>  Drops behind.
    <code>EnergyCell</code>  Drops on the bot's own power cell location.
cs: Parametr určuje, kam má robot předmět položit. Pokud parametr nezadáte, robot položí předmět před sebe.
    <code>InFront   </code>  Položit před robota (výchozí hodnota).
    <code>Behind    </code>  Položit za robota.
    <code>EnergyCell</code>  Položit do své vlastní zdířky pro baterii.

note: type: Plain text
en_US: 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/>.
    <code>== 0 </code>object was dropped
    <code>!= 0 </code>error, no object was dropped
cs: Chyba při provádění tohoto příkazu obvykle ukončí program. Tomu můžete zabránit pomocí příkazu <code><a cbot|errmode>errmode</a>(0)</code>. Pak bude příkaz <c/>drop();<n/> v případě chyby vracet nenulovou hodnotu.
    <code>== 0</code> předmět byl položen
    <code>!= 0</code> nepodařilo se nic položit

note: type: \b; header
en_US: Instruction <code>eof</code>
cs: Příkaz <code>eof</code>

note: type: Plain text
en_US: 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>:
cs: Kontrola, jestli je kurzor na konci otevřeného souboru. Toto je metoda třídy <code><a cbot|file>file</a></code>, takže nemůžete napsat jen samotné <code>eof()</code>, ale vždy <code>handle.eof()</code>:

note: type: Plain text
en_US: Example:
cs: Příklad:

note: type: Plain text
en_US: <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>.
    <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
cs: <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> a <code><a cbot|writeln>writeln</a></code>.
    <a cbot>Programování</a>, <a cbot|type>datové typy</a> a <a cbot|category>kategorie</a>.

note: type: \b; header
en_US: Instruction <code>errmode</code>
cs: Příkaz <code>errmode</code>

note: type: Plain text
en_US: 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.
cs: Příkaz <c/>errmode();<n/> Vám umožňuje nastavit, jestli se má program ukončit, když nastane chyba během provádění některého z následujících příkazů: <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>, atd.

note: type: Source code
en_US: <c/>errmode ( mode );<n/>
cs: <c/>errmode ( režim );<n/>

note: type: Plain text
en_US: 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.
cs: Výchozí nastavení je ukončit program, pokud se vyskytne chyba. Pokud na začátku programu zavoláte příkaz <c/>errmode(0);<n/>, výše uvedené příkazy pak místo toho budou vracet nenulovou hodnotu, když se je nepodaří provést.

note: type: \t; header
en_US: mode: <code><a cbot|float>float</a></code> (<code>1</code> per default)
cs: režim: <code><a cbot|float>float</a></code> (výchozí hodnota: <code>1</code>)

note: type: Plain text
en_US: Error treatment mode.
    <code>0</code> -> continues program execution and returns a non zero value
    <code>1</code> -> stops the program (default behavior)
cs: Režim zacházení s chybami.
    <code>0</code> -> pokračovat v programu a vrátit nenulovou hodnotu
    <code>1</code> -> ukončit program (výchozí režim)

note: type: Plain text
en_US: Example 1:
cs: Příklad 1:

note: type: Plain text
en_US: Example 2:
cs: Příklad 2:

note: type: Source code
en_US: <c/>errmode(0);
    int err;
    err = goto(pos);
    if ( err != 0 )
    {
    	<n/>goto did not perform correctly ...<code>
    	</code>take some appropriate action ...<c/>
    }
cs: <c/>errmode(0);
    int err;
    err = goto(pos);
    if ( err != 0 )
    {
    	<n/>příkaz goto nebyl řádně dokončen...<code>
    	</code>chybu je třeba nějak vhodně ošetřit...<c/>
    }

note: type: \b; header
en_US: Expressions
cs: Výrazy

note: type: Plain text
en_US: is equivalent to
cs: dělá totéž jako

note: type: Plain text
en_US: <code>+=</code>  addition
    <code>-=</code>  subtraction
    <code>*=</code>  multiplication
    <code>/=</code>  division
    <code>%=</code>  remainder of the division (only for the type <code><a cbot|int>int</a></code>)
cs: <code>+=</code>  sčítání
    <code>-=</code>  odčítání
    <code>*=</code>  násobení
    <code>/=</code>  dělení
    <code>%=</code>  zbytek po dělení (pouze pro datový typ <code><a cbot|int>int</a></code>)

note: type: Plain text
en_US: The operators <code>++</code> and <code>--</code> allow you to increment (++) or to decrement (--) a variable in very compact and efficient manner.
cs: Operátory <code>++</code> a <code>--</code> Vám umožňují stručně a jednoduše hodnotu proměnné zvýšit (++) nebo snížit (--) o jedničku.

note: type: \b; header
en_US: Instruction <code>extern</code>
cs: Příkaz <code>extern</code>

note: type: Plain text
en_US: 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.
cs: Příkaz <code>extern</code> označuje <a cbot|function>funkci</a>, která se má spustit jako robotův hlavní program. Název funkce deklarované jako <code>extern</code> se zobrazí v seznamu programů v levém dolním rohu obrazovky.

note: type: Plain text
en_US: If the program contains other functions, only the main function must be preceded by <code>extern</code>.
cs: Pokud program obsahuje více funkcí, pouze ta hlavní musí být deklarovaná jako <code>extern</code>.

note: type: \b; header
en_US: Type <code>false</code>
cs: Hodnota <code>false</code>

note: type: Plain text
en_US: 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.
cs: Tato hodnota znamená, že podmínka neplatí; je to jedna ze dvou hodnot, kterých může nabývat <a cbot|bool>booleovská</a> <a cbot|var>proměnná</a>.

note: type: \b; header
en_US: Type <code>file</code>
cs: Datový typ <code>file</code>

note: type: Plain text
en_US: This type is used for accessing files in the files/ folder.
cs: Tento datový typ se používá pro přístup k souborům v adresáři files/.

note: type: Plain text
en_US: 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>.
cs: Ukazatel na soubor deklarujete výše uvedeným příkazem. Na konci musíte napsat závorky (), abyste vytvořili novou instanci třídy <code>file</code>. Bez závorek na konci deklarace by proměnná dostala hodnotu <code><a cbot|null>null</a></code>.

note: type: Plain text
en_US: 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.
cs: Soubory můžete vytvářet a číst pouze v adresáři files/, který se nachází v adresáři pro uložené hry Colobotu. Mimo adresář files/ nemůžete vytvářet ani číst žádné soubory.

note: type: Plain text
en_US: <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>:
cs: Typ <code>file</code> ve skutečnosti není primitivní datový typ, ale třída obsahující metody <code>open</code>, <code>close</code>, <code>writeln</code> atd. Proto vždy musíme psát <code>handle.metoda()</code>:

note: type: Plain text
en_US: <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>.
    <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
cs: <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> a <code><a cbot|eof>eof</a></code>.
    <a cbot>Programování</a>, <a cbot|type>datové typy</a> a <a cbot|category>kategorie</a>.

note: type: \b; header
en_US: Instruction <code>fire</code>
cs: Příkaz <code>fire</code>

note: type: Plain text
en_US: The instruction <c/>fire();<n/> fires the bot's onboard cannon.
cs: Příkaz <c/>fire();<n/> vystřelí z robotova palubního kanónu.

note: type: Plain text
en_US: Generally this instruction is used to shoot one-second bursts:
cs: Obvykle se tento příkaz používá k palbě dávek dlouhých jednu sekundu:

note: type: Source code
en_US: <c/>fire ( time );<n/>
cs: <c/>fire ( délka );<n/>

note: type: Plain text
en_US: In order to move the gun upward or downward, use the instruction <code><a cbot|aim>aim</a></code>.
cs: Pro zamíření kanónu nahoru nebo dolů použijte příkaz <code><a cbot|aim>aim</a></code>.

note: type: \t; header
en_US: time: <code><a cbot|float>float</a></code>
cs: délka: <code><a cbot|float>float</a></code>

note: type: Plain text
en_US: Duration of the burst. Generally, the value given is 1. Shorter bursts can also be performed in order to spare time and energy.
cs: Délka dávky v sekundách. Obvykle se zadává hodnota 1. Pro úsporu energie nebo času lze střílet i kratší dávky.

note: type: Plain text
en_US: Zero if OK, or a value different from zero if an error occurred.
    <code>== 0 </code>the cannon has been fired
    <code>!= 0 </code>error, the cannon could not be fired
cs: Nula, pokud je vše v pořádku, nebo nenulová hodnota v případě chyby.
    <code>== 0</code> kanón vystřelil
    <code>!= 0</code> chyba, nelze vystřelit

note: type: \b; header
en_US: Instruction <code>flatground</code>
cs: Příkaz <code>flatground</code>

note: type: Source code
en_US: <c/>flatground ( center, rmax );<n/>
cs: <c/>flatground ( střed, max_poloměr );<n/>

note: type: Plain text
en_US: Calculates the maximal radius of a flat zone on which a building ca be built.
cs: Vypočítá maximální poloměr rovného terénu, na kterém lze stavět budovy.

note: type: \t; header
en_US: center: <code><a cbot|point>point</a></code>
cs: střed: <code><a cbot|point>point</a></code>

note: type: Plain text
en_US: Center of the circlular zone.
cs: Střed požadované kruhové oblasti.

note: type: \t; header
en_US: rmax: <code><a cbot|float>float</a></code>
cs: max_poloměr: <code><a cbot|float>float</a></code>

note: type: Plain text
en_US: Maximal radius.
cs: Maximální poloměr oblasti.

note: type: Plain text
en_US: Radius of the flat zone (always between 0 and rmax).
cs: Poloměr rovného terénu (vždy mezi 0 a max_poloměr).

note: type: \b; header
en_US: Type <code>float</code>
cs: Datový typ <code>float</code>

note: type: Plain text
en_US: 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:
cs: Tento datový typ je vhodný pro většinu proměnných, které mají pracovat s čísly. Proměnné tohoto typu mohou obsahovat kladná nebo záporná čísla, celá i desetinná čísla, například:

note: type: Plain text
en_US: If you need only whole numbers (f. ex. 12 or -5000), you should rather use the type <code><a cbot|int>int</a></code>.
cs: Pokud chcete pracovat pouze s celými čísly (např. 12 nebo -5000), měli byste použít raději datový typ <code><a cbot|int>int</a></code>.

note: type: Plain text
en_US: Do not insert space or colon characters into a number. To separate the whole part from the fractional part, use a dot.
cs: Uvnitř čísla nepište mezery ani čárky. Jako oddělovač desetinných míst používejte tečku (anglický zápis).

note: type: Source code
en_US:    Write       and not
       12.56       12 . 56
      -54.34       -54,34
    12895.69    12,895.69
cs:    Pište       a ne
       12.56       12 . 56
      -54.34       -54,34
    12895.69    12,895.69

note: type: Plain text
en_US: Floating point numbers are represented in Colobot with 32 bits.
    The highest value that can be represented is 3.4E+38.
    The smallest value that can be represented is 3.4E-38.
cs: Desetinná čísla jsou v Colobotu uložena jako čísla s plovoucí řádovou čárkou o rozsahu 32 bitů.
    Největší hodnota, kterou lze takto vyjádřit, je 3.4E+38.
    Nejmenší kladná hodnota, kterou lze takto vyjádřit, je 3.4E-38.

note: type: \b; header
en_US: Instruction <code>for</code>
cs: Příkaz <code>for</code>

note: type: Source code
en_US: <c/>for ( before ; condition ; end )
    {
    	<n/>Instructions ...<c/>
    }
cs: <c/>for ( inicializace ; podmínka ; iterace )
    {
    	<n/>Příkazy...<c/>
    }

note: type: Plain text
en_US: This instruction allows you to execute a certain number of times the instructions contained in the <a cbot|bloc>block</a>.
cs: Tento příkaz Vám umožňuje provést přesný počet opakování příkazů uvnitř <a cbot|bloc>bloku</a>.

note: type: \t; header
en_US: <code>before</code>
cs: <code>inicializace</code>

note: type: Plain text
en_US: 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.
cs: Tato <a cbot|cond>podmínka</a> určuje, jestli se má provést další běh cyklu. Kontroluje se vždy před začátkem bloku.

note: type: \t; header
en_US: <code>end</code>
cs: <code>iterace</code>

note: type: Plain text
en_US: The following example is strictly equivalent to a <code>for</code>-loop, but it uses the instruction <code><a cbot|while>while</a></code>:
cs: Následující příklad je funkčně totožný jako cyklus <code>for</code>, ale je rozepsaný pomocí příkazu <code><a cbot|while>while</a></code>:

note: type: Source code
en_US: <c/>before;
    while ( condition )
    {
    	<n/>Instructions ...<c/>
    	end;
    }
cs: <c/>inicializace;
    while ( podmínka )
    {
    	<n/>Příkazy...<c/>
    	iterace;
    }

note: type: Plain text
en_US: Do not put a <a cbot|term>semicolon</a> at the end of the line <code>for ( )</code>.
cs: Na konec řádku <code>for ( )</code> nepište <a cbot|term>středník</a>.

note: type: Plain text
en_US: 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>.
cs: Uvnitř bloku za příkazem <code>for</code> se Vám mohou hodit příkazy <code><a cbot|break>break</a></code> a <code><a cbot|continue>continue</a></code>.

note: type: \b; header
en_US: Functions
cs: Funkce

note: type: Plain text
en_US: You can also declare a function <a cbot|public>public</a> so it can be used by other bots.
cs: Funkci také můžete deklarovat jako <a cbot|public>public</a> (veřejnou), aby ji mohli volat i ostatní roboti.

note: type: \b; header
en_US: Instruction <code>goto</code>
cs: Příkaz <code>goto</code>

note: type: Plain text
en_US: The instruction <c/>goto();<n/> instructs the bot to reach a given position.
cs: Příkaz <c/>goto();<n/> nařizuje robotu, aby dojel na zadané místo.

note: type: Plain text
en_US: 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:
cs: Nejčastěji se tento příkaz používá k přesunu robota k objektu nalezenému příkazem <c/><a cbot|radar>radar</a>();<n/>. Pokud si informace o objektu vrácené příkazem <c/><a cbot|radar>radar</a>();<n/> uložíte do proměnné, polohu daného objektu získáte připsáním výrazu <code>.position</code> za název proměnné. Zde je příklad programu, který bude hledat <a object|titan>kostku titanu</a>, přijede k ní a zvedne ji:

note: type: Source code
en_US: <c/>goto ( position, altitude, goal, crash );<n/>
cs: <c/>goto ( bod, výška, přesnost, chyba );<n/>

note: type: Plain text
en_US: Tells the robot to go to the given position, avoiding all the obstacles if this is possible.
cs: Nařizuje robotu, aby dojel na zadané místo a pokud možno objel všechny překážky.

note: type: Plain text
en_US: Coordinates of the goal position.
cs: Souřadnice cílového místa.

note: type: \t; header
en_US: altitude: <code><a cbot|float>float</a></code>
cs: výška: <code><a cbot|float>float</a></code>

note: type: Plain text
en_US: 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.
cs: Letová výška pro <a object|botgj>létající roboty</a>. Ze startovní pozice robot nejprve vystoupá do zadané výšky nad zemí. Po příletu k cíli pak na zadaném místě opět přistane. Pokud tento parametr nezadáte, použije se výchozí hodnota 10 metrů. Na velmi krátké vzdálenosti jezdí i létající roboti po zemi. Roboti bez tryskového motoru tento parametr ignorují.

note: type: \t; header
en_US: goal: <code><a cbot|int>int</a></code> (default value <code>0</code>)
cs: přesnost: <code><a cbot|int>int</a></code> (výchozí hodnota: <code>0</code>)

note: type: Plain text
en_US: This parameter tells the bot how it must reach the goal: 
    <code>0</code>  stops exactly at the goal position
    <code>1</code>  goes close to the goal position, without stopping.
    If no value is given, <code>0</code> (precision) is the default value.
cs: Tento parametr říká robotu, jak přesně k cíli dojet: 
    <code>0</code>  zastavit přesně na zadaném místě.
    <code>1</code>  dojede co nejblíže k cíli bez zastávek.
    Pokud tento parametr nezadáte, použije se výchozí hodnota <code>0</code> (přesně na zadaném místě).

note: type: Plain text
en_US: 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>.
    <code>== 0 </code>Goal position reached
    <code>!= 0 </code>Goal position impossible to reach
cs: Chyba při provádění tohoto příkazu obvykle ukončí program. Tomu můžete zabránit pomocí příkazu <code><a cbot|errmode>errmode</a>(0)</code>. Pak bude příkaz <code>goto()</code> v případě chyby vracet nenulovou hodnotu.
    <code>== 0</code> Robot dojel k cíli
    <code>!= 0</code> K cíli nelze dojet

note: type: \b; header
en_US: Instruction <code>grab</code>
cs: Příkaz <code>grab</code>

note: type: Plain text
en_US: 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.
cs: Příkaz <c/>grab();<n/> přikazuje robotu, aby pomocí svého ramene zvedl předmět nacházející se na zemi, na plošince budovy nebo ve zdířce pro baterii jiného robota.

note: type: Plain text
en_US: 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:
cs: Příkaz <c/>grab();<n/> zavolaný bez parametrů zvedne předmět nacházející se před robotem. Zde je krátký program, který zvedne předmět před robotem a položí ho o 5 metrů dále:

note: type: Source code
en_US: <c/>grab ( oper );<n/>
cs: <c/>grab ( místo );<n/>

note: type: Plain text
en_US: This instruction appeals to the operating arm of a <a object|botgr>grabber bot</a>, in order to grab the closest object.
cs: Tento příkaz nařizuje <a object|botgr>robotickému rameni</a>, aby zvedlo nejbližší předmět.

note: type: Plain text
en_US: 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.
    <code>InFront   </code>  Grabs in front (default value).
    <code>Behind    </code>  Grabs behind.
    <code>EnergyCell</code>  Grabs the bot's own power cell.
cs: Parametr určuje, odkud má robot předmět zvednout. Pokud parametr nezadáte, robot se pokusí zvednout předmět před sebou.
    <code>InFront   </code>  Zvednout předmět před sebou (výchozí hodnota).
    <code>Behind    </code>  Zvednout předmět za sebou.
    <code>EnergyCell</code>  Zvednout svou vlastní baterii.

note: type: Plain text
en_US: 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/>.
    <code>== 0 </code>an object was grabbed
    <code>!= 0 </code>error, no object was grabbed
cs: Chyba při provádění tohoto příkazu obvykle ukončí program. Tomu můžete zabránit pomocí příkazu <code><a cbot|errmode>errmode</a>(0)</code>. Pak bude příkaz <c/>grab();<n/> v případě chyby vracet nenulovou hodnotu.
    <code>== 0</code> podařilo se zvednout předmět
    <code>!= 0</code> nelze zvednout žádný předmět

note: type: \b; header
en_US: Instructions <code>if</code> and <code>else</code>
cs: Příkazy <code>if</code> a <code>else</code>

note: type: Plain text
en_US: 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>.
cs: Příkaz <code>if () {}</code> Vám umožňuje provést sadu instrukcí pouze když je splněná určitá podmínka. Podmínku napište do obyčejných závorek <code>()</code> a příkazy do složených závorek <code>{}</code>.

note: type: Plain text
en_US: Here is a concrete example: The bot will shoot only if the target is closer than 40 meters:
cs: Zde je konkrétní příklad: Robot vystřelí pouze když je cíl vzdálený méně než 40 metrů:

note: type: Plain text
en_US: 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>:
cs: Také můžete kontrolovat, jestli daný objekt vůbec existuje. Když příkaz <c/><a cbot|radar>radar</a>();<n/> nenajde požadovaný objekt, vrátí hodnotu <code>null</code>. Takže pak můžete ověřit, že takový objekt neexistuje, podmínkou <code>(item == null)</code>, nebo ověřit, že existuje, podmínkou <code>(item != null)</code>. Dvě rovnítka za sebou <code>==</code> ověřují rovnost hodnot, dvojznak vykřičník a rovnítko <code>!=</code> ověřuje nerovnost. Následující podmínka pošle robota dobít si <a object|power>baterii</a> pouze pokud existuje <a object|station>nabíječka</a>:

note: type: Source code
en_US: <code>if ( condition )
    {
    	</code>Instructions A ...<code>
    }
    else
    {
    	</code>Instructions B ...<c/>
    }
cs: <code>if ( podmínka )
    {
    	</code>Příkazy A ...<code>
    }
    else
    {
    	</code>Příkazy B ...<c/>
    }

note: type: Plain text
en_US: 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. 
    Part <code>else { }</code> is not compulsory.
cs: Touto řídící strukturou můžete provést buď <a cbot|bloc>blok</a> A, nebo <a cbot|bloc>blok</a> B v závislosti na <a cbot|cond>podmínce</a>. Pokud podmínka platí, provede se blok A. Pokud neplatí, provede se blok B. 
    Sekce <code>else { }</code> je nepovinná.

note: type: Plain text
en_US: Do not put a <a cbot|term>semicolon</a> at the end of the line <code>if ( )</code>.
cs: Na konec řádku <code>if ( )</code> nepište <a cbot|term>středník</a>.

note: type: \b; header
en_US: Type <code>int</code>
cs: Datový typ <code>int</code>

note: type: Plain text
en_US: Use this type for variables that contain only whole numbers, negative or positive. For example:
cs: Tento typ používejte pro proměnné, které budou obsahovat pouze celá čísla, kladná i záporná. Například:

note: type: Plain text
en_US: To represent real numbers like 12.05 or -0.005, use the type <code><a cbot|float>float</a></code>.
cs: Pro práci s desetinnými čísly jako například 12.05 nebo -0.005 používejte datový typ <code><a cbot|float>float</a></code>.

note: type: Plain text
en_US: Do not put space or colon signs inside a number.
cs: Uvnitř čísla nepište mezery ani čárky.

note: type: Plain text
en_US: Numbers of the type <code>int</code> are represented with 32 bits.
    The highest number that can be represented is (2^31)-1, that is 2'147'483'647.
    The smallest number that can be represented is -(2^31), that is -2'147'483'648.
cs: Čísla typu <code>int</code> mají rozsah 32 bitů.
    Největší číslo, které lze takto vyjádřit, je (2^31)-1, tedy 2 147 483 647.
    Nejmenší číslo, které lze takto vyjádřit, je -(2^31), tedy -2 147 483 648.

note: type: \b; header
en_US: Instruction <code>jet</code>
cs: Příkaz <code>jet</code>

note: type: Source code
en_US: <c/>jet ( power );<n/>
cs: <c/>jet ( výkon );<n/>

note: type: Plain text
en_US: 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.
cs: Přímé ovládání tryskového motoru <a object|botgj>létajícího robota</a>. Tryskový motor umožňuje robotu létat. Tímto příkazem můžete vzlétnout ze země, stoupat, klesat nebo přistát.

note: type: \t; header
en_US: power: <code><a cbot|float>float</a></code>
cs: výkon: <code><a cbot|float>float</a></code>

note: type: Plain text
en_US: 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/>.
cs: Výkon tryskového motoru v rozsahu <code>-1</code> až <code>+1</code>. <c/>jet(1);<n/> přikazuje robotu stoupat plnou rychlostí, <c/>jet(-1);<n/> klesat volným pádem, <c/>jet(0);<n/> přikazuje udržovat stálou letovou výšku. Pro pomalejší stoupání nebo klesání použijte menší hodnoty výkonu, například <c/>jet(0.3);<n/>.

note: type: \t; header
en_US: Return value: <code><a cbot|void>void</a></code>
cs: Návratová hodnota: <code><a cbot|void>void</a></code>

note: type: Plain text
en_US: None.
cs: Žádná.

note: type: \b; header
en_US: Instruction <code>message</code>
cs: Příkaz <code>message</code>

note: type: Source code
en_US: <c/>message ( text, type );<n/>
cs: <c/>message ( text, druh );<n/>

note: type: Plain text
en_US: Prints a message on top of the screen. After a few seconds, the message disappears automatically.
cs: Zobrazí zprávu v horní části obrazovky. Zpráva po několika sekundách automaticky zmizí.

note: type: Plain text
en_US: Text that is to be displayed. It is possible to append several texts and/or values with the operator <code>+</code>:
    <c/>message("Not found");<n/> 
    <c/>message(angle);<n/> 
    <c/>message(n + " object(s) found");<n/> 
    <c/>message("Distance = " + dist + " meters");<n/>
cs: Text, který se má zobrazit. Více textových řetězců a/nebo hodnot můžete spojit dohromady operátorem <code>+</code>:
    <c/>message("Nic nenalezeno");<n/> 
    <c/>message(angle);<n/> 
    <c/>message(n + " objektu v dosahu");<n/> 
    <c/>message("Vzdalenost = " + dist + " metru");<n/>

note: type: \t; header
en_US: type: <code><a cbot|int>int</a></code> (default value <code>DisplayMessage</code>)
cs: druh: <code><a cbot|int>int</a></code> (výchozí hodnota: <code>DisplayMessage</code>)

note: type: Bullet: 'o'
en_US: <code>DisplayMessage</code>  Standard message on yellow background.
cs: <code>DisplayMessage</code>  Běžná zpráva na žlutém pozadí.

note: type: Bullet: 'o'
en_US: <code>DisplayInfo   </code>  Information on green background.
cs: <code>DisplayInfo   </code>  Pomocná informace na zeleném pozadí.

note: type: Bullet: 'o'
en_US: <code>DisplayWarning</code>  Warning on blue background.
cs: <code>DisplayWarning</code>  Varování na modrém pozadí.

note: type: Bullet: 'o'
en_US: <code>DisplayError  </code>  Error on red background.
cs: <code>DisplayError  </code>  Chyba na červeném pozadí.

note: type: \b; header
en_US: Instruction <code>motor</code>
cs: Příkaz <code>motor</code>

note: type: Plain text
en_US: The instruction <c/>motor( , );<n/> sets the speed for the left-hand and the right-hand motor of the bot.
cs: Příkaz <c/>motor( , );<n/> nastavuje výkon levého a pravého motoru robota.

note: type: Plain text
en_US: 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:
cs: Zadaný výkon motorů zůstane platný i během provádění dalších příkazů. Díky tomu se například robot může otáčet i během palby příkazem <c/><a cbot|fire>fire</a>();<n/>. Tím pokropí větší oblast jedinou dávkou. Zde je příklad, který pokropí palbou oblast před robotem:

note: type: Source code
en_US: 	<a cbot|turn>turn</a>(45);         // turns 45 degrees left
    	motor(0.5, -0.5); // slow rotation to the right
    	<a cbot|fire>fire</a>(2);          // fire
    	motor(0,0);       // stops the rotation
cs: 	<a cbot|turn>turn</a>(45);         // otočit o 45 stupňů vlevo
    	motor(0.5, -0.5); // pomalu otáčet doprava
    	<a cbot|fire>fire</a>(2);          // vystřelit
    	motor(0,0);       // zastavit otáčení

note: type: Plain text
en_US: 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.
cs: Levý motor poběží na poloviční výkon vpřed a pravý motor poběží na poloviční výkon na zpětný chod, takže robot se během dvousekundové dávky bude pomalu otáčet kolem vlastní osy.

note: type: Source code
en_US: <c/>motor ( left, right );<n/>
cs: <c/>motor ( levý, pravý );<n/>

note: type: Plain text
en_US: 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.
cs: Nastaví výkon levého a pravého motoru robota. Motory pak poběží na zadaný výkon, dokud se neprovede další příkaz <code>motor</code> nebo některý z příkazů <code><a cbot|move>move</a></code>, <code><a cbot|turn>turn</a></code> nebo <code><a cbot|goto>goto</a></code>.

note: type: \t; header
en_US: left: <code><a cbot|float>float</a></code>
cs: levý: <code><a cbot|float>float</a></code>

note: type: Plain text
en_US: Speed instruction for the left motor; the value must range between -1 and 1.
cs: Výkon levého motoru; hodnota musí být v rozsahu -1 až +1.

note: type: \t; header
en_US: right: <code><a cbot|float>float</a></code>
cs: pravý: <code><a cbot|float>float</a></code>

note: type: Plain text
en_US: Speed instruction for the right motor; the value must range between -1 and 1.
cs: Výkon pravého motoru; hodnota musí být v rozsahu -1 až +1.

note: type: Plain text
en_US: Examples :
    <c/>motor(1, 1);<n/> moves forward with highest possible speed.
    <c/>motor(-0.5, -0.5);<n/> moves backward with half speed.
    <c/>motor(1, -1);<n/> turns right as fast as possible.
cs: Příklady:
    <c/>motor(1, 1);<n/> jet kupředu plnou rychlostí.
    <c/>motor(-0.5, -0.5);<n/> couvat poloviční rychlostí.
    <c/>motor(1, -1);<n/> otáčet doprava plnou rychlostí.

note: type: Plain text
en_US: Note :
    <c/>motor(2, 2);<n/> will not move forward any faster than <code>motor(1, 1)</code> 
    <c/>motor(-2, -2);<n/> will not move backward any faster than <code>motor(-1, -1)</code>
cs: Poznámka:
    Robot po příkazu <c/>motor(2, 2);<n/> nepojede o nic rychleji vpřed než po <code>motor(1, 1)</code> 
    Robot po příkazu <c/>motor(-2, -2);<n/> nebude couvat o nic rychleji než po <code>motor(-1, -1)</code>

note: type: \b; header
en_US: Instruction <code>move</code>
cs: Příkaz <code>move</code>

note: type: Plain text
en_US: 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.
cs: Příkaz <c/>move();<n/> nařizuje robotu, aby jel rovně vpřed nebo couval. V závorkách musíte zadat délku jízdy v metrech.

note: type: Plain text
en_US: 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/>.
cs: Pokud chcete, aby robot popojel o 30 metrů vpřed, napište <c/>move(30);<n/>. Pokud chcete, aby robot zacouval po položení hroudy <a object|titanore>titanové rudy</a> do <a object|convert>konvertoru</a>, napište <c/>move(-2.5);<n/>.

note: type: Source code
en_US: <c/>move ( length );<n/>
cs: <c/>move ( vzdálenost );<n/>

note: type: Plain text
en_US: Moves forward or backward of a given distance, always keeping the current orientation of the bot.
cs: Robot popojede vpřed nebo zacouvá o danou vzdálenost, po celou jízdu bude udržovat stejný azimut.

note: type: \t; header
en_US: length: <code><a cbot|float>float</a></code>
cs: vzdálenost: <code><a cbot|float>float</a></code>

note: type: Plain text
en_US: Length of the move, in meters. A negative value makes the bot move backward.
cs: Délka jízdy v metrech. Záporná hodnota znamená, že robot má couvat.

note: type: Plain text
en_US: 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>.
    <code>== 0 </code>Move executed
    <code>!= 0 </code>error, the instruction was not performed correctly
cs: Chyba při provádění tohoto příkazu obvykle ukončí program. Tomu můžete zabránit pomocí příkazu <code><a cbot|errmode>errmode</a>(0)</code>. Pak bude příkaz <code>move()</code> v případě chyby vracet nenulovou hodnotu.
    <code>== 0</code> Robot ujel zadanou vzdálenost
    <code>!= 0</code> Příkaz nelze splnit

note: type: \b; header
en_US: Type <code>nan</code>
cs: Hodnota <code>nan</code>

note: type: Plain text
en_US: 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". 
    For example, if the instruction <code><a cbot|receive>receive</a></code> can not get the requested information, it returns <code>nan</code> :
cs: Tato speciální hodnota znamená, že <a cbot|var>proměnná</a> typu <code><a cbot|int>int</a></code> nebo <code><a cbot|float>float</a></code> neobsahuje platné číslo.
    Například když příkaz <code><a cbot|receive>receive</a></code> nedokáže získat požadovanou informaci, vrátí <code>nan</code>:

note: type: Source code
en_US: 	value = receive("Length");
    	if ( value == nan )  // not found ?
    	{
    		
    	}
cs: 	value = receive("Length");
    	if ( value == nan )  // nenalezeno?
    	{
    		
    	}

note: type: \t; header
en_US: Dictionnary
cs: Vysvětlivka

note: type: Plain text
en_US: <code>nan</code> = Not A Number
cs: <code>nan</code> je zkratka z anglického "Not A Number", tedy "není to číslo".

note: type: \b; header
en_US: Instruction <code>new</code> (for specialists)
cs: Příkaz <code>new</code> (pro pokročilé)

note: type: Plain text
en_US: The <code>new</code> operator creates a <a cbot|class>class</a> instance:
    <c/><s/>	MyClass item;    // now item is a null reference
cs: Operátor <code>new</code> vytvoří instanci <a cbot|class>třídy</a>:
    <c/><s/>	MyClass item;    // item je teď ukazatel s hodnotou null

note: type: Source code
en_US: 	item = new MyClass(); // now item is a reference
    	                      // to a new class instance
cs: 	item = new MyClass(); // item je teď ukazatel
    	                      // na novou instanci třídy

note: type: Plain text
en_US: 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:
cs: Pokud chcete vytvořit novou instanci třídy už při deklaraci proměnné, můžete místo operátoru <code>new</code> prostě napsat závorky za název proměnné:

note: type: Plain text
en_US: Instead of:
    <c/><s/>	MyClass item = new MyClass();
    <n/>you can write:
    <c/><s/>	MyClass item();
cs: Místo:
    <c/><s/>	MyClass item = new MyClass();
    <n/>můžete napsat:
    <c/><s/>	MyClass item();

note: type: Plain text
en_US: If your class has a constructor with parameters you can write:
    <c/><s/>	MyClass item = new MyClass(2, 3);
    <n/>or:
    <c/><s/>	MyClass item(2, 3);
cs: Pokud konstruktor Vaší třídy přijímá parametry, můžete napsat:
    <c/><s/>	MyClass item = new MyClass(2, 3);
    <n/>nebo:
    <c/><s/>	MyClass item(2, 3);

note: type: Plain text
en_US: <code><a cbot|class>class</a></code>, <code><a cbot|pointer>reference</a></code>
    <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
cs: <code><a cbot|class>class</a></code>, <code><a cbot|pointer>ukazatelé</a></code>
    <a cbot>Programování</a>, <a cbot|type>datové typy</a> a <a cbot|category>kategorie</a>.

note: type: \b; header
en_US: Type <code>null</code>
cs: Hodnota <code>null</code>

note: type: Plain text
en_US: This special value indicates that the variable containing it does not reference an instance.
cs: Tato speciální hodnota znamená, že proměnná neukazuje na žádnou instanci třídy.

note: type: Plain text
en_US: <a cbot|pointer>References</a>
    <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
cs: <code><a cbot|pointer>Ukazatelé</a></code>
    <a cbot>Programování</a>, <a cbot|type>datové typy</a> a <a cbot|category>kategorie</a>.

note: type: \b; header
en_US: Type <code>object</code>
cs: Datový typ <code>object</code>

note: type: Plain text
en_US: 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.
cs: Poloha objektu na planetě, v metrech. Souřadnice <code>x</code> a <code>y</code> představují polohu na mapě, souřadnice <code>z</code> představuje nadmořskou výšku.

note: type: Plain text
en_US: 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.
cs: Azimut objektu ve stupních. Tento atribut určuje, kterým směrem je objekt otočený. Azimut <code>0</code> znamená, že objekt směřuje na východ, tedy souběžně s kladnou poloosou <code>x</code>. Azimut se měří proti směru hodinových ručiček.

note: type: Plain text
en_US: 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.
cs: Náklon objektu vpřed nebo vzad. Hodnota <code>0</code> znamená, že objekt se nachází ve vodorovné poloze. Kladná hodnota znamená náklon vzad (objekt míří čelem k nebi), záporná hodnota znamená náklon vpřed (objekt míří čelem do země).

note: type: Plain text
en_US: 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.
cs: Svislý náklon objektu vlevo nebo vpravo ve stupních. Kladná hodnota znamená, že objekt se naklání doleva, záporná hodnota znamená, že se naklání doprava.

note: type: Plain text
en_US: 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>.
cs: Stav baterie v rozsahu 0 až 1. Běžná plně nabitá <a object|power>baterie</a> zde bude mít hodnotu <code>1</code>. <a object|atomic>Jaderná baterie</a> zde také bude mít hodnotu nejvýše 1, ale vydrží mnohem déle. Pozor: robot zde bude mít vždy hodnotu nula, protože energii neobsahuje robot, ale samotná baterie. Pro zjištění stavu baterie robota musíte napsat <code>energyCell.energyLevel</code>.

note: type: Plain text
en_US: 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. 
    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>.
cs: Stav štítu robota nebo budovy. Hodnota <code>1</code> znamená, že objekt je nepoškozený. Pokaždé, když robot nebo budova dostane zásah nebo se prudce srazí s jiným objektem, stav štítu se sníží. Když hodnota klesne na <code>0</code>, další zásah nebo srážka objekt zničí. 
    Roboti si mohou doplnit štít v <a object|repair>opravně</a>. Budovu lze opravit tím, že ji obklopíte silovým polem <a object|botshld>mobilního štítu</a>.

note: type: Plain text
en_US: 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.
cs: Teplota tryskového motoru <a object|botgj>létajícího robota</a>. Hodnota <code>0</code> znamená, že tryskový motor je studený. Během letu teplota průběžně roste. Když dosáhne hodnoty <code>1</code>, tryskový motor se přehřeje a přestane fungovat, dokud opět trochu nevychladne.

note: type: Plain text
en_US: 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.
cs: Souřadnice <code>z</code> polohy objektu udává nadmořskou výšku, zatímco atribut <code>altitude</code> udává výšku nad zemí. Tento atribut má smysl pouze u <a object|botgj>létajících robotů</a> a <a object|wasp>vos</a>. Všechny ostatní objekty zde mají hodnotu nula.

note: type: Plain text
en_US: The age of the object in seconds since it's creation.
cs: Stáří objektu v sekundách od jeho vytvoření.

note: type: Plain text
en_US: 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.
    If you want to know the energy level of a robot, you must not check <code>energyLevel</code>, but <code>energyCell.energyLevel</code>.
    If the bot has bot no power cell, <code>energyCell</code> returns <code>null</code>.
cs: Toto je speciální atribut, který vrací informace o jiném objektu, v tomto případě o připojené baterii. To znamená, že atribut <code>energyCell</code> obsahuje všechny atributy běžného objektu, například <code>category</code> (PowerCell nebo NuclearCell), <code>position</code> (poloha baterie), atd.
    Pokud chcete zjistit stav baterie robota, nezajímá Vás jeho vlastní atribut <code>energyLevel</code>, ale <code>energyCell.energyLevel</code>.
    Pokud robot nemá žádnou baterii, <code>energyCell</code> obsahuje hodnotu <code>null</code>.

note: type: Plain text
en_US: 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>.
cs: Tento atribut také obsahuje popis jiného objektu: informace o předmětu, který <a object|botgr>robotické rameno</a> drží v drapáku. Pokud nedrží nic, atribut <code>load</code> obsahuje hodnotu <code>null</code>.

note: type: \t; header, \b; header
en_US: Examples
cs: Příklady

note: type: Plain text
en_US: The type <code>object</code> returns the special value <code><a cbot|null>null</a></code> when the object does not exist. For example:
cs: Proměnná typu <code>object</code> může obsahovat speciální hodnotu <code>null</code>, která znamená, že proměnná neobsahuje popis žádného objektu. Například:

note: type: Source code
en_US: 	object a;
    	a = radar(BotGrabberRoller);
    	if ( a == null )  // object does not exist ?
    	{
    	}
    	if ( a.position.z > 50 )  // is it on a mountain ?
    	{
    	}
cs: 	object a;
    	a = radar(BotGrabberRoller);
    	if ( a == null )  // objekt neexistuje?
    	{
    	}
    	if ( a.position.z > 50 )  // je na kopci?
    	{
    	}

note: type: \b; header
en_US: Instruction <code>open</code>
cs: Příkaz <code>open</code>

note: type: Plain text
en_US: 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>:
cs: Otevře textový soubor v adresáři files/. Toto je metoda třídy <code><a cbot|file>file</a></code>. Proto ji vždy musíte volat jako <code>handle.open()</code>:

note: type: Plain text
en_US: To open a file, proceed as follows:
cs: Pro otevření souboru postupujte následovně:

note: type: Source code
en_US: 	file handle();
    	handle.open("filename", "w");
    	handle.writeln("abc");
    	handle.close();
cs: 	file handle();
    	handle.open("název", "w");
    	handle.writeln("abc");
    	handle.close();

note: type: Plain text
en_US: 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.
cs: Soubory můžete vytvářet a číst pouze v adresáři files/, který se nachází v adresáři pro uložené hry Colobotu. Mimo adresář files/ nemůžete vytvářet ani číst žádné soubory.

note: type: Plain text
en_US: <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>.
    <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
cs: <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> a <code><a cbot|eof>eof</a></code>.
    <a cbot>Programování</a>, <a cbot|type>datové typy</a> a <a cbot|category>kategorie</a>.

note: type: \b; header
en_US: Instruction <code>openfile</code>
cs: Příkaz <code>openfile</code>

note: type: Source code
en_US: file handle = openfile("filename", "r");
cs: file handle = openfile("název_souboru", "r");

note: type: \b; header
en_US: Type <code>point</code>
cs: Datový typ <code>point</code>

note: type: Plain text
en_US: 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.
    <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. 
    The <code>z</code> value corresponds to the altitude above sea level.
cs: Proměnné tohoto typu obsahují souřadnice bodu v prostoru. Tento typ se skládá ze tří hodnot, které reprezentují souřadnice <code>x</code>, <code>y</code> a <code>z</code>.
    Souřadnice <code>x</code> a <code>y</code> představují polohu na zemi. Kladná poloosa <code>x</code> míří na východ, kladná poloosa <code>y</code> míří na sever. 
    Souřadnice <code>z</code> představuje nadmořskou výšku.

note: type: Plain text
en_US: If you want to declare a variable of type point, you can write:
cs: Když chcete deklarovat proměnnou typu <code>point</code>, můžete napsat:

note: type: Plain text
en_US: You can also set the variable taking one value after another:
cs: Nebo můžete souřadnice zadat zvlášť:

note: type: Plain text
en_US: With these examples, the following <a cbot|cond>condition</a> is true:
cs: Když oba výše uvedené příklady napíšete do jednoho programu, bude pak splněna následující <a cbot|cond>podmínka</a>:

note: type: Plain text
en_US: <n/> 
    The following declaration :
cs: <n/> 
    Následující deklarace:

note: type: Plain text
en_US: Is equivalent to :
cs: Je funkčně totožná jako:

note: type: \b; header
en_US: References (for specialists)
cs: Ukazatelé (pro pokročilé)

note: type: Plain text
en_US: 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.
cs: CBOT využívá ukazatele pro práci s <a cbot|class>třídami</a> a <a cbot|array>poli</a>. Každá proměnná s některou třídou jako datovým typem je ve skutečnosti ukazatel na instanci. Samotná instance pak obsahuje jednotlivé atributy třídy. Na jednu instanci třídy může ukazovat více ukazatelů. Speciální hodnota <code><a cbot|null>null</a></code> představuje prázdný ukazatel. Instanci třídy si můžete představit jako kufřík a ukazatel jako nosiče. Pokaždé, když potřebujeme nový kufřík, vytvoříme novou instanci s vlastním nosičem. Ale stejný kufřík může držet několik nosičů zároveň. Nosič bez kufříku je ukazatel s hodnotou <code><a cbot|null>null</a></code>.

note: type: Plain text
en_US: Example:
    <c/><s/>{
cs: Příklad:
    <c/><s/>{

note: type: Source code
en_US: 	MyClass item1(); // create a new instance
    	                 // referenced by item1
    	MyClass item2;   // create a null reference
    	item2 = item1;   // copy the reference,
    	                 // item2 and item1 now reference
    	                 // the same instance
    	item1.a = 12;    // modifies the instance
    	                 // referenced by item1 (and item2)
    	message(item2.a);// displays 12
    }
cs: 	MyClass item1(); // vytvoří novou instanci
    	                 // a odkaz na ni uloží do item1
    	MyClass item2;   // vytvoří ukazatel s hodnotou null
    	item2 = item1;   // zkopíruje odkaz,
    	                 // item2 i item1 budou ukazovat
    	                 // na stejnou instanci
    	item1.a = 12;    // změní obsah instance,
    	                 // na kterou ukazuje item1 (a item2)
    	message(item2.a);// vypíše: 12
    }

note: type: Plain text
en_US: 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.
cs: Když instanci <a cbot|class>třídy</a> předáte jako parametr funkci, daná funkce dostane pouze ukazatel na tuto instanci. To znamená, že když obsah instance změníte uvnitř funkce, přepíšete tím obsah původní instance, která existuje mimo funkci.

note: type: Source code
en_US: {
    	item.a = 12;          // modify the original instance
    	item = new MyClass(); // new local instance
    	item.a = 33;          // modifie the local instance
    }
cs: {
    	item.a = 12;          // změní obsah původní instance
    	item = new MyClass(); // nová lokální instance
    	item.a = 33;          // změní obsah lokální instance
    }

note: type: Plain text
en_US: Calling the fucntion <code>Test()</code>:
    <c/><s/>{
cs: Když funkci <code>Test()</code> zavoláme:
    <c/><s/>{

note: type: Source code
en_US: 	MyClass toto();
    	Test(toto);
    	message(toto.a);  // displays 12
    }
cs: 	MyClass toto();
    	Test(toto);
    	message(toto.a);  // vypíše: 12
    }

note: type: Plain text
en_US: 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.
cs: Na nově vytvořenou instanci, která bude obsahovat atribut <code>a = 33</code>, odkazuje pouze jediný ukazatel <code>item</code> uvnitř funkce <code>Test</code>. Na konci funkce <code>Test</code> se tato nová instance automaticky smaže.

note: type: Plain text
en_US: A function can return an instance:
    <c/><s/>MyClass Test2( )
cs: Funkce mohou vracet instanci třídy:
    <c/><s/>MyClass Test2( )

note: type: Plain text
en_US: Call the function like this:
    <c/><s/>{
cs: Funkci pak volejte takto:
    <c/><s/>{

note: type: Source code
en_US: 	MyClass toto;
    	toto = Test2(); // toto will contain a reference to
    	                // the instance created by Test2()
    	message(toto.a); // displays 33
    }
cs: 	MyClass toto;
    	toto = Test2(); // "toto" bude ukazovat na instanci
    	                // vytvořenou uvnitř Test2()
    	message(toto.a); // vypíše: 33
    }

note: type: Plain text
en_US: <code><a cbot|class>class</a></code>, <code><a cbot|new>new</a></code>
    <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
cs: <code><a cbot|class>class</a></code>, <code><a cbot|new>new</a></code>
    <a cbot>Programování</a>, <a cbot|type>datové typy</a> a <a cbot|category>kategorie</a>.

note: type: \b; header
en_US: Instruction <code>private</code> (for specialists)
cs: Příkaz <code>private</code> (pro pokročilé)

note: type: Source code
en_US: public class MyClass
    {
    	int    b;                // public by default
    	public int a;            // also public 
    	private point position;  // private
    }
    void Test()
    {
    	MyClass item;
    	item.a = item.b = 12;      // ok
    	message( item.position );  // this is an error
    }
cs: public class MyClass
    {
    	int    b;                // implicitně veřejný
    	public int a;            // také veřejný
    	private point position;  // soukromý
    }
    void Test()
    {
    	MyClass item;
    	item.a = item.b = 12;      // ok
    	message( item.position );  // tohle je chyba
    }

note: type: \b; header
en_US: Instruction <code>public</code> (for specialists)
cs: Příkaz <code>public</code> (pro pokročilé)

note: type: Plain text
en_US: This instruction has two distinct purposes:
cs: Tento příkaz se používá ke dvěma různým účelům:

note: type: Bullet: '1)'
en_US: Make a function available to other bots.
cs: Ke zpřístupnění funkce jiným robotům.

note: type: Bullet: '2)'
en_US: Make a class member accessible from outside the class definition.
cs: Ke zpřístupnění prvku třídy i mimo definici třídy.

note: type: \b; header
en_US: Instruction <code>public</code> for functions
cs: Příkaz <code>public</code> pro funkce

note: type: Plain text
en_US: 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.
cs: Pokud před definici <a cbot|function>funkce</a> napíšete <code>public</code>, zpřístupníte tuto funkci i programům jiných robotů ve stejné misi.

note: type: Plain text
en_US: For example in the first bot we would have:
cs: Například program jednoho robota bude obsahovat:

note: type: Plain text
en_US: And in another bot we would have:
cs: A v programu druhého robota pak může být:

note: type: Plain text
en_US: 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.
cs: Pokud funkci deklarujete jako <code>public</code>, nesmíte pak ve stejné misi definovat funkci se stejným názvem a parametry u jiného robota.

note: type: Plain text
en_US: 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.
cs: Když bude zničen robot, u kterého je <code>public</code> funkce definovaná, programy ostatních robotů využívajících tuto funkci pak skončí chybou.

note: type: \b; header
en_US: Instruction <code>public</code> for classes
cs: Příkaz <code>public</code> pro třídy

note: type: Source code
en_US: public class MyClass
    {
    	int    b;                // public by default
    	public int a;            // also public 
    	private point position;  // privat
    }
    void Test()
    {
    	MyClass item;
    	item.a = item.b = 12;      // ok
    	message( item.position );  // this is an error
    }
cs: public class MyClass
    {
    	int    b;                // implicitně veřejný
    	public int a;            // také veřejný
    	private point position;  // soukromý
    }
    void Test()
    {
    	MyClass item;
    	item.a = item.b = 12;      // ok
    	message( item.position );  // tohle je chyba
    }

note: type: \b; header
en_US: Instruction <code>radar</code>
cs: Příkaz <code>radar</code>

note: type: Plain text
en_US: 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:
cs: Do závorek napište <a cbot|category>kategorii objektu</a>, který hledáte. Návratovou hodnotu si uložte do proměnné <a cbot|type>typu</a> <code>object</code>. Zde je příklad, který bude hledat nejbližšího mravence:

note: type: Source code
en_US: // At the beginning of the program:
    object  item; // variable declaration
    
    // Look for the closest ant
    item = radar(AlienAnt);
cs: // Na začátku programu
    object  item; // deklarace proměnné
    
    // Hledej nejbližšího mravence
    item = radar(AlienAnt);

note: type: Plain text
en_US: Detects an object according to several parameters.
cs: Hledá objekt podle zadaných parametrů.

note: type: Plain text
en_US: Seen from above, the purple zone corresponds to the zone where objects will be detected.
cs: Pohledem shora, modrá výseč odpovídá oblasti, ve které se bude hledat požadovaný objekt.

note: type: \t; header
en_US: category: <code><a cbot|int>int</a></code>
cs: kategorie: <code><a cbot|int>int</a></code>

note: type: Plain text
en_US: Direction that the radar is facing, in degrees. 
    <code>  0</code> -> radar is facing straight ahead
    <code>-90</code> -> radar is facing a quarter turn right
    <code> 90</code> -> radar is facing a quarter turn left
cs: Směr, kam radar míří, ve stupních. 
    <code>  0</code> -> radar míří přímo před robota
    <code>-90</code> -> radar míří vpravo od robota
    <code> 90</code> -> radar míří vlevo od robota

note: type: Plain text
en_US: Opening angle of the radar, in degrees.
cs: Šířka výseče ve stupních.

note: type: Plain text
en_US: Minimum detection distance, in meters. Objects that are closer than the minimum distance will not be detected.
cs: Minimální vzdálenost v metrech. Radar bude ignorovat objekty, které jsou k robotu blíže než tato vzdálenost.

note: type: Plain text
en_US: Maximum detection distance, in meters. Objects that are farther away than the maximum distance will not be detected.
cs: Maximální vzdálenost v metrech. Radar bude ignorovat objekty, které jsou od robota dále než tato vzdálenost.

note: type: Plain text
en_US: 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.
cs: Určuje, který objekt vybrat, pokud jich radar objevil více. Hodnota <code>1</code> znamená vrátit nejbližší objekt v zadané oblasti. Hodnota <code>-1</code> znamená vybrat ten nejvzdálenější.

note: type: \t; header
en_US: Return value: <code><a cbot|object>object</a></code>
cs: Návratová hodnota: <code><a cbot|object>object</a></code>

note: type: Plain text
en_US: 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>.
cs: Vrátí první nalezený objekt z požadované kategorie v zadané oblasti. Pokud v dané oblasti žádný takový objekt není, vrátí hodnotu <code><a cbot|null>null</a></code>.

note: type: \t; header
en_US: Remark
cs: Poznámky

note: type: Plain text
en_US: You do not have to give all the parameters. Here are two examples of instructions that are equivalent:
cs: Nemusíte vyplňovat všechny parametry. Zde jsou dva příklady ekvivalentních volání příkazu <code>radar()</code>:

note: type: Source code
en_US: 	radar(Titanium, 0, 360, 0, 1000);
    	radar(Titanium);  // equivalent
cs: 	radar(Titanium, 0, 360, 0, 1000);
    	radar(Titanium);  // totéž jako předchozí

note: type: Source code
en_US: 	radar(Titanium, 0, 90, 0, 1000);
    	radar(Titanium, 0, 90);  // equivalent
cs: 	radar(Titanium, 0, 90, 0, 1000);
    	radar(Titanium, 0, 90);  // totéž jako předchozí

note: type: Plain text
en_US: When one or more parameters are not specified, the default values indicated above are used instead; only the first parameter is compulsory.
    Generally, only the first parameter is specified: f. ex. <code>radar (AlienAnt)</code> detects the closest ant, wherever it may be.
cs: Když vynecháte jeden nebo více parametrů, použijí se výchozí hodnoty popsané výše; pouze první parametr je povinný.
    Tento příkaz se většinou volá jen s jedním parametrem, např. <code>radar (AlienAnt)</code> bude hledat nejbližšího mravence, ať už je kdekoliv.

note: type: \b; header
en_US: Instruction <code>readln</code>
cs: Příkaz <code>readln</code>

note: type: Plain text
en_US: 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>:
cs: Přečte jeden řádek z otevřeného souboru v adresáři files/. Toto je metoda třídy <code><a cbot|file>file</a></code>. Proto ji vždy musíte volat jako <code>handle.readln()</code>:

note: type: Plain text
en_US: 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).
cs: Soubor musí být otevřený pro čtení (<code>"r"</code>) příkazem <code><a cbot|open>open</a></code>. Příkaz <code>readln</code> vrací řetězec obsahující celý řádek, ale bez oddělovačů řádku - znaků 0x0D (CR) a 0x0A (LF) - na konci.

note: type: Plain text
en_US: <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>.
    <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
cs: <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> a <code><a cbot|eof>eof</a></code>.
    <a cbot>Programování</a>, <a cbot|type>datové typy</a> a <a cbot|category>kategorie</a>.

note: type: \b; header
en_US: Instruction <code>receive</code>
cs: Příkaz <code>receive</code>

note: type: Source code
en_US: <c/>receive ( name, power );<n/>
cs: <c/>receive ( název, výkon );<n/>

note: type: Plain text
en_US: Retrieves an information from the closest <a object|exchange>information exchange post</a>.
cs: Přečte informaci z nejbližší <a object|exchange>komunikační stanice</a>.

note: type: Plain text
en_US: Name of the information required from the exchange post. This name is a string: it must be written in quotation marks "".
cs: Název informace, která se má přečíst z komunikační stanice. Název je řetězec, takže jeho hodnota se musí zapisovat do uvozovek "".

note: type: Plain text
en_US: 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.
cs: Výkon přijímače, který odpovídá maximální vzdálenosti mezi vysílačem a komunikační stanicí. Pokud bude vzdálenost k nejbližší stanici větší, informaci nebude možné přečíst. Výchozí hodnota je 10 metrů.

note: type: Plain text
en_US: 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.
cs: Obsah přečtené informace. Pokud v dosahu není žádná komunikační stanice nebo neobsahuje požadovanou informaci, příkaz vrátí hodnotu <code>nan</code>.

note: type: Plain text
en_US: <code><a cbot|send>send</a></code>, <code><a cbot|testinfo>testinfo</a></code> and <code><a cbot|delinfo>deleteinfo</a></code>.
    <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
cs: <code><a cbot|send>send</a></code>, <code><a cbot|testinfo>testinfo</a></code> a <code><a cbot|delinfo>deleteinfo</a></code>.
    <a cbot>Programování</a>, <a cbot|type>datové typy</a> a <a cbot|category>kategorie</a>.

note: type: \b; header
en_US: Instruction <code>recycle</code>
cs: Příkaz <code>recycle</code>

note: type: Plain text
en_US: Recycles the derelict bot in front of the <a object|botrecy>recycler</a> into a <a object|titan>titanium cube</a>.
cs: Zrecykluje vrak robota před <a object|botrecy>recyklátorem</a> na <a object|titan>kostku titanu</a>.

note: type: Plain text
en_US: Zero if OK, or a value different from zero if an error occurred.
    <code>== 0 </code>the derelict bot has been recycled
    <code>!= 0 </code>error, no derelict bot could be recycled
cs: Nula, pokud je vše v pořádku, nebo nenulová hodnota v případě chyby.
    <code>== 0</code> vrak robota byl zrecyklován
    <code>!= 0</code> nelze zrecyklovat žádný vrak

note: type: \b; header
en_US: Instruction <code>retobject</code>
cs: Příkaz <code>retobject</code>

note: type: Source code
en_US: <c/>retobject ( number );<n/>
cs: <c/>retobject ( číslo );<n/>

note: type: Plain text
en_US: Returns the object corresponding to the given number.
cs: Vrátí objekt identifikovaný zadaným číslem.

note: type: \t; header
en_US: number: <code><a cbot|int>int</a></code>
cs: číslo: <code><a cbot|int>int</a></code>

note: type: Plain text
en_US: Number of the object, between 0 and n. "n" represents the total number of objects in the scene.
cs: Číslo objektu od 0 do n. "n" představuje celkový počet objektů na mapě.

note: type: Plain text
en_US: 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.
cs: Objekt identifikovaný zadaným číslem. Návratová hodnota <code><a cbot|null>null</a></code> znamená, že tomuto číslu neodpovídá žádný objekt, protože je větší než celkový počet objektů na mapě.

note: type: \b; header
en_US: Instruction <code>return</code>
cs: Příkaz <code>return</code>

note: type: Plain text
en_US: Returns from a function. Syntax:
cs: Ukončí provádění funkce a vrátí výstupní hodnotu. Syntaxe:

note: type: Source code
en_US: void function ( )
    {
    	return;
    }
cs: void funkce ( )
    {
    	return;
    }

note: type: Plain text
en_US: 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:
cs: Pokud má <a cbot|function>funkce</a> jiný návratový typ než <code><a cbot|void>void</a></code>, za příkazem <code>return</code> musí následovat návratová hodnota:

note: type: Source code
en_US: float Mean (float a, float b)
    {
    	return (a+b)/2;
    }
cs: float Prumer (float a, float b)
    {
    	return (a+b)/2;
    }

note: type: Source code
en_US: string Sign (float a)
    {
    	if ( a > 0 )  return "positive";
    	if ( a < 0 )  return "negative";
    	return "null";
    }
cs: string Znamenko (float a)
    {
    	if ( a > 0 )  return "kladne";
    	if ( a < 0 )  return "zaporne";
    	return "nula";
    }

note: type: \b; header
en_US: Instruction <code>search</code>
cs: Příkaz <code>search</code>

note: type: Source code
en_US: <c/>search ( category, position );<n/>
cs: <c/>search ( kategorie, bod );<n/>

note: type: \t; header
en_US: position: <code><a cbot|point>point</a></code>
cs: bod: <code><a cbot|point>point</a></code>

note: type: Plain text
en_US: <code>search</code> returns the object of the given category that is closest to the position indicated here.
cs: Příkaz <code>search</code> vrací objekt ze zadané kategorie, který je neblíže k tomuto bodu.

note: type: Plain text
en_US: 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.
cs: Popis nalezeného objektu. Hodnota <code><a cbot|null>null</a></code> znamená, že nebyl nalezen žádný objekt ze zadané kategorie.

note: type: \b; header
en_US: Instruction <code>send</code>
cs: Příkaz <code>send</code>

note: type: Source code
en_US: <c/>send ( name, value, power );<n/>
cs: <c/>send ( název, hodnota, výkon );<n/>

note: type: Plain text
en_US: Sends an information to the closest <a object|exchange>information exchange post</a>.
cs: Odešle informaci na nejbližší <a object|exchange>komunikační stanici</a>.

note: type: Plain text
en_US: Name of the information to be sent to the exchange post. This name is a string: it must be written in quotation marks "".
    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.
cs: Název informace, která se má odeslat na komunikační stanici. Název je řetězec, takže jeho hodnota se musí zapisovat do uvozovek "".
    Pokud informace s tímto názvem neexistuje a v komunikační stanici je méně než 10 záznamů, vytvoří se nový záznam. Pokud už informace s tímto názvem existuje, pouze se přepíše její hodnota.

note: type: \t; header
en_US: value: <code>float</code>
cs: hodnota: <code>float</code>

note: type: Plain text
en_US: Value of the information to be sent.
cs: Obsah informace, která se má odeslat.

note: type: Plain text
en_US: Power of the transmitter, which corresponds to the maximal distance to where information can be the sent. Default value is 10 metres.
cs: Výkon vysílače, který odpovídá maximální vzdálenosti, kam lze informaci odeslat. Výchozí hodnota je 10 metrů.

note: type: Plain text
en_US: <code><a cbot|receive>receive</a></code>, <code><a cbot|testinfo>testinfo</a></code> and <code><a cbot|delinfo>deleteinfo</a></code>.
    <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
cs: <code><a cbot|receive>receive</a></code>, <code><a cbot|testinfo>testinfo</a></code> a <code><a cbot|delinfo>deleteinfo</a></code>.
    <a cbot>Programování</a>, <a cbot|type>datové typy</a> a <a cbot|category>kategorie</a>.

note: type: \b; header
en_US: Instruction <code>shield</code>
cs: Příkaz <code>shield</code>

note: type: Source code
en_US: <c/>shield ( oper, radius );<n/>
cs: <c/>shield ( akce, poloměr );<n/>

note: type: Plain text
en_US: Activates or deactivates the shield of the <a object|botshld>shielder</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.
cs: Zapne nebo vypne silové pole <a object|botshld>mobilního štítu</a>. Mobilní štít se samozřejmě může pohybovat i se zapnutým silovým polem. Objekty uvnitř silového pole budou chráněné před nepřátelskou palbou. Poloměr silového pole můžete nastavit od 10 do 25 metrů.

note: type: \t; header
en_US: oper: <code><a cbot|float>float</a></code>
cs: akce: <code><a cbot|float>float</a></code>

note: type: Plain text
en_US: <code>1</code> activates the shield.
    <code>0</code> deactivates the shield
    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.
cs: <code>1</code> zapne silové pole
    <code>0</code> vypne silové pole
    Plně nabitá obyčejná <a object|power>baterie</a> dokáže napájet silové pole po dobu 20 sekund. Když se baterie vybije, silové pole se vypne.

note: type: \t; header
en_US: radius: <code><a cbot|float>float</a></code>
cs: poloměr: <code><a cbot|float>float</a></code>

note: type: Plain text
en_US: Radius of the shield, ranging between 10 and 25 meters.
cs: Poloměr silového pole v rozsahu 10 až 25 metrů.

note: type: \b; header
en_US: Instruction <code>sizeof</code>
cs: Příkaz <code>sizeof</code>

note: type: Plain text
en_US: The sizeof function lets you know the number of elements contained in an <a cbot|array>array</a>.
    That is the index of the last element plus one ("empty" elements are counted).
cs: Funkce sizeof vrací počet prvků v <a cbot|array>poli</a>.
    To znamená index posledního prvku plus jedna (počítají se i "prázdné" prvky).

note: type: Source code
en_US: {
    	int a[12];
    	a[5] = 345;
    	message( sizeof(a) );  // will display 6
    }
cs: {
    	int a[12];
    	a[5] = 345;
    	message( sizeof(a) );  // zobrazí hodnotu 6
    }

note: type: Plain text
en_US: 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.
cs: V příkladu výše bude po příkazu <code>a[5] = 345</code> v poli 6 prvků. Započítají se i neinicializované prvky <code>[0]</code>, <code>[1]</code>, <code>[2]</code>, <code>[3]</code> a <code>[4]</code>.

note: type: Plain text
en_US: With multidimensionnal arrays you can get the size of a sub array:
cs: U vícerozměrných polí můžete zjistit velikost i vnořených polí:

note: type: Source code
en_US: float xy[][];  // 2 dimensionnal array
    xy[5][10] = 67;
    message( sizeof(xy)    );  // will display 6
    message( sizeof(xy[5]) );  // will display 11
cs: float xy[][];  // dvourozměrné pole
    xy[5][10] = 67;
    message( sizeof(xy)    );  // zobrazí hodnotu 6
    message( sizeof(xy[5]) );  // zobrazí hodnotu 11

note: type: \b; header
en_US: Instruction <code>sniff</code>
cs: Příkaz <code>sniff</code>

note: type: Plain text
en_US: 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:
cs: Prozkoumá podzemí před <a object|botsr>pojízdným detektorem</a>. Podle nalezených surovin pak na zem umístí následující značky:

note: type: Plain text
en_US: <code>TitaniumSpot</code>  ->  <a object|stonspot>Red cross</a>
    <code>UraniumSpot </code>  ->  <a object|uranspot>Yellow circle</a>
    <code>PowerSpot   </code>  ->  <a object|enerspot>Green cross</a>
cs: <code>TitaniumSpot</code>  ->  <a object|stonspot>Červený křížek</a>
    <code>UraniumSpot </code>  ->  <a object|uranspot>Žluté kolečko</a>
    <code>PowerSpot   </code>  ->  <a object|enerspot>Zelený křížek</a>

note: type: Plain text
en_US: Zero if everything is OK, or a value different from zero if an error occurred. 
    <code>== 0 </code>sounding performed
    <code>!= 0 </code>sounding impossible
cs: Nula, pokud je vše v pořádku, nebo nenulová hodnota v případě chyby.
    <code>== 0</code> průzkum dokončen
    <code>!= 0</code> průzkum nelze provést

note: type: \b; header
en_US: Instruction <code>space</code>
cs: Příkaz <code>space</code>

note: type: Source code
en_US: <c/>space ( center, rmin, rmax, dist );<n/>
cs: <c/>space ( střed, rmin, rmax, vzdálenost );<n/>

note: type: Plain text
en_US: Determines the position of the nearest free space around a given position.
cs: Vrátí souřadnice nejbližšího volného místa kolem zadaného bodu.

note: type: \t; header
en_US: center: <code><a cbot|point>point</a></code> (default: bot position)
cs: střed: <code><a cbot|point>point</a></code> (výchozí hodnota: aktuální poloha robota)

note: type: Plain text
en_US: Desired position of the free space.
cs: Požadovaná poloha volného místa.

note: type: \t; header
en_US: rmin: <code><a cbot|float>float</a></code> (default value: <code>8</code>)
cs: rmin: <code><a cbot|float>float</a></code> (výchozí hodnota: <code>8</code>)

note: type: Plain text
en_US: Minimum distance from the desired position.
cs: Minimální vzdálenost od požadované polohy.

note: type: \t; header
en_US: rmax: <code><a cbot|float>float</a></code> (default value: <code>50</code>)
cs: rmax: <code><a cbot|float>float</a></code> (výchozí hodnota: <code>50</code>)

note: type: Plain text
en_US: Maximum distance from the desired position.
cs: Maximální vzdálenost od požadované polohy.

note: type: \t; header
en_US: dist: <code><a cbot|float>float</a></code> (default value: <code>4</code>)
cs: vzdálenost: <code><a cbot|float>float</a></code> (výchozí hodnota: <code>4</code>)

note: type: Plain text
en_US: Required distance between two free spaces.
cs: Požadovaná vzdálenost mezi dvěma volnými místy.

note: type: \t; header
en_US: Return: <code><a cbot|point>point</a></code>
cs: Návratová hodnota: <code><a cbot|point>point</a></code>

note: type: Plain text
en_US: Position of the free space.
cs: Souřadnice volného místa.

note: type: \b; header
en_US: Instruction <code>static</code> (for specialists)
cs: Příkaz <code>static</code> (pro pokročilé)

note: type: Plain text
en_US: <a cbot|class>Class</a> members declared with <code>static</code> are shared between all instances of the class.
cs: Prvky <a cbot|class>třídy</a> deklarované jako <code>static</code> budou sdílené mezi všemi instancemi dané třídy.

note: type: Source code
en_US: public class MyClass
    {
    	static int nb = 1;
    	static string [ ] list = null;
    }
    void Test ()
    {
    	MyClasse item1();
    	MyClasse item2();
    	item1.nb = 3;
    	item1.list[item1.nb] = "Hello";
    	message( item2.list[item2.nb] ); // display "Hello"
    }
cs: public class MyClass
    {
    	static int nb = 1;
    	static string [ ] list = null;
    }
    void Test ()
    {
    	MyClass item1();
    	MyClass item2();
    	item1.nb = 3;
    	item1.list[item1.nb] = "Hello";
    	message( item2.list[item2.nb] ); // zobrazí "Hello"
    }

note: type: Plain text
en_US: <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).
cs: Prvky deklarované jako <code>static</code> můžete zároveň deklarovat jako <code><a cbot|private>private</a></code>, aby byly přístupné pouze uvnitř metod třídy (včetně konstruktorů a destruktorů).

note: type: Plain text
en_US: <code><a cbot|class>class</a></code>, <code><a cbot|synchro>synchronized</a></code>
    <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
cs: <code><a cbot|class>class</a></code>, <code><a cbot|synchro>synchronized</a></code>
    <a cbot>Programování</a>, <a cbot|type>datové typy</a> a <a cbot|category>kategorie</a>.

note: type: \b; header
en_US: Instruction <code>strfind</code>
cs: Příkaz <code>strfind</code>

note: type: Plain text
en_US: 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.
cs: Vrátí pozici prvního nalezeného podřetězce v řetězci nebo hodnotu <a cbot|nan>nan</a>, pokud podřetězec nebyl nalezen.

note: type: Source code
en_US: <c/>strfind ( string, sub );<n/>
cs: <c/>strfind ( řetězec, podřetězec );<n/>

note: type: \t; header
en_US: string: <code><a cbot|string>string</a></code>
cs: řetězec: <code><a cbot|string>string</a></code>

note: type: Plain text
en_US: String we are searching in.
cs: Textový řetězec, ve kterém se bude hledat.

note: type: \t; header
en_US: sub: <code><a cbot|string>string</a></code>
cs: podřetězec: <code><a cbot|string>string</a></code>

note: type: Plain text
en_US: Substring we are searching for.
cs: Hledaná hodnota.

note: type: Plain text
en_US: Examples:
cs: Příklady:

note: type: Source code
en_US: <c/>	int pos = strfind("abcdef", "ab"); // pos will be 0
    	int pos = strfind("abcdef", "de"); // pos will be 3
    	int pos = strfind("abcdef", "xy"); // pos will be <a cbot|nan>nan</a>
cs: <c/>	int pos = strfind("abcdef", "ab"); // pos bude 0
    	int pos = strfind("abcdef", "de"); // pos bude 3
    	int pos = strfind("abcdef", "xy"); // pos bude <a cbot|nan>nan</a>

note: type: Plain text
en_US: <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>
    <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
cs: <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>
    <a cbot>Programování</a>, <a cbot|type>datové typy</a> a <a cbot|category>kategorie</a>.

note: type: \b; header
en_US: Type <code>string</code>
cs: Datový typ <code>string</code>

note: type: Plain text
en_US: Use a variable of this type for storing characters or strings.
cs: Proměnné tohoto typu používejte pro ukládání znaků nebo textových řetězců.

note: type: Plain text
en_US: For example:
cs: Například:

note: type: Source code
en_US: <c/>	"Hello!"
    	"This is a string"
    	"x"
    	""  // empty string
cs: <c/>	"Ahoj!"
    	"Tohle je text"
    	"x"
    	""  // prázdný řetězec

note: type: Plain text
en_US: You can append two strings with the <code>+</code> operator :
cs: Pomocí operátoru <code>+</code> můžete spojit dva řetězce dohromady:

note: type: Plain text
en_US: Returns the string:
cs: Vytvoří nový řetězec:

note: type: Plain text
en_US: If you want to put a quotation mark (") or a backslash (\) in a string you must write:
cs: Pokud chcete v řetězci napsat uvozovky (") nebo zpětné lomítko (\), musíte je zapsat takto:

note: type: Source code
en_US: <c/>"This is \"very\" important"
cs: <c/>"Tohle je \"velmi\" dulezite"

note: type: Plain text
en_US: <n/>which will result in the string <c/> This is "very" important.
cs: <n/>vytvoří řetězec <c/>Tohle je "velmi" dulezite

note: type: Plain text
en_US: <n/>will result in <c/>%user%\ant.txt
cs: <n/>vytvoří řetězec <c/>%user%\ant.txt

note: type: Plain text
en_US: Following instructions can be used with strings:
    <code><a cbot|strlen>strlen</a>     </code>Get string length
    <code><a cbot|strleft>strleft</a>    </code>Extract left part
    <code><a cbot|strright>strright</a>   </code>Extract right part
    <code><a cbot|strmid>strmid</a>     </code>Extract center part
    <code><a cbot|strfind>strfind</a>    </code>Find a substring.
    <code><a cbot|strval>strval</a>     </code>Convert string to number
    <code><a cbot|strupper>strupper</a>   </code>Convert to upper case
    <code><a cbot|strlower>strlower</a>   </code>Convert to lower case
cs: Pro práci s řetězci můžete použít následující příkazy:
    <code><a cbot|strlen>strlen</a>     </code>Vrátí délku řetězce
    <code><a cbot|strleft>strleft</a>    </code>Vrátí podřetězec na začátku řetězce
    <code><a cbot|strright>strright</a>   </code>Vrátí podřetězec na konci řetězce
    <code><a cbot|strmid>strmid</a>     </code>Vrátí podřetězec uprostřed řetězce
    <code><a cbot|strfind>strfind</a>    </code>Najde podřetězec
    <code><a cbot|strval>strval</a>     </code>Převede obsah řetězce na číslo
    <code><a cbot|strupper>strupper</a>   </code>Změní malá písmena na velká
    <code><a cbot|strlower>strlower</a>   </code>Změní velká písmena na malá

note: type: \b; header
en_US: Instruction <code>strleft</code>
cs: Příkaz <code>strleft</code>

note: type: Plain text
en_US: Extracts the first (that is, leftmost) characters from a string.
cs: Vrátí podřetězec dané délky ze začátku vstupního řetězce.

note: type: Source code
en_US: <c/>strleft ( string, len );<n/>
cs: <c/>strleft ( řetězec, délka );<n/>

note: type: \t; header
en_US: len: <code><a cbot|int>int</a></code>
cs: délka: <code><a cbot|int>int</a></code>

note: type: Plain text
en_US: Number of characters to be extracted.
cs: Délka požadovaného podřetězce.

note: type: Source code
en_US: <c/>	string s = strleft("abcdef", 2);  // s is "ab"
    	string s = strleft("abc", 10);  // s is "abc"
cs: <c/>	string s = strleft("abcdef", 2);  // do proměnné se uloží "ab"
    	string s = strleft("abc", 10);  // do proměnné se uloží "abc"

note: type: Plain text
en_US: <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>
    <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
cs: <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>
    <a cbot>Programování</a>, <a cbot|type>datové typy</a> a <a cbot|category>kategorie</a>.

note: type: \b; header
en_US: Instruction <code>strlen</code>
cs: Příkaz <code>strlen</code>

note: type: Plain text
en_US: Get the length of a string.
cs: Vrátí délku řetězce.

note: type: Source code
en_US: <c/>strlen ( string );<n/>
cs: <c/>strlen ( řetězec );<n/>

note: type: Source code
en_US: <c/>	int len = strlen("abc");  // len is 3
    	int len = strlen("");  // len is 0
    	if ( strlen(s) == 0 )  // is string empty ?
cs: <c/>	int len = strlen("abc");  // len bude 3
    	int len = strlen("");  // len bude 0
    	if ( strlen(s) == 0 )  // je řetězec prázdný?

note: type: Plain text
en_US: <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>
    <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
cs: <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>
    <a cbot>Programování</a>, <a cbot|type>datové typy</a> a <a cbot|category>kategorie</a>.

note: type: \b; header
en_US: Instruction <code>strlower</code>
cs: Příkaz <code>strlower</code>

note: type: Plain text
en_US: Convert all characters in a string to lowercase.
cs: Změní všechna písmena v řetězci na malá.

note: type: Source code
en_US: <c/>strlower ( string );<n/>
cs: <c/>strlower ( řetězec );<n/>

note: type: Source code
en_US: <c/>	string s = strlower("Abc");  // s is "abc"
cs: <c/>	string s = strlower("Abc");  // s bude "abc"

note: type: Plain text
en_US: <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>
    <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
cs: <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>
    <a cbot>Programování</a>, <a cbot|type>datové typy</a> a <a cbot|category>kategorie</a>.

note: type: \b; header
en_US: Instruction <code>strmid</code>
cs: Příkaz <code>strmid</code>

note: type: Plain text
en_US: Extracts a substring of a given length starting at a given position from a string.
cs: Vrátí podřetězec zadané délky začínající na zadané pozici uvnitř vstupního řetězce.

note: type: Source code
en_US: <c/>strmid ( string, pos, len );<n/>
cs: <c/>strmid ( řetězec, start, délka );<n/>

note: type: \t; header
en_US: pos: <code><a cbot|int>int</a></code>
cs: start: <code><a cbot|int>int</a></code>

note: type: Plain text
en_US: The index of the first character that is to be included in the extracted substring.
cs: Index prvního znaku v řetězci, který má být součástí výstupního podřetězce.

note: type: Source code
en_US: <c/>	string s = strmid("abcdef", 1, 2);  // s is "bc"
    	string s = strmid("abcdef", 4, 5);  // s is "ef"
    	string s = strmid("abcdef", 9, 2);  // s is ""
cs: <c/>	string s = strmid("abcdef", 1, 2);  // s bude "bc"
    	string s = strmid("abcdef", 4, 5);  // s bude "ef"
    	string s = strmid("abcdef", 9, 2);  // s bude ""

note: type: Plain text
en_US: <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>
    <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
cs: <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>
    <a cbot>Programování</a>, <a cbot|type>datové typy</a> a <a cbot|category>kategorie</a>.

note: type: \b; header
en_US: Instruction <code>strright</code>
cs: Příkaz <code>strright</code>

note: type: Plain text
en_US: Extracts the last (that is, rightmost) characters from a string.
cs: Vrátí podřetězec zadané délky od konce vstupního řetězce.

note: type: Source code
en_US: <c/>strright ( string, len );<n/>
cs: <c/>strright ( řetězec, délka );<n/>

note: type: Source code
en_US: <c/>	string s = strright("abcdef", 2);  // s is "ef"
    	string s = strright("abc", 10);  // s is "abc"
cs: <c/>	string s = strright("abcdef", 2);  // s bude "ef"
    	string s = strright("abc", 10);  // s bude "abc"

note: type: Plain text
en_US: <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>
    <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
cs: <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>
    <a cbot>Programování</a>, <a cbot|type>datové typy</a> a <a cbot|category>kategorie</a>.

note: type: \b; header
en_US: Instruction <code>strupper</code>
cs: Příkaz <code>strupper</code>

note: type: Plain text
en_US: Convert all characters in a string to uppercase.
cs: Změní všechna písmena v řetězci na velká.

note: type: Source code
en_US: <c/>strupper ( string );<n/>
cs: <c/>strupper ( řetězec );<n/>

note: type: Source code
en_US: <c/>	string s = strupper("Abc");  // s is "ABC"
cs: <c/>	string s = strupper("Abc");  // s bude "ABC"

note: type: Plain text
en_US: <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>
    <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
cs: <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>
    <a cbot>Programování</a>, <a cbot|type>datové typy</a> a <a cbot|category>kategorie</a>.

note: type: \b; header
en_US: Instruction <code>strval</code>
cs: Příkaz <code>strval</code>

note: type: Plain text
en_US: 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>.
cs: Převede řetězec na číslo. Nepleťte si řetězec <code>"45"</code>, který ve skutečnosti obsahuje dva znaky <code>"4"</code> a <code>"5"</code> s číslem <code>45</code>.

note: type: Source code
en_US: <c/>	string s = "45"+"12";  // s contains "4512"
    	float  n =  45 + 12;   // n contains 67
cs: <c/>	string s = "45"+"12";  // s bude "4512"
    	float  n =  45 + 12;   // n bude 57

note: type: Source code
en_US: <c/>strval ( string );<n/>
cs: <c/>strval ( řetězec );<n/>

note: type: Source code
en_US: <c/>	float n = strval("1.23");     // n is 1.23
    	float n = strval("12abc45");  // n is 12
    	float n = strval("abc");      // n is 0
    	float n = strval("100")+2;    // n is 102
cs: <c/>	float n = strval("1.23");     // n bude 1.23
    	float n = strval("12abc45");  // n bude 12
    	float n = strval("abc");      // n bude 0
    	float n = strval("100")+2;    // n bude 102

note: type: Plain text
en_US: <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>
    <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
cs: <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>
    <a cbot>Programování</a>, <a cbot|type>datové typy</a> a <a cbot|category>kategorie</a>.

note: type: \b; header
en_US: Instruction <code>synchronized</code> (for specialists)
cs: Příkaz <code>synchronized</code> (pro pokročilé)

note: type: Plain text
en_US: 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.
cs: Metodu <a cbot|class>třídy</a> lze deklarovat jako <code>synchronized</code>. Tím se zaručí, že danou metodu nebudou moci vykonávat dva roboti současně.

note: type: Plain text
en_US: The following example illustrates the problem:
cs: Následující příklad vysvětluje problém souběžného volání:

note: type: Source code
en_US: class blocking
    {
    	static int nb = 33;
    	synchronized int inc( )
    	{
    		int val = nb;
    		wait ( 2 );  // wait 2 sec.
    		nb = nb + 1;
    		return val;
    	}
    }
cs: class blocking
    {
    	static int nb = 33;
    	synchronized int inc( )
    	{
    		int val = nb;
    		wait ( 2 );  // počkat 2 vteřiny
    		nb = nb + 1;
    		return val;
    	}
    }

note: type: Plain text
en_US: What happens if two bots execute the <code>inc</code> method at the same time?
    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>.
cs: Co se stane, když dva roboti zavolají metodu <code>inc</code> ve stejný okamžik?
    Oba roboti provedou příkaz <code>val=nb</code> a počkají 2 vteřiny, takže oba budou pracovat s hodnotou <code>val=33</code>. S deklarací jako <code>synchronized</code> začne první robot vykonávat metodu s hodnotou <code>val=33</code>, pak počká 2 vteřiny a vrátí se z volání. Druhý robot bude muset čekat, až první robot volání metody <code>inc</code> dokončí, takže druhý robot bude vždy pracovat s hodnotou <code>val=34</code>.

note: type: Plain text
en_US: 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.
cs: Ve <a cbot|class>třídě</a> můžete deklarovat několik metod jako <code>synchronized</code> a blokování souběžného volání platí pro všechny společně. Jinými slovy, dokud některý robot vykonává kód uvnitř metody deklarované jako <code>synchronized</code>, žádný jiný robot nemůže začít vykonávat žádnou metodu téže třídy, která je také deklarovaná jako <code>synchronized</code>.

note: type: Plain text
en_US: <code><a cbot|class>class</a></code>, <code><a cbot|static>static</a></code>
    <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
cs: <code><a cbot|class>class</a></code>, <code><a cbot|static>static</a></code>
    <a cbot>Programování</a>, <a cbot|type>datové typy</a> a <a cbot|category>kategorie</a>.

note: type: \b; header
en_US: Semicolon
cs: Středník

note: type: Plain text
en_US: Always use a semicolon <c/>;<n/> after a simple expression. For example:
cs: Za jednoduchým příkazem vždy pište středník "<c/>;<n/>". Například:

note: type: Plain text
en_US: However, after a <a cbot|bloc>bloc</a>, never put a semicolon:
cs: Naopak za <a cbot|bloc>blokem příkazů</a> středník nikdy nepište:

note: type: Source code
en_US: 	{
    		float dist;
    		dist = distance(p1, p2);
    	} <n/>// no semicolon here!<c/>
cs: 	{
    		float dist;
    		dist = distance(p1, p2);
    	} <n/>// tady žádný středník!<c/>

note: type: Plain text
en_US: 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>:
cs: Také nikdy nepište středník hned za příkazy <code><a cbot|while>while</a></code>, <code><a cbot|if>if</a></code> nebo <code><a cbot|for>for</a></code>:

note: type: Source code
en_US: 	if ( a < b ) <n/>// no semicolon here!<c/>
    	{
    		b = 100-a;
    	}
cs: 	if ( a < b ) <n/>// tady žádný středník!<c/>
    	{
    		b = 100-a;
    	}

note: type: Plain text
en_US: 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:
cs: Každý příkaz je vždy ukončený středníkem, ne koncem řádku. Takže klidně můžete napsat několik příkazů na jeden řádek:

note: type: Plain text
en_US: Is equivalent to:
cs: Je totéž jako:

note: type: \b; header
en_US: Instruction <code>testinfo</code>
cs: Příkaz <code>testinfo</code>

note: type: Source code
en_US: <c/>testinfo ( name, power );<n/>
cs: <c/>testinfo ( název, výkon );<n/>

note: type: Plain text
en_US: Tests if an information exists in the closest <a object|exchange>information exchange post</a>.
cs: Zjistí, jestli nejbližší <a object|exchange>komunikační stanice</a> obsahuje zadanou informaci.

note: type: Plain text
en_US: Name of the information to be tested in the exchange post. This name is a string: it must be written in quotation marks "".
cs: Název informace, která se má v komunikační stanici hledat. Název je řetězec, takže jeho hodnota se musí zapisovat do uvozovek "".

note: type: Plain text
en_US: 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.
cs: Výkon vysílače, který odpovídá maximální vzdálenosti mezi vysílačem a komunikační stanicí. Pokud bude vzdálenost k nejbližší stanici větší, funkce vrátí hodnotu <code>false</code>. Výchozí hodnota je 10 metrů.

note: type: \t; header
en_US: Return: <code><a cbot|bool>bool</a></code>
cs: Návratová hodnota: <code><a cbot|bool>bool</a></code>

note: type: Plain text
en_US: 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.
cs: Vrátí hodnotu <code>true</code>, pokud požadovaná informace existuje. Vrátí hodnotu <code>false</code>, pokud požadovaná informace neexistuje nebo je přijímač příliš daleko od komunikační stanice.

note: type: Plain text
en_US: <code><a cbot|receive>receive</a></code>, <code><a cbot|send>send</a></code> and <code><a cbot|delinfo>deleteinfo</a></code>.
    <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
cs: <code><a cbot|receive>receive</a></code>, <code><a cbot|send>send</a></code> a <code><a cbot|delinfo>deleteinfo</a></code>.
    <a cbot>Programování</a>, <a cbot|type>datové typy</a> a <a cbot|category>kategorie</a>.

note: type: \b; header
en_US: Instruction <code>this</code>
cs: Proměnná <code>this</code>

note: type: Plain text
en_US: 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.
cs: Metody <a cbot|class>třídy</a> někdy potřebují ukazatel na instanci, se kterou právě pracují. Například by mohly chtít tento ukazatel předat jiné funkci. V metodách třídy je proto dostupná implicitní proměnná <code>this</code>, která obsahuje ukazatel na aktuální instanci.

note: type: Source code
en_US: public class MyClass
    {
    	int    m_int;
    	string m_str;
    	void MyFunction()
    	{
    		OtherFunction(this);
    		m_int = 2;
    	}
    }
    
    void OtherFunction(MyClass obj)
    {
    	message(obj.m_str);
    }
    
    extern void object::Test()
    {
    	MyClass item();
    	item.m_str = "Hello";
    	item.MyFunction();  // display "Hello"
    }
cs: public class MyClass
    {
    	int    m_int;
    	string m_str;
    	void MyFunction()
    	{
    		OtherFunction(this);
    		m_int = 2;
    	}
    }
    
    void OtherFunction(MyClass obj)
    {
    	message(obj.m_str);
    }
    
    extern void object::Test()
    {
    	MyClass item();
    	item.m_str = "Ahoj";
    	item.MyFunction();  // zobrazí "Ahoj"
    }

note: type: Plain text
en_US: 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:
cs: Uvnitř metody také můžete napsat <code>this</code> před název prvku třídy, ale není to nutné. Uvnitř metody <code>MyFunction()</code> z předchozího příklady by následující dva řádky měly stejný význam:

note: type: Source code
en_US: 	m_int = 2;
    	this.m_int = 2;  // identical
cs: 	m_int = 2;
    	this.m_int = 2;  // totéž

note: type: Plain text
en_US: In a method of the <code><a cbot|object>object</a></code> class, you can also use <code>this.</code> before a fieldname.
cs: V metodě třídy <code><a cbot|object>object</a></code> také můžete psát <code>this</code> před názvem prvku.

note: type: Source code
en_US: extern void object::Display()
    {
    	message(orientation);
    	message(this.orientation); // same thing but
    	                           // more explicit
    }
cs: extern void object::Display()
    {
    	message(orientation);
    	message(this.orientation); // stejný význam
    	                           // ale podrobnější zápis
    }

note: type: Plain text
en_US: 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.
cs: Ale pokud je název prvku třídy překrytý deklarací parametru nebo proměnné, musíte k němu přistupovat pouze přes proměnnou <code>this</code>. V následujícím příkladu má parametr <code>value</code> stejný název jako prvek <code>value</code> <a cbot|class>třídy</a> <code>MyClass</code>, takže pro odlišení prvku od parametru musíme psát <code>this.value</code>.

note: type: \b; header
en_US: Instruction <code>thump</code>
cs: Příkaz <code>thump</code>

note: type: Plain text
en_US: 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.
cs: Aktivuje zbraň <a object|bottump>bucharu</a>, která převrátí mravence a pavouky na záda, čímž je dočasně zneškodní.

note: type: Plain text
en_US: Zero if everything is OK, a value different from zero if an error occurred. 
    <code>== 0 </code>Thumping performed
    <code>!= 0 </code>Operation impossible
cs: Nula, pokud je vše v pořádku, nebo nenulová hodnota v případě chyby.
    <code>== 0</code> Úder proveden
    <code>!= 0</code> Akci nelze provést

note: type: \b; header
en_US: Instruction <code>topo</code>
cs: Příkaz <code>topo</code>

note: type: Source code
en_US: <c/>topo ( position );<n/>
cs: <c/>topo ( bod );<n/>

note: type: Plain text
en_US: 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.
cs: Vrátí nadmořskou výšku povrchu země v zadaném bodu. Záporná hodnota znamená, že dané místo je ve vodě.

note: type: Plain text
en_US: Coordinates of the position whose altitude you want to know.
cs: Souřadnice bodu, jehož nadmořskou výšku chcete zjistit.

note: type: Plain text
en_US: Altitude of the ground at the given position.
cs: Nadmořská výška povrchu země v zadaném bodu.

note: type: \b; header
en_US: Type <code>true</code>
cs: Hodnota <code>true</code>

note: type: Plain text
en_US: 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.
cs: Tato hodnota znamená, že podmínka platí; je to jedna ze dvou hodnot, kterých může nabývat <a cbot|bool>booleovská</a> <a cbot|var>proměnná</a>.

note: type: \b; header
en_US: Instruction <code>turn</code>
cs: Příkaz <code>turn</code>

note: type: Plain text
en_US: Use the instruction <c/>turn();<n/> to instruct the bot to perform a rotation on itself of a certain number of degrees.
cs: Příkazem <c/>turn();<n/> nařídíte robotu, aby se otočil kolem vlastní osy o určitý úhel.

note: type: Plain text
en_US: 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/>:
cs: 90 stupňů znamená půlobrat, 180 stupňů znamená obrat čelem vzad. Kladný úhel znamená obrat proti směru hodinových ručiček, záporný úhel znamená obrat po směru hodinových ručiček. Zde je několik příkladů příkazu <c/>turn();<n/>:

note: type: Plain text
en_US: <c/>turn(90);<n/>  quarter turn to the left
    <c/>turn(-90);<n/> quarter turn to the right (negative angle)
    <c/>turn(180);<n/> half turn
cs: <c/>turn(90);<n/>  půlobrat vlevo
    <c/>turn(-90);<n/> půlobrat vpravo (záporný úhel)
    <c/>turn(180);<n/> čelem vzad

note: type: Plain text
en_US: 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>:
cs: Pro otočení směrem k objektu nalezenému příkazem <c/><a cbot|radar>radar</a>();<n/> musíte nejprve vypočítat úhel pomocí příkazu <code><a cbot|direct>direction</a>()</code>:

note: type: Plain text
en_US: After these lines, just fire the cannon, and there is one hostile element less.
cs: Po těchto příkazech už jen vystřelte z kanónu a bude o jednoho nepřítele méně.

note: type: Source code
en_US: <c/>turn ( angle );<n/>
cs: <c/>turn ( úhel );<n/>

note: type: Plain text
en_US: Turns the bot with a given angle, right or left, without moving either forward or backward.
cs: Otočí robota vlevo nebo vpravo o zadaný úhel, aniž by se robot pohnul vpřed nebo vzad.

note: type: Plain text
en_US: Angle of the required rotation, in degrees. A positive value turns left, a negative value turns right. <code>turn(180)</code> turns round completely.
cs: Úhel požadovaného otočení ve stupních. Kladná hodnota znamená otočení vlevo, záporná otočení vpravo. <code>turn(180)</code> otočí robota čelem vzad.

note: type: Plain text
en_US: Zero if everything is OK, or a value different from zero if an error occurred. 
    <code>== 0 </code>rotation performed
    <code>!= 0 </code>rotation impossible
cs: Nula, pokud je vše v pořádku, nebo nenulová hodnota v případě chyby.
    <code>== 0</code> otočení dokončeno
    <code>!= 0</code> nelze otočit

note: type: \b; header
en_US: Variable types
cs: Datové typy

note: type: Plain text
en_US: When you define a <a cbot|var>variable</a>, you must give two elements:
cs: Když deklarujete <a cbot|var>proměnnou</a>, musíte zadat dvě věci:

note: type: Bullet: '1)'
en_US: a name
cs: název

note: type: Bullet: '2)'
en_US: a type
cs: datový typ

note: type: Plain text
en_US: 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.
cs: Když je proměnná deklarovaná, můžete do ní ukládat hodnoty. Proměnná ale smí obsahovat pouze hodnoty správného typu: Do proměnné typu <a cbot|float>float</a> nelze uložit řetězec, apod.

note: type: Plain text
en_US: For a whole number (12, -500, etc.).
cs: Pro celá čísla (12, -500, apod.).

note: type: Plain text
en_US: For a real number (12, 3.14, 0.2, -99.98, etc.).
cs: Pro desetinná čísla (12, 3.14, 0.2, -99.98, apod.).

note: type: Plain text
en_US: For a boolean variable, that can only take the values <code>true</code> or <code>false</code>.
cs: Pro booleovskou proměnnou, která smí obsahovat pouze hodnotu <code>true</code>, nebo <code>false</code>.

note: type: Plain text
en_US: For texts ("Hello!", "No object found", etc.)
cs: Pro text ("Ahoj!", "Objekt nenalezen", apod.).

note: type: Plain text
en_US: For the coordinates of a point in space; a variable of this type consists of three parts named x, y and z.
cs: Pro souřadnice bodu v prostoru; proměnná tohoto typu obsahuje tři položky nazvané "x", "y" a "z".

note: type: Plain text
en_US: A variable of this type contains the information about an object (bot, building, enemy, etc.).
cs: Proměnná tohoto typu obsahuje popis objektu (robota, budovy, nepřítele, apod.).

note: type: Plain text
en_US: This type is an "empty type", that you use when you do not want to specify a type.
cs: Toto je "prázdný typ", který můžete použít, když nechcete vybrat žádný jiný typ.

note: type: \b; header
en_US: Variables
cs: Proměnné

note: type: Plain text
en_US: 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.
cs: Proměnná je jako krabička, kam si můžete uložit nějakou informaci. Obsah proměnné se za běhu programu může měnit.

note: type: Plain text
en_US: 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.
cs: Například můžete pomocí proměnné počítat hroudy titanové rudy, které robotické rameno posbíralo a odvezlo do konvertoru. Nejprve musíte vymyslet jméno proměnné: nemělo by být moc dlouhé, ale musí jasně vyjadřovat, k čemu proměnná slouží. Nazvěme ji <code>pocetHrud</code>. Tato proměnná bude obsahovat pouze celá čísla, takže použijeme datový typ <code>int</code>. Na začátku programu musíte tuto proměnnou deklarovat. Pak do ní uložte hodnotu <code>0</code> a po sebrání hroudy titanové rudy k ní pokaždé přičtěte <code>1</code>. Pak bude proměnná neustále obsahovat množství rudy, kterou robotické rameno posbíralo.

note: type: Plain text
en_US: For the declaration of the variable, write the following line: 
    <c/><s/>	int  countTit;<n/>
cs: Následující řádek deklaruje proměnnou:
    <c/><s/>	int  pocetHrud;<n/>

note: type: Plain text
en_US: To put <code>0</code> into the variable, write:
    <c/><s/>	countTit = 0;<n/>
cs: Takto do proměnné uložíte hodnotu <code>0</code>:
    <c/><s/>	pocetHrud = 0;<n/>

note: type: Plain text
en_US: At every titanium ore grabbed, write:
    <c/><s/>	countTit = countTit + 1<n/>
cs: A po sebrání titanové rudy napište:
    <c/><s/>	pocetHrud = pocetHrud + 1<n/>

note: type: Plain text
en_US: 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.
    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.
    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>.
cs: Proměnnou můžete nazvat prakticky libovolně, např. <code>vzdalenost</code>, <code>smer</code>, <code>p2</code>, <code>a</code>, <code>x</code>, <code>zadny_cil</code>, apod.
    Název proměnné musí začínat písmenem. Pak může následovat libovolná kombinace písmen, číslic a podtržítek <code>_</code>. Jako název samozřejmě nemůžete použít klíčová slova jazyka CBOT jako <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>, apod.
    Názvy proměnných byste měli vybírat pečlivě; když zapomenete název proměnné nebo k čemu slouží, bude se Vám program psát těžko. Vymyslete si svůj vlastní systém názvů a nepoužívejte jména jako <code>Bmo45</code>, <code>c</code>, nebo <code>tgBinX</code>.

note: type: Plain text
en_US: 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>.
cs: Klíčové slovo <code>int</code> v příkladu výše znamená, že proměnná smí obsahovat pouze celá čísla, což je pro počítání předmětů ideální. Kdybyste chtěli měřit vzdálenost, použijte raději datový typ, který může obsahovat desetinná čísla (např. 3.45 nebo 0.034): v takové případě použijte typ <code>float</code>.

note: type: Bullet: '1)'
en_US: the name,
cs: názvu,

note: type: Bullet: '2)'
en_US: the type of the information stored inside,
cs: datového typu uložené informace,

note: type: Bullet: '3)'
en_US: the content, i.e. the information itself.
cs: obsahu, t.j. informace samotné.

note: type: \t; header
en_US: the name
cs: Název

note: type: Plain text
en_US: You need the name to be able to distinguish the different variables from each other.
cs: Název potřebujete k tomu, abyste od sebe mohli odlišit různé proměnné.

note: type: \t; header
en_US: the type
cs: Datový typ

note: type: Bullet: 'o'
en_US: <code><a cbot|int>int</a></code> for a whole number (12, -500, etc.)
cs: <code><a cbot|int>int</a></code> pro celá čísla (12, -500, apod.)

note: type: Bullet: 'o'
en_US: <code><a cbot|float>float</a></code> for a real number (3.14, 0.2, -99.98, etc.)
cs: <code><a cbot|float>float</a></code> pro desetinná čísla (3.14, 0.2, -99.98, apod.)

note: type: Bullet: 'o'
en_US: <code><a cbot|string>string</a></code> for a character string ("Hello!", "No object found", etc.)
cs: <code><a cbot|string>string</a></code> pro textové řetězce ("Ahoj!", "Objekt nenalezen", apod.)

note: type: Bullet: 'o'
en_US: <code><a cbot|point>point</a></code> for a x,y,z-coordinate in space
cs: <code><a cbot|point>point</a></code> pro souřadnice x,y,z bodu v prostoru

note: type: Bullet: 'o'
en_US: <code><a cbot|object>object</a></code> for information about an object (bot, building, etc.)
cs: <code><a cbot|object>object</a></code> pro informace o objektu (robotu, budově, apod.)

note: type: \t; header
en_US: The content
cs: Obsah

note: type: Plain text
en_US: The content of a variable is an information of the kind specified in the type. It can change during the execution of the program.
cs: Obsah proměnné je určitá informace s daným datovým typem. Obsah se za běhu programu může měnit.

note: type: Plain text
en_US: Once you declared a variable, it still does not contain any value. Before you can use it, you must put a value inside: 
    <c/><s/>	int  i, j;
cs: Čerstvě deklarovaná proměnná ještě neobsahuje žádnou hodnotu. Než ji budete moci použít, musíte do ní nějakou hodnotu uložit.
    <c/><s/>	int  i, j;

note: type: Source code
en_US: 	j = 25;  // j takes the value 25
    	j = i;   // can not write this, because i has got no content yet.
cs: 	j = 25;  // "j" bude obsahovat hodnotu 25
    	j = i;   // toto nemůžete napsat, protože "i" zatím nemá žádný obsah.

note: type: Plain text
en_US: You can also declare a variable and put a value inside in the same line, writing: 
    <c/><s/>	int  countTit = 0;
cs: Také můžete deklarovat proměnnou a uložit do ní hodnotu na stejném řádku:
    <c/><s/>	int  pocetHrud = 0;

note: type: Plain text
en_US: 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: 
    <c/><s/>	int  i, j;
cs: Když do proměnné přiřadíte hodnotu pomocí operátoru přiřazení <code>=</code>, hodnota na pravé straně se zkopíruje do proměnné na levé straně. Představte si následující příklad:
    <c/><s/>	int  i, j;

note: type: Source code
en_US: 	i = 5+2;  // i takes the value 7
    	j = i+6;  // j takes the value of i plus 6, this is 13
    	i = j;    // i takes the value of j, this is 13
cs: 	i = 5+2;  // "i" bude obsahovat 7
    	j = i+6;  // "j" bude obsahovat hodnotu "i" plus 6, tedy 13
    	i = j;    // "i" bude obsahovat hodotu "j", tedy 13

note: type: Plain text
en_US: At the end of this example, both variables <code>i</code> and <code>j</code> contain the value <code>13</code>.
cs: Na konci tohoto příkladu budou obě proměnné obsahovat hodnotu <code>13</code>.

note: type: Plain text
en_US: The following assignment is not correct, because on the left side of the equals sign <code>=</code>, there can be only a variable name:
    <c/><s/>	i+2 = j;  // impossible
cs: Následující příklad je chybný, protože na levé straně operátoru přiřazení <code>=</code> smí být pouze název proměnné:
    <c/><s/>	i+2 = j;  // nelze

note: type: Plain text
en_US: 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> :
    <c/><s/>	int temp;
cs: Pokud chcete prohodit obsah dvou proměnných, musíte použít třetí proměnnou. Zde je příklad, jak prohodit obsah dvou proměnných <code>x</code> a <code>y</code> :
    <c/><s/>	int temp;

note: type: Source code
en_US: 	temp = a;  // temp takes the value of a
    	a = b;     // the content of b is copied into a
    	b = temp;  // the content of temp is copied into b
cs: 	temp = x;  // "temp" bude obsahovat hodnotu "x"
    	x = y;     // obsah "y" se zkopíruje do "x"
    	y = temp;  // obsah "temp" se zkopíruje do "y"

note: type: \b; header
en_US: Type <code>void</code>
cs: Datový typ <code>void</code>

note: type: Plain text
en_US: Use this type when you want to declare a function that returns nothing.
cs: Použijte tento datový typ, když chcete definovat funkci, která nevrací žádnou hodnotu.

note: type: Plain text
en_US: Example:
    <c/><s/>void MyFunction(int a)
cs: Příklad:
    <c/><s/>void MyFunction(int a)

note: type: \b; header
en_US: Instruction <code>wait</code>
cs: Příkaz <code>wait</code>

note: type: Plain text
en_US: The instruction <c/>wait();<n/> instructs the bot to wait for some seconds, according to the value written in brackets.
cs: Příkaz <c/>wait();<n/> nařizuje robotu, aby čekal počet sekund zadaný v závorkách.

note: type: Plain text
en_US: 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/>.
cs: Když chcete čekat na úplné nabití <a object|power>baterie</a> na nabíječce, čekejte 5 sekund příkazem <c/>wait(5);<n/>.

note: type: Plain text
en_US: 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/>.
cs: Když chcete čekat, než <a object|convert>konvertor</a> vyrobí z hroudy <a object|titanore>titanové rudy</a> <a object|titan>kostku titanu</a>, čekejte 15 sekund příkazem <c/>wait(15);<n/>.

note: type: Source code
en_US: <c/>wait ( time );<n/>
cs: <c/>wait ( délka );<n/>

note: type: Plain text
en_US: Waits for a moment.
cs: Okamžik počká.

note: type: Plain text
en_US: Specifies the time that the bot must wait.
cs: Čas v sekundách, jak dlouho má robot čekat.

note: type: \b; header
en_US: Instruction <code>while</code>
cs: Příkaz <code>while</code>

note: type: Plain text
en_US: The instruction <code>while () {}</code> is used to repeat a set of instructions several times.
cs: Příkaz <code>while () {}</code> se používá k opakování sady příkazů.

note: type: Bullet: 'o'
en_US: look for a spider,
cs: najít pavouka,

note: type: Bullet: 'o'
en_US: turn towards it,
cs: otočit se k němu,

note: type: Bullet: 'o'
en_US: shoot.
cs: vystřelit.

note: type: Plain text
en_US: Just execute this program once, and it will kill all spiders around it.
cs: Tento program stačí spustit pouze jednou a zlikviduje všechny pavouky kolem robota.

note: type: Source code
en_US: <code>while ( condition )
    {
    	</code>Instructions ...<c/>
    }
cs: <code>while ( podmínka )
    {
    	</code>Příkazy...<c/>
    }

note: type: Plain text
en_US: This instruction allows you to perform the instructions inside the <a cbot|bloc>block</a> several times.
cs: Tento příkaz Vám umožňuje několikrát zopakovat příkazy uvnitř <a cbot|bloc>bloku</a>.

note: type: Plain text
en_US: 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.
cs: Pozor, abyste si nepletli příkaz <code>while () {}</code> s příkazem <c/><a cbot|do>do</a> {} while ();<n/>. Ten druhý kontroluje podmínku až po prvním provedení celého bloku příkazů.

note: type: Source code
en_US: <c/>int i = 0;
    while ( i < 10 )
    {
    	<n/>Instructions ...<c/>
    	i = i+1;
    }
cs: <c/>int i = 0;
    while ( i < 10 )
    {
    	<n/>Příkazy...<c/>
    	i = i+1;
    }

note: type: Plain text
en_US: Do not put a <a cbot|term>semicolon</a> at the end of the line <code>while ( )</code>.
cs: Na konec řádku <code>while ()</code> nepište <a cbot|term>středník</a>.

note: type: Plain text
en_US: 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>.
cs: Uvnitř bloku za příkazem <code>while</code> se Vám mohou hodit příkazy <code><a cbot|break>break</a></code> a <code><a cbot|continue>continue</a></code>.

note: type: \b; header
en_US: Instruction <code>writeln</code>
cs: Příkaz <code>writeln</code>

note: type: Plain text
en_US: 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>:
cs: Zapíše jeden řádek textu do otevřeného souboru v adresáři files/. Toto je metoda třídy <code><a cbot|file>file</a></code>. Proto ji vždy musíte volat jako <code>handle.writeln()</code>:

note: type: Plain text
en_US: 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).
cs: Soubor musí být otevřený pro zápis (<code>"w"</code>) příkazem <code><a cbot|open>open</a></code>. Na konec textu se automaticky přidají znaky konce řádku: 0x0D (CR) a 0x0A (LF).

note: type: Source code
en_US: <c/>handle.writeln ( string );<n/>
cs: <c/>handle.writeln ( text );<n/>

note: type: Source code
en_US: 	writeln("Line of text");
cs: 	writeln("Radek textu");

note: type: Plain text
en_US: <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>.
    <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
cs: <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> a <code><a cbot|eof>eof</a></code>.
    <a cbot>Programování</a>, <a cbot|type>datové typy</a> a <a cbot|category>kategorie</a>.

note: type: Plain text
en_US: 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:
cs: Vystřelí z kanónu dávku zadané délky (v sekundách). Čím delší dávka, tím více spotřebuje energie. Tento příkaz mohou provádět následující druhy robotů:

note: type: Plain text
en_US: Type of the message, that determines the background color.
cs: Druh zprávy, který určuje barvu pozadí.

note: type: Plain text
en_US: In fact, a variable is made up of three parts:
cs: Ve skutečnosti se proměnná skládá ze tří částí:

note: type: Plain text
en_US: 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. 
    Here is a list of the most common variable types:
cs: <a cbot|type>Datový typ</a> určuje, jaký druh informace může proměnná obsahovat. V závislosti na typu může proměnná obsahovat celá čísla, desetinná čísla, textové řetězce, souřadnice bodu, informace o objektu, apod.
    Zde je seznam nejběžnějších datových typů:

note: type: Plain text
en_US: 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:
cs: Nejčastěji se příkaz <code>while</code> používá k opakování příkazů donekonečna. Toho docílíte tak, že napíšete <code>while (true) {}</code> a do složených závorek <code>{}</code> vložíte příkazy, které se mají opakovat. Zde je příklad programu, který bude donekonečna opakovat následující kroky:

note: type: \b; header
en_US: Instruction <code>acos</code>
cs: Příkaz <code>acos</code>

note: type: Source code
en_US: <c/>acos ( value );<n/>
cs: <c/>acos ( hodnota );<n/>

note: type: \t; header
en_US: value: <code><a cbot|float>float</a></code>
cs: hodnota: <code><a cbot|float>float</a></code>

note: type: Plain text
en_US: Number between -1 and 1 (including both).
cs: Číslo mezi -1 a 1 (včetně).

note: type: Plain text
en_US: Arcus cosine (in degrees) of the value.
cs: Arkus kosinus (ve stupních) zadané hodnoty.

note: type: Plain text
en_US: <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|expr>expressions</a>.
cs: <a cbot>Programování</a>, <a cbot|type>datové typy</a> a <a cbot|expr>výrazy</a>.

note: type: Plain text
en_US: This instruction sets the vertical and the horizontal angle of the cannon. The following robots are equipped with a cannon:
cs: Tento příkaz ovládá vodorovný a svislý úhel kanónu. Následující druhy robotů jsou vybaveny kanónem:

note: type: Plain text
en_US: 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>.
cs: Když robota ovládáte pomocí programu, kanón také můžete otočit vlevo nebo vpravo tím, že otočíte celého robota příkazem <code><a cbot|turn>turn</a></code>.

note: type: \t; header
en_US: x: <code><a cbot|float>float</a></code> (default value: <code>0</code>)
cs: x: <code><a cbot|float>float</a></code> (výchozí hodnota: <code>0</code>)

note: type: Plain text
en_US: 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.
cs: Úhel kanónu ve stupních relativně k aktuálnímu směru robota. Kladná hodnota otáčí kanón doprava. Úhel musí být v rozsahu <code>-40</code> až <code>+40</code> stupňů pro všechny roboty vybavené kanónem.

note: type: \b; header
en_US: Instruction <code>asin</code>
cs: Příkaz <code>asin</code>

note: type: Source code
en_US: <c/>asin ( value );<n/>
cs: <c/>asin ( hodnota );<n/>

note: type: Plain text
en_US: Arcus sine (in degrees) of the value.
cs: Arkus sinus (ve stupních) zadané hodnoty.

note: type: \b; header
en_US: Instruction <code>atan</code>
cs: Příkaz <code>atan</code>

note: type: Source code
en_US: <c/>atan ( value );<n/>
cs: <c/>atan ( hodnota );<n/>

note: type: Plain text
en_US: Number.
cs: Číslo.

note: type: Plain text
en_US: Arcus tangent (in degrees) of the value.
cs: Arkus tangens (ve stupních) zadané hodnoty.

note: type: \b; header
en_US: Instruction <code>atan2</code>
cs: Příkaz <code>atan2</code>

note: type: Plain text
en_US: 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.
cs: Smyslem funkce arkus tangens se dvěma parametry je umístit výsledný úhel do správného kvadrantu podle znamének vstupních hodnot, což jednoargumentová funkce <c/><a cbot|atan>atan();</a><n/> neumí. Například si představte vektor <c/>(-1; -1)<n/>: <c/>atan(-1/-1)<n/> vrátí úhel <code>45.00</code> stupňů, zatímco <c/>atan2(-1, -1);<n/> vrátí <code>-135.00</code> stupňů, což je v tomto případě rozhodně správnější.

note: type: Plain text
en_US: Arcus tangent (in degrees) of <code>y/x</code>.
cs: Arkus tangens (ve stupních) výrazu <code>y/x</code>.

note: type: \b; header
en_US: Instruction <code>build</code>
cs: Příkaz <code>build</code>

note: type: Source code
en_US: <c/>build ( cat );<n/>
cs: <c/>build ( kategorie );<n/>

note: type: \t; header
en_US: cat: <code><a cbot|int>int</a></code>
cs: kategorie: <code><a cbot|int>int</a></code>

note: type: Plain text
en_US: <a cbot|category>Category</a> of a building.
cs: <a cbot|category>Kategorie</a> požadované budovy.

note: type: Plain text
en_US: 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>.
    <code>== 0 </code>Successfully built
    <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)
cs: Chyba při provádění tohoto příkazu obvykle ukončí program. Tomu můžete zabránit pomocí příkazu <code><a cbot|errmode>errmode</a>(0)</code>. Pak bude příkaz <code>build()</code> v případě chyby vracet nenulovou hodnotu.
    <code>== 0</code> Budova postavena
    <code>!= 0</code> Nelze stavět (například nejbližší kostka titanu je příliš daleko nebo požadovaná budova není v aktuální misi dostupná)

note: type: \b; header
en_US: Instruction <code>buildingenabled</code>
cs: Příkaz <code>buildingenabled</code>

note: type: Plain text
en_US: 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.
cs: Je podobný příkazu <c/><a cbot|canbuild>canbuild();</a><n/>, ale nekontroluje, jestli už byl proveden potřebný výzkum.

note: type: Source code
en_US: <c/>buildingenabled ( cat );<n/>
cs: <c/>buildingenabled ( kategorie );<n/>

note: type: \t; header
en_US: Return value: <code><a cbot|bool>bool</a></code>
cs: Návratová hodnota: <code><a cbot|bool>bool</a></code>

note: type: Plain text
en_US: Any building which can take some action (e.g. <a cbot|convert>Converter</a>).
cs: Libovolná budova, která dokáže provádět nějakou akci (např. <a object|convert>konvertor</a>).

note: type: Plain text
en_US: <code><format const>true</format></code> if the object is doing something (e.g. converting)
    <code><format const>false</format></code> if the object is not doing anything
cs: <code><format const>true</format></code> pokud objekt právě něco dělá (např. vyrábí titan)
    <code><format const>false</format></code> pokud objekt právě nic nedělá

note: type: \b; header
en_US: Instruction <code>canbuild</code>
cs: Příkaz <code>canbuild</code>

note: type: Plain text
en_US: It helps to prevent errors in programs using the <c/><a cbot|build>build();</a><n/> instruction. Here is an example:
cs: Účelem tohoto příkazu je předejít chybám v programech využívajících příkaz <c/><a cbot|build>build();</a><n/>. Zde je příklad:

note: type: Source code
en_US: <c/>canbuild ( cat );<n/>
cs: <c/>canbuild ( kategorie );<n/>

note: type: Plain text
en_US: <code>true</code> if the building can be built, <code>false</code> otherwise.
cs: <code>true</code>, pokud budovu lze postavit, jinak <code>false</code>.

note: type: \b; header
en_US: Instruction <code>canresearch</code>
cs: Příkaz <code>canresearch</code>

note: type: Source code
en_US: <c/>canresearch ( research );<n/>
cs: <c/>canresearch ( technologie );<n/>

note: type: \t; header
en_US: research: <code><a cbot|int>int</a></code>
cs: technologie: <code><a cbot|int>int</a></code>

note: type: Plain text
en_US: <a cbot|researches>Research name</a>.
cs: <a cbot|researches>Název technologie</a>.

note: type: Plain text
en_US: <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)
    <format const>false</format> if the research cannot be done
cs: <format const>true</format>, pokud danou technologii lze zkoumat (i v případě, že už je vyzkoumaná, to můžete zjistit příkazem <a cbot|researched>researched</a>)
    <format const>false</format>, pokud technologii zkoumat nelze

note: type: Plain text
en_US: Below are the different categories available:
cs: Níže je seznam dostupných kategorií:

note: type: \t; header
en_US: Buildings:
cs: Budovy:

note: type: \t; header
en_US: Portable Objects:
cs: Přenosné objekty:

note: type: \t; header
en_US: Robots:
cs: Roboti:

note: type: \t; header
en_US: Enemies:
cs: Nepřátelé:

note: type: \t; header
en_US: Miscellaneous:
cs: Ostatní:

note: type: \t; header
en_US: Flags and Other Indicators:
cs: Vlajky a jiné značky:

note: type: \b; header
en_US: Instruction <code>ceil</code>
cs: Příkaz <code>ceil</code>

note: type: Source code
en_US: <c/>ceil ( value );<n/>
cs: <c/>ceil ( hodnota );<n/>

note: type: Plain text
en_US: Rounds up a number.
cs: Zaokrouhlí číslo nahoru.

note: type: Plain text
en_US: 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>.
cs: Horní celá část hodnoty, tedy nejmenší celé číslo, které není menší než <code>hodnota</code>. Například <code>ceil(2.1)</code> vrátí <code>3.0</code>.

note: type: Plain text
en_US: <a cbot|round>round</a>, <a cbot>programming</a>, <a cbot|type>types</a> and <a cbot|expr>expressions</a>.
cs: <a cbot|round>round</a>, <a cbot>programování</a>, <a cbot|type>datové typy</a> a <a cbot|expr>výrazy</a>.

note: type: \b; header
en_US: Value <code>Colors</code>
cs: Názvy barev

note: type: Plain text
en_US: 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>.
cs: Pomocí názvů barev můžete určit, jaká barva se má použít. Můžete je předat funkcím jako <a cbot|pendown>pendown</a> nebo <a cbot|pencolor>pencolor</a>.

note: type: Plain text
en_US: 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.
cs: V programu se názvy barev zobrazují <format const>červeným písmem</format>. Pokud název barvy není červeně zvýrazněný, je v něm překlep. Dodržujte velká a malá písmena.

note: type: Plain text
en_US: Below are the different colors available:
cs: Níže je seznam dostupných barev:

note: type: Plain text
en_US: <code><format const>White</format></code>
    <code><format const>Black</format></code>
    <code><format const>Gray</format></code>
    <code><format const>LightGray</format></code>
    <code><format const>Red</format></code>
    <code><format const>Pink</format></code>
    <code><format const>Purple</format></code>
    <code><format const>Orange</format></code>
    <code><format const>Yellow</format></code>
    <code><format const>Beige</format></code>
    <code><format const>Brown</format></code>
    <code><format const>Skin</format></code>
    <code><format const>Green</format></code>
    <code><format const>LightGreen</format></code>
    <code><format const>Blue</format></code>
    <code><format const>LightBlue</format></code>
cs: <code><format const>White</format>     </code> - bílá
    <code><format const>Black</format>     </code> - černá
    <code><format const>Gray</format>      </code> - šedá
    <code><format const>LightGray</format> </code> - světle šedá
    <code><format const>Red</format>       </code> - červená
    <code><format const>Pink</format>      </code> - růžová
    <code><format const>Purple</format>    </code> - fialová
    <code><format const>Orange</format>    </code> - oranžová
    <code><format const>Yellow</format>    </code> - žlutá
    <code><format const>Beige</format>     </code> - béžová
    <code><format const>Brown</format>     </code> - hnědá
    <code><format const>Skin</format>      </code> - světle růžová
    <code><format const>Green</format>     </code> - zelená
    <code><format const>LightGreen</format></code> - světle zelená
    <code><format const>Blue</format>      </code> - modrá
    <code><format const>LightBlue</format> </code> - světle modrá

note: type: Plain text
en_US: You can also draw colored symbols:
cs: Také můžete kreslit barevné symboly:

note: type: Plain text
en_US: <code><format const>BlackArrow</format></code>
    <code><format const>RedArrow</format></code>
cs: <code><format const>BlackArrow</format></code> - černá šipka
    <code><format const>RedArrow</format>  </code> - červená šipka

note: type: \b; header
en_US: Instruction <code>cos</code>
cs: Příkaz <code>cos</code>

note: type: Source code
en_US: <c/>cos ( angle );<n/>
cs: <c/>cos ( úhel );<n/>

note: type: Plain text
en_US: Angle in degrees.
cs: Úhel ve stupních.

note: type: Plain text
en_US: Cosine of the angle.
cs: Kosinus úhlu.

note: type: \b; header
en_US: Instruction <code>destroy</code>
cs: Příkaz <code>destroy</code>

note: type: Plain text
en_US: Destroys an object.
cs: Zničí objekt.

note: type: Plain text
en_US: <a object|destroy>Destroyer</a>.
cs: <a object|destroy>Drtič</a>.

note: type: Plain text
en_US: 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>.
    <code>== 0 </code>The operation of destroying of an object was started
    <code>!= 0 </code>The instruction could not be done (e.g. nothing to destroy)
cs: Chyba při provádění tohoto příkazu obvykle ukončí program. Tomu můžete zabránit pomocí příkazu <code><a cbot|errmode>errmode</a>(0)</code>. Pak bude příkaz <code>destroy()</code> v případě chyby vracet nenulovou hodnotu.
    <code>== 0</code> Proces zničení objektu zahájen
    <code>!= 0</code> Příkaz nelze splnit (např. není co zničit)

note: type: \b; header
en_US: Instruction <code>detect</code>
cs: Příkaz <code>detect</code>

note: type: Plain text
en_US: 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/>.
cs: Pomocí příkazu <c/>detect();<n/> můžete hledat objekty, například <a object|mother>nepřátele</a>, roboty, budovy nebo suroviny, které leží před robotem. Je to zjednodušená verze příkazu <c/><a cbot|radar>radar</a>();<n/>.

note: type: Source code
en_US: <c/>detect ( cat );<n/>
cs: <c/>detect ( kategorie );<n/>

note: type: Plain text
en_US: 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:
cs: Najde nejbližší objekt z dané <a cbot|category>kategorie</a>, který leží před robotem. Funguje podobně jako následující příkaz:

note: type: Source code
en_US: <c/>radar(cat, 0, 45, 0, 20);<n/>
cs: <c/>radar(kategorie, 0, 45, 0, 20);<n/>

note: type: Bullet: 'o'
en_US: <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>.
cs: <a cbot|category>Kategorie</a> objektu, který se má hledat. Pokud například hledáte mravence, napište <code>radar(AlienAnt)</code>.

note: type: Bullet: 'o'
en_US: <a cbot|array>Array</a> of categories of the objects that should be detected. For example, when you are looking only for grabbers:<c/>
cs: <a cbot|array>Pole</a> kategorií objektů, které se mají hledat. Pokud například hledáte pouze robotická ramena:<c/>

note: type: Source code
en_US: int bots[4];
    bots[0] = WheeledGrabber;
    bots[1] = TrackedGrabber;
    bots[2] = WingedGrabber;
    bots[3] = LeggedGrabber;
    object nearestGrabber = radar(bots);
cs: int bots[4];
    bots[0] = WheeledGrabber;
    bots[1] = TrackedGrabber;
    bots[2] = WingedGrabber;
    bots[3] = LeggedGrabber;
    bool nearestGrabber = detect(bots);

note: type: Bullet: 'o'
en_US: Keyword <format const>Any</format> if you are looking for any object (including even plants and so on).
cs: Klíčové slovo <format const>Any</format>, pokud hledáte libovolný objekt (včetně křoví a podobně).

note: type: Plain text
en_US: <format const>true</format> if the object was found
    <format const>false</format> if the object was not found
cs: <format const>true</format> pokud byl objekt nalezen
    <format const>false</format> pokud objekt nalezen nebyl

note: type: \b; header
en_US: Instruction <code>factory</code>
cs: Příkaz <code>factory</code>

note: type: Plain text
en_US: <a cbot|category>Category</a> of the robot to construct.
cs: <a cbot|category>Kategorie</a> robota, který se má výrobit.

note: type: \t; header
en_US: program: <code><a cbot|string>string</a></code> (default value: <code>""</code>)
cs: program: <code><a cbot|string>string</a></code> (výchozí hodnota: <code>""</code>)

note: type: Plain text
en_US: 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>.
    <code>== 0 </code>The construction successfully started
    <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)
cs: Chyba při provádění tohoto příkazu obvykle ukončí program. Tomu můžete zabránit pomocí příkazu <code><a cbot|errmode>errmode</a>(0)</code>. Pak bude příkaz <code>factory()</code> v případě chyby vracet nenulovou hodnotu.
    <code>== 0</code> Výroba úspěšně zahájena
    <code>!= 0</code> Nelze zahájit výrobu (například v továrně není <a object|titan>titan</a> nebo robot není vyzkoumaný)

note: type: \b; header
en_US: Instruction <code>flatspace</code>
cs: Příkaz <code>flatspace</code>

note: type: Source code
en_US: <c/>flatspace ( center, flatmin, rmin, rmax, dist );<n/>
cs: <c/>flatspace ( střed, rozsah, rmin, rmax, vzdálenost );<n/>

note: type: Plain text
en_US: 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>.
cs: Vrátí souřadnice nejbližšího volného místa poblíž zadaného bodu, kolem kterého je rovný terén o poloměru alespoň <code>rozsah</code>. Funguje podobně jako příkaz <c/><a cbot|space>space();</a><n/>. Tento příkaz se hodí při hledání volného místa pro stavbu <a cbot|category>budovy</a>.

note: type: \t; header
en_US: flatmin: <code><a cbot|float>float</a></code>
cs: rozsah: <code><a cbot|float>float</a></code>

note: type: Plain text
en_US: Minimum radius of flat ground around the desired position.
cs: Minimální poloměr rovného terénu kolem požadovaného místa.

note: type: \b; header
en_US: Instruction <code>floor</code>
cs: Příkaz <code>floor</code>

note: type: Source code
en_US: <c/>floor ( value );<n/>
cs: <c/>floor ( hodnota );<n/>

note: type: Plain text
en_US: Rounds down a number.
cs: Zaokrouhlí číslo dolů.

note: type: Plain text
en_US: 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>.
cs: Dolní celá část hodnoty, tedy největší celé číslo, které není větší než <code>hodnota</code>. Například <code>floor(2.9)</code> vrátí <code>2.0</code>.

note: type: Plain text
en_US: Example: count from 1 to 4
    <c/><s/><c/>for ( i = 1 ; i <= 4 ; i++ )
cs: Příklad: Počítání od 1 do 4
    <c/><s/><c/>for ( i = 1 ; i <= 4 ; i++ )

note: type: Plain text
en_US: Function, simply put, is an instruction created by you.
cs: Stručně řečeno, funkce je příkaz, který jste si vytvořili sami.

note: type: \b; header
en_US: Main function
cs: Hlavní funkce

note: type: Plain text
en_US: You probably already know how to create a function. Every program in CBOT must have a main function, which looks like this:
cs: Nejspíše už víte, jak funkci vytvořit. Každý program napsaný v CBOTu musí mít hlavní funkci, která vypadá takto:

note: type: Source code
en_US: extern void object::ProgramName()
    {
    	
    	// instructions
    	
    }
cs: extern void object::NazevProgramu()
    {
    	
    	// příkazy
    	
    }

note: type: Plain text
en_US: With functions you can divide your program into several parts. Each of them will execute a specific task. For example, see the following program:
cs: Své programy můžete pomocí funkcí rozdělit do více částí. Každá část bude provádět jeden dílčí úkol. Podívejte se například na následující program:

note: type: Source code
en_US: extern void object::Remote()
    {
    	send("order", 1, 100);
    	wait(5);
    	send("order", 3, 100);
    	wait(5);
    	send("order", 2, 100);
    	wait(5);
    	send("order", 4, 100);
    	wait(5);
    }
cs: extern void object::Ovladac()
    {
    	send("order", 1, 100);
    	wait(5);
    	send("order", 3, 100);
    	wait(5);
    	send("order", 2, 100);
    	wait(5);
    	send("order", 4, 100);
    	wait(5);
    }

note: type: Plain text
en_US: <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:
cs: Příkazy <code><a cbot|send>send</a></code> a <code><a cbot|wait>wait</a></code> se opakují několikrát dokola. Takže by se hodilo vytvořit funkci, která provede oba příkazy najednou:

note: type: Source code
en_US: void SendToPost(float op)
    {
    	send("order", op, 100);
    	wait(5);
    }
    
    extern void object::Remote()
    {
    	SendToPost(1);
    	SendToPost(3);
    	SendToPost(2);
    	SendToPost(4);
    }
cs: void PoslatPrikaz(float op)
    {
    	send("order", op, 100);
    	wait(5);
    }
    
    extern void object::Ovladac()
    {
    	PoslatPrikaz(1);
    	PoslatPrikaz(3);
    	PoslatPrikaz(2);
    	PoslatPrikaz(4);
    }

note: type: Plain text
en_US: Now the program is much easier to read. It is a good practice to split the program into several functions with self-describing names.
cs: Tento program už je mnohem čitelnější. Doporučený postup je rozdělit větší program do více funkcí s názvem, který popisuje jejich činnost.

note: type: \b; header
en_US: Syntax
cs: Syntaxe

note: type: Source code
en_US: result_type FunctionName(optional_parameters)
    {
    	body
    }
cs: návratový_typ NázevFunkce(volitelné_parametry)
    {
    	tělo
    }

note: type: Plain text
en_US: 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>.
cs: Pokud funkce nemá vracet žádnou hodnotu, návratový <a cbot|type>typ</a> by měl být <a cbot|void>void</a>. Tělo funkce je prostě sada příkazů. Název funkce musí splňovat stejné podmínky jako název <a cbot|var>proměnné</a>.

note: type: \t; header
en_US: Parameters
cs: Parametry

note: type: Plain text
en_US: A function can have parameters:
cs: Funkce může přijímat parametry:

note: type: Source code
en_US: void Example(int a, float x, string s)
    {
    	message(a);
    	message(x);
    	message(s);
    }
cs: void Priklad(int a, float x, string s)
    {
    	message(a);
    	message(x);
    	message(s);
    }

note: type: Plain text
en_US: 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.
cs: Funkce <code>Priklad</code> bude dostávat <a cbot|int>celé číslo</a> <code>a</code>, <a cbot|float>desetinné číslo</a> <code>x</code> a <a cbot|string>řetězec</a> <code>s</code>. Parametry se předávají hodnotou, to znamená, že hodnoty parametrů uvnitř funkce jsou kopiemi hodnot, které volající kód zadal prostřednictvím jiných proměnných. Pokud funkci předáte hodnotu typu <code><a cbot|int>int</a></code>, parametr uvnitř funkce bude obsahovat kopii původní hodnoty zadané jako argument. Funkce může obsah svých parametrů libovolně měnit, aniž by tím ovlivnila obsah proměnných exitujících mimo ni.

note: type: Plain text
en_US: 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.
cs: Pokud funkci jako parametr předáte instanci <a cbot|class>třídy</a> nebo <a cbot|array>pole</a>, funkce dostane pouze <a cbot|pointer>ukazatel</a> na zadaný objekt. To znamená, že když uvnitř funkce změníte obsah předané instance nebo pole, změníte tím obsah původního objektu existujícího mimo funkci.

note: type: \t; header
en_US: Result
cs: Návratová hodnota

note: type: Plain text
en_US: 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>:
cs: Funkce také může vracet návratovou hodnotu příkazem <code><a cbot|return>return</a></code>. V takovém případě musí být funkce deklarovaná s jiným návratovým <a cbot|type>typem</a> než <code><a cbot|void>void</a></code>:

note: type: Source code
en_US: float Average(float a, float b)
    {
    	return (a+b)/2;
    }
    
    extern void object::Test( )
    {
    	float value;
    	value = Average(2, 6);
    	message(value);  // will display 4
    }
cs: float Prumer(float a, float b)
    {
    	return (a+b)/2;
    }
    
    extern void object::Test( )
    {
    	float value;
    	value = Prumer(2, 6);
    	message(value);  // zobrazí hodnotu 4
    }

note: type: Plain text
en_US: Some other examples:
cs: Pár dalších příkladů:

note: type: Source code
en_US: float Pi()
    {
    	return 3.1415;
    }
    
    string Sign(float a)
    {
    	if (a > 0)  return "positive";
    	if (a < 0)  return "negative";
    	return "null";
    }
cs: float Pi()
    {
    	return 3.1415;
    }
    
    string Znamenko(float a)
    {
    	if (a > 0)  return "kladne";
    	if (a < 0)  return "zaporne";
    	return "nula";
    }

note: type: \b; header
en_US: Overloading
cs: Přetěžování

note: type: Plain text
en_US: You can declare several functions with the same name but different parameters:
cs: Můžete deklarovat více funkcí se stejným názvem, ale různými parametry:

note: type: Plain text
en_US: 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.
cs: CBOT zavolá buď první, nebo druhou funkci podle zadaných parametrů. Funkce musejí být navzájem rozlišitelné, tedy nesmíte deklarovat dvě funkce se stejným názvem a stejnými typy parametrů ve stejném pořadí. Např. deklarace funkce <code>int Pythagoras(float b, float a)</code> vyvolá chybu. Všimněte si, že návratový typ nehraje roli.

note: type: Plain text
en_US: 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.
cs: Když funkci deklarujete jako prvek jmenného prostoru <a cbot|object>object</a>, dáte jí tím přístup k <a cbot|pointer>ukazateli</a> <code><a cbot|this>this</a></code>, to znamená ke všem dostupným vlastnostem robota, na kterém program právě běží.

note: type: Source code
en_US: void object::Example()
    {
    	message(this.category);
    }
cs: void object::Priklad()
    {
    	message(this.category);
    }

note: type: Plain text
en_US: 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:
cs: Tento datový typ používejte pro proměnné, které mají obsahovat popis objektu, ať už to má být robot, budova, surovina, nepřítel apod. Zde je seznam všech atributů objektu:

note: type: Plain text
en_US: <code><a cbot|int>int</a>    object.category     </code><a cbot|category>Category</a> of the object
    <code><a cbot|point>point</a>  object.position     </code>Position of the object (x,y,z)
    <code><a cbot|float>float</a>  object.orientation  </code>Orientation of the object (0..360)
    <code><a cbot|float>float</a>  object.pitch        </code>Forward/backward angle of the object
    <code><a cbot|float>float</a>  object.roll         </code>Right/left angle of the object 
    <code><a cbot|float>float</a>  object.energyLevel  </code>Energy level (0..1)
    <code><a cbot|float>float</a>  object.shieldLevel  </code>Shield level (0..1)
    <code><a cbot|float>float</a>  object.temperature  </code>Jet temperature (0..1)
    <code><a cbot|float>float</a>  object.altitude     </code>Altitude above ground
    <code><a cbot|float>float</a>  object.lifeTime     </code>Lifetime of the object
    <code>object object.energyCell   </code>Power cell on the bot
    <code>object object.load         </code>Object carried by the bot
    <code><a cbot|int>int</a>    object.team         </code>The object's team (see <a battles>code battles</a>)
    <code><a cbot|point>point</a>  object.velocity     </code>Velocity of the object
cs: <code><a cbot|int>int</a>    object.category     </code><a cbot|category>Kategorie</a> objektu
    <code><a cbot|point>point</a>  object.position     </code>Poloha objektu (x,y,z)
    <code><a cbot|float>float</a>  object.orientation  </code>Azimut objektu (0..360)
    <code><a cbot|float>float</a>  object.pitch        </code>Náklon objektu vpřed/vzad
    <code><a cbot|float>float</a>  object.roll         </code>Náklon objektu vpravo/vlevo
    <code><a cbot|float>float</a>  object.energyLevel  </code>Stav baterie (0..1)
    <code><a cbot|float>float</a>  object.shieldLevel  </code>Stav štítu (0..1)
    <code><a cbot|float>float</a>  object.temperature  </code>Teplota tryskového motoru (0..1)
    <code><a cbot|float>float</a>  object.altitude     </code>Výška nad zemí
    <code><a cbot|float>float</a>  object.lifeTime     </code>Stáří objektu
    <code>object object.energyCell   </code>Baterie ve zdířce robota
    <code>object object.load         </code>Náklad v drapáku robota
    <code><a cbot|int>int</a>    object.team         </code>Tým, do kterého objekt patří (viz <a battles>souboje programátorů</a>)
    <code><a cbot|point>point</a>  object.velocity     </code>Rychlost a směr pohybu objektu

note: type: Plain text
en_US: 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.
cs: Některé objekty navíc mají i další metody (příkazy). Jejich seznam najdete v sekci "Příkazy vyhrazené jen pro některé objekty" v <a cbot>obsahu</a> nápovědy jazyka CBOT.

note: type: Plain text
en_US: 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.
cs: <a cbot|category>Kategorie</a> objektu říká, co je to za objekt, např. jaký je to druh robota, budovy, nepřítele, apod.

note: type: Plain text
en_US: 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>.
cs: Tým, do kterého robot patří. Používá se v <a battles>soubojích programátorů</a>. Pokud objekt nepatří do žádného týmu (např. v misi bez týmů nebo když je objekt surovinou), bude zde hodnota <code>0</code>.

note: type: Plain text
en_US: Current velocity of the object. Should be treated as a three-dimensional vector.
cs: Aktuální rychlost a směr pohybu objektu. Hodnota je vyjádřena jako trojrozměrný pohybový vektor.

note: type: \b; header
en_US: Instruction <code>pencolor</code>
cs: Příkaz <code>pencolor</code>

note: type: Source code
en_US: <c/>pencolor ( color );<n/>
cs: <c/>pencolor ( barva );<n/>

note: type: Plain text
en_US: The instruction <c/>pencolor();<n/> instructs the bot to change the color of the pencil.
cs: Příkaz <c/>pencolor();<n/> přikazuje robotu, aby změnil barvu tužky.

note: type: \t; header
en_US: color: <code><a cbot|int>int</a></code> (default value: <code>Black</code>)
cs: barva: <code><a cbot|int>int</a></code> (výchozí hodnota: <code>Black</code> - černá)

note: type: Plain text
en_US: <a cbot|colors>Color name</a>.
cs: <a cbot|colors>Název barvy</a>.

note: type: Plain text
en_US: 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/>.
    <code>== 0 </code>The color was changed
    <code>!= 0 </code>The instruction did not work
cs: Chyba při provádění tohoto příkazu obvykle ukončí program. Tomu můžete zabránit pomocí příkazu <code><a cbot|errmode>errmode</a>(0)</code>. Pak bude příkaz <c/>pencolor();<n/> v případě chyby vracet nenulovou hodnotu.
    <code>== 0</code> Barva byla změněna
    <code>!= 0</code> Příkaz nelze splnit

note: type: \b; header
en_US: Instruction <code>pendown</code>
cs: Příkaz <code>pendown</code>

note: type: Source code
en_US: <c/>pendown ( color, width );<n/>
cs: <c/>pendown ( barva, tloušťka );<n/>

note: type: Plain text
en_US: The instruction <c/>pendown();<n/> instructs the bot to have the pen down, so it starts drawing.
cs: Příkaz <c/>pendown();<n/> přikazuje robotu, aby vysunul tužku a začal kreslit.

note: type: \t; header
en_US: width: <code><a cbot|float>float</a></code> (default value: <code>0.5</code>)
cs: tloušťka: <code><a cbot|float>float</a></code> (výchozí hodnota: <code>0.5</code>)

note: type: Plain text
en_US: 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.
cs: Tloušťka čáry. Hodnota nesmí být větší než <code>1.0</code> a nesmí být menší než <code>0.0</code>. Pokud zadáte příliš velkou hodnotu, použije se místo ní maximální tloušťka, pokud zadáte příliš malou hodnotu, použije se místo ní minimální tloušťka.

note: type: Plain text
en_US: 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/>.
    <code>== 0 </code>The pen is now down
    <code>!= 0 </code>The instruction did not work
cs: Chyba při provádění tohoto příkazu obvykle ukončí program. Tomu můžete zabránit pomocí příkazu <code><a cbot|errmode>errmode</a>(0)</code>. Pak bude příkaz <c/>pendown();<n/> v případě chyby vracet nenulovou hodnotu.
    <code>== 0</code> Tužka je vysunuta
    <code>!= 0</code> Příkaz nelze splnit

note: type: \b; header
en_US: Instruction <code>penup</code>
cs: Příkaz <code>penup</code>

note: type: Plain text
en_US: 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>.
cs: Příkaz <c/>penup();<n/> přikazuje robotu, aby zasunul tužku a přestal kreslit. Tužka je ve výchozím stavu zasunutá, takže by se tento příkaz měl používat až po zavolání příkazu <code><a cbot|pendown>pendown</a></code>.

note: type: Plain text
en_US: 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/>.
    <code>== 0 </code>The pen is now up
    <code>!= 0 </code>The instruction did not work
cs: Chyba při provádění tohoto příkazu obvykle ukončí program. Tomu můžete zabránit pomocí příkazu <code><a cbot|errmode>errmode</a>(0)</code>. Pak bude příkaz <c/>penup();<n/> v případě chyby vracet nenulovou hodnotu.
    <code>== 0</code> Tužka je zasunutá
    <code>!= 0</code> Příkaz nelze splnit

note: type: \b; header
en_US: Instruction <code>penwidth</code>
cs: Příkaz <code>penwidth</code>

note: type: Source code
en_US: <c/>penwidth ( color );<n/>
cs: <c/>penwidth ( tloušťka );<n/>

note: type: Plain text
en_US: The instruction <c/>penwidth();<n/> instructs the bot to change the width of the pencil.
cs: Příkaz <c/>penwidth();<n/> nařizuje robotu, aby změnil tloušťku čáry.

note: type: \t; header
en_US: width: <code><a cbot|float>float</a></code>
cs: tloušťka: <code><a cbot|float>float</a></code>

note: type: Plain text
en_US: 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/>.
    <code>== 0 </code>The width was changed
    <code>!= 0 </code>The instruction did not work
cs: Chyba při provádění tohoto příkazu obvykle ukončí program. Tomu můžete zabránit pomocí příkazu <code><a cbot|errmode>errmode</a>(0)</code>. Pak bude příkaz <c/>penwidth();<n/> v případě chyby vracet nenulovou hodnotu.
    <code>== 0</code> Tloušťka čáry byla změněna
    <code>!= 0</code> Příkaz nelze splnit

note: type: \b; header
en_US: Instruction <code>pow</code>
cs: Příkaz <code>pow</code>

note: type: Plain text
en_US: Base.
cs: Základ.

note: type: Plain text
en_US: x to the y (x raised to the yth power).
cs: <code>x</code> umocněné na <code>y</code>.

note: type: Source code
en_US: <c/>radar ( cat, angle, focus, min, max, sens, filter );<n/>
cs: <c/>radar ( kategorie, úhel, šířka, min, max, směr, filtr );<n/>

note: type: Bullet: 'o'
en_US: <a cbot|array>Array</a> of categories of the objects that should be detected. For example, when you are looking only for grabbers:
cs: <a cbot|array>Pole</a> kategorií objektů, které se mají hledat. Pokud například hledáte pouze robotická ramena:

note: type: Bullet: 'o'
en_US: 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.
cs: Klíčové slovo <format const>Any</format>, pokud hledáte libovolný objekt (včetně křoví a podobně). V kombinaci s tímto klíčovým slovem se hodí využívat filtry.

note: type: \t; header
en_US: angle: <code><a cbot|float>float</a></code> (default value: <code>0</code>)
cs: úhel: <code><a cbot|float>float</a></code> (výchozí hodnota: <code>0</code>)

note: type: \t; header
en_US: focus: <code><a cbot|float>float</a></code> (default value: <code>360</code>)
cs: šířka: <code><a cbot|float>float</a></code> (výchozí hodnota: <code>360</code>)

note: type: \t; header
en_US: min: <code><a cbot|float>float</a></code> (default value: <code>0</code>)
cs: min: <code><a cbot|float>float</a></code> (výchozí hodnota: <code>0</code>)

note: type: \t; header
en_US: max: <code><a cbot|float>float</a></code> (default value: <code>1000</code>)
cs: max: <code><a cbot|float>float</a></code> (výchozí hodnota: <code>1000</code>)

note: type: \t; header
en_US: sens: <code><a cbot|float>float</a></code> (default value: <code>1</code>)
cs: směr: <code><a cbot|float>float</a></code> (výchozí hodnota: <code>1</code>)

note: type: \t; header
en_US: filter: <code><a cbot|int>int</a></code> (default value: <code><format const>FilterNone</format></code>)
cs: filtr: <code><a cbot|int>int</a></code> (výchozí hodnota: <code><format const>FilterNone</format></code>)

note: type: Plain text
en_US: 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:
cs: Určuje druh objektů, které se mají hledat. Zvláště se hodí v kombinaci s <a cbot|array>polem</a> kategorií nebo klíčovým slovem <format const>Any</format>. K dispozici jsou následující filtry:

note: type: Plain text
en_US: <code><format const>FilterNone</format>        </code>Detects everything (default)
    <code><format const>FilterOnlyLanding</format> </code>Detects only objects being on the ground
    <code><format const>FilterOnlyFlying</format>  </code>Detects only objects not being on the ground
    <code><format const>FilterFriendly</format>    </code>Detects only allies (objects in the same team)
    <code><format const>FilterEnemy</format>       </code>Detects only enemies (objects in an other team except neutral)
    <code><format const>FilterNeutral</format>     </code>Detects only neutral objects (e.g. resources)
cs: <code><format const>FilterNone</format>        </code>Hledá vše (výchozí hodnota)
    <code><format const>FilterOnlyLanding</format> </code>Hledá pouze objekty stojící na zemi
    <code><format const>FilterOnlyFlying</format>  </code>Hledá pouze objekty ve vzduchu
    <code><format const>FilterFriendly</format>    </code>Hledá pouze přátelské objekty (členy stejného týmu)
    <code><format const>FilterEnemy</format>       </code>Hledá pouze nepřátele (objekty v jiném týmu mimo neutrálních)
    <code><format const>FilterNeutral</format>     </code>Hledá pouze neutrální objekty (např. suroviny)

note: type: Plain text
en_US: 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.
cs: Poslední tři filtry se hodí především v <a battles>soubojích programátorů</a>. Také můžete zadat ID týmu, abyste hledali pouze objekty z konkrétního týmu. Pozor: ID týmu <code>0</code> nebude fungovat, místo něj musíte používat <format const>FilterNeutral</format>.

note: type: Plain text
en_US: 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.
cs: Filtry a ID týmu můžete kombinovat pomocí operátoru binární OR <code>|</code>, například <c/>radar(Any, 0, 360, 0, 1000, 1, 2 | FilterOnlyLanding);<n/> najde pouze objekty z týmu <code>2</code>, které stojí na zemi. Pozor: Můžete sice zkombinovat několik filtrů současně, ale k nim můžete zadat pouze jedno ID týmu.

note: type: \b; header
en_US: Instruction <code>rand</code>
cs: Příkaz <code>rand</code>

note: type: Plain text
en_US: Pseudorandom number between 0 and 1 (including 0, but excluding 1).
cs: Pseudonáhodné číslo mezi 0 a 1 (včetně 0, ale bez 1).

note: type: \b; header
en_US: Instruction <code>research</code>
cs: Příkaz <code>research</code>

note: type: \t; header
en_US: type: <code><a cbot|int>int</a></code>
cs: typ: <code><a cbot|int>int</a></code>

note: type: Plain text
en_US: 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>.
    <code>== 0 </code>The research successfully started
    <code>!= 0 </code>The research could not be started (e.g. the research is disabled in the level, no power cell)
cs: Chyba při provádění tohoto příkazu obvykle ukončí program. Tomu můžete zabránit pomocí příkazu <code><a cbot|errmode>errmode</a>(0)</code>. Pak bude příkaz <code>research()</code> v případě chyby vracet nenulovou hodnotu.
    <code>== 0</code> Výzkum úspěšně zahájen
    <code>!= 0</code> Výzkum nelze zahájit (např. daná technologie není v aktuální misi dostupná nebo chybí baterie)

note: type: \b; header
en_US: Instruction <code>researched</code>
cs: Příkaz <code>researched</code>

note: type: Source code
en_US: <c/>researched ( research );<n/>
cs: <c/>researched ( technologie );<n/>

note: type: \b; header
en_US: Value <code>Research names</code>
cs: Názvy technologií

note: type: Plain text
en_US: 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>).
cs: Názvy technologií v jazyce CBOT představují jednotlivé technologie dostupné v misích. Když je předáte vhodnému příkazu (např. <a cbot|research>research</a>, <a cbot|canresearch>canresearch</a>, <a cbot|researched>researched</a>), můžete pomocí nich ovládat <a object|research>výzkumnou stanici</a>.

note: type: Plain text
en_US: 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.
cs: V programu se názvy technologií zobrazují <format const>červeným písmem</format>. Pokud název technologie není červeně zvýrazněný, je v něm překlep. Dodržujte velká a malá písmena.

note: type: Plain text
en_US: Below are the different research names available.
cs: Níže je seznam dostupných názvů technologií.

note: type: \t; header
en_US: Done by <a object|research>ResearchCenter</a>:
cs: Technologie pro <a object|research>výzkumnou stanici</a>:

note: type: \t; header
en_US: Done by <a object|labo>AutoLab</a>:
cs: Technologie pro <a object|labo>laboratoř</a>:

note: type: \t; header
en_US: Impossible to research:
cs: Nelze zkoumat:

note: type: \b; header
en_US: Instruction <code>round</code>
cs: Příkaz <code>round</code>

note: type: Source code
en_US: <c/>round ( value );<n/>
cs: <c/>round ( hodnota );<n/>

note: type: Plain text
en_US: Rounds a number.
cs: Zaokrouhlí číslo.

note: type: Plain text
en_US: 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>.
cs: Zaokrouhlená <code>hodnota</code>. Například <code>round(2.5)</code> vrátí <code>3.0</code>, zatímco <code>round(2.4)</code> vrátí <code>2.0</code>.

note: type: Plain text
en_US: <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>.
cs: <a cbot|trunc>trunc</a>, <a cbot|floor>floor</a>, <a cbot|ceil>ceil</a>, <a cbot>programování</a>, <a cbot|type>datové typy</a> a <a cbot|expr>výrazy</a>.

note: type: Plain text
en_US: 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.
cs: Najde objekt z dané kategorie, který je nejblíže zadanému bodu. Funguje podobně jako příkaz <c/><a cbot|radar>radar();</a><n/>, ale může hledat objekty i poblíž jiného bodu než je aktuální poloha robota.

note: type: Bullet: 'o'
en_US: <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>.
cs: <a cbot|category>Kategorie</a> objektu, který se má hledat. Pokud například hledáte mravence, napište <code>search(AlienAnt)</code>.

note: type: Bullet: 'o'
en_US: <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:
cs: <a cbot|array>Pole</a> kategorií objektů, které se mají hledat. Pokud například hledáte pouze robotická ramena poblíž určitého bodu na mapě:

note: type: \t; header
en_US: position: <code><a cbot|point>point</a></code> (default value: <code><a cbot|this>this</a>.<a cbot|object>position</a></code>)
cs: bod: <code><a cbot|point>point</a></code> (výchozí hodnota: <code><a cbot|this>this</a>.<a cbot|object>position</a></code>)

note: type: \b; header
en_US: Instruction <code>sin</code>
cs: Příkaz <code>sin</code>

note: type: Source code
en_US: <c/>sin ( angle );<n/>
cs: <c/>sin ( úhel );<n/>

note: type: Plain text
en_US: Sine of the angle.
cs: Sinus úhlu.

note: type: \b; header
en_US: Instruction <code>sqrt</code>
cs: Příkaz <code>sqrt</code>

note: type: Source code
en_US: <c/>sqrt ( value );<n/>
cs: <c/>sqrt ( hodnota );<n/>

note: type: Plain text
en_US: Non-negative number.
cs: Nezáporné číslo.

note: type: Plain text
en_US: Square root of the value.
cs: Druhá odmocnina z dané hodnoty.

note: type: \b; header
en_US: Instructions <code>switch</code>, <code>case</code> and <code>default</code>
cs: Příkazy <code>switch</code>, <code>case</code> a <code>default</code>

note: type: Plain text
en_US: With the instruction <code>switch() {}</code> you can execute a proper set of instructions (a case) basing on some value.
cs: Pomocí příkazu <code>switch() {}</code> můžete provést jednu z několika sad příkazů podle nějaké řídící hodnoty.

note: type: Plain text
en_US: 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:
cs: Představte si následující <a cbot|function>funkci</a>: Robot má <a cbot|wait>čekat</a> přesně správnou dobu, než se dokončí určitá činnost:

note: type: Source code
en_US: public void WaitForTaskCompleted(object building)
    {
    	int cat = building.category;
    	<a cbot|if>if</a> (cat == Converter) wait(15);
    	else if (cat == BotFactory) wait(15);
    	else if (cat == PowerPlant) wait(12);
    	else message("Undefined wait time", DisplayError);
    }
cs: public void CekatNaDokonceniCinnosti(object budova)
    {
    	int kat = budova.category;
    	<a cbot|if>if</a> (kat == Converter) wait(15);
    	else if (kat == BotFactory) wait(15);
    	else if (kat == PowerPlant) wait(12);
    	else message("Doba cekani neni stanovena", DisplayError);
    }

note: type: Plain text
en_US: This function can be also written using the <code>switch() {}</code> instruction:
cs: Tuto funkci lze také napsat pomocí příkazu <code>switch() {}</code>:

note: type: Source code
en_US: public void WaitForTaskCompleted(object building)
    {
    	switch (building.category)
    	{
    		case Converter: wait(15); break;
    		case BotFactory: wait(15); break;
    		case PowerPlant: wait(12); break;
    		default: message("Undefined wait time", DisplayError);
    	}
    }
cs: public void CekatNaDokonceniCinnosti(object budova)
    {
    	switch (budova.category)
    	{
    		case Converter: wait(15); break;
    		case BotFactory: wait(15); break;
    		case PowerPlant: wait(12); break;
    		default: message("Doba cekani neni stanovena", DisplayError);
    	}
    }

note: type: Plain text
en_US: Which way to write this kind of choice structures, is a matter of taste.
cs: Která z těchto dvou rozhodovacích struktur Vám víc vyhovuje, je věcí vkusu.

note: type: Plain text
en_US: You can also make cases like this:
cs: Příkazy <code>case</code> také můžete psát takto:

note: type: Source code
en_US: switch (building.category)
    {
    	case Converter:
    	case BotFactory:
    		wait(15); break;
    	case PowerPlant: wait(12); break;
    	default: message("Undefined wait time", DisplayError);
    }
cs: switch (budova.category)
    {
    	case Converter:
    	case BotFactory:
    		wait(15); break;
    	case PowerPlant: wait(12); break;
    	default: message("Doba cekani neni stanovena", DisplayError);
    }

note: type: Plain text
en_US: <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.
cs: <a object|convert>Konvertor</a> a <a object|factory>továrna na roboty</a> pracují stejně dlouho, takže jsme kód obou bloků <code>case</code> sloučili dohromady, abychom stejné příkazy nemuseli psát dvakrát. Příkaz <code>switch</code> totiž provede veškerý kód od příslušného příkazu <code>case</code> dál, dokud nenarazí na příkaz <code><a cbot|break>break</a></code>.

note: type: Source code
en_US: <c/>switch ( value )
    {
    	case value1: instructions1
    	case value2: instructions2
    	...
    	case valueN: instructionsN
    	default: instructionsDefault
    }
cs: <c/>switch ( hodnota )
    {
    	case hodnota1: příkazy1
    	case hodnota2: příkazy2
    	...
    	case hodnotaN: příkazyN
    	default: náhradníPříkazy
    }

note: type: Plain text
en_US: 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>.
cs: Pomocí této rozhodovací struktury můžete v závislosti na řídící hodnotě provést <code>příkazy1</code>, <code>příkazy2</code>, ... <code>příkazyN</code> nebo <code>náhradníPříkazy</code>.

note: type: Plain text
en_US: If the <code>value</code> is equal to <code>value1</code>, <code>instructions1</code> to <code>N</code> (including <code>instructionsDefault</code>) are executed.
    If the <code>value</code> is equal to <code>value2</code>, <code>instructions2</code> to <code>N</code> (including <code>instructionsDefault</code>) are executed.
    And so on.
    If the <code>value</code> is equal to <code>valueN</code>, <code>instructionsN</code> and <code>instructionsDefault</code> are executed.
    If the <code>value</code> is not equal to any value in the given cases, <code>instructionsDefault</code> are executed.
cs: Pokud se <code>hodnota</code> rovná <code>hodnota1</code>, provedou se <code>příkazy1</code> až <code>příkazyN</code> a dále <code>náhradníPříkazy</code>.
    Pokud se <code>hodnota</code> rovná <code>hodnota2</code>, provedou se <code>příkazy2</code> až <code>příkazyN</code> a dále <code>náhradníPříkazy</code>.
    A tak dále.
    Pokud se <code>hodnota</code> rovná <code>hodnotaN</code>, provedou se <code>příkazyN</code> a <code>náhradníPříkazy</code>.
    Pokud se <code>hodnota</code> nerovná žádné předdefinované hodnotě u příkazu <code>case</code>, provedou se <code>náhradníPříkazy</code>.

note: type: Plain text
en_US: You can exit from the the <code>switch() {}</code> instruction using <code><a cbot|break>break</a></code>.
cs: Příkaz <code>switch() {}</code> můžete ukončit příkazem <code><a cbot|break>break</a></code>.

note: type: Plain text
en_US: Do not put a <a cbot|term>semicolon</a> at the end of the <code>switch ( ) { }</code> instruction.
cs: Za příkaz <code>switch ( ) { }</code> nepište <a cbot|term>středník</a>.

note: type: \b; header
en_US: Instruction <code>takeoff</code>
cs: Příkaz <code>takeoff</code>

note: type: Plain text
en_US: 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>.
    <code>== 0 </code>Spaceship takes off
    <code>!= 0 </code>Spaceship could not take off (e.g. mission is not finished yet)
cs: Chyba při provádění tohoto příkazu obvykle ukončí program. Tomu můžete zabránit pomocí příkazu <code><a cbot|errmode>errmode</a>(0)</code>. Pak bude příkaz <code>takeoff()</code> v případě chyby vracet nenulovou hodnotu.
    <code>== 0</code> Raketa odlétá
    <code>!= 0</code> Raketa nemůže odletět (např. mise ještě není splněna)

note: type: \b; header
en_US: Instruction <code>tan</code>
cs: Příkaz <code>tan</code>

note: type: Source code
en_US: <c/>tan ( angle );<n/>
cs: <c/>tan ( úhel );<n/>

note: type: Plain text
en_US: Angle in degrees (except multiples of 90).
cs: Úhel ve stupních (kromě celočíselných násobků 90).

note: type: Plain text
en_US: Tangent of the angle.
cs: Tangens úhlu.

note: type: \b; header
en_US: Instruction <code>trunc</code>
cs: Příkaz <code>trunc</code>

note: type: Source code
en_US: <c/>trunc ( value );<n/>
cs: <c/>trunc ( hodnota );<n/>

note: type: Plain text
en_US: 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.
cs: Oříznutí je operace s desetinnými čísly, kdy se zahodí desetinná místa bez zaokrouhlení. Pro kladná čísla funguje jako funkce <c/><a cbot|floor>floor();</a><n/>, pro záporná čísla funguje jako funkce <c/><a cbot|ceil>ceil();</a><n/>. Dalo by se říct že oříznutí je zaokrouhlení směrem k nule.

note: type: Plain text
en_US: Truncated <code>value</code>. For example, <code>trunc(-2.5)</code> is <code>-2.00</code>.
cs: Oříznutá <code>hodnota</code>. Například <code>trunc(-2.5)</code> vrátí <code>-2.00</code>.

note: type: Plain text
en_US: 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.
cs: V programu se kategorie vždy zobrazují takto: <format const>kategorie</format>. Pokud kategorie není červeně zvýrazněná, je v ní překlep. Dodržujte velká a malá písmena.

note: type: Plain text
en_US: 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:
cs: V programu se názvy datových typů vždy zobrazují takto: <format type>typ</format>. Pokud název typu není zeleně zvýrazněný, je v něm překlep. Názvy typů se vždy zapisují malými písmeny. Zde je seznam dostupných datových typů:

note: type: \b; header
en_US: Instruction <code>produce</code>
cs: Příkaz <code>produce</code>

note: type: Source code
en_US: <c/>produce ( position, orientation, category, program, power );<n/>
cs: <c/>produce ( bod, azimut, kategorie, program, energie );<n/>

note: type: Bullet: 'o'
en_US: r
cs: nebo

note: type: Source code
en_US: <c/>produce ( category, power );<n/>
cs: <c/>produce ( kategorie, energie );<n/>

note: type: Plain text
en_US: Immediately creates an <a cbot|category>object</a>.
cs: Okamžitě vytvoří <a cbot|category>objekt</a>.

note: type: \t; header
en_US: orientation: <code><a cbot|float>float</a></code>
cs: azimut: <code><a cbot|float>float</a></code>

note: type: Plain text
en_US: Orientation (angle) of the object.
cs: Azimut (směrový úhel) objektu.

note: type: Plain text
en_US: <a cbot|category>Category</a> of the object.
cs: <a cbot|category>Kategorie</a> objektu.

note: type: Plain text
en_US: Energy level.
cs: Stav baterie.

note: type: \t; header
en_US: Return: <code><a cbot|void>void</a></code>
cs: Návratový typ: <code><a cbot|void>void</a></code>

note: type: Plain text
en_US: Nothing.
cs: Nic.

note: type: \b; header
en_US: Example usage
cs: Příklad použití

note: type: Plain text
en_US: It is used by <a object|mother>AlienQueen</a> to produce <a object|egg>AlienEggs</a>.
cs: Tento příkaz využívá <a object|mother>královna vetřelců</a> pro kladení <a object|egg>vajec</a>.

note: type: Plain text
en_US: Where object will be created. The second syntax creates the object at the current bot's position.
cs: Místo, kde bude objekt vytvořen. Varianta se dvěma parametry vytvoří objekt na aktuální pozici robota.

note: type: Plain text
en_US: Program for the object. Will have effect only for programmable objects like robots or aliens.
cs: Program pro vytvořený objekt. Má smysl pouze pro programovatelné objekty jako jsou roboti nebo vetřelci.

note: type: Plain text
en_US: 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.
cs: Výrazy se používají pro veškeré výpočty s různými proměnnými, které vracejí požadovaný výsledek. Oproti prostým příkazům se v nich používají operátory popsané níže.

note: type: \b; header
en_US: Binary operations
cs: Binární operace

note: type: Plain text
en_US: 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:
cs: Nechť <code>x</code> a <code>y</code> jsou hodnoty deklarovaných a inicializovaných proměnných typů <code>t1</code> a <code>t2</code>, pak binární operace se dá popsat takto:

note: type: Source code
en_US: <code>r = a op b</code>
cs: <code>v = x op y</code>

note: type: Plain text
en_US: 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>.
cs: Kde <code>v</code> je výsledek operace a <code>op</code> je binární operátor (tj. operátor přijímající 2 operandy), který pracuje s hodnotami typů <code>t1</code> a <code>t2</code>.

note: type: \t; header
en_US: Order of operations
cs: Pořadí operací

note: type: Plain text
en_US: Let <code>a op1 b op2 c</code> be a legal expression, then the following rules apply:
cs: Nechť <code>x op1 y op2 z</code> je platný výraz, pak platí následující pravidla:

note: type: Bullet: 'o'
en_US: 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.
cs: Pokud <code>op1 == op2</code> nebo <code>op1</code> má stejnou prioritu jako <code>op2</code> nebo <code>op1</code> má vyšší prioritu než <code>op2</code>, nejprve se vypočítá <code>x op1 y</code> a výsledek se uloží do dočasné proměnné <code>r</code>, pak se vypočítá <code>r op2 z</code>, což je konečný výsledek výrazu.

note: type: Bullet: 'o'
en_US: 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.
cs: Pokud <code>op1</code> má nižší prioritu než <code>op2</code>, nejprve se vypočítá <code>y op2 z</code> a výsledek se uloží do dočasné proměnné <code>r</code>, pak se vypočítá <code>x op1 r</code>, což je konečný výsledek výrazu.

note: type: Plain text
en_US: 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.
cs: Poznámka: pořadí operací lze vynutit pomocí závorek, takže například pokud <code>op1</code> má nižší prioritu než <code>op2</code>, ve výrazu <code>(x op1 y) op2 z</code> se jako první operace vypočítá <code>x op1 y</code>.

note: type: Plain text
en_US: 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.
cs: Tip: Pokud si nejste jistí pořadím operací, vždy používejte závorky, nesnažte se prioritu operátorů uhodnout. Většinou by pořadí operací mělo být celkem jasné.

note: type: Plain text
en_US: Here is a complicated example, which uses arithemtic operations described below, showing how expressions are calculated:
    <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:
      a * b + c - d / x % (y * z) - e =
    = r1 + c - d / x % (y * z) - e    = , r1 = a * b
    = r2 - d / x % (y * z) - e        = , r2 = r1 + c
    = r2 - r3 % (y * z) - e           = , r3 = d / x
    = r2 - r3 % r4 - e                = , r4 = y * z
    = r2 - r5 - e                     = , r5 = r3 % r4
    = r6 - e                          = , r6 = r2 - r5
    = r7                                , r7 = r6 - e
    r7 is the final result of this expression.
cs: Zde je složitý příklad s aritmetickými operacemi popsanými níže, který znázorňuje pořadí výpočtů:
    <c/>Nechť a, b, c, d, x, y, z, e jsou inicializované proměnné typu float nebo int. Pak se následující výraz vypočítá v níže rozepsaných krocích:
      a * b + c - d / x % (y * z) - e =
    = r1 + c - d / x % (y * z) - e    = , r1 = a * b
    = r2 - d / x % (y * z) - e        = , r2 = r1 + c
    = r2 - r3 % (y * z) - e           = , r3 = d / x
    = r2 - r3 % r4 - e                = , r4 = y * z
    = r2 - r5 - e                     = , r5 = r3 % r4
    = r6 - e                          = , r6 = r2 - r5
    = r7                                , r7 = r6 - e
    r7 je konečný výsledek výpočtu.

note: type: \b; header
en_US: Assignment operator
cs: Operátor přiřazení

note: type: Plain text
en_US: <code>=</code> is the assignment operator. It is used to store the result of an expression in a variable.
cs: <code>=</code> je operátor přiřazení. Používá se pro uložení výsledku výrazu do proměnné.

note: type: Plain text
en_US: 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>).
cs: Na levé straně tohoto operátoru musí být takzvaná "l-hodnota" a na pravé straně - "r-hodnota". L-hodnoty jsou pouze <a cbot|var>proměnné</a><n/>, r-hodnoty jsou výrazy nebo prosté hodnoty. Operátor přiřazení je proto poněkud výjimečný, protože definice l-hodnoty je značně omezená (nesmí to být výraz, konstanta a podobně, pouze samotná proměnná). Dále se datový typ l-hodnoty musí shodovat s typem r-hodnoty (pokud není možná konverze, například při přiřazení hodnoty typu <code><a cbot|float>float</a></code> do proměnné typu <code><a cbot|int>int</a></code>).

note: type: Plain text
en_US: This example is actually really confusing, but this property is actually useful, because it lets doing something like this:
cs: Tento příklad je sice poněkud matoucí, ale je to užitečná vlastnost, protože Vám umožňuje přiřazovat i takto:

note: type: \b; header
en_US: Basic arithmetic operations
cs: Základní aritmetické operace

note: type: Plain text
en_US: Binary operators below are working with fundamental number types (<code><a cbot|int>int</a></code>, <code><a cbot|float>float</a></code>).
cs: Binární operátory uvedené níže pracují se základními číselnými typy (<code><a cbot|int>int</a></code>, <code><a cbot|float>float</a></code>).

note: type: \t; header
en_US: List
cs: Seznam

note: type: Plain text
en_US: <code>+</code>  addition
    <code>-</code>  subtraction
    <code>*</code>  multiplication
    <code>/</code>  division
    <code>%</code>  remainder of the division (only for the type <code><a cbot|int>int</a></code>)
cs: <code>+</code>  sčítání
    <code>-</code>  odčítání
    <code>*</code>  násobení
    <code>/</code>  dělení
    <code>%</code>  zbytek po dělení (pouze pro typ <code><a cbot|int>int</a></code>)

note: type: \t; header
en_US: Notes
cs: Poznámky

note: type: Bullet: 'o'
en_US: The <code>*</code>, <code>/</code>, <code>%</code> are all stronger than <code>+</code> and <code>-</code>.
cs: Operátory <code>*</code>, <code>/</code>, <code>%</code> mají vyšší prioritu než <code>+</code> a <code>-</code>.

note: type: Bullet: 'o'
en_US: 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.
cs: <a cbot|type>Datový typ</a> výsledku je vždy <code><a cbot|float>float</a></code>. Pokud je jeden z operandů typu <code><a cbot|int>int</a></code>, automaticky se zkonvertuje na <code><a cbot|float>float</a></code>. Poznámka: To znamená, že výsledky dílčích výpočtu mají vždy nejvyšší možnou přesnost, zaokrouhluje se až při konverzi konečného výsledku (typu <code><a cbot|float>float</a></code>) na typ <code><a cbot|int>int</a></code>, například operátorem přiřazení <code>=</code>.

note: type: \t; header
en_US: Real life examples
cs: Reálné příklady

note: type: \t; header
en_US: Compound assignment operators
cs: Složené operátory přiřazení

note: type: Plain text
en_US: Besides the <code>=</code> operator for variable assignment there are several compound-assignment operators.
cs: Kromě operátoru <code>=</code> pro přiřazení do proměnné existuje i několik složených operátorů přiřazení.

note: type: Plain text
en_US: 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
cs: Složené operátory přiřazení kombinují operátor přiřazení <code>=</code> s dalším binárním operátorem, například <code>+</code> nebo <code>-</code>. Složené operátory přiřazení provedou operaci určenou přidaným operátorem, a pak přiřadí výsledek do levého operandu. Například složený přiřazovací výraz

note: type: Source code
en_US: <code>lvalue += expression</code>
cs: <code>lhodnota += výraz</code>

note: type: Source code
en_US: <code>lvalue = lvalue + expression</code>
cs: <code>lhodnota = lhodnota + výraz</code>

note: type: \b; header
en_US: String concatenation
cs: Slučování řetězců

note: type: Plain text
en_US: 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.
cs: Pokud je alespoň jeden operand operátoru <code>+</code> typu <a cbot|string>string</a>, provede se sloučení řetězců. Výsledkem operace je textový řetězec vytvoření přilepením pravého řetězce na konec levého. Pokud jeden z operandů není typu string, před provedením operace se automaticky zkonvertuje na textový řetězec.

note: type: Source code
en_US: 	string s = "a" + "bc";  // returns "abc"
    	string s = 1 + "bc";    // returns "1bc"
    	string s = 2.5 + "bc";  // returns "2.5bc"
    	string s = "a" + true;  // returns "atrue"
cs: 	string s = "a" + "bc";  // vrátí "abc"
    	string s = 1 + "bc";    // vrátí "1bc"
    	string s = 2.5 + "bc";  // vrátí "2.5bc"
    	string s = "a" + true;  // vrátí "atrue"

note: type: Plain text
en_US: 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:
cs: Tip: Vlastnosti operátoru sloučení řetězců <code>+</code> jsou zvláště užitečné pro funkci <a cbot|message>message();</a>, protože ta nepřijímá žádný jiný typ než string. Můžete například sloučit prázdný řetězec s jinou hodnotou, abyste z ní vytvořili textový řetězec, který pak můžete předat funkci <a cbot|message>message();</a>:

note: type: \b; header
en_US: Prefix and postfix increment- and decrement operators
cs: Unární operátory inkrementace a dekrementace

note: type: Plain text
en_US: For example to increment the variable <code>a</code> you can write
cs: Například pro zvýšení hodnoty proměnné <code>x</code> o 1 můžete napsat

note: type: Source code
en_US: <c/>a++;<n/>
cs: <c/>x++;<n/>

note: type: Plain text
en_US: instead of
cs: místo

note: type: Source code
en_US: <c/>a = a + 1;<n/>
cs: <c/>x = x + 1;<n/>

note: type: Plain text
en_US: 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.
cs: Výraz <code>x++</code> vrací hodnotu proměnné <code>x</code> *před* zvýšením. Pokud použijete prefixový operátor <code>++x</code>, výraz vrátí hodnotu proměnné <code>x</code> *po* zvýšení. Totéž platí pro operátor dekrementace <code>--</code>.

note: type: Plain text
en_US: 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>.
cs: Přesněji řečeno, výraz je uspořádaná série operací, která vrací výsledek. Operace určují operátory, což jsou speciální <a cbot|function>funkce</a> <code>T f(t1 x1, t2 x2, ..., tn xn)</code>, kde <code>xi</code> je hodnota typu <code>ti</code> a <code>T</code> je návratový typ. Například <code>float +(float x, float y)</code> vrací součet hodnot <code>x</code> a <code>y</code>. Poznámka: Operátory jsou součástí jazyka CBOT a v programu si nemůžete definovat vlastní. Operátory dále nemůžete volat jako běžné <a cbot|function>funkce</a>, ale musíte je zapisovat speciální syntaxí, která se liší podle operátoru, například <code>x+y</code>.

note: type: Plain text
en_US: 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.
cs: Téměř ve všech operacích můžete jako hodnoty použít <a cbot>konstanty</a>, <a cbot|var>proměnné</a>, <a cbot|function>funkce</a> vracející jiný typ než <a cbot|void>void</a> a také jiné operace.

note: type: Plain text
en_US: 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:
cs: Poznámka: Možná to na první pohled není zřejmé, ale všimněte si, že <code>=</code> je *operátor*, ne příkaz. To znamená, že ho můžete použít uvnitř jiného výrazu! Operátor <code>=</code> vrací hodnotu, která byla přiřazena do l-hodnoty - výsledek výrazu na pravé straně. Příklad:

note: type: Source code
en_US:  int    i = 12 + 3;      // i == 15
     int    i = 2 - 5;       // i == -3
     
     float  f = 3.01 * 10;   // f == 30.1
     
     int    i = 5 / 3;       // i == 1 (automatic conversion to int)
     float  f = 5 / 3;       // f == 1.67
     float  f = 5 / 0;       // returns an error (division by zero)
     
     int    i = 13 % 5;      // i == 3
     int    i = -8 % 3;      // i == -2
     
     float  f = sin(90) * i; // f == -2.0
cs:  int    i = 12 + 3;      // i == 15
     int    i = 2 - 5;       // i == -3
     
     float  f = 3.01 * 10;   // f == 30.1
     
     int    i = 5 / 3;       // i == 1 (automatická konverze na int)
     float  f = 5 / 3;       // f == 1.67
     float  f = 5 / 0;       // způsobí chybu (dělení nulou)
     
     int    i = 13 % 5;      // i == 3
     int    i = -8 % 3;      // i == -2
     
     float  f = sin(90) * i; // f == -2.0

note: type: Source code
en_US:  float pi = 3.14;
     // message(pi); // does not work
     message(""+pi);
cs:  float pi = 3.14;
     // message(pi); // tohle nefunguje
     message(""+pi);

note: type: Source code
en_US:  a = 2;
     b = a++;
     // now b contains 2 and a contains 3
cs:  x = 2;
     y = x++;
     // y teď obsahuje 2, x obsahuje 3

note: type: Source code
en_US:  a = 2;
     b = ++a;
     // now b contains 3 and a contains 3
cs:  x = 2;
     y = ++x;
     // y teď obsahuje 3, x obsahuje 3

note: type: \b; header
en_US: Logical operators
cs: Logické operátory

note: type: Plain text
en_US: 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>.
cs: Logické operátory pracují s hodnotami typu <a cbot|bool>bool</a> a vždy vracejí hodnotu typu <a cbot|bool>bool</a>. Používají se především v <a cbot|cond>podmínkách</a>.

note: type: \b; header
en_US: Ternary operator
cs: Ternární operátor

note: type: Plain text
en_US: 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:
    <code>(condition) ? (result when true) : (result when false)</code>
    Brackets are not needed.
cs: Ternární operátor není nic víc než syntaktický cukr. Také se mu říká "jednořádkový if." Zpočátku může být trochu matoucí, protože jeho syntaxe je trochu složitější než u ostatních operátorů. Ternární operátor se dá popsat takto:
    <code>(podmínka) ? (výsledek pokud podmínka platí) : (výsledek pokud neplatí)</code>
    Závorky nejsou nutné.

note: type: Plain text
en_US: Firstly, the condition is valued and then the first result is returned if the condition is true, otherwise the second result is returned.
cs: Nejprve se vyhodnotí podmínka. Pokud platí, vrátí se první výraz, jinak se vrátí druhý výraz.

note: type: \t; header
en_US: Example
cs: Příklad

note: type: Plain text
en_US: 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.
cs: Podmínka je <a cbot|expr>výraz</a>, který vrací <a cbot|bool>booleovskou</a> hodnotu, tedy buď <code><a cbot|true>true</a></code>, nebo <code><a cbot|false>false</a></code>. Pomocí podmínky můžete určit například jestli se mají zopakovat příkazy uvnitř cyklu <code><a cbot|while>while</a></code> nebo jestli se mají provést příkazy v bloku <code><a cbot|if>if</a></code>.

note: type: \b; header
en_US: Comparison operators
cs: Operátory porovnání

note: type: Plain text
en_US: 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>.
cs: Operátory porovnání pracují s hodnotami typu <a cbot|float>float</a> a vždy vracejí hodnotu typu <a cbot|bool>bool</a>. Používají se především v <a cbot|cond>podmínkách</a>.

note: type: Plain text
en_US: <code>!a      </code>not <code>a</code>
    <code>a && b  </code><code>a</code> and <code>b</code>
    <code>a || b  </code><code>a</code> or <code>b</code>
cs: <code>!x      </code>negace <code>x</code>
    <code>x && y  </code>musí platit <code>x</code> i <code>y</code> zároveň
    <code>x || y  </code>musí platit alespoň jedno z <code>x</code> nebo <code>y</code>

note: type: Plain text
en_US: <code>!false        </code>returns true
    <code>true && false </code>returns false 
    <code>true || false </code>returns true
cs: <code>!false        </code>vrátí true
    <code>true && false </code>vrátí false 
    <code>true || false </code>vrátí true

note: type: \b; header
en_US: Bitwise operators
cs: Bitové operátory

note: type: Plain text
en_US: 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.
cs: Bitové operátory jsou podobné logickým operátorům, protože pracují s jednotlivými bity (které mohou mít pouze hodnotu 0 nebo 1, podobně jako podmínky mohou mít pouze hodnotu false nebo true). Takže teoreticky by měly fungovat se všemi datovými typy, protože v počítači jsou všechny hodnoty uloženy jako posloupnost bitů.

note: type: Plain text
en_US: <code>a & b  </code><code>a</code> AND <code>b</code>
    <code>a | b  </code><code>a</code> OR <code>b</code>
    <code>a ^ b  </code><code>a</code> XOR <code>b</code>
    <code>a >> b  </code>shift bits of <code>a</code> to the right <code>b</code> times
    <code>a << b  </code>shift bits of <code>a</code> to the left <code>b</code> times
cs: <code>x & y  </code><code>x</code> AND <code>y</code>
    <code>x | y  </code><code>x</code> OR <code>y</code>
    <code>x ^ y  </code><code>x</code> XOR <code>y</code>
    <code>x >> y  </code>posune bity <code>x</code> doprava o <code>y</code> míst
    <code>x << y  </code>posune bity <code>x</code> doleva o <code>y</code> míst

note: type: Plain text
en_US: <code>2 & 1         </code>returns 0
    <code>2 | 1         </code>returns 3
    <code>2 ^ 2         </code>returns 0
    <code>2 >> 1        </code>returns 1
    <code>2 << 1        </code>returns 4
cs: <code>2 & 1         </code>vrátí 0
    <code>2 | 1         </code>vrátí 3
    <code>2 ^ 2         </code>vrátí 0
    <code>2 >> 1        </code>vrátí 1
    <code>2 << 1        </code>vrátí 4

note: type: Source code
en_US: int    [ ] a;   // an array of int
    int    a [12];  // an array of int limited to 12 elements
    string s[3];    // an array of 3 strings
    float  xy[][];  // a 2 dimensionnal array of floats
cs: int    [ ] a;   // pole hodnot typu int
    int    a [12];  // pole hodnot typu int s nejvýše 12 prvky
    string s[3];    // pole 3 řetězců
    float  xy[][];  // dvourozměrné pole hodnot typu float

note: type: \b; header
en_US: Initialization syntax
cs: Inicializace hodnot v poli

note: type: Plain text
en_US: You can initialize a new array using the following syntax:
cs: Obsah nového pole můžete inicializovat následujícím způsobem:

note: type: Source code
en_US: type arrayName[] = { value0, value1, value2, ..., valueN };
cs: typ nazevPole[] = { hodnota0, hodnota1, hodnota2, ..., hodnotaN };

note: type: Plain text
en_US: With the instruction <c/>radar();<n/>, you can look for objects like <a object|mother>enemies</a>, bots, buildings or raw materials.
cs: Pomocí příkazu <c/>radar();<n/> můžete hledat objekty, například <a object|mother>nepřátele</a>, roboty, budovy nebo suroviny.

note: type: Plain text
en_US: <c/><a cbot|radarall>radarall</a>();<n/>, <a cbot>programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
cs: <c/><a cbot|radarall>radarall</a>();<n/>, <a cbot>programování</a>, <a cbot|type>datové typy</a> a <a cbot|category>kategorie</a>.

note: type: \b; header
en_US: Instruction <code>radarall</code>
cs: Příkaz <code>radarall</code>

note: type: Plain text
en_US: <c/>radarall();<n/> is an enhancement of the <c/><a cbot|radar>radar</a>();<n/> function -- it detects all objects matching the given criteria.
cs: <c/>radarall();<n/> je vylepšená verze funkce <c/><a cbot|radar>radar</a>();<n/>, která vrací všechny objekty splňující zadané podmínky.

note: type: \b; header
en_US: Example<c/>
cs: Příklad<c/>

note: type: Source code
en_US: <c/>radarall ( cat, angle, focus, min, max, sens, filter );<n/>
cs: <c/>radarall ( kategorie, úhel, šířka, min, max, směr, filtr );<n/>

note: type: Plain text
en_US: 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.
cs: Tato funkce funguje v principu stejně jako funkce <c/><a cbot|radar>radar</a>();<n/>, pouze s tím rozdílem, že vrací <a cbot|array>pole</a> <a cbot|object>objektů</a> místo jediného objektu. Pokud nenalezne žádný objekt, vrátí hodnotu <code><a cbot|null>null</a></code>.

note: type: Plain text
en_US: 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.
cs: Objekty ve výstupním poli jsou seřazeny podle vzdálenosti dle parametru <code>směr</code>. První položka pole bude vždy obsahovat tentýž objekt, jaký by vrátila funkce <c/>radar();<n/> zavolaná s přesně stejnými parametry.

note: type: Plain text
en_US: <c/><a cbot|radar>radar</a>();<n/>, <a cbot>programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
cs: <c/><a cbot|radar>radar</a>();<n/>, <a cbot>programování</a>, <a cbot|type>datové typy</a> a <a cbot|category>kategorie</a>.

note: type: Plain text
en_US: This set of instructions is executed before the first loop instance.
cs: Tato sada příkazů se provede před prvním během cyklu.

note: type: Plain text
en_US: This set of instructions is executed at the end of every instance of the loop.
cs: Tato sada příkazů se provede na konci každého běhu cyklu.

note: type: \t; header
en_US: Executing more instructions
cs: Složitější inicializace a iterace

note: type: Plain text
en_US: 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:
cs: V sekcích <code>inicializace</code> a <code>iterace</code> cyklu <code>for</code> můžete zadat více příkazů oddělených čárkou. Příklad:

note: type: Plain text
en_US: The output of the above code is <code>1 2 2 1</code>.
cs: Výše uvedený kód zobrazí <code>1 2 2 1</code>.

note: type: Plain text
en_US:        <code><a object|flag>BlueFlag</a>          </code>Blue Flag
           <code><a object|flag>RedFlag</a>           </code>Red Flag
           <code><a object|flag>GreenFlag</a>         </code>Green Flag
           <code><a object|flag>YellowFlag</a>        </code>Yellow Flag
           <code><a object|flag>VioletFlag</a>        </code>Violet Flag
           <code><a object|waypoint>WayPoint</a>          </code>Checkpoint
           <code><a object|target2>Target2</a>           </code>Flying checkpoint
           <code><a object|enerspot>PowerSpot</a>        </code>Underground Energy Deposit
           <code><a object|stonspot>TitaniumSpot</a>      </code>Underground Titanium Deposit
           <code><a object|uranspot>UraniumSpot</a>       </code>Underground Uranium Deposit
cs:        <code><a object|flag>BlueFlag</a>          </code>Modrá vlajka
           <code><a object|flag>RedFlag</a>           </code>Červená vlajka
           <code><a object|flag>GreenFlag</a>         </code>Zelená vlajka
           <code><a object|flag>YellowFlag</a>        </code>Žlutá vlajka
           <code><a object|flag>VioletFlag</a>        </code>Fialová vlajka
           <code><a object|waypoint>WayPoint</a>          </code>Kontrolní bod
           <code><a object|target2>Target2</a>           </code>Kontrolní bod pro létající roboty
           <code><a object|enerspot>PowerSpot</a>         </code>Podzemní zdroj energie
           <code><a object|stonspot>TitaniumSpot</a>      </code>Podzemní titanové ložisko
           <code><a object|uranspot>UraniumSpot</a>       </code>Podzemní uranové ložisko

note: type: Plain text
en_US: <button 176/>   <code><a object|huston>Houston</a>          </code>Mission Control
    <button 171/>   <code><a object|base>SpaceShip</a>        </code>Spaceship
    <button 160/>   <code><a object|factory>BotFactory</a>       </code>Robot Factory
    <button 163/>   <code><a object|research>ResearchCenter</a>   </code>Research Center
    <button 168/>   <code><a object|radar>RadarStation</a>     </code>Radar
    <button 172/>   <code><a object|exchange>ExchangePost</a>     </code>Information Exchange Post
    <button 169/>   <code><a object|repair>RepairCenter</a>     </code>Repair Center
    <button 165/>   <code><a object|tower>DefenseTower</a>     </code>Defense Tower
    <button 166/>   <code><a object|labo>AutoLab</a>          </code>Organic Matter Analyzer 
    <button 164/>   <code><a object|station>PowerStation</a>     </code>Power Station
    <button 167/>   <code><a object|energy>PowerPlant</a>       </code>Power Cell Factory
    <button 170/>   <code><a object|nuclear>NuclearPlant</a>     </code>Nuclear Plant
    <button 162/>   <code><a object|convert>Converter</a>        </code>Titanium Converter
    <button 161/>   <code><a object|derrick>Derrick</a>          </code>Derrick
    <button 174/>   <code><a object|captor>PowerCaptor</a>      </code>Parabolic Lightning Conductor
    <button 175/>   <code><a object|safe>Vault</a>            </code>Vault
           <code><a object|start>StartArea</a>        </code>Starting Pad
           <code><a object|goal>GoalArea</a>         </code>Finishing Pad
           <code><a object|target1>Target1</a>          </code>Flying target
           <code><a object|nest>AlienNest</a>        </code>Alien Nest
cs: <button 176/>   <code><a object|huston>Houston</a>          </code>Řídící středisko
    <button 171/>   <code><a object|base>SpaceShip</a>        </code>Raketa
    <button 160/>   <code><a object|factory>BotFactory</a>       </code>Továrna na roboty
    <button 163/>   <code><a object|research>ResearchCenter</a>   </code>Výzkumná stanice
    <button 168/>   <code><a object|radar>RadarStation</a>     </code>Radar
    <button 172/>   <code><a object|exchange>ExchangePost</a>     </code>Komunikační stanice
    <button 169/>   <code><a object|repair>RepairCenter</a>     </code>Opravna
    <button 165/>   <code><a object|tower>DefenseTower</a>     </code>Obranná věž
    <button 166/>   <code><a object|labo>AutoLab</a>          </code>Analyzátor organické hmoty
    <button 164/>   <code><a object|station>PowerStation</a>     </code>Nabíječka
    <button 167/>   <code><a object|energy>PowerPlant</a>       </code>Továrna na baterie
    <button 170/>   <code><a object|nuclear>NuclearPlant</a>     </code>Jaderná elektrárna
    <button 162/>   <code><a object|convert>Converter</a>        </code>Konvertor titanu
    <button 161/>   <code><a object|derrick>Derrick</a>          </code>Vrtná věž
    <button 174/>   <code><a object|captor>PowerCaptor</a>      </code>Parabolický hromosvod
    <button 175/>   <code><a object|safe>Vault</a>            </code>Trezor
           <code><a object|start>StartArea</a>        </code>Startovní značka
           <code><a object|goal>GoalArea</a>         </code>Cílová značka
           <code><a object|target1>Target1</a>          </code>Cvičná brána pro létající roboty
           <code><a object|nest>AlienNest</a>        </code>Vetřelčí hnízdo

note: type: Plain text
en_US: Classes can be only <a cbot|public>public</a>. This means that they can be used by all bots in a mission.
cs: Třídy musejí být vždy deklarované jako <a cbot|public>public</a>. To znamená, že je budou moci používat všichni roboti v dané misi.

note: type: \b; header
en_US: Class Members
cs: Prvky třídy

note: type: Plain text
en_US: Class members are fields (<a cbot|var>variables</a>) and methods (<a cbot|function>functions</a>).
cs: Prvky třídy se dělí na atributy (<a cbot|var>proměnné</a>) a metody (<a cbot|function>funkce</a>).

note: type: Plain text
en_US: 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>).
cs: Například následující třída nazvaná <code>MyClass</code> obsahuje 4 atributy (<code>a</code>, <code>b</code>, <code>x</code>, <code>s</code>) a jednu metodu (<code>MyFunction</code>).

note: type: Source code
en_US: public class MyClass
    {
    	int     a, b;
    	float   x = 3.33;
    	string  s = "hello";
    	float   MyFunction(float value)
    	{
    		return (value * x) - 1;
    	}
    }
cs: public class MyClass
    {
    	int     a, b;
    	float   x = 3.33;
    	string  s = "ahoj";
    	float   MyFunction(float value)
    	{
    		return (value * x) - 1;
    	}
    }

note: type: \t; header
en_US: Member Initialization
cs: Inicializace atributů

note: type: Plain text
en_US: Example:<c/>
cs: Příklad:<c/>

note: type: Plain text
en_US: 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.
cs: Protože parametry druhého konstruktoru mají stejné názvy jako atributy <code>a</code> a <code>b</code>, musíme k oběma atributům přistupovat přes <a cbot|pointer>ukazatel</a> <a cbot|this>this</a>, aby byl význam kódu jednoznačný.

note: type: \b; header
en_US: Object Creation
cs: Vytváření objektů

note: type: Plain text
en_US: You can create objects of type <code>YourClass</code> using the <code><a cbot|new>new</a></code> keyword. Example:
cs: Instance třídy nazvané například <code>MyClass</code> můžete vytvářet pomocí klíčového slova <code><a cbot|new>new</a></code>. Příklad:

note: type: \b; header
en_US: Object Destruction
cs: Mazání objektů

note: type: \b; header
en_US: Passing Objects to Functions
cs: Předávání objektů funkcím

note: type: Plain text
en_US: 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.
cs: Objekty v CBOTu se předávají pomocí <a cbot|pointer>ukazatelů</a>. To znamená, že když předáte objekt jako parametr <a cbot|function>funkci</a>, daná funkce dostane kopii ukazatele na instanci, ne kopii samotné instance, takže změny objektu provedené uvnitř funkce se projeví i mimo ni.

note: type: \b; header
en_US: Inheritance
cs: Dědičnost

note: type: Plain text
en_US: A class can inherit public and protected members of another class by using the <code><a cbot|extends>extends</a></code> keyword.
cs: Třída může zdědit veřejné a chráněné prvky jiné třídy pomocí klíčového slova <code><a cbot|extends>extends</a></code>.

note: type: Plain text
en_US: This keyword allows you to create a class definition by using the following syntax:
cs: Toto klíčové slovo Vám umožňuje definovat novou třídu (datový typ) následujícím způsobem:

note: type: \t; header
en_US: All Classes Are Public
cs: Všechny třídy jsou veřejné

note: type: \t; header
en_US: Class Members Modifiers
cs: Modifikátory prvků třídy

note: type: \t; header
en_US: Using <code><a cbot|this>this</a></code>
cs: Použití ukazatele <code><a cbot|this>this</a></code>

note: type: Source code
en_US: extern void object::Test()
    {
    	MyClass object1();       // Call default constructor (without parameters)
    	MyClass object2(4, 5);   // Call constructor with two int parameters
    	MyClass object3;         // No constructor called, object3 == null
    	object3 = new MyClass(); // We call constructor now, object3 != null
    }
cs: extern void object::Test()
    {
    	MyClass object1();       // Zavolá výchozí konstruktor (bez parametrů)
    	MyClass object2(4, 5);   // Zavolá konstruktor se dvěma parametry typu int
    	MyClass object3;         // Nezavolá žádný konstruktor, object3 == null
    	object3 = new MyClass(); // Konstruktor zavoláme až teď, object3 != null
    }

note: type: Plain text
en_US: 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:
cs: Také můžete definovat destruktor. Musí to být funkce bez parametrů vracející <code><a cbot|void>void</a></code>, která má stejný název jako třída, ale na začátku se znakem <code>~</code> navíc. Destruktor se zavolá automaticky, když už na danou instanci třídy neodkazuje žádný ukazatel. Příklad:

note: type: Source code
en_US: public class MyClass
    {
    	static private int counter = 0; // instance counter
    	void  MyClass( )
    	{
    		counter++;  // one instance more
    	}
    	void ~MyClass( )
    	{
    		counter--;  // one instance less
    	}
    }
    extern void object::Test()
    {
    	                   // counter == 0
    	MyClass item1( );  // counter == 1
    	MyClass item2( );  // counter == 2
    	item1 = null;      // counter == 1
    }
    // counter == 0
cs: public class MyClass
    {
    	static private int counter = 0; // počítadlo instancí
    	void  MyClass( )
    	{
    		counter++;  // přičíst jednu instanci
    	}
    	void ~MyClass( )
    	{
    		counter--;  // odečíst jednu instanci
    	}
    }
    extern void object::Test()
    {
    	                   // counter == 0
    	MyClass item1( );  // counter == 1
    	MyClass item2( );  // counter == 2
    	item1 = null;      // counter == 1
    }
    // counter == 0

note: type: \b; header
en_US: Accessing Class Members
cs: Přístup k prvkům třídy

note: type: Plain text
en_US: Class members can be accessed outside of the class definition by using the <code>.</code> operator. Example:
cs: Mimo samotnou třídu můžete k jejím prvkům přistupovat pomocí operátoru <code>.</code> (tečka). Příklad:

note: type: Plain text
en_US: 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.
cs: Prvky třídy jsou ve výchozím stavu automaticky deklarované jako <a cbot|public>public</a>, což znamená, že jsou přístupné i mimo definici třídy. Místo toho je můžete deklarovat jako <code><a cbot|private>private</a></code> nebo <code><a cbot|protected>protected</a></code>. Pak budou dané prvky dostupné pouze uvnitř samotné třídy.

note: type: Plain text
en_US: 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>.
cs: Atributy a metody mohou být také deklarované jako <code><a cbot|static>static</a></code>. Metody mohou být dále deklarované jako <code><a cbot|synchro>synchronized</a></code>.

note: type: Plain text
en_US: 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>.
cs: Atributy také můžete inicializovat pomocí konstruktoru, což je speciální metoda se stejným názvem jako třída. Tato metoda se zavolá automaticky při <a cbot|new>vytváření</a> nové instance třídy. Konstruktory můžete <a cbot|function>přetížit</a>.

note: type: Plain text
en_US: <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>
    <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
cs: <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>ukazatelé</a></code>, <code><a cbot|this>this</a></code>, <code><a cbot|super>super</a></code>, <code><a cbot|extends>extends</a></code>
    <a cbot>Programování</a>, <a cbot|type>datové typy</a> a <a cbot|category>kategorie</a>.

note: type: \b; header
en_US: Keyword <code>protected</code>
cs: Klíčové slovo <code>protected</code>

note: type: Plain text
en_US: 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).
cs: Toto je příznak přístupnosti pro prvky <a cbot|class>třídy</a>. Prvky deklarované jako <code>protected</code> (chráněné) jsou přístupné uvnitř dceřiných tříd, ale nejsou přístupné mimo strom dědičnosti dané třídy (viz klíčové slovo <code><a cbot|extends>extends</a></code>).

note: type: Source code
en_US: public class Parent
    {
    	protected int field = 0;
    }
    
    public class Child extends Parent
    {
    	void Print()
    	{
    		message(field);
    	}
    }
    
    extern void object::Test()
    {
    	Child child();
    	child.Print(); // 0
    	//child.field = 1; // Error!
    }
cs: public class Rodic
    {
    	protected int atribut = 0;
    }
    
    public class Dcera extends Rodic
    {
    	void Print()
    	{
    		message(atribut);
    	}
    }
    
    extern void object::Test()
    {
    	Dcera instance();
    	instance.Print(); // 0
    	//instance.atribut = 1; // Chyba!
    }

note: type: Plain text
en_US: This is an access modifier for <a cbot|class>class</a> members. Private members are not accessible outside of the class definition.
cs: Toto je příznak přístupnosti pro prvky <a cbot|class>třídy</a>. Prvky deklarované jako <code>private</code> (soukromé) nejsou přístupné nikde jinde než uvnitř samotné třídy.

note: type: Plain text
en_US: <code><a cbot|class>class</a></code>, <code><a cbot|public>public</a></code>, <code><a cbot|protected>protected</a></code>
    <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
cs: <code><a cbot|class>class</a></code>, <code><a cbot|public>public</a></code>, <code><a cbot|protected>protected</a></code>
    <a cbot>Programování</a>, <a cbot|type>datové typy</a> a <a cbot|category>kategorie</a>.

note: type: Plain text
en_US: <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.
cs: <code>public</code> také slouží jako příznak přístupnosti pro prvky <a cbot|class>třídy</a>. Pokud neuvedete žádný příznak přístupnosti, <code>public</code> se použije implicitně. Prvky deklarované jako <code>public</code> (veřejné) jsou přístupné i mimo definici samotné třídy.

note: type: Plain text
en_US: <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>
    <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
cs: <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>funkce</a></code>
    <a cbot>Programování</a>, <a cbot|type>datové typy</a> a <a cbot|category>kategorie</a>.

note: type: Plain text
en_US: <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>
    <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
cs: <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>
    <a cbot>Programování</a>, <a cbot|type>datové typy</a> a <a cbot|category>kategorie</a>.

note: type: \b; header
en_US: Keyword <code>super</code>
cs: Klíčové slovo <code>super</code>

note: type: Plain text
en_US: <code><a cbot|class>class</a></code>, <code><a cbot|this>this</a></code>
    <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
cs: <code><a cbot|class>class</a></code>, <code><a cbot|this>this</a></code>
    <a cbot>Programování</a>, <a cbot|type>datové typy</a> a <a cbot|category>kategorie</a>.

note: type: Plain text
en_US: <code><a cbot|class>class</a></code>, <code><a cbot|super>super</a></code>
    <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
cs: <code><a cbot|class>class</a></code>, <code><a cbot|super>super</a></code>
    <a cbot>Programování</a>, <a cbot|type>datové typy</a> a <a cbot|category>kategorie</a>.

note: type: \b; header
en_US: Keyword <code>extends</code>
cs: Klíčové slovo <code>extends</code>

note: type: \b; header
en_US: Inherited Members
cs: Zděděné prvky

note: type: Plain text
en_US: 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.
cs: Třídy mohou dědit pouze <code><a cbot|public>veřejné</a></code> a <code><a cbot|protected>chráněné</a></code> prvky. <code><a cbot|private>Soukromé</a></code> prvky nejsou přímo přístupné ani v dceřinných třídách, ale lze k nim přistupovat nepřímo prostřednictvím zděděných metod.

note: type: Plain text
en_US: Constructors and destructors are not inherited, however, they can be overriden.
cs: Konstruktory a destruktory se nedědí, ale můžete je předefinovat.

note: type: \b; header
en_US: Method Overriding
cs: Překrývání metod

note: type: Plain text
en_US: Inherited methods can be overriden (redefined) in the child class definition. Example:
cs: Zděděné metody můžete v dceřinné třídě překrýt (předefinovat). Příklad:

note: type: Source code
en_US: public class Parent
    {
    	void foo()
    	{
    		message("foo");
    	}
    }
    
    public class Child extends Parent
    {
    	void foo()
    	{
    		message("bar");
    	}
    }
    
    extern void object::Test()
    {
    	Child child();
    	child.foo(); // Will show "bar"
    }
cs: public class Rodic
    {
    	void foo()
    	{
    		message("foo");
    	}
    }
    
    public class Dcera extends Rodic
    {
    	void foo()
    	{
    		message("bar");
    	}
    }
    
    extern void object::Test()
    {
    	Dcera instance();
    	instance.foo(); // Zobrazí "bar"
    }

note: type: \b; header
en_US: Polymorphism
cs: Polymorfismus

note: type: Plain text
en_US: <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.
cs: <code><a cbot|pointer>Ukazatel</a></code> na rodičovskou třídu může odkazovat na instanci dceřinné třídy. V takovém případě ale přes tento ukazatel nemůžete přistupovat k prvkům dceřinné třídy. Abyste k nim mohli přistupovat, musíte se nejprve ujistit, že ukazatel opravdu obsahuje instanci dceřinné třídy. Pak ho můžete bezpečně zkopírovat do ukazatele na dceřinnou třídu, který má přístup k příslušným prvkům.

note: type: Source code
en_US: public class Parent
    {
    	void foo()
    	{
    		message("foo");
    	}
    }
    
    public class Child extends Parent
    {
    	void foo()
    	{
    		message("bar");
    	}
    	void bar()
    	{
    		message("foo bar");
    	}
    }
    
    extern void object::Test()
    {
    	Parent people[2];
    	people[0] = new Parent();
    	people[1] = new Child();
    	for (int i = 0; i < 2; ++i)
    	{
    		people[i].foo();
    	}
    	//people[1].bar(); // Error
    	Child child = people[1];
    	child.bar(); // OK
    }
cs: public class Rodic
    {
    	void foo()
    	{
    		message("foo");
    	}
    }
    
    public class Dcera extends Rodic
    {
    	void foo()
    	{
    		message("bar");
    	}
    	void bar()
    	{
    		message("foo bar");
    	}
    }
    
    extern void object::Test()
    {
    	Rodic lide[2];
    	lide[0] = new Rodic();
    	lide[1] = new Dcera();
    	for (int i = 0; i < 2; ++i)
    	{
    		lide[i].foo();
    	}
    	//lide[1].bar(); // Chyba
    	Dcera instance = lide[1];
    	instance.bar(); // OK
    }

note: type: \b; header
en_US: Multiple Inheritance
cs: Vícenásobná dědičnost

note: type: Plain text
en_US: A child cannot have multiple parents, however, a parent can have many children.
cs: Dceřinná třída nemůže mít více než jednoho rodiče. Rodičovská třída ale může mít více dětí.

note: type: Plain text
en_US: <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>
    <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
cs: <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>ukazatelé</a></code>, <code><a cbot|this>this</a></code>, <code><a cbot|super>super</a></code>
    <a cbot>Programování</a>, <a cbot|type>datové typy</a> a <a cbot|category>kategorie</a>.

note: type: Plain text
en_US: 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.
cs: Toto klíčové slovo funguje podobně jako ukazatel <code><a cbot|this>this</a></code>, ale narozdíl od něj umožňuje přístup k metodám rodičovské třídy (viz klíčové slovo <code><a cbot|extends>extends</a></code>), což se hodí zvláště u předefinovaných metod.

note: type: Source code
en_US: public class Parent
    {
    	protected int field;
    	
    	void Parent()
    	{
    		field = 0;
    	}
    	
    	void Print()
    	{
    		message("Parent's field: " + field);
    	}
    }
    
    public class Child extends Parent
    {
    	private int childsField;
    	
    	void Child()
    	{
    		super.Parent();
    		childsField = field + 1;
    	}
    	
    	void Print()
    	{
    		super.Print();
    		message("Child's field: " + childsField);
    	}
    }
    
    extern void object::Test()
    {
    	Child child();
    	child.Print(); // Will show both 0 and 1
    }
cs: public class Rodic
    {
    	protected int atribut;
    	
    	void Rodic()
    	{
    		atribut = 0;
    	}
    	
    	void Print()
    	{
    		message("Atribut rodice: " + atribut);
    	}
    }
    
    public class Dcera extends Rodic
    {
    	private int atributDcery;
    	
    	void Dcera()
    	{
    		super.Rodic();
    		atributDcery = atribut + 1;
    	}
    	
    	void Print()
    	{
    		super.Print();
    		message("Atribut dcery: " + atributDcery);
    	}
    }
    
    extern void object::Test()
    {
    	Dcera instance();
    	instance.Print(); // Zobrazí 0 i 1 za sebou
    }

note: type: Plain text
en_US: 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.
cs: Toto klíčové slovo se používá v definici <code><a cbot|class>třídy</a></code>, která má zdědit prvky z jiné třídy. Třída, ze které se dědí, se obvykle nazývá rodič, odvozené třídě se obvykle říká dceřinná nebo potomek.

note: type: Source code
en_US: public class Parent
    {
    	void foo()
    	{
    		message("foo");
    	}
    }
    
    public class Child extends Parent
    {
    	void bar()
    	{
    		message("bar");
    	}
    }
    
    extern void object::Test()
    {
    	Child child();
    	child.foo(); // Will show "foo"
    	child.bar(); // Will show "bar"
    }
cs: public class Rodic
    {
    	void foo()
    	{
    		message("foo");
    	}
    }
    
    public class Dcera extends Rodic
    {
    	void bar()
    	{
    		message("bar");
    	}
    }
    
    extern void object::Test()
    {
    	Dcera instance();
    	instance.foo(); // Zobrazí "foo"
    	instance.bar(); // Zobrazí "bar"
    }

note: type: Plain text
en_US: A parent's method can be called inside an overriden method by using the <code><a cbot|super>super</a></code> keyword.
cs: Předefinovanou metodu rodiče můžete uvnitř metod dceřinné třídy volat prostřednictvím klíčového slova <code><a cbot|super>super</a></code>.

note: type: Plain text
en_US: As shown in the previous example, the class members can be initialized in the class definition (<c/>int x = 3.33;<n/>).
cs: Jak jste viděli v předchozím příkladu, atributy třídy lze inicializovat v definici dané třídy (<c/>int x = 3.33;<n/>).

note: type: Plain text
en_US: <code>"r"</code> mode: open for reading.
    <code>"w"</code> mode: open for writing.
    <code>"a"</code> mode: open for appending.
cs: režim <code>"r"</code>: otevřít pro čtení (read).
    režim <code>"w"</code>: otevřít pro zápis (write).
    režim <code>"a"</code>: otevřít pro zápis za původní obsah (append).

note: type: Plain text
en_US: <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.
cs: <c/>openfile();<n/> otevře textový soubor v adresáři files/. Toto není metoda třídy <code><a cbot|file>file</a></code>, ale funkce vracející <a cbot|pointer>ukazatel</a> na novou instanci třídy file. Musíte zadat dva parametry: název souboru a režim přístupu.

note: type: Plain text
en_US: <code>"r"</code> mode: open for reading.
    <code>"w"</code> mode: open for writing.
    <code>"w"</code> mode: open for appending.
cs: režim <code>"r"</code>: otevřít pro čtení (read).
    režim <code>"w"</code>: otevřít pro zápis (write).
    režim <code>"a"</code>: otevřít pro zápis za původní obsah (append).

note: type: Plain text
en_US: 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.
cs: V hlavičce hlavní funkce můžete měnit pouze jméno. Klíčové slovo <code><a cbot|extern>extern</a></code> odlišuje hlavní funkci od ostatních funkcí.

note: type: \b; header
en_US: Public Functions
cs: Veřejné funkce

note: type: \b; header
en_US: Default Parameters
cs: Výchozí parametry

note: type: Plain text
en_US: Last function parameters can have default values that can be omitted when calling.
cs: Parametrům na konci seznamu můžete zadat výchozí hodnotu, která se použije, kdež je při volání funkce nevyplníte.

note: type: Source code
en_US: float Add(float a = 0.0, float b = 0.0)
    {
    	return a + b;
    }
    
    // Somewhere in the main program...
    Add(); // Will return 0.0
    Add(2.0); // Will return 2.0
    Add(2.0, 3.0); // Will return 5.0
    // ...
cs: float Add(float a = 0.0, float b = 0.0)
    {
    	return a + b;
    }
    
    // Někde v hlavním programu...
    Add(); // Vrátí 0.0
    Add(2.0); // Vrátí 2.0
    Add(2.0, 3.0); // Vrátí 5.0
    // ...

note: type: \t; header
en_US: Default Parameters and Overloading
cs: Výchozí parametry a přetěžování

note: type: Plain text
en_US: Functions with default parameters still can be overloaded, one must only ensure that function calls are not ambiguous. For example, consider the following code:
cs: Funkce s výchozími parametry můžete normálně přetěžovat, jen si musíte dávat pozor, aby různé způsoby volání zůstaly jednoznačné. Například si představte následující kód:

note: type: Source code
en_US: float Add(float a = 0.0, float b = 0.0)
    {
    	return a + b;
    }
    
    string Add(string a = "", string b = "")
    {
    	return a + b;
    }
    
    // Somewhere in the main program...
    Add(); // Compilation error: ambiguous call
    Add(""); // Ok
    Add(0.0); // Ok
    // ...
cs: float Add(float a = 0.0, float b = 0.0)
    {
    	return a + b;
    }
    
    string Add(string a = "", string b = "")
    {
    	return a + b;
    }
    
    // Někde v hlavním programu...
    Add(); // Chyba kompilace: nejednoznačné volání
    Add(""); // OK
    Add(0.0); // OK
    // ...

note: type: Plain text
en_US: 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.
cs: Všimněte si, že v předchozím příkladu je výchozí hodnota pro první parametr k ničemu, protože při volání funkce musíte vždy zadat alespoň jeden parametr, abyste určili, která varianta funkce se má zavolat.

note: type: Plain text
en_US: <button 192/>   <code><a object|botbr>WheeledBuilder</a>         </code>Wheeled Builder
    <button 193/>   <code><a object|botbc>TrackedBuilder</a>         </code>Tracked Builder
    <button 194/>   <code><a object|botbj>WingedBuilder</a>          </code>Winged Builder
    <button 195/>   <code><a object|botbs>LeggedBuilder</a>          </code>Legged Builder
cs: <button 192/>   <code><a object|botbr>WheeledBuilder</a>         </code>Pojízdný stavitel
    <button 193/>   <code><a object|botbc>TrackedBuilder</a>         </code>Pásový stavitel
    <button 194/>   <code><a object|botbj>WingedBuilder</a>          </code>Létající stavitel
    <button 195/>   <code><a object|botbs>LeggedBuilder</a>          </code>Chodící stavitel

note: type: Plain text
en_US: Note: the <a cbot|isbusy>isbusy</a> instruction might be much better to use in this scenario.
cs: Poznámka: V následujícím příkladu by bylo vhodnější použít příkaz <a cbot|isbusy>isbusy</a>.
