diff --git a/help/D/authors.txt b/help/D/authors.txt new file mode 100644 index 00000000..392b4ee5 --- /dev/null +++ b/help/D/authors.txt @@ -0,0 +1,7 @@ +Development team: Beta tester core team: + +- Daniel Roux - Adrien Roux - Michael Jubin +- Denis Dumoulin - Didier Raboud - Daniel Sauthier +- Otto Kölbl - Nicolas Beuchat - Nicolas Stubi +- Michael Walz - Joël Roux - Patrick Thévoz +- Didier Gertsch diff --git a/help/D/cbot.txt b/help/D/cbot.txt new file mode 100644 index 00000000..87b2a004 --- /dev/null +++ b/help/D/cbot.txt @@ -0,0 +1,91 @@ +\b;Programming - the CBOT language +The CBOT language is very close in structure and syntax to C++ and Java. It has been adapted for the specific purposes of COLOBOT, and for an efficient pedagogical approach. +This language is made up of instructions (see below), \l;blocks\u cbot\bloc;, \l;functions\u cbot\function;, \l;classes\u cbot\class;, \l;variables\u cbot\var;, \l;arrays\u cbot\array;, \l;expressions\u cbot\expr; and \l;conditions\u cbot\cond;. + +o \c;\token;Instructions\norm;\n; +In the program editor, an instruction in the CBOT language is always displayed on an orange background. If an instruction hasn't got an orange background, this means that it has been misspelled. Instruction names are always written in lower case. + +o \c;\type;Type\norm;\n; +The \l;type\u cbot\type; of a variable appears with a green background. + +o \c;\const;Constants\norm;\n; +Constants like \l;categories\u cbot\category; are displayed with a red background. + +\t;Instructions in the CBOT language: +\c;\l;extern\u cbot\extern; \n;Indicate the main function +\c;\l;if\u cbot\if; \n;Choice structure +\c;\l;else\u cbot\if; \n;Alternative choice structure +\c;\l;for\u cbot\for; \n;Loop structure +\c;\l;while\u cbot\while; \n;Control structure +\c;\l;do\u cbot\do; \n;Control structure +\c;\l;break\u cbot\break; \n;Exit from a loop +\c;\l;continue\u cbot\continue; \n;Continues the loop +\c;\l;return\u cbot\return; \n;Exit from a function +\c;\l;sizeof\u cbot\sizeof; \n;Size of an array + +\t;Specific instructions for bots: +\c;\l;radar\u cbot\radar; \n;Object detection +\c;\l;direction\u cbot\direct; \n;Calculates a rotation angle +\c;\l;distance\u cbot\dist; \n;Calculates a distance +\c;\l;distance2d\u cbot\dist2d; \n;Calculates a distance +\c;\l;wait\u cbot\wait; \n;Waits +\c;\l;move\u cbot\move; \n;Moves forward or backward +\c;\l;turn\u cbot\turn; \n;Turns +\c;\l;goto\u cbot\goto; \n;Goes to a given position +\c;\l;motor\u cbot\motor; \n;Direct motor control +\c;\l;jet\u cbot\jet; \n;Direct jet engine control +\c;\l;message\u cbot\message; \n;Displays a message +\c;\l;retobject\u cbot\retobj; \n;Returns an object from a function +\c;\l;errmode\u cbot\errmode; \n;Error treatement control +\c;\l;abstime\u cbot\abstime; \n;Returns the absolute time + +\t;Instructions about topology: +\c;\l;space\u cbot\space; \n;Calculates a free space +\c;\l;topo\u cbot\topo; \n;Returns the altitude of a point +\c;\l;flatground\u cbot\flatgrnd; \n;Returns radius of a flat area + +\t;Instructions specific to some bots: +\c;\l;grab\u cbot\grab; \n;Picks up an object +\c;\l;drop\u cbot\drop; \n;Puts down an object +\c;\l;sniff\u cbot\sniff; \n;Sounds the subsoil +\c;\l;thump\u cbot\thump; \n;Overturns alien insects +\c;\l;recycle\u cbot\recycle; \n;Recycles a derelict bot +\c;\l;shield\u cbot\shield; \n;Extends or withdraws the shield +\c;\l;fire\u cbot\fire; \n;Fires the cannon +\c;\l;aim\u cbot\aim; \n;Vertical angle of the cannon + +\t;Specific instructions for exchange posts: +\c;\l;receive\u cbot\receive; \n;Receives an information +\c;\l;send\u cbot\send; \n;Sends a new information +\c;\l;testinfo\u cbot\testinfo; \n;Tests if an information exists +\c;\l;deleteinfo\u cbot\delinfo; \n;Deletes an existing information + +\t;Specific instructions for classes: +\c;\l;class\u cbot\class; \n;Class declararion +\c;\l;public\u cbot\public; \n;Declares a public function +\c;\l;private\u cbot\private; \n;Declares a private class member +\c;\l;static\u cbot\static; \n;Declares a static class member +\c;\l;synchronized\u cbot\synchro; \n;Prevents simultaneous execution +\c;\l;new\u cbot\new; \n;Creates a new instance +\c;\l;this\u cbot\this; \n;Reference to the current instance + +\t;Specific instructions for strings: +\c;\l;strlen\u cbot\strlen; \n;Gets string length +\c;\l;strleft\u cbot\strleft; \n;Extracts left part +\c;\l;strright\u cbot\strright; \n;Extracts right part +\c;\l;strmid\u cbot\strmid; \n;Extracts center part +\c;\l;strfind\u cbot\strfind; \n;Finds a substring. +\c;\l;strval\u cbot\strval; \n;Converts string to number +\c;\l;strupper\u cbot\strupper; \n;Converts to upper case +\c;\l;strlower\u cbot\strlower; \n;Converts to lower case + +\t;Specific instructions for files: +\c;\l;open\u cbot\open; \n;Opens a file +\c;\l;close\u cbot\close; \n;Closes a file +\c;\l;writeln\u cbot\writeln; \n;Writes line to a file +\c;\l;readln\u cbot\readln; \n;Reads line from a file +\c;\l;eof\u cbot\eof; \n;Tests if end of file +\c;\l;deletefile\u cbot\deletef; \n;Deletes a file + +\t;See also +\l;Types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/abstime.txt b/help/D/cbot/abstime.txt new file mode 100644 index 00000000..bdfe4c90 --- /dev/null +++ b/help/D/cbot/abstime.txt @@ -0,0 +1,11 @@ +\b;Instruction \c;abstime\n; +Syntax¦: +\s;\c;abstime ( );\n; + +Return the time in seconds elapsed since the beginning of the mission. + +\t;Return: \c;\l;float\u cbot\float;\n; +Time in seconds. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/aim.txt b/help/D/cbot/aim.txt new file mode 100644 index 00000000..8d1e460f --- /dev/null +++ b/help/D/cbot/aim.txt @@ -0,0 +1,21 @@ +\b;Instruction \c;aim\n; +Syntax : +\s;\c;aim ( angle );\n; + +This instruction sets the vertical angle of the cannon. The following robots are equipped with a cannon: +o \l;Shooter\u object\botfr; +o \l;Orga shooter\u object\botor; +o \l;Phazer shooter\u object\botphaz; + +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 \c;\l;turn\u cbot\turn;\n;. + +\t;angle: \c;\l;float\u cbot\float;\n; +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 \c;-20\n; to \c;+20\n; degrees. For phazer shooters, the angle must range from \c;-20\n; to \c;45\n; degrees. + +\t;Return value: \c;\l;int\u cbot\int;\n; +Zero if everything is OK, a value different from zero if the rotation could not be performed: +\c;== 0 \n;The gun has now got the desired orientation +\c;!= 0 \n;rotation impossible + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/array.txt b/help/D/cbot/array.txt new file mode 100644 index 00000000..152bed55 --- /dev/null +++ b/help/D/cbot/array.txt @@ -0,0 +1,31 @@ +\b;Arrays +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 \c;[]\n; after the type name or the variable name to declare an array. +\c; +\s;int [ ] a; // an array of int +\s;int a [12]; // an array of int limited to 12 elements +\s;string s[3]; // an array of 3 strings +\s;float xy[][]; // an 2 dimensionnal array of floats +\n; +Actually when the CBOT interpreter encounters an array declaration, it just creates a \c;\l;null\u cbot\null;\n; \l;reference\u cbot\pointer;: +\c; +\s;int a[5]; // a is now a null reference +\n; +As soon as you put values into the array, the elements are created and the reference is initialized: +\c; +\s;a[2] = 213; // a points to +\s; // 3 élements [0], [1] et [2] +\n; +After this operation, \c;a\n; contains a reference to the elements of the array. Elements \c;[0]\n; and \c;[1]\n; are created but not initialized because an array cannot contain empty elements. The \c;\l;sizeof\u cbot\sizeof;\n; instruction allows you to obtain the number of elements contained in an array. + +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: +\c; +\s;{ +\s; int a[5]; +\s; a[7] = 123; // no error at compile time +\s; // but error at run time +\s;} +\n; +If you pass an array as parameter to a \l;function\u cbot\function;, the function only receives a \l;reference\u cbot\pointer; 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. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/bloc.txt b/help/D/cbot/bloc.txt new file mode 100644 index 00000000..287536ea --- /dev/null +++ b/help/D/cbot/bloc.txt @@ -0,0 +1,49 @@ +\b;Blocks +You can use braces \c;{ }\n; to group a number of instructions together in order to make one single block out of them, for example: +\c; +\s; { +\s; float t; +\s; t = a; +\s; a = b; +\s; b = t; // switches round a and b +\s; } +\n; +Every instruction in the block is followed by a \l;semicolon\u cbot\term;, but the block itself is not. +Let us take the following example with the instruction \c;\l;if\u cbot\if;\n; to illustrate the use of blocks in a program: +\c; +\s; if ( a < b ) +\s; \n;instruction 1\c;; +\s; \n;instruction 2\c;; +\s; \n;instruction 3\c;; +\n; +If the \l;condition\u cbot\cond; 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: +\c; +\s; if ( a < b ) +\s; { +\s; \n;instruction 1\c;; +\s; \n;instruction 2\c;; +\s; } +\s; \n;instruction 3\c;; +\n; +Blocks may be needed with instructions \c;\l;if\u cbot\if;\n;, \c;\l;while\u cbot\while;\n; and \c;\l;for\u cbot\for;\n;, 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 : +\c; +\s; if ( a > b ) +\s; { +\s; int i = 0; +\s; while ( i < 18 ) +\s; { +\s; move(10); +\s; turn(5); +\s; i = i+1; +\s; } +\s; } +\n; +You had better line up the open brace \c;{\n; with the closing brace \c;}\n; 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 : +\c; +\s; if(a>b) { int i=0; while(i<18) { +\s; move(10);turn(5);i=i+1; }} +\n; +\t;See also +\l;Instructions\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/bool.txt b/help/D/cbot/bool.txt new file mode 100644 index 00000000..b97ab9d4 --- /dev/null +++ b/help/D/cbot/bool.txt @@ -0,0 +1,5 @@ +\b;Type \c;bool\n; +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. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/break.txt b/help/D/cbot/break.txt new file mode 100644 index 00000000..2833e6c2 --- /dev/null +++ b/help/D/cbot/break.txt @@ -0,0 +1,25 @@ +\b;Instruction \c;break\n; +Syntax : +\s;\c;while ( condition ) +\s;{ +\s; break; +\s;} +\n; +With this instruction, you can get out immediately of a \c;\l;while\u cbot\while;\n; or \c;\l;for\u cbot\for;\n; loop. + +Here is an example: +\s;\c;int i = 0; +\s;while ( true ) +\s;{ +\s; \n;Instructions ...\c; +\s; i = i+1; +\s; if ( i >= 10 ) +\s; { +\s; break; +\s; } +\s; \n;more instructions ...\c; +\s;} +\n; + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/category.txt b/help/D/cbot/category.txt new file mode 100644 index 00000000..6dd7f3c2 --- /dev/null +++ b/help/D/cbot/category.txt @@ -0,0 +1,108 @@ +\b;Value \c;Categories\n; +Categories represent the names of objects in the CBOT language. Everything in COLOBOT is an object: robots, buildings, raw materials, etc., even yourself. + +In a program, categories are always displayed on a \const;red background\norm;. If a category isn't highlighted in red, it is misspelled. Caps and lower cases should be kept as is. + +Below are the different categories available : + +\t;Buildings : + +\button 176; \c;\l;Houston\u object\Huston; \n;Mission Control +\button 171; \c;\l;SpaceShip\u object\base; \n;Spaceship +\button 160; \c;\l;BotFactory\u object\factory; \n;Robot Factory +\button 163; \c;\l;ResearchCenter\u object\research; \n;Research Center +\button 168; \c;\l;RadarStation\u object\radar; \n;Radar +\button 172; \c;\l;ExchangePost\u object\exchange; \n;Information Exchange Post +\button 169; \c;\l;RepairCenter\u object\repair; \n;Repair Center +\button 165; \c;\l;DefenseTower\u object\tower; \n;Defense Tower +\button 166; \c;\l;AutoLab\u object\labo; \n;Organic Matter Analyzer +\button 164; \c;\l;PowerStation\u object\station; \n;Power Station +\button 167; \c;\l;PowerPlant\u object\energy; \n;Power Cell Factory +\button 170; \c;\l;NuclearPlant\u object\nuclear; \n;Nuclear Plant +\button 162; \c;\l;Converter\u object\convert; \n;Titanium Converter +\button 161; \c;\l;Derrick\u object\derrick; \n;Derrick +\button 174; \c;\l;PowerCaptor\u object\captor; \n;Parabolic Lightning Conductor +\button 175; \c;\l;Vault\u object\safe; \n;Vault + \c;\l;StartArea\u object\start; \n;Starting Pad + \c;\l;GoalArea\u object\goal; \n;Finishing Pad + \c;\l;AlienNest\u object\nest; \n;Alien Nest + + +\t;Portable Objects : + + \c;\l;TitaniumOre\u object\titanore; \n;Titanium Ore + \c;\l;UraniumOre\u object\uranore; \n;Uranium Ore + \c;\l;Titanium\u object\titan; \n;Cube of converted Titanium + \c;\l;PowerCell\u object\power; \n;Regular Power Cell + \c;\l;NuclearCell\u object\atomic; \n;Nuclear Power Cell + \c;\l;OrgaMatter\u object\bullet; \n;Organic Matter + \c;\l;BlackBox\u object\bbox; \n;Black Box + \c;\l;TNT\u object\tnt; \n;Explosive device + \c;\l;KeyA..D\u object\key; \n;Keys A, B, C and D + + +\t;Robots : + +\button 158; \c;\l;PracticeBot\u object\bottr; \n;Practice Bot +\button 173; \c;\l;TargetBot\u object\bottarg; \n;Target Bot + +\button 137; \c;\l;WheeledGrabber\u object\botgr; \n;Wheeled Grabber +\button 138; \c;\l;TrackedGrabber\u object\botgc; \n;Tracked Grabber +\button 139; \c;\l;WingedGrabber\u object\botgj; \n;Winged Grabber +\button 150; \c;\l;LeggedGrabber\u object\botgs; \n;Legged Grabber + +\button 140; \c;\l;WheeledSniffer\u object\botsr; \n;Wheeled Sniffer +\button 141; \c;\l;TrackedSniffer\u object\botsc; \n;Tracked Sniffer +\button 142; \c;\l;WingedSniffer\u object\botsj; \n;Winged Sniffer +\button 152; \c;\l;LeggedSniffer\u object\botss; \n;Legged Sniffer + +\button 143; \c;\l;WheeledShooter\u object\botfr; \n;Wheeled Shooter +\button 144; \c;\l;TrackedShooter\u object\botfc; \n;Tracked Shooter +\button 145; \c;\l;WingedShooter\u object\botfj; \n;Winged Shooter +\button 151; \c;\l;LeggedShooter\u object\botfs; \n;Legged Shooter + +\button 153; \c;\l;WheeledOrgaShooter\u object\botor; \n;Wheeled Orga Shooter +\button 154; \c;\l;TrackedOrgaShooter\u object\botoc; \n;Tracked Orga Shooter +\button 155; \c;\l;WingedOrgaShooter\u object\botoj; \n;Winged Orga Shooter +\button 156; \c;\l;LeggedOrgaShooter\u object\botos; \n;Legged Orga Shooter + +\button 149; \c;\l;Subber\u object\botsub; \n;Subber +\button 148; \c;\l;Recycler\u object\botrecy; \n;Recycler +\button 157; \c;\l;Shielder\u object\botshld; \n;Shielder +\button 146; \c;\l;Thumper\u object\bottump; \n;Thumper +\button 147; \c;\l;PhazerShooter\u object\botphaz; \n;Phazer Shooter + + +\t;Enemies : + + \c;\l;AlienQueen\u object\mother; \n;Alien Queen + \c;\l;AlienEgg\u object\egg; \n;Alien Egg + \c;\l;AlienAnt\u object\ant; \n;Ant + \c;\l;AlienSpider\u object\spider; \n;Spider + \c;\l;AlienWasp\u object\wasp; \n;Wasp + \c;\l;AlienWorm\u object\worm; \n;Worm + + +\t;Miscellaneous : + +\button 136; \c;\l;Me\u object\human; \n;You! + \c;\l;Mine\u object\mine; \n;Mine + \c;\l;Barrier\u object\barrier; \n;Barrier + \c;\l;Wreck\u object\wreck; \n;Derelict bot + \c;\l;Ruin\u object\ruin; \n;Derelict building + + +\t;Flags and Other Indicators : + + \c;\l;BlueFlag\u object\flag; \n;Blue Flag + \c;\l;RedFlag\u object\flag; \n;Red Flag + \c;\l;GreenFlag\u object\flag; \n;Green Flag + \c;\l;YellowFlag\u object\flag; \n;Yellow Flag + \c;\l;VioletFlag\u object\flag; \n;Violet Flag + \c;\l;WayPoint\u object\waypoint; \n;Checkpoint + \c;\l;EnergySite\u object\enerspot; \n;Underground Energy Deposit + \c;\l;TitaniumSite\u object\stonspot; \n;Underground Titanium Deposit + \c;\l;UraniumSite\u object\uranspot; \n;Underground Uranium Deposit + +\t;See also +\l;CBOT Language\u cbot; and \l;Variables\u cbot\type;. diff --git a/help/D/cbot/class.txt b/help/D/cbot/class.txt new file mode 100644 index 00000000..942d7b0e --- /dev/null +++ b/help/D/cbot/class.txt @@ -0,0 +1,72 @@ +\b;Instruction \c;class\n; +This allows you to declare a class definition using following syntax: +\c; +\s;public class ClassName +\s;{ +\s; declarations; +\s;} +\n; +Classes can only be \l;public\u cbot\public;, that is they can be used from all bots in a mission. Class members are also public, that is they are accessible from outside the class. Class members can be fields or functions (also called methods), for example the followin class \c;MyClass\n; contains 4 fields (a, b, x and s) and one method (MyFunction). +\c; +\s;public class MyClass +\s;{ +\s; int a, b; +\s; float x = 3.33; +\s; string s = "hello"; +\s; float MyFunction( float value ) +\s; { +\s; return (value*x)-1; +\s; } +\s;} +\n; +As shown in this exemple the class members can be initialized (\c;x=3.33\n;). You can also define a constructor which is a special method having the same name as the class name. This method will be called automatically at creation time of a class instance. You can also declare more than one method with the same name but different parameters. +\c; +\s;public class MyClass +\s;{ +\s; int a, b; +\s; void MyClass( ) +\s; { +\s; a = 2; b = 3; +\s; } +\s; void MyClass( int a, int b ) +\s; { +\s; this.a = a; this.b = b; +\s; } +\s;} +\n; +In this example two constructors are declared for \c;MyClass\n;, one without parameters and the other one with two parameters. As the names of the parameters of the second constructor are the same as the names of the two members \c;a\n; et \c;b\n; we must use the \c;\l;this\u cbot\this;.a\n; and \c;\l;this\u cbot\this;.b\n; to avoid confusion with the parameters. Another more simpler solution would be to give different names to the parameters. +\c; +\s;void Test( ) +\s;{ +\s; MyClass item1(); // constr. w/o parameters +\s; MyClass item2(4, 5); // constr. with 2 parameters +\s; MyClass item3; // no constructor called, +\s; // therefore item3 == null +\s;} +\n; +You can also define a destructor. This must be a \c;void\n; fonction without parameters that has the same name as the class name but prefixed by the ~ character. The destructor is called automatically as soon as the class instance is no more referenced by anyone. +\c; +\s;public class MyClass +\s;{ +\s; static private int counter = 0; // instance counter +\s; void MyClass( ) +\s; { +\s; counter ++; // one instance more +\s; } +\s; void ~MyClass( ) +\s; { +\s; counter --; // one instance less +\s; } +\s;} +\s;void Test() +\s;{ +\s; MyClass item1( ); // counter = 1 +\s; MyClass item2( ); // counter = 2 +\s; item1 = null; // counter = 1 +\s;} // counter = 0 +\n; +If you pass a class instance as parameter to a \l;function\u cbot\function;, the function only receives a \l;reference\u cbot\pointer; to the instance. That means if you modify the instance in the function, the instance that has been passed to the function will be actuallay modified. + +\t;See also +\c;\l;public\u cbot\public;\n;, \c;\l;private\u cbot\private;\n;, \c;\l;static\u cbot\static;\n;, \c;\l;synchronized\u cbot\synchro;\n;, \c;\l;new\u cbot\new;\n;, \c;\l;reference\u cbot\pointer;\n;, \c;\l;this\u cbot\this;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/close.txt b/help/D/cbot/close.txt new file mode 100644 index 00000000..bca89ae3 --- /dev/null +++ b/help/D/cbot/close.txt @@ -0,0 +1,8 @@ +\b;Instruction \c;close\n; +Close a file opened previously with \c;\l;open\u cbot\open;\n;. This is a method of the \c;\l;file\u cbot\file;\n; class; therefore you cannot write \c;close()\n; but only \c;handle.close()\n;¦: +\c; +\s; handle.close(); +\n; +\t;See also +\c;\l;file\u cbot\file;\n;, \c;\l;open\u cbot\open;\n;, \c;\l;readln\u cbot\readln;\n;, \c;\l;writeln\u cbot\writeln;\n; and \c;\l;eof\u cbot\eof;\n;. +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/cond.txt b/help/D/cbot/cond.txt new file mode 100644 index 00000000..f6f41794 --- /dev/null +++ b/help/D/cbot/cond.txt @@ -0,0 +1,29 @@ +\b;Conditions +A condition is a special \l;expression\u cbot\expr; that returns a \l;boolean\u cbot\bool; value, that can only be either \c;\l;true\u cbot\true;\n; or \c;\l;false\u cbot\false;\n;. With a condition, you can choose f. ex. if the instructions in a \c;\l;while\u cbot\while;\n; loop must be repeated again, or if the instruction in a \c;\l;if\u cbot\if;\n; bloc must be executed. +Here are some operators that you can use in conditions to compare two values : + +\c;a == b \n;\c;a\n; equals \c;b\n; +\c;a != b \n;\c;a\n; is different from \c;b\n; +\c;a < b \n;\c;a\n; smaller than \c;b\n; +\c;a <= b \n;\c;a\n; smaller than or equal to \c;b\n; +\c;a > b \n;\c;a\n; greater than \c;b\n; +\c;a >= b \n;\c;a\n; greater than or equal to \c;b\n; + +For example : + +\c;12 == 12 \n;returns true +\c;45 != 47 \n;returns true +\c;99 == 98 \n;returns false +\c;12 < -1 \n;returns false +\c;12 >= 10 \n;returns true +\c;12 >= 12 \n;returns true + +\t;Remarque +Be careful not to confuse the equality comparison \c;==\n; with the assignment of a \l;variable\u cbot\var; \c;=\n;. + +\c;a == b\n; is an expression that compares \c;a\n; with \c;b\n;. +\c;a = b\n; is an expression that copies the value of \c;b\n; into \c;a\n;. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/D/cbot/continue.txt b/help/D/cbot/continue.txt new file mode 100644 index 00000000..d516aa78 --- /dev/null +++ b/help/D/cbot/continue.txt @@ -0,0 +1,25 @@ +\b;Instruction \c;continue\n; +Syntax : +\s;\c;while ( condition ) +\s;{ +\s; continue; +\s;} +\n; +With this instruction, you can jump over the rest of instructions in the \c;\l;bloc\u cbot\bloc;\n; of a \c;\l;while\u cbot\while;\n; or \c;\l;for\u cbot\for;\n; loop: The execution will resume at the beginning of the bloc, the next time the loop is repeated. + +Here is an example: +\s;\c;int i = 0; +\s;while ( i < 5 ) +\s;{ +\s; i = i+1; +\s; if ( i == 3 ) +\s; { +\s; continue; +\s; } +\s; \n;Instructions ...\c; +\s;} +\n; +The instructions will only be executed for the values of \c;i\n; 1, 2, 4 and 5. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/deletef.txt b/help/D/cbot/deletef.txt new file mode 100644 index 00000000..dc6e93f9 --- /dev/null +++ b/help/D/cbot/deletef.txt @@ -0,0 +1,10 @@ +\b;Instruction \c;deletefile\n; +The deletefile instruction deletes an existing file in the files/ folder. + +Files can only be deleted in the files/ folder which is located in the folder where Colobot has been installed. You cannot not delete files that are located elsewhere than in the files/ folder. + +Syntax¦: +\s;\c;deletefile ( filename );\n; + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/delinfo.txt b/help/D/cbot/delinfo.txt new file mode 100644 index 00000000..6d93b26b --- /dev/null +++ b/help/D/cbot/delinfo.txt @@ -0,0 +1,15 @@ +\b;Instruction \c;deleteinfo\n; +Syntax¦: +\s;\c;deleteinfo ( name, power );\n; + +Delete an existing information in the closest \l;information exchange post\u object\exchange;. + +\t;name: \c;string\n; +Name of the information to be deleted. This name is a string: it must be written in quotation marks "¦". + +\t;power: \c;float\n; +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. + +\t;See also +\c;\l;receive\u cbot\receive;\n;, \c;\l;send\u cbot\send;\n; and \c;\l;testinfo\u cbot\testinfo;\n;. +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/direct.txt b/help/D/cbot/direct.txt new file mode 100644 index 00000000..d400e805 --- /dev/null +++ b/help/D/cbot/direct.txt @@ -0,0 +1,15 @@ +\b;Instruction \c;direction\n; +Syntax : +\s;\c;direction ( pos );\n; + +Calculates the rotation that a robot must perform in order to point towards a given position. + +\t;pos: \c;\l;point\u cbot\point;\n; +Position towards which the robot must point. + +\t;Return value: \c;\l;float\u cbot\float;\n; +Angle of the rotation that must be performed. -90 means f. ex. a rotation of 90 degrees to the right. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/D/cbot/dist.txt b/help/D/cbot/dist.txt new file mode 100644 index 00000000..a4183d44 --- /dev/null +++ b/help/D/cbot/dist.txt @@ -0,0 +1,30 @@ +\b;Instruction \c;distance\n; +With the instruction \c;distance( , )\n; you can calculate the distance between two positions. + +\b;Basic use +If you write \c;position\n; alone, this gives you the position of the bot that executes the program. If you write the name of a variable followed by \c;.position\n;, this gives you the position of the object described in the variable. + +Here is a program that moves forward, covering exactly the distance between the bot and the closest ant: +\c; +\s; item = \l;radar\u cbot\radar;(AlienAnt); +\s; \l;move\u cbot\move;(distance(position, item.position)); +\n; +This is of course pure suicide. Better to stop 40 meters before, in order to be at shooting range: +\c; +\s; item = radar(AlienAnt); +\s; move(distance(position, item.position) - 40); +\n; +\b;For specialists +Syntax: +\s;\c;distance ( pos1, pos2 );\n; + +Calculates the distance between two positions. + +\t;pos1, pos2: \c;\l;point\u cbot\point;\n; +Coordinates of the two positions. + +\t;Return value: \c;\l;float\u cbot\float;\n; +Distance between the two positions. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/dist2d.txt b/help/D/cbot/dist2d.txt new file mode 100644 index 00000000..89ea1cb2 --- /dev/null +++ b/help/D/cbot/dist2d.txt @@ -0,0 +1,14 @@ +\b;Instruction \c;distance2d\n; +Syntax: +\s;\c;distance2d ( pos1, pos2 );\n; + +Calculates the distance between two positions (ignores the z coordinate). + +\t;pos1, pos2: \c;\l;point\u cbot\point;\n; +Coordinates of the two positions. + +\t;Return value: \c;\l;float\u cbot\float;\n; +Distance between the two positions. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/do.txt b/help/D/cbot/do.txt new file mode 100644 index 00000000..391745c6 --- /dev/null +++ b/help/D/cbot/do.txt @@ -0,0 +1,28 @@ +\b;Instruction \c;do - while\n; +Syntax: +\s;\c;do +\s;{ +\s; \n;Instructions ...\c; +\s;} +\s;while ( condition ); +\n; +This instruction allows you to perform several times the instructions inside the \l;block\u cbot\bloc;. 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 \c;\l;while\u cbot\while; ( ) { }\n;; the latter tests the condition before the instructions in the block are executed. + +\t;\c;condition\n; +The instructions in the block are performed over and over again, as long as the \l;condition\u cbot\cond; is true. + +Here is an example : +\s;\c;do +\s;{ +\s; p = radar(TitaniumOre); +\s;} +\s;while ( p == null ); +\n; +\t;Attention +Always put a \l;semicolon\u cbot\term; at the end of the line \c;while ( )\n;. + +The instructions \c;\l;break\u cbot\break;\n; and \c;\l;continue\u cbot\continue;\n; can be useful inside a block following the instruction \c;do { }\n;. + +\t;See also +\l;Instructions\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/drop.txt b/help/D/cbot/drop.txt new file mode 100644 index 00000000..9b383dd1 --- /dev/null +++ b/help/D/cbot/drop.txt @@ -0,0 +1,29 @@ +\b;Instruction \c;drop\n; +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. + +\b;Basic use +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: +\c; +\s; \l;grab\u cbot\grab;(); +\s; \l;move\u cbot\move;(5); +\s; drop(); +\n; +\b;For specialists +Syntax: +\s;\c;drop ( oper );\n; + +This instruction appeals to the operating arm of a \l;grabber bot\u object\botgr;, in order to drop what it is holding. + +\t;oper: \c;\l;int\u cbot\int;\n; (default value\c;InFront\n;) +Oper indicates where the robot should drop the object. If no indication is given, the object is dropped in front of the bot. +\c;InFront \n; Drops in front (default value). +\c;Behind \n; Drops behind. +\c;EnergyCell\n; Drops on the bot's own power cell location. + +\t;Return value: \c;\l;int\u cbot\int;\n; +Normally an error stops the program. You can prevent the program from stopping on errors by using the \c;\l;errmode\u cbot\errmode;(0)\n; instruction. A value different from zero if an error occurred is then returned by \c;drop();\n;. +\c;== 0 \n;object was dropped +\c;!= 0 \n;error, no object was dropped + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/eof.txt b/help/D/cbot/eof.txt new file mode 100644 index 00000000..30c2f4c3 --- /dev/null +++ b/help/D/cbot/eof.txt @@ -0,0 +1,15 @@ +\b;Instruction \c;eof\n; +Test the end of file condition of an open file. This is a method of the \c;\l;file\u cbot\file;\n; class; therefore you cannot write \c;eof()\n; but only \c;handle.eof()\n;¦: +\c; +\s; if ( handle.eof() ) +\n; +Example¦: +\c; +\s; while ( not handle.eof() ) +\s; { +\s; s = handle.readln(); +\s; } +\n; +\t;See also +\c;\l;file\u cbot\file;\n;, \c;\l;open\u cbot\open;\n;, \c;\l;close\u cbot\close;\n;, \c;\l;readln\u cbot\readln;\n; and \c;\l;writeln\u cbot\writeln;\n;. +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/errmode.txt b/help/D/cbot/errmode.txt new file mode 100644 index 00000000..8b4286ab --- /dev/null +++ b/help/D/cbot/errmode.txt @@ -0,0 +1,33 @@ +\b;Instruction \c;errmode\n; +The \c;errmode();\n; instruction allows you to chose if the program should stop when an error occurs in one of the following instructions: \c;\l;goto\u cbot\goto;\n;, \c;\l;move\u cbot\move;\n;, \c;\l;grab\u cbot\grab;\n;, \c;\l;drop\u cbot\drop;\n;, etc. + +\b;For specialists +Syntax¦: +\s;\c;errmode ( mode );\n; + +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. + +\t;mode: \c;\l;float\u cbot\float;\n; (\c;1\n; per default) +Error treatment mode. +\c;0\n; -> continues program execution and returns a non zero value +\c;1\n; -> stops the program (default behavior) + +Exemple 1¦: +\s;\c;errmode(0); +\s;while ( goto(pos) != 0 ) +\s;{ +\s; wait(2); +\s;} +\n; +Exemple 2¦: +\s;\c;errmode(0); +\s;int err; +\s;err = goto(pos); +\s;if ( err != 0 ) +\s;{ +\s; \n;goto did not perform correctly ...\c; +\s; \n;take some appropriate action ...\c; +\s;} +\n; +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/expr.txt b/help/D/cbot/expr.txt new file mode 100644 index 00000000..1ff8bc73 --- /dev/null +++ b/help/D/cbot/expr.txt @@ -0,0 +1,88 @@ +\b;Expressions +Expressions can include the following operators: + +\c;+\n; addition +\c;-\n; subtraction +\c;*\n; multiplication +\c;/\n; division +\c;%\n; remainder of the division (only for the type \c;\l;int\u cbot\int;\n;) + +With the addition operator \c;+\n;, you can not only add numbers, you can also append \l;strings\u cbot\string;. +\c; +\s; int i = 12+3; // returns 15 +\s; string s = "a"+"bc"; // returns "abc" +\s; int i = 2-5; // returns -3 +\s; float f = 3.01*10; // returns 30.1 +\s; int i = 5/3; // returns 1 +\s; float f = 5/3; // returns 1.67 +\s; float f = 5/0; // returns an error +\s; int i = 13%5; // returns 3 +\s; int i = -8%3; // returns -2 +\n; +An expression can include constants or \l;variables\u cbot\var;. For example: + +\s;\c; 12+dist\n; + +Multiplications and divisions are performed before additions and subtractions. In order to be sure that the operations are performed in the right order, use brackets: +\c; +\s; 12*a+b/c \n;is equivalent to\c; (12*a)+(b/c) +\s; 2.5*(dist+range) +\n; +In order to improve readability, you can put as many spaces as you want: +\c; +\s; 12*a + b/c +\s; 2.5 * (dist+range) +\n; +Here is a list of mathematical functions: + +\c;sin(angle) \n;sinus +\c;cos(angle) \n;cosinus +\c;tan(angle) \n;tangent +\c;asin(value) \n;arc-sinus +\c;acos(value) \n;arc-cosinus +\c;atan(value) \n;arc-tangente +\c;sqrt(value) \n;square root +\c;pow(x, y) \n;x power y +\c;rand() \n;random value ranging between 0 and 1 + +Angles are in degrees. + +\t;Compound assignment operators (for specialists) +Besides the \c;=\n; operators for variable assignment there are several compound-assignment operators. + +The compound-assignment operators combine the \c;=\n; assignment operator with another binary operator such as \c;+\n; or \c;-\n;. 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 + +\c;\s;expression1 += expression2 + +is equivalent to + +\c;\s;expression1 = expression1 + expression2 + +\c;+=\n; addition +\c;-=\n; subtraction +\c;*=\n; multiplication +\c;/=\n; division +\c;%=\n; remainder of the division (only for the type \c;\l;int\u cbot\int;\n;) + +\t;Prefix and posfix increment- and decrement operators (for specialists) +The operators \c;++\n; and \c;--\n; allow you to increment (++) or to decrement (--) a variable in very compact and efficient manner. + +For example to increment the variable \c;a\n; you can write +\c;\s; a++ ; +\n;instead of +\c;\s; a = a + 1 ; +\n; +The value of the expression \c;a++\n; is the value of the variable \c;a\n; before the increment. If you use the prefix operator \c;++a\n; the value of the expression is the value of the variable \c;a\n; after the increment. The same holds for the \c;--\n; decrement operator. + +Exemples: +\c;\s; a = 2 ; +\s; b = a++ ; +\s; // now b contains 2 and a contains 3 + +\c;\s; a = 2 ; +\s; b = ++a ; +\s; // now b contains 3 and a contains 3 +\n; + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/extern.txt b/help/D/cbot/extern.txt new file mode 100644 index 00000000..08d2cba1 --- /dev/null +++ b/help/D/cbot/extern.txt @@ -0,0 +1,30 @@ +\b;Instruction \c;extern\n; +The \c;extern\n; instruction determines the \l;function\u cbot\function; that acts as main program of a robot. The name of the function declared with \c;extern\n; will apear in the program list in the lower left corner of the screen. +\c; +\s;extern void object::MowDown( ) +\s;{ +\s; while ( true ) +\s; { +\s; fire(1); +\s; turn(10); +\s; } +\s;} +\n; +If the program contains other functions, only the main function must be preceded by \c;extern\n;. +\c; +\s;extern void object::Square( ) +\s;{ +\s; for ( int i=0 ; i<4 ; i++ ) +\s; { +\s; Line(10); +\s; } +\s;} +\s; +\s;void object::Line(float dist) +\s;{ +\s; move(dist); +\s; turn(90); +\s;} +\n; +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/false.txt b/help/D/cbot/false.txt new file mode 100644 index 00000000..e5b1ffa9 --- /dev/null +++ b/help/D/cbot/false.txt @@ -0,0 +1,6 @@ +\b;Type \c;false\n; +This value means that a condition is not true; it is one of the two values that a \l;boolean\u cbot\bool; \l;variable\u cbot\var; can take. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/D/cbot/file.txt b/help/D/cbot/file.txt new file mode 100644 index 00000000..44bac38f --- /dev/null +++ b/help/D/cbot/file.txt @@ -0,0 +1,18 @@ +\b;Type \c;file\n; +This type is used for accessing files in the files/ folder. +\c; +\s; file handle(); +\n; +Use the syntax above for declaring a file handle. You must use () to create an instance of the \c;file\n; class. Without the () the handle would have the value \c;\l;null\u cbot\null;\n;. + +Files can only be created and opened in the files/ folder which is located in the folder where Colobot has been installed. You cannot not create or open files elsewhere than in the files/ folder. + +\b;For specialists +\c;file\n; is actually not a simple type but a class. \c;open\n;, \c;close\n;, \c;writeln\n; etc. are methods of the \c;file\n; class. This is the reason why we always write \c;handle.method()\n;¦: +\c; +\s; handle.open("test.txt", "w"); +\s; handle.close(); +\n; +\t;See also +\c;\l;open\u cbot\open;\n;, \c;\l;close\u cbot\close;\n;, \c;\l;readln\u cbot\readln;\n;, \c;\l;writeln\u cbot\writeln;\n; and \c;\l;eof\u cbot\eof;\n;. +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/fire.txt b/help/D/cbot/fire.txt new file mode 100644 index 00000000..fad947a6 --- /dev/null +++ b/help/D/cbot/fire.txt @@ -0,0 +1,31 @@ +\b;Instruction \c;fire\n; +The instruction \c;fire();\n; fires the bot's onboard cannon. + +\b;Basic use +Generally this instruction is used to shoot one-second bursts: +\c; +\s; fire(1); +\n; +\b;For specialists +Syntax: +\s;\c;fire ( time );\n; + +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: +o \l;Shooter\u object\botfr; +o \l;Orga shooter\u object\botor; +o \l;Phazer shooter\u object\botphaz; + +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 \c;\l;turn\u cbot\turn;\n;. + +In order to move the gun upward or downward, use the instruction \c;\l;aim\u cbot\aim;\n;. + +\t;time: \c;\l;float\u cbot\float;\n; +Duration of the burst. Generally, the value given is 1. Shorter bursts can also be performed in order to spare time and energy. + +\t;Return value: \c;\l;int\u cbot\int;\n; +Zero if OK, or a value different from zero if an error occurred. +\c;== 0 \n;the cannon has been fired +\c;!= 0 \n;error, the cannon could not be fired + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/flatgrnd.txt b/help/D/cbot/flatgrnd.txt new file mode 100644 index 00000000..ae821eb4 --- /dev/null +++ b/help/D/cbot/flatgrnd.txt @@ -0,0 +1,17 @@ +\b;Instruction \c;flatground\n; +Syntax¦: +\s;\c;flatground ( center, rmax );\n; + +Calculates the maximal radius of a flat zone on which a building ca be built. + +\t;center: \c;\l;point\u cbot\point;\n; +Center of the circlular zone. + +\t;rmax: \c;\l;float\u cbot\float;\n; +Maximal radius. + +\t;Return value: \c;\l;float\u cbot\float;\n; +Radius of the flat zone (always between 0 and rmax). + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/float.txt b/help/D/cbot/float.txt new file mode 100644 index 00000000..77876058 --- /dev/null +++ b/help/D/cbot/float.txt @@ -0,0 +1,25 @@ +\b;Type \c;float\n; +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: +\c; +\s; 12.9 +\s; 1.125 +\s; 0.002 +\s; -4.1 +\n; +If you need only whole numbers (f. ex. 12 or -5000), you should rather use the type \c;\l;int\u cbot\int;\n;. + +\t;Attention +Do not insert space or colon characters into a number. To separate the whole part from the fractional part, use a dot. +\c; +\s; Write and not +\s; 12.56 12 . 56 +\s; -54.34 -54,34 +\s;12895.69 12,895.69 +\n; +\t;For specialists +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. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/for.txt b/help/D/cbot/for.txt new file mode 100644 index 00000000..2465dd72 --- /dev/null +++ b/help/D/cbot/for.txt @@ -0,0 +1,40 @@ +\b;Instruction \c;for\n; +Syntax: +\s;\c;for ( before ; condition ; end ) +\s;{ +\s; \n;Instructions ...\c; +\s;} +\n; +This instruction allows you to execute a certain number of times the instructions contained in the \l;block\u cbot\bloc;. + +\t;\c;before\n; +This instruction is executed before the first loop instance. + +\t;\c;condition\n; +This \l;condition\u cbot\cond; determines if another instance of the loop must be executed. It is tested before every instance of the loop. + +\t;\c;end\n; +This instruction is executed at the end of every instance of the loop. + +Example: count from 1 to 4 +\c;\s;\c;for ( i = 0 ; i <= 4 ; i++ ) +\s;{ +\s; message(i) ; +\s;} +\n; +The following example is strictly equivalent to a \c;for\n;-loop, but it uses the instruction \c;\l;while\u cbot\while;\n;: +\s;\c;before; +\s;while ( condition ) +\s;{ +\s; \n;Instructions ...\c; +\s; end; +\s;} +\n; +\t;Attention +Do not put a \l;semicolon\u cbot\term; at the end of the line \c;for ( )\n;. + +The instructions \c;\l;break\u cbot\break;\n; and \c;\l;continue\u cbot\continue;\n; can be useful inside a block following the instruction \c;for \n;. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/D/cbot/function.txt b/help/D/cbot/function.txt new file mode 100644 index 00000000..9b403896 --- /dev/null +++ b/help/D/cbot/function.txt @@ -0,0 +1,85 @@ +\b;Functions +With functions you can divide your program into several parts, each of them will execute a specific task. +Let's imagine following program¦: +\c; +\s;extern void object::Remote( ) +\s;{ +\s; send("order", 1, 100); +\s; wait(5); +\s; send("order", 3, 100); +\s; wait(5); +\s; send("order", 2, 100); +\s; wait(5); +\s; send("order", 4, 100); +\s; wait(5); +\s;} +\n; +\c;send\n; and \c;wait\n; are repeated several times. So it would be a good thing if we created a function that executes these two instructions: +\c; +\s;void object::SendToPost( float op ) +\s;{ +\s; send("order", op, 100); +\s; wait(5); +\s;} +\s;extern void object::Remote( ) +\s;{ +\s; SendToPost(1); +\s; SendToPost(3); +\s; SendToPost(2); +\s; SendToPost(4); +\s;} +\n; +A function can have paramteters¦: +\c; +\s;void Example( int a, float x, string s ) +\n; +The \c;Exemple\n; function will reveive un integer \c;a\n;, a floating point number \c;x\n; and a string \c;s\n;. 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 \c;int\n; to a function, its parameter is a copy of whatever value was being passed as argument, and the function can change its parameter value without affecting values in the code that invoked the function. + +If you pass a \l;class\u cbot\class; instance or an \l;array\u cbot\array; as parameter to a function, the function only receives a \l;reference\u cbot\pointer; 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 actuallay modified. + +A function can also return a result with the \c;\l;return\u cbot\return;\n; instruction. Therefore the function must be declared no longer as void but as a type: +\c; +\s;float Mean( float a, float b ) +\s;{ +\s; return (a+b)/2; +\s;} +\s; +\s;extern void object::Test( ) +\s;{ +\s; float value; +\s; value = Mean(2, 6); +\s; message( value ); // will display 4 +\s;} +\n; +Some other examples¦: +\c; +\s;float Pi( ) +\s;{ +\s; return 3.1415; +\s;} +\s; +\s;string Sign( float a ) +\s;{ +\s; if ( a > 0 ) return "positive"; +\s; if ( a < 0 ) return "négative"; +\s; return "null"; +\s;} +\n; +You can declare several functions with the same name but different parameters¦: +\c; +\s;float Pythagoras( float a, float b ) +\s;{ +\s; return sqrt((a*a)+(b*b)); +\s;} +\s; +\s;float Pythagoras( float a, float b, float c ) +\s;{ +\s; return sqrt((a*a)+(b*b)+(c*c)); +\s;} +\n; +CBOT will call either the one or the other function depending on the paramteres passed. + +You can also declare a function \l;public\u cbot\public; so it can be used by other bots. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/goto.txt b/help/D/cbot/goto.txt new file mode 100644 index 00000000..7657012c --- /dev/null +++ b/help/D/cbot/goto.txt @@ -0,0 +1,35 @@ +\b;Instruction \c;goto\n; +The instruction \c;goto();\n; instructs the bot to reach a given position. + +\b;Basic use +The most current use consists in moving the bot to an object located with the instruction \c;\l;radar\u cbot\radar;();\n;. If the information returned by the \c;\l;radar\u cbot\radar;();\n; has been stored in a certain variable, write the name of the variable followed by \c;.position\n; in order to get the position of the object. Here is an example of a program that looks for a \l;titanium cube\u object\titan;, goes to the position and grabs it: +\c; +\s; item = \l;radar\u cbot\radar;(Titanium); +\s; goto(item.position); +\s; \l;grab\u cbot\grab;(); +\n; +\b;For specialists +Syntax: +\s;\c;goto ( position, altitude, goal, crash );\n; + +Tells the robot to go to the given position, avoiding all the obstacles if this is possible. + +\t;pos: \c;\l;point\u cbot\point;\n; +Coordinates of the goal position. + +\t;altitude: \c;\l;float\u cbot\float;\n; +Flight altitude for \l;winged bots\u object\botgj;. The altitude is useful only for \l;winged bots\u object\botgj;. 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. + +\t;goal: \c;\l;int\u cbot\int;\n; (default value \c;0\n;) +This parameter tells the bot how it must reach the goal: +\c;0\n; stops exactly at the goal position +\c;1\n; goes close to the goal position, without stopping. +If no value is given, \c;1\n; (precision) is the default value. + +\t;Return value: \c;\l;int\u cbot\int;\n; +Normally an error stops the program. You can prevent the program from stopping on errors by using the \c;\l;errmode\u cbot\errmode;(0)\n; instruction. A value different from zero if an error occurred is then returned by \c;goto()\n;. +\c;== 0 \n;Goal position reached +\c;!= 0 \n;Goal position impossible to reach + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/grab.txt b/help/D/cbot/grab.txt new file mode 100644 index 00000000..5cc81374 --- /dev/null +++ b/help/D/cbot/grab.txt @@ -0,0 +1,29 @@ +\b;Instruction \c;grab\n; +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. + +\b;Basic use +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: +\c; +\s; grab(); +\s; \l;move\u cbot\move;(5); +\s; \l;drop\u cbot\drop;(); +\n; +\b;For specialists +Syntax: +\s;\c;grab ( oper );\n; + +This instruction appeals to the operating arm of a \l;grabber bot\u object\botgr;, in order to grab the closest object. + +\t;oper: \c;\l;int\u cbot\int;\n; (default value\c;InFront\n;) +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. +\c;InFront \n; Grabs in front (default value). +\c;Behind \n; Grabs behind. +\c;EnergyCell\n; Grabs the bot's own power cell. + +\t;Return value: \c;\l;int\u cbot\int;\n; +Normally an error stops the program. You can prevent the program from stopping on errors by using the \c;\l;errmode\u cbot\errmode;(0)\n; instruction. A value different from zero if an error occurred is then returned by \c;grab();\n;. +\c;== 0 \n;an object was grabbed +\c;!= 0 \n;error, no object was grabbed + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/if.txt b/help/D/cbot/if.txt new file mode 100644 index 00000000..ad2ed990 --- /dev/null +++ b/help/D/cbot/if.txt @@ -0,0 +1,40 @@ +\b;Instructions \c;if\n; and \c;else\n; +With the instruction \c;if() {}\n; you can execute a set of instructions only if a certain condition is true. Write the condition in brackets \c;()\n;, and the instructions in braces \c;{}\n;. + +\b;Basic use +Here is a concrete example: The bot will shoot only if the target is closer than 40 meters: +\c; +\s; item = \l;radar\u cbot\radar;(AlienAnt); +\s; if (\l;distance\u cbot\dist;(position, item.position) < 40) +\s; { +\s; fire(1); +\s; } +\n; +You can also test if an object exists at all. If the instruction \c;\l;radar\u cbot\radar;();\n; does not find the requested object, it returns the value \c;null\n;. So you can test if an object does not exists with the condition \c;(item == null)\n;, or test if it exists with \c;(item != null)\n;. Two equal signs \c;==\n; test equality, an exclamation mark followed by an equal sign \c;!=\n; test inequality. Here is a test that will go to rechage the \l;power cell\u object\power; only if there is a \l;power station\u object\station;: +\c; +\s; item = \l;radar\u cbot\radar;(PowerStation); +\s; if (item != null) +\s; { +\s; \l;goto\u cbot\goto;(item.position); +\s; \l;wait\u cbot\wait;(5); +\s; } +\n; +\b;For specialists +Syntax: +\s;\c;if ( condition ) +\s;{ +\s; \n;Instructions A ...\c; +\s;} +\s;else +\s;{ +\s; \n;Instructions B ...\c; +\s;} +\n; +With this conditional structure you can execute a \l;bloc\u cbot\bloc; A or a \l;bloc\u cbot\bloc; B depending on a \l;condition\u cbot\cond;. If the condition is true, bloc A is executed. If the condition is false, bloc B is executed. +Part \c;else { }\n; is not compulsory. + +\t;Attention +Do not put a \l;semicolon\u cbot\term; at the end of the line \c;if ( )\n;. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/int.txt b/help/D/cbot/int.txt new file mode 100644 index 00000000..deb86d9e --- /dev/null +++ b/help/D/cbot/int.txt @@ -0,0 +1,20 @@ +\b;Type \c;int\n; +Use this type for variables that contain only whole numbers, negative or positive. For example: +\c; +\s; 12 +\s; 1000 +\s; -4 +\n; +To represent real numbers like 12.05 or -0.005, use the type \c;\l;float\u cbot\float;\n;. + +\t;Attention +Do not put space or colon signs inside a number. + +\t;For specialists +Numbers of the type \c;int\n; 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. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/D/cbot/jet.txt b/help/D/cbot/jet.txt new file mode 100644 index 00000000..71e8da2d --- /dev/null +++ b/help/D/cbot/jet.txt @@ -0,0 +1,16 @@ +\b;Instruction \c;jet\n; +Syntax: +\s;\c;jet ( power );\n; + +Direct control of the jet of a \l;winged bot\u object\botgj;. The jet is what makes the bot fly. Use this instruction in order to take off, climb, descend or land. + +\t;power: \c;\l;float\u cbot\float;\n; +Power of the jet, ranges between \c;-1\n; and \c;+1\n;. \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;. + + +\t;Return value: \c;\l;void\u cbot\void;\n; +None. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/D/cbot/message.txt b/help/D/cbot/message.txt new file mode 100644 index 00000000..01d0f706 --- /dev/null +++ b/help/D/cbot/message.txt @@ -0,0 +1,25 @@ +\b;Instruction \c;message\n; +Syntax: +\s;\c;message ( text, type );\n; + +Prints a message on top of the screen. After a few seconds, the message disappears automatically. + +\t;text: \c;\l;string\u cbot\string;\n; +Text that is to be displayed. It is possible to append several texts and/or values with the operator \c;+\n;: +\c;message("Not found");\n; +\c;message(angle);\n; +\c;message(n + " object(s) found");\n; +\c;message("Distance = " + dist + " meters");\n; + +\t;type: \c;\l;int\u cbot\int;\n; (default value \c;DisplayMessage\n;) +Type of the message, that determines the background color. +o \c;DisplayMessage\n; Standard message on yellow background. +o \c;DisplayInfo \n; Information on green background. +o \c;DisplayWarning\n; Warning on blue background. +o \c;DisplayError \n; Error on red background. + +\t;Return value: \c;\l;void\u cbot\void;\n; +None. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/motor.txt b/help/D/cbot/motor.txt new file mode 100644 index 00000000..712a1ff3 --- /dev/null +++ b/help/D/cbot/motor.txt @@ -0,0 +1,39 @@ +\b;Instruction \c;motor\n; +The instruction \c;motor( , );\n; sets the speed for the left-hand and the right-hand motor of the bot. + +\b;Basic use +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;\l;fire\u cbot\fire;();\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: +\c; +\s; \l;turn\u cbot\turn;(45); // turns 45 degrees left +\s; motor(0.5, -0.5); // slow rotation to the right +\s; \l;fire\u cbot\fire;(2); // fire +\s; motor(0,0); // stops the rotation +\n; +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. + +\b;For specialists +Syntax : +\s;\c;motor ( left, right );\n; + +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 \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n; or \c;\l;goto\u cbot\goto;\n; instruction is performed. + +\t;left: \c;\l;float\u cbot\float;\n; +Speed instruction for the left motor; the value must range between -1 and 1. + +\t;right: \c;\l;float\u cbot\float;\n; +Speed instruction for the right motor; the value must range between -1 and 1. + +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. + +Note : +\c;motor(2, 2);\n; will not move forward any faster than \c;motor(1, 1)\n; +\c;motor(-2, -2);\n; will not move backward any faster than \c;motor(-1, -1)\n; + +\t;Return value: \c;\l;void\u cbot\void;\n; +None. + +\t;See also +\l;Instructions\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/move.txt b/help/D/cbot/move.txt new file mode 100644 index 00000000..74177b22 --- /dev/null +++ b/help/D/cbot/move.txt @@ -0,0 +1,22 @@ +\b;Instruction \c;move\n; +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. + +\b;Basic use +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 \l;titanium ore\u object\titanore; on the \l;converter\u object\convert;, write \c;move(-2.5);\n;. + +\b;For specialists +Syntax: +\s;\c;move ( length );\n; + +Moves forward or backward of a given distance, always keeping the current orientation of the bot. + +\t;length: \c;\l;float\u cbot\float;\n; +Length of the move, in meters. A negative value makes the bot move backward. + +\t;Return value: \c;\l;int\u cbot\int;\n; +Normally an error stops the program. You can prevent the program from stopping on errors by using the \c;\l;errmode\u cbot\errmode;(0)\n; instruction. A value different from zero if an error occurred is then returned by \c;move()\n;. +\c;== 0 \n;Move executed +\c;!= 0 \n;error, the instruction was not performed correctly + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/nan.txt b/help/D/cbot/nan.txt new file mode 100644 index 00000000..f4732189 --- /dev/null +++ b/help/D/cbot/nan.txt @@ -0,0 +1,16 @@ +\b;Type \c;nan\n; +This special value indicates that a \l;variable\u cbot\var; of type \c;\l;int\u cbot\int;\n; or \c;\l;float\u cbot\float;\n; contains no number, but "nothing". +For example, if the instruction \c;\l;receive\u cbot\receive;\n; can not get the requested information, it returns \c;nan\n; : +\c; +\s; value = receive("Length"); +\s; if ( value == nan ) // not found ? +\s; { +\s; +\s; } +\n; +\t;Dictionnary +\c;nan\n; = Not A Number + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/D/cbot/new.txt b/help/D/cbot/new.txt new file mode 100644 index 00000000..97261784 --- /dev/null +++ b/help/D/cbot/new.txt @@ -0,0 +1,21 @@ +\b;Instruction \c;new\n; (for specialists) +The \c;new\n; operator creates a \l;class\u cbot\class; instance: +\c;\s; MyClass item; // now item is a null reference +\s; item = new MyClass(); // now item is a reference +\s; // to a new class instance +\n; +If you want to create a new instance at declaration time you can ommit the new \c;new\n; operator by putting () after the declaration: + +Instead of: +\c;\s; MyClass item = new MyClass(); +\n;you can write: +\c;\s; MyClass item(); +\n; +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); +\n; +\t;See also +\c;\l;class\u cbot\class;\n;, \c;\l;reference\u cbot\pointer;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/null.txt b/help/D/cbot/null.txt new file mode 100644 index 00000000..6e5219da --- /dev/null +++ b/help/D/cbot/null.txt @@ -0,0 +1,7 @@ +\b;Type \c;null\n; +This special value indicates that the variable containing it does not reference an instance. + +\t;See also +\l;References\u cbot\pointer; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/D/cbot/object.txt b/help/D/cbot/object.txt new file mode 100644 index 00000000..242de885 --- /dev/null +++ b/help/D/cbot/object.txt @@ -0,0 +1,70 @@ +\b;Type \c;object\n; +Use this type for variables that contain the characteristics of an object, be it a bot, a building, some raw material, an enemy, etc. + +\c;\l;int\u cbot\int; object.category \n;\l;Category\u cbot\category; of the object +\c;\l;point\u cbot\point; object.position \n;Position of the object (x,y,z) +\c;\l;float\u cbot\float; object.orientation \n;Orientation of the object (0..360) +\c;\l;float\u cbot\float; object.pitch \n;Forward/backward angle of the object +\c;\l;float\u cbot\float; object.roll \n;Right/left angle of the object +\c;\l;float\u cbot\float; object.energyLevel \n;Energy level (0..1) +\c;\l;float\u cbot\float; object.shieldLevel \n;Shield level (0..1) +\c;\l;float\u cbot\float; object.temperature \n;Jet temperature (0..1) +\c;\l;float\u cbot\float; object.altitude \n;Altitude above ground +\c;\l;float\u cbot\float; object.lifeTime \n;Lifetime of the object +\c;object object.energyCell \n;Power cell on the bot +\c;object object.load \n;Object carried by the bot + +\s;\c;category\n; +The \n;\l;category\u cbot\category; of an object allows you to know what it is, f. ex. what kind of bot, building, enemy, etc. + +\s;\c;position\n; +Position of the object on the planet, in meters. The coordinates \c;x\n; and \c;y\n; correspond to the location on a map, the \c;z\n; coordinate corresponds to the altitude above (respectively below) sea level. + +\s;\c;orientation\n; +Orientation of the object, in degrees. The orientation tells you what direction the object is facing. An orientation of \c;0\n; corresponds to an object facing eastwards, thus following the positive \c;x\n; axis. The orientation is measured counterclockwise. + +\s;\c;pitch\n; +Forward/backward angle of the robot. A pitch of \c;0\n; 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. + +\s;\c;roll\n; +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. + +\s;\c;energyLevel\n; +Energy level, between 0 and 1. A normal \l;power cell\u object\power; that is fully charged returns the value \c;1\n;. A \l;nuclear power cell\u object\atomic; 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 \c;energyCell.energyLevel\n;. + +\s;\c;shieldLevel\n; +Shield level of a robot or building. A level \c;1\n; 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 \c;0\n;, the next bullet or collision will destroy the bot or building. +Bots can re-energize their shield on a \l;repair center\u object\repair;. The shield of a building is repaired if it lays inside the protection sphere of a \l;shielder\u object\botshld;. + +\s;\c;temperature\n; +Temperature of the jet of \l;winged bots\u object\botgj;. \c;0\n; corresponds to a cold jet. When used, the temperature increases progressively. When it reaches the value \c;1\n;, the jet is overheated and stops working, until it cooled down a little. + +\s;\c;altitude\n; +The \c;z\n; coordinate of the position indicates the altitude above sea level, whereas the \c;altitude\n; indicates the height above ground. This value is meaningful only for \l;winged bots\u object\botgj; and for \l;wasps\u object\wasp;. For all other objects, this value is zero. + +\s;\c;lifeTime\n; +The age of the object in seconds since it's creation. + +\s;\c;energyCell\n; +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 \c;category\n; (PowerCell or NuclearCell), \c;position\n; (the position of the cell), etc. +If you want to know the energy level of a robot, you must not check \c;energyLevel\n;, but \c;energyCell.energyLevel\n;. +If the bot has bot no power cell, \c;energyCell\n; returns \c;null\n;. + +\s;\c;load\n; +This information also returns the description of a whole object: the description of the object carried by a \l;grabber\u object\botgr;. If it carries nothing, \c;load\n; returns \c;null\n;. + +\b;Examples +The type \c;object\n; returns the special value \c;\l;null\u cbot\null;\n; when the object does not exist. For example: +\c; +\s; object a; +\s; a = radar(BotGrabberRoller); +\s; if ( a == null ) // object does not exist ? +\s; { +\s; } +\s; if ( a.position.z > 50 ) // is it on a mountain ? +\s; { +\s; } +\n; +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/D/cbot/open.txt b/help/D/cbot/open.txt new file mode 100644 index 00000000..8af2abd4 --- /dev/null +++ b/help/D/cbot/open.txt @@ -0,0 +1,20 @@ +\b;Instruction \c;open\n; +Open a text file in the files/ folder. This is a method of the \c;\l;file\u cbot\file;\n; class. This is the reason why we always write \c;handle.open()\n;¦: +\c; +\s; handle.open("test.txt", "w"); +\n; +To open a file, proceed as follows¦: +\c; +\s; file handle(); +\s; handle.open("filename", "w"); +\s; handle.writeln("abc"); +\s; handle.close(); +\n; +\c;"r"\n; mode: open for reading. +\c;"w"\n; mode: open for writing. + +Files can only be created and opened in the files/ folder which is located in the folder where Colobot has been installed. You cannot not create or open files that are located elsewhere than in the files/ folder. + +\t;See also +\c;\l;file\u cbot\file;\n;, \c;\l;close\u cbot\close;\n;, \c;\l;readln\u cbot\readln;\n;, \c;\l;writeln\u cbot\writeln;\n; and \c;\l;eof\u cbot\eof;\n;. +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/openfile.txt b/help/D/cbot/openfile.txt new file mode 100644 index 00000000..6e8d59e1 --- /dev/null +++ b/help/D/cbot/openfile.txt @@ -0,0 +1,11 @@ +\b;Instruction \c;openfile\n; +\c;openfile();\n; opens an text file in the files/ folder. This is not a method of the \c;\l;file\u cbot\file;\n; class but openfile returne a \l;reference\u cbot\pointer; to a new instance of the file class. You must supply two parameters, the filename and the opening mode. +\c; +\s;file handle = openfile("filename", "r"); +\n; +\c;"r"\n; mode: open for reading. +\c;"w"\n; mode: open for writing. + + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/point.txt b/help/D/cbot/point.txt new file mode 100644 index 00000000..916be40f --- /dev/null +++ b/help/D/cbot/point.txt @@ -0,0 +1,36 @@ +\b;Type \c;point\n; +Variables of this type contain the coordinates of a point in space. This type is made of three values that represent the \c;x\n;, \c;y\n; and \c;z\n; coordinates. +\c;x\n; and \c;y\n; correspond to the place on the ground. The positive \c;x\n; axis faces towards east, the positive \c;y\n; axis faces towards north. +The \c;z\n; value corresponds to the altitude above sea level. + +If you want to declare a variable of type point, you can write: +\c; +\s; point a (10, 20, 30); +\n; +You can also set the variable taking one value after another: +\c; +\s; point b; +\s; b.x = 10; +\s; b.y = 20; +\s; b.z = 30; +\n; +With these examples, the following \l;condition\u cbot\cond; is true: +\c; +\s; if ( a == b ) +\s; { +\s; } +\n; +The following declaration : +\c; +\s; point c (4, 7); +\n; +Is equivalent to : +\c; +\s; point c; +\s; c.x = 4; +\s; c.y = 7; +\s; c.z = 0; +\n; + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/pointer.txt b/help/D/cbot/pointer.txt new file mode 100644 index 00000000..3d7b348c --- /dev/null +++ b/help/D/cbot/pointer.txt @@ -0,0 +1,53 @@ +\b;References (for specialists) +CBOT uses references for \l;classes\u cbot\class; and \l;arrays\u cbot\array;. 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 \c;\l;null\u cbot\null;\n; 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 \c;\l;null\u cbot\null;\n; reference. + +Example: +\c;\s;{ +\s; MyClass item1(); // create a new instance +\s; // referenced by item1 +\s; MyClass item2; // create a null reference +\s; item2 = item1; // copy the reference, +\s; // item2 and item1 now reference +\s; // the same instance +\s; item1.a = 12; // modifies the instance +\s; // referenced by item1 (and item2) +\s; message(item2.a);// displays 12 +\s;} +\n; +If you pass a \l;class\u cbot\class; 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. + +\c;\s;void Test( MyClass item ) +\s;{ +\s; item.a = 12; // modify the original instance +\s; item = new MyClass(); // new local instance +\s; item.a = 33; // modifie the local instance +\s;} +\n; +Calling the fucntion \c;Test()\n;¦: +\c;\s;{ +\s; MyClass toto(); +\s; Test(toto); +\s; message(toto.a); // displays 12 +\s;} +\n; +The instance containing the field \c;a = 33\n; is referenced only by the newly created instance \c;item\n; inside the fucntion \c;Test\n;. At the end of \c;Test\n; this newly created instance referenced by \c;item\n; is automatically deleted. + +A function can return an instance¦: +\c;\s;MyClass Test2( ) +\s;{ +\s; MyClass item = new MyClass(); +\s; item.x = 33; +\s; return item; +\s;} +\n; +Call the function like this: +\c;\s;{ +\s; MyClass toto; +\s; toto = Test2(); // toto will contain a reference to +\s; // the instance created by Test2() +\s; message(toto.a); // displays 33 +\s;} +\n; +\t;See also +\c;\l;class\u cbot\class;\n;, \c;\l;new\u cbot\new;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/private.txt b/help/D/cbot/private.txt new file mode 100644 index 00000000..5a2921a2 --- /dev/null +++ b/help/D/cbot/private.txt @@ -0,0 +1,19 @@ +\b;Instruction \c;private\n; (for specialists) +\l;Class\u cbot\class; members can be \l;public\u cbot\public; (by default) or private. A member can be declared privat by putting \c;private\n; before the type declaration of the member. Private members are not accessible from outside the class definition. +\c; +\s;public class MyClass +\s;{ +\s; int b; // public by défault +\s; public int a; // als public +\s; private point position; // privat +\s;} +\s;void Test() +\s;{ +\s; MyClass item; +\s; item.a = item.b = 12; // ok +\s; message( item.position ); // this is an error +\s;} +\n; +\t;See also +\c;\l;class\u cbot\class;\n;, \c;\l;public\u cbot\public;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/public.txt b/help/D/cbot/public.txt new file mode 100644 index 00000000..d7e8d920 --- /dev/null +++ b/help/D/cbot/public.txt @@ -0,0 +1,51 @@ +\b;Instruction \c;public\n; (for specialists) +This instruction has two distinct purposes¦: + +1) Make a function available to other bots. +2) Make a class member accessible from outside the class definition. + +\b;Instruction \c;public\n; for functions +If you put \c;public\n; before a \l;function\u cbot\function; definition, you can make the function available to programs in other bots in the same mission. + +For example in the first bot we would have¦: +\c; +\s;public void object::Segment(float dist, float angle) +\s;{ +\s; move(dist); +\s; turn(angle); +\s;} +\n; +And in another bot we would have¦: +\c; +\s;extern void object::Square( ) +\s;{ +\s; for ( int i=0 ; i<4 ; i++ ) +\s; { +\s; Segment(10, 90); +\s; fire(1); +\s; } +\s;} +\n; +If you have declared a function \c;public\n;, you cannot define a function with the same name and arguments in another bot of the same mission. + +If a bot containing a \c;public\n; function is destroyed, the other bots that make use of this function will be stopped with an error. + +\b;Instruction \c;public\n; for classes +\l;Class\u cbot\class; members can be public (by default) or \l;privat\u cbot\private;. A member can be declared private by putting \c;private\n; before the member type. Private members are not accessible from outside the class definition. +\c; +\s;public class MyClass +\s;{ +\s; int b; // public by default +\s; public int a; // also public +\s; private point position; // privat +\s;} +\s;void Test() +\s;{ +\s; MyClass item; +\s; item.a = item.b = 12; // ok +\s; message( item.position ); // this is an error +\s;} +\n; +\t;See also +\c;\l;class\u cbot\class;\n;, \c;\l;private\u cbot\private;\n;, \c;\l;functions\u cbot\function;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/radar.txt b/help/D/cbot/radar.txt new file mode 100644 index 00000000..d16fa639 --- /dev/null +++ b/help/D/cbot/radar.txt @@ -0,0 +1,60 @@ +\b;Instruction \c;radar\n; +With the instruction \c;radar()\n;, you can look for objects like \l;enemies\u object\mother;, bots, buildings or raw materials. + +\b;Basic use +Write in brackets the \l;name of the object\u cbot\category; that you look for. Put the result in a variable of the \l;type\u cbot\type; \c;object\n;. Here is an example that looks for the closest ant: +\c; +\s;// At the beginning of the program: +\s;object item; // variable declaration +\s; +\s;// Look for the closest ant +\s;item = radar(AlienAnt); +\n; +\b;For specialists +Syntax: +\s;\c;radar ( category, angle, focus, min, max, way );\n; + +Detects an object according to several parameters. + +\image radar1 8 8; +Seen from above, the purple zone corresponds to the zone where objects will be detected. + +\t;category: \c;\l;int\u cbot\int;\n; +\l;Category\u cbot\category; of the objects that should be detected. For example, when you are looking for an ant, write \c;radar (AlienAnt)\n;. + +\t;angle: \c;\l;float\u cbot\float;\n; (default value\c;0\n;) +Direction that the radar is facing, in degrees. +\c; 0\n; -> radar is facing straight ahead +\c;-90\n; -> radar is facing a quarter turn right +\c; 90\n; -> radar is facing a quarter turn left + +\t;focus: \c;\l;float\u cbot\float;\n; (default value\c;360\n;) +Opening angle of the radar, in degrees. + +\t;min: \c;\l;float\u cbot\float;\n; (default value \c;0\n;) +Minimum detection distance, in meters. Objects that are closer than the minimum distance will not be detected. + +\t;max: \c;\l;float\u cbot\float;\n; (Default value\c;1000\n;) +Maximum detection distance, in meters. Objects that are farther away than the maximum distance will not be detected. + +\t;way: \c;\l;float\u cbot\float;\n; (default value\c;1\n;) +Determines which way the objects are detected. With value \c;1\n;, returns the closest object found in the specified zone. With value \c;-1\n;, the farthest object in the zone will be returned. + +\t;Return value: \c;\l;object\u cbot\object;\n; +Returns the first object found that corresponds to the specified category in the specified zone. If no object was found, returns the value \c;\l;null\u cbot\null;\n;. + +\t;Remark +You do not have to give all the parameters. Here are two examples of instructions that are equivalent: +\c; +\s; radar(Titanium, 0, 360, 0, 1000); +\s; radar(Titanium); // equivalent + +\s; radar(Titanium, 0, 90, 0, 1000); +\s; radar(Titanium, 0, 90); // equivalent +\n; +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. \c;radar (AlienAnt)\n; detects the closest ant, wherever it may be. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/D/cbot/readln.txt b/help/D/cbot/readln.txt new file mode 100644 index 00000000..4889c0c5 --- /dev/null +++ b/help/D/cbot/readln.txt @@ -0,0 +1,20 @@ +\b;Instruction \c;readln\n; +Read one line from an open file in the files/ folder. This is a method of the \c;\l;file\u cbot\file;\n; class. This is the reason why we always write \c;handle.readln()\n;¦: +\c; +\s; s = handle.readln(); +\n; +The file must have been opened for reading (\c;"r"\n;) with the \c;\l;open\u cbot\open;\n; instruction. \c;readln\n; returns the string containing the whole line but without the end of line characters 0x0D (CR) and 0x0A (LF). + +Syntax¦: +\s;\c;string = handle.readln ( );\n; + +Example¦: +\c; +\s; string s; +\s; s = handle.readln(); +\s; if ( s == "abc" ) +\s; ... +\n; +\t;See also +\c;\l;file\u cbot\file;\n;, \c;\l;open\u cbot\open;\n;, \c;\l;close\u cbot\close;\n;, \c;\l;writeln\u cbot\writeln;\n; and \c;\l;eof\u cbot\eof;\n;. +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/receive.txt b/help/D/cbot/receive.txt new file mode 100644 index 00000000..68b140f5 --- /dev/null +++ b/help/D/cbot/receive.txt @@ -0,0 +1,18 @@ +\b;Instruction \c;receive\n; +Syntax: +\s;\c;receive ( name, power );\n; + +Retrieves an information from the closest \l;information exchange post\u object\exchange;. + +\t;name: \c;string\n; +Name of the information required from the exchange post. This name is a string: it must be written in quotation marks "¦". + +\t;power: \c;float\n; +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. + +\t;Return value: \c;\l;float\u cbot\float;\n; +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 \c;nan\n; is returned. + +\t;See also +\c;\l;send\u cbot\send;\n;, \c;\l;testinfo\u cbot\testinfo;\n; and \c;\l;deleteinfo\u cbot\delinfo;\n;. +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/recycle.txt b/help/D/cbot/recycle.txt new file mode 100644 index 00000000..10d9979d --- /dev/null +++ b/help/D/cbot/recycle.txt @@ -0,0 +1,14 @@ +\b;Instruction \c;recycle\n; +Syntax: +\s;\c;recycle ( );\n; + +Recycles the derelict bot in front of the \l;recycler\u object\botrecy; into a \l;titanium cube\u object\titan;. + +\t;Return value: \c;\l;int\u cbot\int;\n; +Zero if OK, or a value different from zero if an error occurred. +\c;== 0 \n;the derelict bot has been recycled +\c;!= 0 \n;error, no derelict bot could be recycled + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/D/cbot/retobj.txt b/help/D/cbot/retobj.txt new file mode 100644 index 00000000..3cfd3ca7 --- /dev/null +++ b/help/D/cbot/retobj.txt @@ -0,0 +1,15 @@ +\b;Instruction \c;retobject\n; +Syntax: +\s;\c;retobject ( number );\n; + +Returns the object corresponding to the given number. + +\t;number: \c;\l;int\u cbot\int;\n; +Number of the object, between 0 and n. "n" represents the total number of objects in the scene. + +\t;Return value: \c;\l;object\u cbot\object;\n; +Object corresponding to the number. The return value \c;\l;null\u cbot\null;\n; means that no object corresponds to this number, because the number was too high, and there are not so many objects in the scene. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/D/cbot/return.txt b/help/D/cbot/return.txt new file mode 100644 index 00000000..5c74e3e1 --- /dev/null +++ b/help/D/cbot/return.txt @@ -0,0 +1,31 @@ +\b;Instruction \c;return\n; +Returns from a function. Syntax: +\c; +\s;void function ( ) +\s;{ +\s; return; +\s;} +\n; +\b;For specialists +If the \l;function\u cbot\function; has a return type, the \c;return\n; instruction must be followed by the value to be returned: +\c; +\s;float Pi ( ) +\s;{ +\s; return 3.1415; +\s;} + +\s;float Mean (float a, float b) +\s;{ +\s; return (a+b)/2; +\s;} + +\s;string Sign (float a) +\s;{ +\s; if ( a > 0 ) return "positive"; +\s; if ( a < 0 ) return "négative"; +\s; return "null"; +\s;} +\n; +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/D/cbot/search.txt b/help/D/cbot/search.txt new file mode 100644 index 00000000..e63e6c4b --- /dev/null +++ b/help/D/cbot/search.txt @@ -0,0 +1,18 @@ +\b;Instruction \c;search\n; +Syntax: +\s;\c;search ( category, position );\n; + +Detects the object of the given category that is closest to the given position. + +\t;category: \c;\l;int\u cbot\int;\n; +\l;Category\u cbot\category; of the requested object. + +\t;position: \c;\l;point\u cbot\point;\n; +\c;search\n; returns the object of the given category that is closest to the position indicated here. + +\t;Return value: \c;\l;object\u cbot\object;\n; +Characteristics of the object that has been found. The value \c;\l;null\u cbot\null;\n; means that no object of this category has been found. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/D/cbot/send.txt b/help/D/cbot/send.txt new file mode 100644 index 00000000..10aa0606 --- /dev/null +++ b/help/D/cbot/send.txt @@ -0,0 +1,19 @@ +\b;Instruction \c;send\n; +Syntax¦: +\s;\c;send ( name, value, power );\n; + +Sends an information to the closest \l;information exchange post\u object\exchange;. + +\t;name: \c;string\n; +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. + +\t;value: \c;float\n; +Value of the information to be sent. + +\t;power: \c;float\n; +Power of the transmitter, which corresponds to the maximal distance to where information can be the sent. Default value is 10 metres. + +\t;See also +\c;\l;receive\u cbot\receive;\n;, \c;\l;testinfo\u cbot\testinfo;\n; and \c;\l;deleteinfo\u cbot\delinfo;\n;. +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/shield.txt b/help/D/cbot/shield.txt new file mode 100644 index 00000000..d9aff476 --- /dev/null +++ b/help/D/cbot/shield.txt @@ -0,0 +1,19 @@ +\b;Instruction \c;shield\n; +Syntax: +\s;\c;shield ( oper );\n; + +Activates or deactivates the shield of the \l;ahielder\u object\botshld;. 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. + +\t;oper: \c;\l;float\u cbot\float;\n; +\c;1\n; activates the shield. +\c;0\n; deactivates the shield +A normal \l;power cell\u object\power; fully charged can maintain the shield active during 20 seconds. When the cell is empty, the shield deactivates. + +\t;radius: \c;\l;float\u cbot\float;\n; +Radius of the shield, ranging between 10 and 25 meters. + +\t;Return value: \c;\l;void\u cbot\void;\n; +None. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/sizeof.txt b/help/D/cbot/sizeof.txt new file mode 100644 index 00000000..c0722c15 --- /dev/null +++ b/help/D/cbot/sizeof.txt @@ -0,0 +1,22 @@ +\b;Instruction \c;sizeof\n; +The sizeof function lets you know the number of elements contained in an \l;array\u cbot\array;. +That is the index of the last element plus one ("empty" elements are counted). +\c; +\s;{ +\s; int a[12]; +\s; a[5] = 345; +\s; message( sizeof(a) ); // will display 6 +\s;} +\n; +In this example we have 6 elements in the array after \c;a[5]=345\n;. The non initialized elements \c;[0]\n;, \c;[1]\n;, \c;[2]\n;, \c;[3]\n; and \c;[4]\n; will be counted. + +With multidimensionnal arrays you can get the size of a sub array: +\c; +\s;float xy[][]; // 2 dimensionnal array +\s;xy[5][10] = 67; +\s;message( sizeof(xy) ); // will display 6 +\s;message( sizeof(xy[5]) ); // will display 11 +\s; +\n; +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/sniff.txt b/help/D/cbot/sniff.txt new file mode 100644 index 00000000..27872224 --- /dev/null +++ b/help/D/cbot/sniff.txt @@ -0,0 +1,17 @@ +\b;Instruction \c;sniff\n; +Syntax: +\s;\c;sniff ( );\n; + +Sounds the underground in front of the \l;sniffer\u object\botsr;. According to what raw materials were detected, the following objects will be created: + +\c;TitaniumSpot\n; -> \l;Red cross\u object\stonspot; +\c;UraniumSpot \n; -> \l;Yellow circle\u object\uranspot; +\c;PowerSpot \n; -> \l;Green cross\u object\enerspot; + +\t;Return value: \c;\l;int\u cbot\int;\n; +Zero if everything is OK, or a value different from zero if an error occurred. +\c;== 0 \n;sounding performed +\c;!= 0 \n;sounding impossible + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/space.txt b/help/D/cbot/space.txt new file mode 100644 index 00000000..baa660a9 --- /dev/null +++ b/help/D/cbot/space.txt @@ -0,0 +1,23 @@ +\b;Instruction \c;space\n; +Syntax : +\s;\c;space ( center, rmin, rmax, dist );\n; + +Determines the position of the nearest free space around a given position. + +\t;center: \c;\l;point\u cbot\point;\n; (default: bot position) +Desired position of the free space. + +\t;rmin: \c;\l;float\u cbot\float;\n; (default value: \c;8\n;) +Minimum distance from the desired position. + +\t;rmax: \c;\l;float\u cbot\float;\n; (default value: \c;50\n;) +Maximum distance from the desired position. + +\t;dist: \c;\l;float\u cbot\float;\n; (default value: \c;4\n;) +Required distance between two free spaces. + +\t;Return: \c;\l;point\u cbot\point;\n; +Position of the free space. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/static.txt b/help/D/cbot/static.txt new file mode 100644 index 00000000..7d5e6032 --- /dev/null +++ b/help/D/cbot/static.txt @@ -0,0 +1,22 @@ +\b;Instruction \c;static\n; (for specialists) +\l;Class\u cbot\class; members declared with \c;static\n; are shared between all instances of the class. +\c; +\s;public class MyClass +\s;{ +\s; static int nb = 1; +\s; static string [ ] list = null; +\s;} +\s;void Test () +\s;{ +\s; MyClasse item1(); +\s; MyClasse item2(); +\s; item1.nb = 3; +\s; item1.list[item1.nb] = "Hello"; +\s; message( item2.list[item2.nb] ); // display "Hello" +\s;} +\n; +\c;Static\n; members can be declared \c;\l;private\u cbot\private;\n; so they will be only acessible from within class members (including constructors and destructors). + +\t;See also +\c;\l;class\u cbot\class;\n;, \c;\l;synchronized\u cbot\synchro;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/strfind.txt b/help/D/cbot/strfind.txt new file mode 100644 index 00000000..3d42b0d5 --- /dev/null +++ b/help/D/cbot/strfind.txt @@ -0,0 +1,20 @@ +\b;Instruction \c;strfind\n; +Find a substring in a string and returns the position of the first substring found or \l;nan\u cbot\nan; if the substring has not been found. + +Syntax¦: +\s;\c;strfind ( string, sub );\n; + +\t;string: \c;\l;string\u cbot\string;\n; +String we are searching in. + +\t;sub: \c;\l;string\u cbot\string;\n; +Substring we are searching for. + +Examples¦: +\s;\c; int pos = strfind("abcdef", "ab"); // pos will be 0 +\s; int pos = strfind("abcdef", "de"); // pos will be 3 +\s; int pos = strfind("abcdef", "xy"); // pos will be \l;nan\u cbot\nan; +\n; +\t;See also +\c;\l;strlen\u cbot\strlen;\n;, \c;\l;strleft\u cbot\strleft;\n;, \c;\l;strright\u cbot\strright;\n;, \c;\l;strmid\u cbot\strmid;\n;, \c;\l;strval\u cbot\strval;\n;, \c;\l;strupper\u cbot\strupper;\n;, \c;\l;strlower\u cbot\strlower;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/string.txt b/help/D/cbot/string.txt new file mode 100644 index 00000000..cc7b1a17 --- /dev/null +++ b/help/D/cbot/string.txt @@ -0,0 +1,33 @@ +\b;Type \c;string\n; +Use a variable of this type for storing characters or strings. + +For example: +\s;\c; "Hello!" +\s; "This is a string" +\s; "x" +\s; "" // empty string +\n; +You can append two strings with the \c;+\n; operator : +\s;\c; "Good morning," + " " + "Sir" +\n; +Returns the string: +\s;\c; "Good morning, Sir" +\n; +If you want to put a quotation mark (") or a backslash (\) in a string you must write¦: +\s;\c;"This is \"very\" important" +\n;which will result in the string \c; This is "very" important. +\s;\c;"%user%\\ant.txt" +\n;will result in \c;%user%\ant.txt +\n; +Following instructions can be used with strings¦: +\c;\l;strlen\u cbot\strlen; \n;Get string length +\c;\l;strleft\u cbot\strleft; \n;Extract left part +\c;\l;strright\u cbot\strright; \n;Extract right part +\c;\l;strmid\u cbot\strmid; \n;Extract center part +\c;\l;strfind\u cbot\strfind; \n;Find a substring. +\c;\l;strval\u cbot\strval; \n;Convert string to number +\c;\l;strupper\u cbot\strupper; \n;Convert to upper case +\c;\l;strlower\u cbot\strlower; \n;Convert to lower case + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/strleft.txt b/help/D/cbot/strleft.txt new file mode 100644 index 00000000..fa80fdeb --- /dev/null +++ b/help/D/cbot/strleft.txt @@ -0,0 +1,16 @@ +\b;Instruction \c;strleft\n; +Extracts the first (that is, leftmost) characters from a string. + +Syntax¦: +\s;\c;strleft ( string, len );\n; + +\t;len: \c;\l;int\u cbot\int;\n; +Number of characters to be extracted. + +Examples¦: +\s;\c; string s = strleft("abcdef", 2); // s is "ab" +\s; string s = strleft("abc", 10); // s is "abc" +\n; +\t;See also +\c;\l;strlen\u cbot\strlen;\n;, \c;\l;strright\u cbot\strright;\n;, \c;\l;strmid\u cbot\strmid;\n;, \c;\l;strfind\u cbot\strfind;\n;, \c;\l;strval\u cbot\strval;\n;, \c;\l;strupper\u cbot\strupper;\n;, \c;\l;strlower\u cbot\strlower;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/strlen.txt b/help/D/cbot/strlen.txt new file mode 100644 index 00000000..1cc384a7 --- /dev/null +++ b/help/D/cbot/strlen.txt @@ -0,0 +1,14 @@ +\b;Instruction \c;strlen\n; +Get the length of a string. + +Syntax¦: +\s;\c;strlen ( string );\n; + +Examples¦: +\s;\c; int len = strlen("abc"); // len is 3 +\s; int len = strlen(""); // len is 0 +\s; if ( strlen(s) == 0 ) // is string empty ? +\n; +\t;See also +\c;\l;strleft\u cbot\strleft;\n;, \c;\l;strright\u cbot\strright;\n;, \c;\l;strmid\u cbot\strmid;\n;, \c;\l;strfind\u cbot\strfind;\n;, \c;\l;strval\u cbot\strval;\n;, \c;\l;strupper\u cbot\strupper;\n;, \c;\l;strlower\u cbot\strlower;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/strlower.txt b/help/D/cbot/strlower.txt new file mode 100644 index 00000000..b4b7e50b --- /dev/null +++ b/help/D/cbot/strlower.txt @@ -0,0 +1,12 @@ +\b;Instruction \c;strlower\n; +Convert all characters in a string to lowercase. + +Syntax¦: +\s;\c;strlower ( string );\n; + +Examples¦: +\s;\c; string s = strlower("Abc"); // s is "abc" +\n; +\t;See also +\c;\l;strlen\u cbot\strlen;\n;, \c;\l;strleft\u cbot\strleft;\n;, \c;\l;strright\u cbot\strright;\n;, \c;\l;strmid\u cbot\strmid;\n;, \c;\l;strfind\u cbot\strfind;\n;, \c;\l;strval\u cbot\strval;\n;, \c;\l;strupper\u cbot\strupper;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/strmid.txt b/help/D/cbot/strmid.txt new file mode 100644 index 00000000..cf90bd3b --- /dev/null +++ b/help/D/cbot/strmid.txt @@ -0,0 +1,20 @@ +\b;Instruction \c;strmid\n; +Extracts a substring of a given length starting at a given position from a string. + +Syntax¦: +\s;\c;strmid ( string, pos, len );\n; + +\t;pos: \c;\l;int\u cbot\int;\n; +The index of the first character that is to be included in the extracted substring. + +\t;len: \c;\l;int\u cbot\int;\n; +Number of characters to be extracted. + +Examples¦: +\s;\c; string s = strmid("abcdef", 1, 2); // s is "bc" +\s; string s = strmid("abcdef", 4, 5); // s is "ef" +\s; string s = strmid("abcdef", 9, 2); // s is "" +\n; +\t;See also +\c;\l;strlen\u cbot\strlen;\n;, \c;\l;strleft\u cbot\strleft;\n;, \c;\l;strright\u cbot\strright;\n;, \c;\l;strfind\u cbot\strfind;\n;, \c;\l;strval\u cbot\strval;\n;, \c;\l;strupper\u cbot\strupper;\n;, \c;\l;strlower\u cbot\strlower;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/strright.txt b/help/D/cbot/strright.txt new file mode 100644 index 00000000..18824e65 --- /dev/null +++ b/help/D/cbot/strright.txt @@ -0,0 +1,16 @@ +\b;Instruction \c;strright\n; +Extracts the last (that is, rightmost) characters from a string. + +Syntax¦: +\s;\c;strright ( string, len );\n; + +\t;len: \c;\l;int\u cbot\int;\n; +Number of characters to be extracted. + +Examples¦: +\s;\c; string s = strright("abcdef", 2); // s is "ef" +\s; string s = strright("abc", 10); // s is "abc" +\n; +\t;See also +\c;\l;strlen\u cbot\strlen;\n;, \c;\l;strleft\u cbot\strleft;\n;, \c;\l;strmid\u cbot\strmid;\n;, \c;\l;strfind\u cbot\strfind;\n;, \c;\l;strval\u cbot\strval;\n;, \c;\l;strupper\u cbot\strupper;\n;, \c;\l;strlower\u cbot\strlower;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/strupper.txt b/help/D/cbot/strupper.txt new file mode 100644 index 00000000..7091f0ce --- /dev/null +++ b/help/D/cbot/strupper.txt @@ -0,0 +1,12 @@ +\b;Instruction \c;strupper\n; +Convert all characters in a string to uppercase. + +Syntax¦: +\s;\c;strupper ( string );\n; + +Examples¦: +\s;\c; string s = strupper("Abc"); // s is "ABC" +\n; +\t;See also +\c;\l;strlen\u cbot\strlen;\n;, \c;\l;strleft\u cbot\strleft;\n;, \c;\l;strright\u cbot\strright;\n;, \c;\l;strmid\u cbot\strmid;\n;, \c;\l;strfind\u cbot\strfind;\n;, \c;\l;strval\u cbot\strval;\n;, \c;\l;strlower\u cbot\strlower;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/strval.txt b/help/D/cbot/strval.txt new file mode 100644 index 00000000..491fc185 --- /dev/null +++ b/help/D/cbot/strval.txt @@ -0,0 +1,19 @@ +\b;Instruction \c;strval\n; +Convert a string to a number. Don't confuse the string \c;"45"\n; that contains actually the two characters \c;4\n; and \c;5\n; and the number \c;45\n;. + +Examples¦: +\s;\c; string s = "45"+"12"; // s contains "4512" +\s; float n = 45 + 12; // n contains 67 +\n; +Syntax¦: +\s;\c;strval ( string );\n; +\n; +Examples¦: +\s;\c; float n = strval("1.23"); // n is 1.23 +\s; float n = strval("12abc45"); // n is 12 +\s; float n = strval("abc"); // n is 0 +\s; float n = strval("100")+2; // n is 102 +\n; +\t;See also +\c;\l;strlen\u cbot\strlen;\n;, \c;\l;strleft\u cbot\strleft;\n;, \c;\l;strright\u cbot\strright;\n;, \c;\l;strmid\u cbot\strmid;\n;, \c;\l;strfind\u cbot\strfind;\n;, \c;\l;strupper\u cbot\strupper;\n;, \c;\l;strlower\u cbot\strlower;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/synchro.txt b/help/D/cbot/synchro.txt new file mode 100644 index 00000000..8817c38a --- /dev/null +++ b/help/D/cbot/synchro.txt @@ -0,0 +1,25 @@ +\b;Instruction \c;synchronized\n; (for specialists) +A \l;class\u cbot\class; method can be declared \c;synchronized\n;. This is to make sure that the method is never being executed by more than one bot at the same time. + +The following example illustrates the problem: +\c; +\s;class blocking +\s;{ +\s; static int nb = 33; +\s; synchronized int inc( ) +\s; { +\s; int val = nb; +\s; wait ( 2 ); // wait 2 sec. +\s; nb = nb + 1; +\s; return val; +\s; } +\s;} +\n; +What happens if two bots execute the \c;inc\n; method at the same time¦? +Both of them will execute \c;val=nb\n; and wait 2 seconds so both of them will have \c;val=33\n;. With \c;synchronized\n; the first bot starts execution with \c;val=33\n; and then waits 2 seconds and returns. Only once the first bot has returned from the \c;inc\n; method, the second bot will be allowed to enter the \c;inc\n; method and therefore the second bot will always have \c;val=34\n;. + +You can have more than one synchronized method in your \l;class\u cbot\class; 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. + +\t;See also +\c;\l;class\u cbot\class;\n;, \c;\l;static\u cbot\static;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/term.txt b/help/D/cbot/term.txt new file mode 100644 index 00000000..c53d552d --- /dev/null +++ b/help/D/cbot/term.txt @@ -0,0 +1,31 @@ +\b;Semicolon +Always use a semicolon \c;;\n; after a simple expression. For example: +\c; +\s; int counter = 0; +\n; +However, after a \l;bloc\u cbot\bloc;, never put a semicolon: +\c; +\s; { +\s; float dist; +\s; dist = distance(p1, p2); +\s; } \n;// no semicolon here!\c; +\n; +Do not use a semicolon either immediately after the instructions \c;\l;while\u cbot\while;\n;, \c;\l;if\u cbot\if;\n; or \c;\l;for\u cbot\for;\n;: +\c; +\s; if ( a < b ) \n;// no semicolon here!\c; +\s; { +\s; b = 100-a; +\s; } +\n; +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: +\c; +\s; int d=20; +\s; move(d); +\s; turn(90); +\n; +Is equivalent to: +\c; +\s; int d=20; move(d); turn(90); +\n; +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/testinfo.txt b/help/D/cbot/testinfo.txt new file mode 100644 index 00000000..634063af --- /dev/null +++ b/help/D/cbot/testinfo.txt @@ -0,0 +1,18 @@ +\b;Instruction \c;testinfo\n; +Syntax¦: +\s;\c;testinfo ( name, power );\n; + +Tests if an information exists in the closest \l;information exchange post\u object\exchange;. + +\t;name: \c;string\n; +Name of the information to be tested in the exchange post. This name is a string: it must be written in quotation marks "¦". + +\t;power: \c;float\n; +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 \c;false\n;. Default value is 10 metres. + +\t;Return: \c;\l;bool\u cbot\bool;\n; +Return \c;true\n; if the information exists. Return and \c;false\n; if the information does not exist or if the receiver is too far away from the exchange post. + +\t;See also +\c;\l;receive\u cbot\receive;\n;, \c;\l;send\u cbot\send;\n; and \c;\l;deleteinfo\u cbot\delinfo;\n;. +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/this.txt b/help/D/cbot/this.txt new file mode 100644 index 00000000..81516bc3 --- /dev/null +++ b/help/D/cbot/this.txt @@ -0,0 +1,54 @@ +\b;Instruction \c;this\n; +Occasionally, a \l;class\u cbot\class; 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 \c;this\n; is available to methods and \c;this\n; is a reference to the current instance. +\c; +\s;public class MyClass +\s;{ +\s; int m_int; +\s; string m_str; +\s; void MyFunction() +\s; { +\s; OtherFunction(this); +\s; m_int = 2; +\s; } +\s;} +\s; +\s;void OtherFunction(MyClass obj) +\s;{ +\s; message(obj.m_str); +\s;} +\s; +\s;extern void object::Test() +\s;{ +\s; MyClass item(); +\s; item.m_str = "Hello"; +\s; item.MyFunction(); // display "Hello" +\s;} +\n; +You can also put \c;this\n; before a field name in a method but this is not necessary. In the example above in the method \c;MyFunction()\n; following two lines have strictly the same meaning: +\c; +\s; m_int = 2; +\s; this.m_int = 2; // identical +\n; +In a method of the \c;\l;object\u cbot\object;\n; class, you can also use \c;this.\n; before a fieldname. +\c; +\s;extern void object::Display() +\s;{ +\s; message(orientation); +\s; message(this.orientation); // same thing but +\s; // more explicit +\s;} +\n; +However if a field name is hidden by a parameter declaration or a variable declaration you must use \c;this\n;. In the following example the name \c;value\n; of the parameter is the same as the name of the field \c;value\n; of the \l;class\u cbot\class; \c;MyClass\n;, we must therefore write \c;this.value\n; in order to distinguish the field from the parameter. +\c; +\s;public class MyClass +\s;{ +\s; int value; +\s; void Put( int value ) +\s; { +\s; this.value = value; +\s; } +\s;} +\n; +\t;See also +\c;\l;class\u cbot\class;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; et \l;catégories\u cbot\category;. diff --git a/help/D/cbot/thump.txt b/help/D/cbot/thump.txt new file mode 100644 index 00000000..8ce7f161 --- /dev/null +++ b/help/D/cbot/thump.txt @@ -0,0 +1,13 @@ +\b;Instruction \c;thump\n; +Syntax: +\s;\c;thump ( );\n; + +Activates the weapon system of the \l;thumper\u object\bottump;, that turns ants and spiders belly up and makes them completely harmless for a while. + +\t;Return value: \c;\l;int\u cbot\int;\n; +Zero if everything is OK, a value different from zero if an error occurred. +\c;== 0 \n;Thumping performed +\c;!= 0 \n;Operation impossible + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/topo.txt b/help/D/cbot/topo.txt new file mode 100644 index 00000000..e8fef09a --- /dev/null +++ b/help/D/cbot/topo.txt @@ -0,0 +1,14 @@ +\b;Instruction \c;topo\n; +Syntax: +\s;\c;topo ( position );\n; + +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. + +\t;position: \c;\l;point\u cbot\point;\n; +Coordinates of the position whose altitude you want to know. + +\t;Return value: \c;\l;float\u cbot\float;\n; +Altitude of the ground at the given position. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/true.txt b/help/D/cbot/true.txt new file mode 100644 index 00000000..2d29fa1d --- /dev/null +++ b/help/D/cbot/true.txt @@ -0,0 +1,5 @@ +\b;Type \c;true\n; +This value means that a condition is true; it is one of the two values that a \l;boolean\u cbot\bool; \l;variable\u cbot\var; can take. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/turn.txt b/help/D/cbot/turn.txt new file mode 100644 index 00000000..a163dcb5 --- /dev/null +++ b/help/D/cbot/turn.txt @@ -0,0 +1,33 @@ +\b;Instruction \c;turn\n; +Use the instruction \c;turn();\n; to instruct the bot to perform a rotation on itself of a certain number of degrees. + +\b;Basic use +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;: + +\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 + +In order to turn the bot towards an object found with the instruction \c;\l;radar\u cbot\radar;();\n;, you must calculate the rotation angle with the instruction \c;\l;direction\u cbot\direct;()\n;: +\c; +\s; item = \l;radar\u cbot\radar;(AlienSpider); +\s; turn(\l;direction\u cbot\direct;(item.position)); +\n; +After these lines, just fire the cannon, and there is one hostile element less. + +\b;For specialists +Syntax: +\s;\c;turn ( angle );\n; + +Turns the bot with a given angle, right or left, without moving either forward or backward. + +\t;angle: \c;\l;float\u cbot\float;\n; +Angle of the required rotation, in degrees. A positive value turns left, a negative value turns right. \c;turn(180)\n; turns round completely. + +\t;Return value: \c;\l;int\u cbot\int;\n; +Zero if everything is OK, or a value different from zero if an error occurred. +\c;== 0 \n;rotation performed +\c;!= 0 \n;rotation impossible + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/type.txt b/help/D/cbot/type.txt new file mode 100644 index 00000000..16662081 --- /dev/null +++ b/help/D/cbot/type.txt @@ -0,0 +1,33 @@ +\b;Variable types +When you define a \l;variable\u cbot\var;, you must give two elements: + +1) a name +2) a type + +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 \l;float\u cbot\float; can not contain a string, etc. + +In a program, the name of a type is always written on \type;green background\norm;. If the name of a type is not colored, this means that the name is misspelled. Type names are always written with lower case characters. Here is a list of the different types: + +\s;\c;\l;int\u cbot\int;\n; +For a whole number (12, -500, etc.). + +\s;\c;\l;float\u cbot\float;\n; +For a real number (12, 3.14, 0.2, -99.98, etc.). + +\s;\c;\l;bool\u cbot\bool;\n; +For a boolean variable, that can only take the values \c;true\n; or \c;false\n;. + +\s;\c;\l;string\u cbot\string;\n; +For texts ("Hello!", "No object found", etc.) + +\s;\c;\l;point\u cbot\point;\n; +For the coordinates of a point in space; a variable of this type consists of three parts named x, y and z. + +\s;\c;\l;object\u cbot\object;\n; +A variable of this type contains the information about an object (bot, building, enemy, etc.). + +\s;\c;\l;void\u cbot\void;\n; +This type is an "empty type", that you use when you do not want to specify a type. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/var.txt b/help/D/cbot/var.txt new file mode 100644 index 00000000..8c8f95be --- /dev/null +++ b/help/D/cbot/var.txt @@ -0,0 +1,67 @@ +\b;Variables +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. + +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 \c;countTit\n;. This variable must contain only whole numbers, so choose the type \c;int\n;. At the beginning of the program, you must declare the variable. Then you put the value \c;0\n; into the variable, and every time you grab a titanium ore, you increase the variable by \c;1\n;. At every moment, the variable contains the number of titanium ore units that the grabber collected. + +For the declaration of the variable, write the following line: +\c;\s; int countTit;\n; + +To put \c;0\n; into the variable, write: +\c;\s; countTit = 0;\n; + +At every titanium ore grabbed, write: +\c;\s; countTit = countTit + 1\n; + +You have much freedom in the choice of the name for a variable, you can call them by any name, f. ex.: \c;dist\n;, \c;direct\n;, \c;p2\n;, \c;a\n;, \c;x\n;, \c;nothing_2_shoot_at\n;, etc. +A variable name must always begin with a letter. It can be followed by any combination of letters, digits or the underscore character \c;_\n;. You can of course not use the keywords of the CBOT language like \c;\l;for\u cbot\for;\n;, \c;\l;while\u cbot\while;\n;, \c;\l;break\u cbot\break;\n;, \c;\l;continue\u cbot\continue;\n;, \c;do\n;, 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 \c;Bmo45\n;, \c;a\n; or \c;tgBinX\n;. + +In the example above, the keyword \c;int\n; 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 \c;float\n;. + +In fact, a variable is made up of three parts: +1) the name +2) the type of the information stored inside +3) the content, i.e. the information itself + +\t;the name +You need the name to be able to distinguish the different variables from each other. + +\t;the type +The \l;type\u cbot\type; 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: + o \c;\l;int\u cbot\int;\n; for a whole number (12, -500, etc.) + o \c;\l;float\u cbot\float;\n; for a real number (3.14, 0.2, -99.98, etc.) + o \c;\l;string\u cbot\string;\n; for a character string ("Hello!", "No object found", etc.) + o \c;\l;point\u cbot\point;\n; for a x,y,z-coordinate in space + o \c;\l;object\u cbot\object;\n; for information about an object (bot, building, etc.) + +\t;The content +The content of a variable is an information of the kind specified in the type. It can change during the execution of the program. + +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; +\s; j = 25; // j takes the value 25 +\s; j = i; // can not write this, because i has got no content yet. +\n; +You can also declare a variable and put a value inside in the same line, writing: +\c;\s; int countTit = 0; +\n; +When you assign a value to a variable with the equals sign \c;=\n;, the value on the right side is copied into the value on the left side. Consider the following example: +\c;\s; int i, j; +\s; i = 5+2; // i takes the value 7 +\s; j = i+6; // j takes the value of i plus 6, this is 13 +\s; i = j; // i takes the value of j, this is 13 +\n; +At the end of this example, both variables \c;i\n; and \c;j\n; contain the value \c;13\n;. + +The following assignment is not correct, because on the left side of the equals sign \c;=\n;, there can be only a variable name: +\c;\s; i+2 = j; // impossible +\n; +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 \c;a\n; and \c;b\n; : +\c;\s; int temp; +\s; temp = a; // temp takes the value of a +\s; a = b; // the content of b is copied into a +\s; b = temp; // the content of temp is copied into b +\n; +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/void.txt b/help/D/cbot/void.txt new file mode 100644 index 00000000..11509d2b --- /dev/null +++ b/help/D/cbot/void.txt @@ -0,0 +1,11 @@ +\b;Type \c;void\n; +Use this type when you want to declare a function that returns nothing. + +Example: +\c;\s;void MyFunction(int a) +\s;{ +\s; ... +\s;} +\n; +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/wait.txt b/help/D/cbot/wait.txt new file mode 100644 index 00000000..88e6ed64 --- /dev/null +++ b/help/D/cbot/wait.txt @@ -0,0 +1,22 @@ +\b;Instruction \c;wait\n; +The instruction \c;wait();\n; instructs the bot to wait for some seconds, according to the value written in brackets. + +\b;Basic use +In order to wait until the \l;power cell\u object\power; is recharged on a power station, wait 5 seconds with \c;wait(5);\n;. + +In order to wait until the \l;converter\u object\convert; finished transforming some \l;titanium ore\u object\titanore; in a \l;titanium cube\u object\titan;, wait 15 seconds with \c;wait(15);\n;. + +\b;For specialists +Syntax: +\s;\c;wait ( time );\n; + +Waits for a moment. + +\t;time: \c;\l;float\u cbot\float;\n; +Specifies the time that the bot must wait. + +\t;Return value: \c;\l;void\u cbot\void;\n; +None. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/while.txt b/help/D/cbot/while.txt new file mode 100644 index 00000000..5e793c88 --- /dev/null +++ b/help/D/cbot/while.txt @@ -0,0 +1,47 @@ +\b;Instruction \c;while\n; +The instruction \c;while () {}\n; is used to repeat a set of instructions several times. + +\b;Basic use +The most frequent use of \c;while\n; consists in repeating a set of instructions again and again. In order to achieve this, write \c;while (true) {}\n; and put the instructions to be repeated in braces \c;{}\n;. As an example, here is a program that repeats again and again the following actions: +o look for a spider, +o turn towards it, +o shoot. +\c; +\s; while (true) +\s; { +\s; item = \l;radar\u cbot\radar;(AlienSpider); +\s; \l;turn\u cbot\turn;(direction(item.position)); +\s; \l;fire\u cbot\fire;(1); +\s; } +\n; +Just execute this program once, and it will kill all spiders around it. + +\b;For specialists +Syntax : +\s;\c;while ( condition ) +\s;{ +\s; \n;Instructions ...\c; +\s;} +\n; +This instruction allows you to perform the instructions inside the \l;block\u cbot\bloc; several times. + +Be careful not to confuse the instruction \c;while( ) { }\n; with the instruction \c;\l;do\u cbot\do; { } while( );\n;; the latter tests the condition only after the instructions in the block have been performed a first time. + +\t;\c;condition\n; +The instructions in the block are performed over and over again, as long as the \l;condition\u cbot\cond; is true. + +Here is an example : +\s;\c;int i = 0; +\s;while ( i < 10 ) +\s;{ +\s; \n;Instructions ...\c; +\s; i = i+1; +\s;} +\n; +\t;Attention +Do not put a \l;semicolon\u cbot\term; at the end of the line \c;while ( )\n;. + +The instructions \c;\l;break\u cbot\break;\n; and \c;\l;continue\u cbot\continue;\n; can be useful inside a block following the instruction \c;while { }\n;. + +\t;See also +\l;Instructions\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/cbot/writeln.txt b/help/D/cbot/writeln.txt new file mode 100644 index 00000000..260f4507 --- /dev/null +++ b/help/D/cbot/writeln.txt @@ -0,0 +1,21 @@ +\b;Instruction \c;writeln\n; +Write one line of text to an open file in the files/ folder. This is a method of the \c;\l;file\u cbot\file;\n; class. This is the reason why we always write \c;handle.writeln()\n;¦: +\c; +\s; handle.writeln("abc"); +\n; +The file must have been opened for writing (\c;"w"\n;) with the \c;\l;open\u cbot\open;\n; instruction. The line will automatically be terminated by the end of line characters 0x0D (CR) and 0x0A (LF). + +Syntax¦: +\s;\c;handle.writeln ( string );\n; + +Examples¦: +\c; +\s; writeln("Line of text"); + +\s; string s1 = "abc"; +\s; string s2 = "def"; +\s; writeln(s1 + " " + s2); +\n; +\t;See also +\c;\l;file\u cbot\file;\n;, \c;\l;open\u cbot\open;\n;, \c;\l;close\u cbot\close;\n;, \c;\l;readln\u cbot\readln;\n; and \c;\l;eof\u cbot\eof;\n;. +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/command.txt b/help/D/command.txt new file mode 100644 index 00000000..43126082 --- /dev/null +++ b/help/D/command.txt @@ -0,0 +1,45 @@ +\b;Controls +You are advised to play with one hand on the arrow keys and the other hand on the mouse. + +\t;Bots +\key;\key left;\norm; = turn left +\key;\key right;\norm; = turn right +\key;\key up;\norm; = move forward +\key;\key down;\norm; = move back +These controls are unavailable when working with the \l;practice bots\u object\bottr;. + +\key;\key gup;\norm; = take off and climb \button 28; +\key;\key gdown;\norm; = descend and land \button 29; +These controls are of course restricted to the \l;astronaut\u object\human; as well as the various \l;winged bots\u object\botgj; and in selected missions only. + +mouse forward = higher aim +mouse backward = lower aim +mouse right = aim right +mouse left = aim left +These controls are only available to the \l;shooters\u object\botfr;, the \l;orga shooters\u object\botor; and the \l;phazer shooter\u object\botphaz;. + +\key;\key action;\norm; = main action for a given selection (human or bot) +This control will for example operate the arm of a \l;grabber\u object\botgr; or fire a \l;shooter\u object\botfr; \button 42;. + +\t;Selections +\key;\key next;\norm; = selects next object +\key;\key human;\norm; = selects astronaut +\key;\key desel;\norm; = previous selection \button 10; + +\t;Camera +\key;\key camera;\norm; = shifts between onboard and following cameras \button 13; +\key;\key near;\norm; = zoom in +\key;\key away;\norm; = zoom out +\key;\key visit;\norm; = pauses the game and shows where the latest message originated. Press again to show origin of previous message. + +\t;Help +\key;\key help;\norm; = mission instructions +\key;\key prog;\norm; = programming help + +\t;Game +\key;\key speed10;\norm; = normal speed x1 +\key;\key speed15;\norm; = medium speed x1.5 +\key;\key speed20;\norm; = faster speed x2 +\key;\key quit;\norm; = exits mission \button 11; + +All these commands can be redefined in the options/controls menu. diff --git a/help/D/dexch1.txt b/help/D/dexch1.txt new file mode 100644 index 00000000..cf330c6a --- /dev/null +++ b/help/D/dexch1.txt @@ -0,0 +1,19 @@ +\b;Exercice +Several \l;information exchange posts\u object\exchange; are standing along the way. When the bot is close enough to a post, it can read the instructions it contains. The \l;information exchange posts\u object\exchange; along the way contain the direction of the next post and the distance. And you do not know how many exchange posts you must get in touch with before arriving at your goal. + +\b;General principle + Always repeat: + o Retrieve the direction from the \l;exchange post\u object\exchange;. + o Retrieve the distance from the \l;exchange post\u object\exchange;. + o If no information could be retrieved, stop the program. + o Execute the rotation. + o Move forward to the next post. + +\b;Useful instructions +\c;\l;while\u cbot\while;\n; to repeat the instructions +\c;\l;receive\u cbot\receive;\n; to get the information from a post +\c;\l;move\u cbot\move;\n; to move the bot +\c;\l;turn\u cbot\turn;\n; to turn the bot + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/dfollow1.txt b/help/D/dfollow1.txt new file mode 100644 index 00000000..2be46365 --- /dev/null +++ b/help/D/dfollow1.txt @@ -0,0 +1,20 @@ +\b;Exercise +You must follow the \l;target bot\u object\bottr; with the explosive device, but without touching it, otherwise it will blow up. Every time the target bot stops, you must be close to it (less than 10m). After you managed to stay close to the target bot at 10 successive stops, it will lead you to the finishing pad, and the exercise is over. At every stop, the target bot checks that you are there. If you are not there, you must start over again. + +\b;General principle +Repeat forever: +o Look for the target bot. +o Calculate the distance to the bot. +o if the distance to the target bot is less than 5m, move backward. +o Otherwise, calculate the direction of the target bot, and move towards it. + +\b;Useful instructions +\c;\l;radar\u cbot\radar;\n; to look for the bot (category \c;\l;TargetBot\u object\bottarg;\n;) +\c;\l;radar\u cbot\radar;\n; to detect obstacles +\c;\l;distance\u cbot\dist;\n; to calculate a distance +\c;\l;direction\u cbot\direct;\n; to calculate a direction +\c;\l;if\u cbot\if;\n; to test a condition +\c;\l;motor\u cbot\motor;\n; to set the motor speeds + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/dfor.txt b/help/D/dfor.txt new file mode 100644 index 00000000..116be043 --- /dev/null +++ b/help/D/dfor.txt @@ -0,0 +1,11 @@ +\b;Exercise +Destroy all four \l;targets\u object\bottarg; with a program using a \c;for\n; loop. You must move 10m to get from one target to another. + +\b;Useful instructions +\c;\l;for\u cbot\for;\n; loop to repeat the instructions +\c;\l;move\u cbot\move;\n; to move the bot +\c;\l;turn\u cbot\turn;\n; to turn the bot +\c;\l;fire\u cbot\fire;\n; to fire the cannon + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/dhelp1.txt b/help/D/dhelp1.txt new file mode 100644 index 00000000..718907d0 --- /dev/null +++ b/help/D/dhelp1.txt @@ -0,0 +1,15 @@ +\b;Exercise +Defend against all enemy attacks + +\b;General idea +The range of your cannon is about 40m. The category of the enemies is \c;AlienAnt\n;. Turn towards the closest ant, even if it is still more than 40m away. But shoot only when it is closer than 40m, in order not to waste your energy. + +\b;Useful instructions +\c;\l;radar\u cbot\radar;\n; to detect your enemies (category \c;\l;AlienAnt\u object\ant;\n;) +\c;\l;direction\u cbot\direct;\n; to calculate a direction +\c;\l;distance\u cbot\dist;\n; to calculate a distance +\c;\l;fire\u cbot\fire;\n; to fire your cannon +\c;\l;wait\u cbot\wait;\n; to wait + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/dlaby1.txt b/help/D/dlaby1.txt new file mode 100644 index 00000000..75e3e368 --- /dev/null +++ b/help/D/dlaby1.txt @@ -0,0 +1,11 @@ +\b;Exercise +Program the bot so that it will find its way without hitting the walls of the labyrinth. We suppose that you do not know the configuration of the labyrinth, but there are no bifurcations, and no dead-ends. The labyrinth is made of squares measuring 5m each. + +\b;Useful instructions +\c;\l;radar\u cbot\radar;\n; to detect obstacles +\c;\l;if\u cbot\if;\n; to test a condition +\c;\l;move\u cbot\move;\n; to move the bot +\c;\l;turn\u cbot\turn;\n; to turn the bot + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/dmove1.txt b/help/D/dmove1.txt new file mode 100644 index 00000000..1f207bd0 --- /dev/null +++ b/help/D/dmove1.txt @@ -0,0 +1,10 @@ +\b;Exercise +Program the robot in such a way that it arrives on the finishing pad, after having passed by the three blue crosses. +The platforms and the crosses are all distant of 20m from each other. + +\b;Useful instructions +\c;\l;move\u cbot\move;\n; to move the bot +\c;\l;turn\u cbot\turn;\n; to turn the bot + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/dproc1.txt b/help/D/dproc1.txt new file mode 100644 index 00000000..e1cda96b --- /dev/null +++ b/help/D/dproc1.txt @@ -0,0 +1,21 @@ +\b;Exercice +\b;Exercise +The \l;bot\u object\bottr; must pass over all the \l;blue crosses\u object\waypoint; on the ground. The way that must be covered is made of two squares. The first one measures 15 meters, the second 25 meters. + +\image tproc1a 8 8; +\b;General principle +In order to solve this problem, the most efficient solution consists in creating a \l;function\u cbot\function; that instructs the bot to move on a square shape of a certain size. The main program becomes then very simple:\c; +\c; +\s; extern void object::Function3( ) +\s; { +\s; Square(15); +\s; Square(25); +\s; } +\n; +\b;Useful instructions +\c;\l;for\u cbot\for;\n; loop to repeat some instructions +\c;\l;move\u cbot\move;\n; to move the bot +\c;\l;turn\u cbot\turn;\n; to turn the bot + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/dproc2.txt b/help/D/dproc2.txt new file mode 100644 index 00000000..6424eb36 --- /dev/null +++ b/help/D/dproc2.txt @@ -0,0 +1,14 @@ +\b;Exercise +Follow the way in form of a spiral. The bot must move 2 times 25m forward and turn, then move 2 times 20m forward and turn, and so on. +\image tproc2 8 8; + +\b;Function +You will have noticed that the way is made of "L"-shaped parts that are fit one into another. The first one (dark blue) measures two times 25 meters. The second one (light blue) measures 5 meters less. Let us start with writing the \l;function\u cbot\function; that will move the bot on a "L"-shaped part whose length will be given as a parameter. + +\b;Useful instructions +\c;\l;for\u cbot\for;\n; loop to repeat some instructions +\c;\l;move\u cbot\move;\n; to move the bot +\c;\l;turn\u cbot\turn;\n; to turn the bot + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/dradar1.txt b/help/D/dradar1.txt new file mode 100644 index 00000000..2b97def6 --- /dev/null +++ b/help/D/dradar1.txt @@ -0,0 +1,14 @@ +\b;Exercise +In this exercise, a "crazy bot" places many \l;blue crosses\u object\waypoint; on the ground. Just try to find them all. + +\b;Useful instructions +\c;\l;radar\u cbot\radar;\n; to detect the blue crosses (category \c;\l;WayPoint\u object\waypoint;\n;) +\c;\l;direction\u cbot\direct;\n; to calculate a direction +\c;\l;if\u cbot\if;\n; to test a condition +\c;\l;motor\u cbot\motor;\n; to set the motor speeds + +\t;Remark +Do not wait too long, because the crazy bot gets down to work immediately. Fortunately, as long as you are in the program editor, the game will pause. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/dremova1.txt b/help/D/dremova1.txt new file mode 100644 index 00000000..d3175a1d --- /dev/null +++ b/help/D/dremova1.txt @@ -0,0 +1,35 @@ +\b;Exercise +Convert some \l;titanium ore\u object\titanore; to \l;titanium cubes\u object\titan;, then drop 2 titanium cubes on the pads whose coordinates are: +\c; + x=10, y=-60 + x=10, y=-65 +\n; +\image derrick 8 8; +The \l;derrick\u object\derrick; extracts titanium ore from the subsoil; you just have to pick it up. + +\image convert 8 8; +The \l;converter\u object\convert; converts titanium ore to titanium cubes. Just drop the titanium ore on the platform, move backward, and wait until it has been converted. + +\b;General principle +Repeat two times : +o Wait until there is some titanium ore. +o Go to the titanium ore. +o Pick it up. +o Go to the converter. +o Drop the titanium ore. +o Move back 2.5 meters. +o Wait until there is a titanium cube. +o Pick up the titanium cube. +o Go to the platform. +o Drop the titanium cube. + +\b;Useful instructions +\c;\l;for\u cbot\for;\n; to repeat some instructions +\c;\l;do - while\u cbot\do;\n; to repeat some instructions +\c;\l;radar\u cbot\radar;\n; to look for different objects +\c;\l;goto\u cbot\goto;\n; to move the bot +\c;\l;grab\u cbot\grab;\n; to grab an object +\c;\l;drop\u cbot\drop;\n; to drop an object + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/dremova2.txt b/help/D/dremova2.txt new file mode 100644 index 00000000..ec6549c7 --- /dev/null +++ b/help/D/dremova2.txt @@ -0,0 +1,11 @@ +\b;Exercise +Move the \l;titanium cube\u object\titan; on the finishing pad. You do not know the position of the titanium, but we can tell you the position of the finishing pad x=10 and y=-60. + +\b;Useful instructions +\c;\l;radar\u cbot\radar;\n; to find the titanium cube (category \c;\l;Titanium\u object\titan;\n;) +\c;\l;goto\u cbot\goto;\n; to move the bot +\c;\l;grab\u cbot\grab;\n; to grab an object +\c;\l;drop\u cbot\drop;\n; to drop an object + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/dtrap1.txt b/help/D/dtrap1.txt new file mode 100644 index 00000000..8cf7bd08 --- /dev/null +++ b/help/D/dtrap1.txt @@ -0,0 +1,26 @@ +\b;Exercise +Instruct the bot to find all the \l;blue crosses\u object\waypoint; on the ground, but do not get too close to the \l;mines\u object\mine;. When the bot passes over a cross, it disappears. Here is the general principle: + + Repeat forever: + o Look for a mine + o If a mine has been found, calculate the opposite direction + o Look for a cross + o If nothing has been found, stop the program + o Calculate the direction of the cross + o Calculate the mean value of the two directions + o Set the motor speeds in order to head towards the mean direction + +\b;The instruction \c;radar\n; +In order to detect a mine with the \c;\l;radar\u cbot\radar;\n;, we recommend the following parameters: +\c;\s; radar(Mine, 0, 180, 0, 5);\n; +With the opening angle of 180 degrees, mines that are behind the bot will not be found. Mines that are at more than 5 meters are also ignored. + +In order to find a blue cross, simply write: +\c;\s; radar(WayPoint);\n; +Blue crosses will be found everywhere. + +In order to calculate a direction, use \c;\l;direction\u cbot\direct;\n;. +In order to set the motor speeds, use \c;\l;motor\u cbot\motor;\n;. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/dtrap2.txt b/help/D/dtrap2.txt new file mode 100644 index 00000000..85acba71 --- /dev/null +++ b/help/D/dtrap2.txt @@ -0,0 +1,7 @@ +\b;Exercise +Instruct your \l;bot\u object\bottr; to find all the \l;blue crosses\u object\waypoint; on the ground, but do not get too close to the \l;mines\u object\mine;. + +If a bot gets within less than 2m of the center of a mine (which is the position returned by the radar instruction), il will blow up. However, you must take into account the inertia of the bot. Probably a safety distance of 3 to 3.5m would be more appropriate. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/fglobal.txt b/help/D/fglobal.txt new file mode 100644 index 00000000..f7c4caf2 --- /dev/null +++ b/help/D/fglobal.txt @@ -0,0 +1,5 @@ +\b;Objective +Here you can play around without any definite objective. You can do whatever you want, explore the region, build a base camp and several bots, run various research programs, kill the insects if you find some, etc. + +\t;See also +\l;Controls\u command;. diff --git a/help/D/licences.txt b/help/D/licences.txt new file mode 100644 index 00000000..f892ed07 --- /dev/null +++ b/help/D/licences.txt @@ -0,0 +1,3 @@ +The photograph of the nebula NGC3606 illuminating the sky on Orpheon and the installation program was taken with the Hubble space telescope. It is used with the permission of the authors Wolfgang Brandner (JPL/IPAC), Eva K. Grebel (Washington University), You-Hua Chu (Illinois Urbana-Champaign University) and NASA. + +The thunder sound on Orpheon is used by limited permission from CREATIVE. diff --git a/help/D/mhcent1.txt b/help/D/mhcent1.txt new file mode 100644 index 00000000..0bdecf07 --- /dev/null +++ b/help/D/mhcent1.txt @@ -0,0 +1,11 @@ +\b;From Mission Control +Find some more \l;organic matter\u object\bullet; and, given an appropriate research program performed by your \l;autolab\u object\labo;, \l;you\u object\human; should be able to manufacture orga shooters yourself. + +Produce a \l;legged orga shooter\u object\botos; and bring it back aboard your \l;spaceship\u object\base;. + +Please keep in mind that low energy resources are a major concern on this planet. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/D/mhcent2.txt b/help/D/mhcent2.txt new file mode 100644 index 00000000..99de1d4f --- /dev/null +++ b/help/D/mhcent2.txt @@ -0,0 +1,7 @@ +\b;From Mission Control +It is time for \l;you\u object\human; to improve your shooting skills again. In the following drill, hit all the \l;explosive devices\u object\tnt; but watch out: your \l;orga shooter\u object\botoj; has very little power left in it, barely enough to complete the drill. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/D/mhcent3.txt b/help/D/mhcent3.txt new file mode 100644 index 00000000..48067c8f --- /dev/null +++ b/help/D/mhcent3.txt @@ -0,0 +1,9 @@ +\b;From Mission Control +Build a \l;radar\u object\radar; on one of the highest accessible spots and make sure that no organism can destroy it after \l;you\u object\human;'re gone. + +The destruction of a previous radar set up by the first expedition was probably the cause of a communication breakdown, which led to complete loss of contact. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/D/mhcent4.txt b/help/D/mhcent4.txt new file mode 100644 index 00000000..72284c2a --- /dev/null +++ b/help/D/mhcent4.txt @@ -0,0 +1,19 @@ +\b;A Word on New Policies +We are sorry to have to bring this to your attention but this seems like a good a time to let you in on a little concern we're having at the moment. There has been a strong reaction in the public opinion and in Congress concerning your systematic termination of the "indigenous inhabitants" of the planets you've been visiting. Congress has chosen to demonstrate its sensitivity to the concerns of the general population. + +We hereby relay their new directives and these directives intimate for you to limit the casualties as much as humanly possible. In other words, do your very best to spare the life-forms you encounter from now on. Your mission should of course in no way find itself jeopardized by this new course of action. + +\b;From Mission Control +Your energy resources appear dangerously limited at this time and so is your arsenal but you need to locate and retrieve the previous expedition's \l;black box\u object\bbox; so you can proceed to the next planet. + +We received a piece of information from your predecessors, via the observation satellite, regarding a new type of weaponry they have developed precisely for a predicament such as this one. + +This weapon will offer you an opportunity to demonstrate your newfound compassion towards \l;indigenous species\u object\ant; for it is not a weapon of mass destruction. What it offers instead, to the best of our knowledge, is an option to incapacitate them, rendering them, if only temporarily, harmless. If this is indeed the case, you'll need to act quickly before they are given a chance to become hostile to you again. + +\b;Procedure +Perform the \l;research program\u object\research; and experiment for yourself but don't forget to bring this new weapon back on board. We are very curious to study its workings. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/D/mhcent5.txt b/help/D/mhcent5.txt new file mode 100644 index 00000000..c4c0e0a1 --- /dev/null +++ b/help/D/mhcent5.txt @@ -0,0 +1,9 @@ +\b;From Mission Control +You're under attack and this is no time for compassion... + +Your new \l;thumper\u object\bottump; might come in very handy. However, we emphasize that you should not risk a takeoff if there are any ants still alive in the vicinity of the spaceship. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/D/mhcrys1.txt b/help/D/mhcrys1.txt new file mode 100644 index 00000000..6b4c840b --- /dev/null +++ b/help/D/mhcrys1.txt @@ -0,0 +1,13 @@ +\b;From Mission Control +Build a \l;radar\u object\radar; on the highest point in the area. Make sure that the radar will work safely even after your departure to other planets. Your \l;research center\u object\research; should be able to provide a solution. + +It is possible that the organisms detected are in fact the \l;worms\u object\worm; alluded to by the first expedition. If this is indeed the case, don't be excessively alarmed: they seem fairly harmless to living organisms but could cause the programs of bots and buildings to malfunction through the emission of viruses. + +Radars not only give you precious information about objects and organisms present in the region, they also relay information to and from the Earth once you have taken off to other planets. It is highly probable that problems with the radar stations built by the first expedition caused the transmission problems that we are aware of. + +In order to help you with the boring task of gathering the necessary raw material, we have developed a program that instructs the \l;wheeled grabber\u object\botgr; to look for \l;titanium ore\u object\titanore; on its own (see the programming page \button 53;). + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/D/mhcrys2.txt b/help/D/mhcrys2.txt new file mode 100644 index 00000000..b0ceb067 --- /dev/null +++ b/help/D/mhcrys2.txt @@ -0,0 +1,11 @@ +\b;From Mission Control +Cleanse the area of all hostile organisms. The way you accomplish this (\l;defense tower\u object\tower; or \l;winged shooter\u object\botfj;) is up to you. + +The radar seems to be perfectly suited to the detection of worms. Keep in mind though that they only appear when they are on the surface. + +We relayed a transmission to your \l;bot factory\u object\factory;. It concerns a bot designed to detect raw materials in the subsoil: energy sources, ore. We call it a \l;sniffer\u object\botsr; for short. Preliminary analysis leads us to believe that the presence of titanium ore on Crystalium is closely linked to the growth of large blue crystals. If this is indeed the case, this information should allow you to save some precious time. A \l;derrick\u object\derrick; is of course required for the extraction. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/D/mhcrys3.txt b/help/D/mhcrys3.txt new file mode 100644 index 00000000..029ced15 --- /dev/null +++ b/help/D/mhcrys3.txt @@ -0,0 +1,9 @@ +\b;From Mission Control +We have just received this warning from the observation satellite: a rogue bot from the previous expedition has seized the black box from your spaceship. + +We are going to investigate this incident further but it is of vital importance that you retrieve your black box at once. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/D/mhcrys4.txt b/help/D/mhcrys4.txt new file mode 100644 index 00000000..a1db90ef --- /dev/null +++ b/help/D/mhcrys4.txt @@ -0,0 +1,11 @@ +\b;From Mission Control +This planet has turned out to be a very unlikely candidate for colonization. Better to leave it for good. Retrieve the \l;black box\u object\bbox; from the previous expedition and head towards the next planet. + +The observation satellite has indicated that its present location is at the bottom of a valley. However the pervasive stratum of electromagnetic smog could make all satellite information rather undependable. + +Stay alert. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/D/mhlune1.txt b/help/D/mhlune1.txt new file mode 100644 index 00000000..8bc9c193 --- /dev/null +++ b/help/D/mhlune1.txt @@ -0,0 +1,22 @@ +\b;From Mission Control +Collect 4 chunks of \l;titanium ore\u object\titanore; and bring them back aboard your \l;spaceship\u object\base;. Build the equipment necessary for this task (\l;flying bots\u object\botgj;). + +Before you venture any further, you should always take a look at the satellite report \button 186;. + +We have transmitted to your \l;spaceship\u object\base; a program that might help you in this task; please refer to the corresponding page of your SatCom with the button \button 53;. + +\b;Procedure +1) A new \l;research program\u object\research; is required for winged bots to be added to the list of bots that can be produced by the factory. This research program will also make the propulsion reactor in your personal survival kit operational. + +2) Produce a \l;winged grabber\u object\botgj; and collect the 4 chunks of \l;titanium ore\u object\titanore;. + +3) Take the \l;winged grabber\u object\botgj; and the \l;wheeled grabber\u object\botgr; along with you and take off. + +Be careful that your winged bot does not run out of power when you are far from base. If necessary, replace the \l;power cell\u object\power; before leaving the spaceship. You can either do this manually or you can execute the enclosed program provided by Houston \button 53;. + +In order not to lose your way among the numerous craters on the Moon's surface, use the mini map on the lower right-hand corner of your screen. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom. + +\t;See also +\l;Controls\u command; diff --git a/help/D/mhlune2.txt b/help/D/mhlune2.txt new file mode 100644 index 00000000..5d6cfbd9 --- /dev/null +++ b/help/D/mhlune2.txt @@ -0,0 +1,17 @@ +\b;From Mission Control +This apparatus was set up by the previous expedition to test and train the flying capacity of winged bots. + +\b;Objective +Use these drills to your advantage. Your ability to survive future critical situations may depend upon the dexterity they will have helped you develop. + +\b;Procedure +Fly as quickly as possible through each target. Try to accomplish this without causing the engine to overheat. If this appears too difficult, just touch down and let the engine cool off. + +You should use the arrow keys on the keyboard to pilot the bot, but keep one hand on the mouse. The mouse is useless in this exercise, but will be essential in later missions. + +It may be useful to come back to these drills once in a while if you wish to improve your reflexes further. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/D/mhlune3.txt b/help/D/mhlune3.txt new file mode 100644 index 00000000..a11586b5 --- /dev/null +++ b/help/D/mhlune3.txt @@ -0,0 +1,7 @@ +\b;From Mission Control +Similar drill as before, only this time viewed through the camera placed on board. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/D/mhlune4.txt b/help/D/mhlune4.txt new file mode 100644 index 00000000..cc87d088 --- /dev/null +++ b/help/D/mhlune4.txt @@ -0,0 +1,20 @@ +\b;From Mission Control +We have no way of being sure where the previous expedition was headed when it left the Moon surface nor why it chose to go wherever it was going. + +Locate the \l;black box\u object\bbox; they must have left behind and bring it back aboard your ship. The black box should contain the coordinates of the next planet the expedition was planning to visit. + +Your bot's \l;power cells\u object\power; are almost entirely empty. Recharging them should be your priority. The observation satellite in orbit indicates that the subsoil in this particular area is loaded with energy. You should therefore be able to build a functional \l;power station\u object\station; on any flat surface. + +We have developed a program that will recharge the \l;power cell\u object\power; of a bot. Refer to the program page of your SatCom \button 53;. + +\b;Procedure +1) You first need to build a \l;converter\u object\convert; that converts the chunks of titanium ore already in your possession into usable \l;titanium cubes\u object\titan;. + +2) You should then build both a \l;power station\u object\station; and a \l;radar\u object\radar; which will indicate the location of the black box on your mini map. + +3) With your power cells fully charged, retrieve the black box. It needs to be placed on the \l;spaceship\u object\base; platform for you to be able to take off. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/D/mhorph1.txt b/help/D/mhorph1.txt new file mode 100644 index 00000000..7154f14a --- /dev/null +++ b/help/D/mhorph1.txt @@ -0,0 +1,13 @@ +\b;From Mission Control +It seems obvious enough that this planet will be no haven for humanity. + +Build a radar to relay future transmissions. + +Also... we're very sorry to inform you that you may need to exterminate all hostile organisms. + +The first expedition located \l;titanium ore\u object\titanore; under the surface of Orpheon. The spot is marked with a blue \l;flag\u object\flag;. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/D/mhorph2.txt b/help/D/mhorph2.txt new file mode 100644 index 00000000..7391a1fc --- /dev/null +++ b/help/D/mhorph2.txt @@ -0,0 +1,11 @@ +\b;From Mission Control +Retrieve the black box. + +Electromagnetic lightning bolts appear to strike even more frequently now than they did previously. You need to protect your equipment. + +Please note that your spaceship also naturally acts as a lightning conductor, and our engineers assure us that your space suit does not attract lightning. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/D/mhsaari1.txt b/help/D/mhsaari1.txt new file mode 100644 index 00000000..065eb931 --- /dev/null +++ b/help/D/mhsaari1.txt @@ -0,0 +1,7 @@ +\b;From Mission Control +The observation satellite has detected a chunk of \l;uranium ore\u object\uranore; on the summit of the main mountain. You need to bring it back to your spaceship. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/D/mhsaari2.txt b/help/D/mhsaari2.txt new file mode 100644 index 00000000..ae22711a --- /dev/null +++ b/help/D/mhsaari2.txt @@ -0,0 +1,11 @@ +\b;From Mission Control +Eliminate all hostile presence from the region. + +Your current situation is of utmost concern to us. The satellite has detected an extremely strong enemy presence approaching your spaceship from all directions. Use your best judgment and the quickest, most efficient defense: either \l;towers\u object\tower; or \l;shooters\u object\botfr;. + +In order to increase your survival chances, we have developed a program that will protect your west flank if you execute it on your \l;wheeled shooter\u object\botfr;; see the program page \button 53;. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/D/mhsaari3.txt b/help/D/mhsaari3.txt new file mode 100644 index 00000000..2a6b8587 --- /dev/null +++ b/help/D/mhsaari3.txt @@ -0,0 +1,9 @@ +\b;From Mission Control +Your satellite has located the remains of the previous expedition. You should come across a \l;black box\u object\bbox; not too far from there. It will give you the coordinates of your next destination. + +Exterminate the few remaining ants. We've been notified that your neutron gun is currently out of order so you will not be able to build new bots. We're convinced that you're resourceful enough at this point to come up with a solution. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/D/mhterra1.txt b/help/D/mhterra1.txt new file mode 100644 index 00000000..0b1fb5f9 --- /dev/null +++ b/help/D/mhterra1.txt @@ -0,0 +1,15 @@ +\b;From Mission Control +We've just received information that the first expedition designed a brand new weapon to be used on Terranova. It was safely stored away from possible enemy reach, inside a \l;vault\u object\safe; which can be accessed only by using four \l;keys\u object\key;. The keys are scattered on or under the planet surface. + +The observation satellite has located one of these keys (A) north of your present position. + +In compliance with Congress directives, our engineers have developed yet another strictly "defensive" bot : it is called a \l;shielder\u object\botshld; and it will offer adequate protection within a given perimeter. The data have been transmitted to your \l;research center\u object\research; along with a couple of relevant programs. + +As you may know, uranium ore in the subsoil is a powerful fertilizer, furthering the growth of a variety of mushrooms. Please also note that \l;titanium ore\u object\titanore; is often located at the bottom of lakes on this planet. + +When your mission is completed and before taking off, bring both a \l;shielder\u object\botshld; and a \l;subber\u object\botsub; aboard your spaceship. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/D/mhterra2.txt b/help/D/mhterra2.txt new file mode 100644 index 00000000..530285a9 --- /dev/null +++ b/help/D/mhterra2.txt @@ -0,0 +1,9 @@ +\b;From Mission Control +Retrieve the second \l;key\u object\key; (B). It should be located near your current position. + +When your mission is completed and before taking off, bring both \l;shielder\u object\botshld; and \l;subber\u object\botsub; aboard your spaceship. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/D/mhterra3.txt b/help/D/mhterra3.txt new file mode 100644 index 00000000..f3ca9465 --- /dev/null +++ b/help/D/mhterra3.txt @@ -0,0 +1,9 @@ +\b;From Mission Control +The third \l;key\u object\key; (C) is buried in a mushroom-infested area. A \l;sniffer\u object\botss; should be able to locate it and a \l;derrick\u object\derrick; should be able to extract it. + +When your mission is completed and before taking off, bring both \l;shielder\u object\botshld; and \l;subber\u object\botsub; aboard your spaceship. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/D/mhterra4.txt b/help/D/mhterra4.txt new file mode 100644 index 00000000..cf29413f --- /dev/null +++ b/help/D/mhterra4.txt @@ -0,0 +1,13 @@ +\b;From Mission Control +With the help of the fourth \l;key\u object\key; (D) located nearby, you will finally gain access to the \l;vault\u object\safe;. The groundbreaking bot you'll find inside was named a "\l;phazer\u object\botphaz;". + +A program allowing for a collaboration between a \l;phazer\u object\botphaz; and a \l;shielder\u object\botshld; has been attached. + +You should soon find yourself in a position to test your new weapon. Your last mission is to dispose of the \l;Alien Queen\u object\mother;, the egglayer responsible for the growing number of insects on Terranova. The phazer might very well be the only bot capable of getting the job done. + +There will then be no further obstacle to the human colonization of this magnificent planet and you'll soon be able to notify Earth of the success of your mission. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/D/mhterre1.txt b/help/D/mhterre1.txt new file mode 100644 index 00000000..7c758945 --- /dev/null +++ b/help/D/mhterre1.txt @@ -0,0 +1,27 @@ +\b;From the NASA Training Center +We are pleased to inform you that you have been selected for the space exploration mission Colobot. + +Your psychological profile has been established as more than 98.84% favorable, and your aptitude during the extensive testing period was undeniable. The detailed results are at your disposal in the central computer under the registration number that was assigned to you. + +Please report to the \l;Houston Mission Control\u object\Huston; for further directives about your forthcoming mission. + +\b;From Houston Mission Control +As you know, Earth is heading towards imminent disaster, due to increasing atmospheric pollution. + +\l;Your\u object\human; mission consists of exploring neighboring galaxies with the hopes of finding a planet that will be suitable to human needs and possibly serve as a shelter for mankind. You will be on your own for the entire mission but your spaceship will be carrying a few bots along. + +Eight months ago an expedition composed entirely of robots was sent across the cosmos with the same objective. It encountered a fair share of obstacles along the way, apparently landing on planets that were unsuitable for colonization, even possibly outright hostile. Very recently all communications were terminated. + +The reasons for the mission's failure are unclear at this date, mainly because of recurrent transmission problems. It is our hope that you will be able to use some of the data it gathered to your advantage. + +\b;Immediate Objective +The Nevada desert is already bustling with activity. Bots are setting up a space station catered to your specific needs. + +In order to let you familiarize with your spacesuit and equipment, we have set up a few training drills. + +In the first drill, you need to find your survival kit that contains all the tools necessary to brave the cold of outer space. It is easy to spot since it contains both an orange and a blue tank. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; diff --git a/help/D/mhterre2.txt b/help/D/mhterre2.txt new file mode 100644 index 00000000..14de04fe --- /dev/null +++ b/help/D/mhterre2.txt @@ -0,0 +1,14 @@ +\b;From Mission Control +This is your second drill. \l;You\u object\human; should now familiarize yourself with the handling of basic equipment. This could turn out to be your best ally during the course of this expedition. + +The construction of buildings and the manufacturing of bots all require the use of \l;titanium\u object\titan;. Titanium is a mineral found in most solar systems in the universe. + +\b;Procedure +1) Position yourself close to the first \l;titanium cube\u object\titan;. +2) Build a \l;research center\u object\research; \button 163;. Note that only \l;you\u object\human; can accomplish the task of building; no bot can be substituted. +3) With a second \l;titanium cube\u object\titan;, build a \l;bot factory\u object\factory; \button 160;. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; diff --git a/help/D/mhterre3.txt b/help/D/mhterre3.txt new file mode 100644 index 00000000..ca679582 --- /dev/null +++ b/help/D/mhterre3.txt @@ -0,0 +1,24 @@ +\b;From Mission Control +Your \l;spaceship\u object\base; is now standing on the launching pad, ready for takeoff. + +The last drill left for \l;you\u object\human; to perform before embarking on your journey is to equip your spaceship with its \l;black box\u object\bbox;. The only way to reach the \l;black box\u object\bbox; is by a steep path that can only be climbed by a \l;tracked grabber\u object\botgc; which you need to build. + +Unfortunately your \l;bot factory\u object\factory; hasn't yet got the capacity to assemble this type of bot. You need to request your \l;research center\u object\research; to come up with a blueprint for this particular propeller. + +\b;Procedure +1) Power the research center with one of the green \l;power cells\u object\power;. +2) Click on the button \button 64;. +3) Drop a \l;titanium cube\u object\titan; in the center of the \l;bot factory\u object\factory; and build a \l;tracked grabber\u object\botgc;. +4) Power and radio-control the \l;tracked grabber\u object\botgc; to the top of the southwest-oriented mountain. +5) Bring the black box back aboard your spaceship. +6) Don't forget to take the \l;wheeled grabber\u object\botgr; along. These bots may prove very useful in the future. +7) Climb aboard the \l;spaceship\u object\base;. +11) Select the \l;spaceship\u object\base; and take off \button 28;. + + +Please note: To work more efficiently, you can use the \l;wheeled grabber\u object\botgr;. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; diff --git a/help/D/mhtropi1.txt b/help/D/mhtropi1.txt new file mode 100644 index 00000000..8b4e5110 --- /dev/null +++ b/help/D/mhtropi1.txt @@ -0,0 +1,10 @@ +\b;From Mission Control +The observation satellite has detected a new kind of explosive apparently designed by the previous expedition. You must locate it and bring it back to your \l;spaceship\u object\base;. + +\b;Procedure +The location of the explosive is marked by a red cross on your mini map. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; diff --git a/help/D/mhtropi2.txt b/help/D/mhtropi2.txt new file mode 100644 index 00000000..a6f8603a --- /dev/null +++ b/help/D/mhtropi2.txt @@ -0,0 +1,18 @@ +\b;From Mission Control +It is our hope that this message will reach you. + +A transmission from the observation satellite a few hours ago informed us that you seemed to be wandering in a frighteningly uncoordinated manner. Your SatCom has ceased broadcasting. Your reactor seems to have suffered some sort of damage and your helmet was spotted at the bottom of a lake. If this is indeed the case, do not try to retrieve it, do not go into the water! Water on Tropica is highly toxic. You would not survive it. + +Get back to your ship as quickly as possible and try to transmit information about the possible causes of this disaster. The satellite's information remains undecipherable. We have been speculating about an X-factor ever since the first expedition got lost. It appears you have just encountered it. + +There is nothing we can really do to guide you but don't forget that you're following in the footsteps of a previous expedition. If what happened to you is what happened to them, chances are they may have left some clues along the way back to their own spaceship which landed in roughly the same area as yours. Use those clues. + +You may also want to consider planting flags. They indicate the direction of the wind so you can use them to orient yourself. + +This is all we can say for now... +Good Luck... + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; diff --git a/help/D/mhtropi3.txt b/help/D/mhtropi3.txt new file mode 100644 index 00000000..02ae2348 --- /dev/null +++ b/help/D/mhtropi3.txt @@ -0,0 +1,16 @@ +\b;From Mission Control +Terminate all hostile life-form. +Perform the necessary \l;research program\u object\research; in order to develop an offensive weapon system. + +The satellite has detected an energy source, on a spot marked by the previous expedition with a blue flag (blue cross on the mini-map). + +Do not forget to take a look at the satellite report \button 186; before you venture any further in a mission; we suspect that you have not always done this. + +We have improved the recharge program. Please refer to the page \button 53;. + +A note of warning: bots cannot be submerged. If in doubt, test the water yourself if you plan to radio-control a non-winged bot across - water shouldn't be deeper than knee-level. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/D/mhtropi4.txt b/help/D/mhtropi4.txt new file mode 100644 index 00000000..657e0da1 --- /dev/null +++ b/help/D/mhtropi4.txt @@ -0,0 +1,13 @@ +\b;From Mission Control +This is another training course set up by your predecessors and intended this time to test and train the firing capacity of \l;winged bots\u object\botfj;. Use it to familiarize yourself with the two simultaneous actions of shooting while flying. + +Fly quickly through all targets and shoot all 10 explosive devices scattered along the way. Try to complete the drill without touching down. Watch your reactor though: if it overheats, just settle the bot and let it cool off. + +Use one hand on the keyboard to pilot the bot, and the other hand on the mouse to aim and to shoot (left button). + +It may be useful to come back to these drills once in a while if you wish to improve your reflexes further. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/D/mhtropi5.txt b/help/D/mhtropi5.txt new file mode 100644 index 00000000..d8f30ee6 --- /dev/null +++ b/help/D/mhtropi5.txt @@ -0,0 +1,9 @@ +\b;From Mission Control +Locate and retrieve another \l;black box\u object\bbox; from the previous expedition. + +The observation satellite seems to have spotted it underwater. Water is harmless to you as long as you wear your helmet but keep in mind that you can't carry objects underwater. A \l;subber\u object\botsub; may come in handy. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/D/mhvolca1.txt b/help/D/mhvolca1.txt new file mode 100644 index 00000000..0344a8ab --- /dev/null +++ b/help/D/mhvolca1.txt @@ -0,0 +1,13 @@ +\b;From Mission Control +You need to retrieve an \l;explosive device\u object\tnt; that has been spotted in a deep valley next to a lake of boiling lava. + +Because of the high temperatures, reactors no longer function, i.e. flying is impossible. It is a long way there and you should equip your bots with \l;nuclear power cells\u object\atomic;. Nuclear power cells are manufactured from \l;uranium ore\u object\uranore;. + +A more efficient program for the gathering of raw materials is attached to this message. + +A note of warning: the explosive device is extremely volatile. Use extreme caution. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/D/mhvolca2.txt b/help/D/mhvolca2.txt new file mode 100644 index 00000000..41dccc38 --- /dev/null +++ b/help/D/mhvolca2.txt @@ -0,0 +1,17 @@ +\b;From Mission Control +The previous expedition provided us with a piece of information about some \l;organic matter\u object\bullet;, which seems to be produced by the \l;ants\u object\ant;, and which opened startling new possibilities. It apparently allows the creation of a new type of mutant bot with enhanced performance through the use of insect parts. + +Your mission is to experiment with the first practical application of this "green gold". Build a \l;legged grabber bot\u object\botgs;, load it on the spaceship and take off. + +\b;Procedure +Take a sample of organic matter from a nest of giant ants. The analysis of it will be performed by an \l;autolab\u object\labo;, which will also perform the necessary research to allow a practical application. + +In order to improve your defense capacity, we have transmitted a program to your \l;grabber bots\u object\botgr; that takes care of recharging the power cell of a \l;defense tower\u object\tower; (see \button 53; ). + +\b;Note +The temperature has dropped significantly, it should therefore be possible to fly. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/D/mhvolca3.txt b/help/D/mhvolca3.txt new file mode 100644 index 00000000..ba33482c --- /dev/null +++ b/help/D/mhvolca3.txt @@ -0,0 +1,7 @@ +\b;From Mission Control +This planet is obviously unsuited to a long-lasting colonization. Retrieve the \l;black box\u object\bbox; from the previous expedition then take off. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/D/mhvolca4.txt b/help/D/mhvolca4.txt new file mode 100644 index 00000000..2a3876a0 --- /dev/null +++ b/help/D/mhvolca4.txt @@ -0,0 +1,9 @@ +\b;An urgent notification from Mission Control +As you were about to take off, we received from the satellite the following piece of information: a bot of a type yet unknown has been spotted on Volcano. Try to bring it back onto your spaceship for further study. + +Our engineers on Earth have very recently come up with a formula that should allow reactors to function properly, at least for a short while, despite the high temperatures. The data have been transmitted to you. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/D/mhvolca5.txt b/help/D/mhvolca5.txt new file mode 100644 index 00000000..a83bb143 --- /dev/null +++ b/help/D/mhvolca5.txt @@ -0,0 +1,11 @@ +\b;From Mission Control +Congratulations on a fine job as usual. + +This new weapon appears to be yet another practical application of what we've come to refer to as "green gold", the \l;organic matter\u object\bullet; produced by the insects. We've named this bot the \l;orga shooter\u object\botoj; or bot equipped with an orgaball cannon. + +It will most certainly come in handy as you make your way back to your \l;spaceship\u object\base;. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/D/mhvolca6.txt b/help/D/mhvolca6.txt new file mode 100644 index 00000000..35225cc4 --- /dev/null +++ b/help/D/mhvolca6.txt @@ -0,0 +1,7 @@ +\b;From Mission Control +You need to repel a last minute ant attack before taking off. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/D/micent1.txt b/help/D/micent1.txt new file mode 100644 index 00000000..57f72f1d --- /dev/null +++ b/help/D/micent1.txt @@ -0,0 +1,20 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Centaury. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 23.4C +\tab;Atmosphere: oxygen, nitrogen, ammonia +\tab;Wind: 1.2 mps +\tab;Titanium ore: some +\tab;Uranium ore: some + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: not immediate +\tab;Detected: reusable derelicts +\n; diff --git a/help/D/micent2.txt b/help/D/micent2.txt new file mode 100644 index 00000000..46c3e658 --- /dev/null +++ b/help/D/micent2.txt @@ -0,0 +1,15 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Centaury. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 25.4C +\tab;Atmosphere: oxygen, nitrogen, ammonia +\tab;Wind: 1.2 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none +\n; diff --git a/help/D/micent3.txt b/help/D/micent3.txt new file mode 100644 index 00000000..cff00288 --- /dev/null +++ b/help/D/micent3.txt @@ -0,0 +1,22 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Centaury. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 25.4C +\tab;Atmosphere: oxygen, nitrogen, ammonia +\tab;Wind: 0.7 mps +\tab;Titanium ore: some +\tab;Uranium ore: some + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: not immediate +\tab;Detected: spiders +\tab; - Danger: not immediate +\tab;Detected: reusable derelicts +\n; diff --git a/help/D/micent4.txt b/help/D/micent4.txt new file mode 100644 index 00000000..d76f7316 --- /dev/null +++ b/help/D/micent4.txt @@ -0,0 +1,20 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Centaury. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 21.3C +\tab;Atmosphere: oxygen, nitrogen, ammonia +\tab;Wind: 1.9 mps +\tab;Titanium ore: some +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: not immediate +\tab;Detected: derelicts of no particular use +\n; diff --git a/help/D/micent5.txt b/help/D/micent5.txt new file mode 100644 index 00000000..c979dbb9 --- /dev/null +++ b/help/D/micent5.txt @@ -0,0 +1,19 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Centaury. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 21.3C +\tab;Atmosphere: oxygen, nitrogen, ammonia +\tab;Wind: 1.9 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: immediate +\n; diff --git a/help/D/micrys1.txt b/help/D/micrys1.txt new file mode 100644 index 00000000..9458bf1d --- /dev/null +++ b/help/D/micrys1.txt @@ -0,0 +1,19 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Crystalium. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 5.4C +\tab;Atmosphere: nitrogen +\tab;Wind: 0.0 mps +\tab;Titanium ore: some +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: data not available +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: unidentified organisms +\tab; - Danger: ? +\n; diff --git a/help/D/micrys2.txt b/help/D/micrys2.txt new file mode 100644 index 00000000..2a4c1d8a --- /dev/null +++ b/help/D/micrys2.txt @@ -0,0 +1,19 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Crystalium. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 3.2C +\tab;Atmosphere: nitrogen +\tab;Wind: 0.0 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: isolated (close to the spaceship) +\tab;Titanium ore: scattered +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: worms +\tab; - Danger: no +\n; diff --git a/help/D/micrys3.txt b/help/D/micrys3.txt new file mode 100644 index 00000000..6e76e8a8 --- /dev/null +++ b/help/D/micrys3.txt @@ -0,0 +1,21 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Crystalium. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 4.3C +\tab;Atmosphere: nitrogen +\tab;Wind: 0.0 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: not immediate +\tab;Detected: unknown organisms +\tab; - Danger: ? +\n; diff --git a/help/D/micrys4.txt b/help/D/micrys4.txt new file mode 100644 index 00000000..2873cb70 --- /dev/null +++ b/help/D/micrys4.txt @@ -0,0 +1,19 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Crystalium. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 1.2C +\tab;Atmosphere: nitrogen +\tab;Wind: 0.0 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: electromagnetic smog +\tab;Detected: reusable derelicts +\n; diff --git a/help/D/milune1.txt b/help/D/milune1.txt new file mode 100644 index 00000000..775c0506 --- /dev/null +++ b/help/D/milune1.txt @@ -0,0 +1,18 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of the Moon. +\c; +\s;-> SURFACE\c; +\tab;Temperature: -53.1C +\tab;Atmosphere: none +\tab;Wind: 0.0 mps +\tab;Titanium ore: some +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Terrain in places too uneven for wheeled bots. +\n; diff --git a/help/D/milune2.txt b/help/D/milune2.txt new file mode 100644 index 00000000..dd7ea770 --- /dev/null +++ b/help/D/milune2.txt @@ -0,0 +1,15 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of the Moon. +\c; +\s;-> SURFACE\c; +\tab;Temperature: -51.0C +\tab;Atmosphere: none +\tab;Wind: 0.0 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none +\n; diff --git a/help/D/milune3.txt b/help/D/milune3.txt new file mode 100644 index 00000000..d50b3109 --- /dev/null +++ b/help/D/milune3.txt @@ -0,0 +1,15 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of the Moon. +\c; +\s;-> SURFACE\c; +\tab;Temperature: -58.9C +\tab;Atmosphere: none +\tab;Wind: 0.0 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none +\n; diff --git a/help/D/milune4.txt b/help/D/milune4.txt new file mode 100644 index 00000000..a57ce4b3 --- /dev/null +++ b/help/D/milune4.txt @@ -0,0 +1,15 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of the Moon. +\c; +\s;-> SURFACE\c; +\tab;Temperature: -38.2C +\tab;Atmosphere: none +\tab;Wind: 0.0 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: everywhere +\tab;Titanium ore: none +\tab;Uranium ore: none +\n; diff --git a/help/D/miorph1.txt b/help/D/miorph1.txt new file mode 100644 index 00000000..6414f2d0 --- /dev/null +++ b/help/D/miorph1.txt @@ -0,0 +1,20 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Orpheon. +\c; +\s;-> SURFACE\c; +\tab;Temperature: -72.8C +\tab;Atmosphere: none +\tab;Wind: 0.0 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: some (blue flag) +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: not immediate +\tab;Detected: fierce electromagnetic storms +\n; diff --git a/help/D/miorph2.txt b/help/D/miorph2.txt new file mode 100644 index 00000000..5db18a70 --- /dev/null +++ b/help/D/miorph2.txt @@ -0,0 +1,20 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Orpheon. +\c; +\s;-> SURFACE\c; +\tab;Temperature: -64.7C +\tab;Atmosphere: none +\tab;Wind: 0.0 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: not immediate +\tab;Detected: fierce electromagnetic storms +\n; diff --git a/help/D/misaari1.txt b/help/D/misaari1.txt new file mode 100644 index 00000000..957227a7 --- /dev/null +++ b/help/D/misaari1.txt @@ -0,0 +1,20 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Saari. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 41.3C +\tab;Atmosphere: CO2, oxygen, nitrogen +\tab;Wind: 2.3 mps +\tab;Titanium ore: none +\tab;Uranium ore: some (mountain summit) + +\s;-> SUBSOIL\c; +\tab;Energy source: everywhere +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: reusable derelicts +\tab;Detected: giant ants +\tab; - Danger: not immediate +\n; diff --git a/help/D/misaari2.txt b/help/D/misaari2.txt new file mode 100644 index 00000000..6eddf002 --- /dev/null +++ b/help/D/misaari2.txt @@ -0,0 +1,19 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Saari. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 38.4C +\tab;Atmosphere: CO2, oxygen, nitrogen +\tab;Wind: 1.4 mps +\tab;Titanium ore: some +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: everywhere +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants approaching +\tab; - Danger: yes, immediate +\n; diff --git a/help/D/misaari3.txt b/help/D/misaari3.txt new file mode 100644 index 00000000..8822ca92 --- /dev/null +++ b/help/D/misaari3.txt @@ -0,0 +1,20 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Saari. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 44.3C +\tab;Atmosphere: CO2, oxygen, nitrogen +\tab;Wind: 2.3 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: reusable derelicts +\tab;Detected: giant ants +\tab; - Danger: ? +\n; diff --git a/help/D/miterra1.txt b/help/D/miterra1.txt new file mode 100644 index 00000000..683cffe2 --- /dev/null +++ b/help/D/miterra1.txt @@ -0,0 +1,22 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Terranova. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 24.8C +\tab;Atmosphere: oxygen +\tab;Wind: 0.7 mps +\tab;Titanium ore: underwater +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: at some places +\tab;Titanium ore: none +\tab;Uranium ore: some + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: immediate +\tab;Detected: giant wasps +\tab; - Danger: not immediate +\tab;Detected: reusable derelicts +\n; diff --git a/help/D/miterra2.txt b/help/D/miterra2.txt new file mode 100644 index 00000000..ae7e7705 --- /dev/null +++ b/help/D/miterra2.txt @@ -0,0 +1,19 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Terranova. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 24.3C +\tab;Atmosphere: oxygen +\tab;Wind: 0.8 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: immediate +\n; diff --git a/help/D/miterra3.txt b/help/D/miterra3.txt new file mode 100644 index 00000000..73697df5 --- /dev/null +++ b/help/D/miterra3.txt @@ -0,0 +1,21 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Terranova. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 26.1C +\tab;Atmosphere: oxygen +\tab;Wind: 0.4 mps +\tab;Titanium ore: some +\tab;Uranium ore: some + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: immediate +\tab;Detected: giant wasps +\tab; - Danger: immediate +\n; diff --git a/help/D/miterra4.txt b/help/D/miterra4.txt new file mode 100644 index 00000000..779d59c0 --- /dev/null +++ b/help/D/miterra4.txt @@ -0,0 +1,21 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Terranova. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 23.7C +\tab;Atmosphere: oxygen +\tab;Wind: 0.5 mps +\tab;Titanium ore: some +\tab;Uranium ore: some + +\s;-> SUBSOIL\c; +\tab;Energy source: in some places (spaceship) +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: immediate +\tab;Detected: giant egglayer +\tab; - Danger: ? +\n; diff --git a/help/D/mitropi1.txt b/help/D/mitropi1.txt new file mode 100644 index 00000000..abb2258b --- /dev/null +++ b/help/D/mitropi1.txt @@ -0,0 +1,21 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Tropica. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 32.4C +\tab;Atmosphere: helium, oxygen +\tab;Wind: 1.2 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: explosive +\tab; - Type: unknown +\tab;Detected: unidentified organisms +\tab; - Danger: ? +\n; diff --git a/help/D/mitropi3.txt b/help/D/mitropi3.txt new file mode 100644 index 00000000..eed21844 --- /dev/null +++ b/help/D/mitropi3.txt @@ -0,0 +1,20 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Tropica. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 29.6C +\tab;Atmosphere: helium, oxygen +\tab;Wind: 1.5 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: isolated (blue flag) +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: not immediate +\tab;Detected: reusable derelicts +\n; diff --git a/help/D/mitropi4.txt b/help/D/mitropi4.txt new file mode 100644 index 00000000..8717928b --- /dev/null +++ b/help/D/mitropi4.txt @@ -0,0 +1,15 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Tropica. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 32.2C +\tab;Atmosphere: helium, oxygen +\tab;Wind: 0.7 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none +\n; diff --git a/help/D/mitropi5.txt b/help/D/mitropi5.txt new file mode 100644 index 00000000..0f9cce87 --- /dev/null +++ b/help/D/mitropi5.txt @@ -0,0 +1,21 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Tropica. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 29.4C +\tab;Atmosphere: helium, oxygen +\tab;Wind: 0.3 mps +\tab;Titanium ore: some +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: titanium ore +\tab; - Requires: converter +\tab;Detected: scattered derelicts +\tab;Detected: black box (underwater) +\n; diff --git a/help/D/mivolca1.txt b/help/D/mivolca1.txt new file mode 100644 index 00000000..8c071e9b --- /dev/null +++ b/help/D/mivolca1.txt @@ -0,0 +1,20 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Volcano. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 84.6C +\tab;Atmosphere: CO2, SO2, HCN, HS, CH4, NH3 +\tab;Wind: 2.2 mps +\tab;Titanium ore: everywhere +\tab;Uranium ore: some + +\s;-> SUBSOIL\c; +\tab;Energy source: everywhere +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: reusable derelicts +\tab;Detected: unknown organisms +\tab; - Danger: ? +\n; diff --git a/help/D/mivolca2.txt b/help/D/mivolca2.txt new file mode 100644 index 00000000..eae66bbb --- /dev/null +++ b/help/D/mivolca2.txt @@ -0,0 +1,21 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Volcano. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 53.1C +\tab;Atmosphere: CO2, SO2, HCN, HS, CH4, NH3 +\tab;Wind: 0.3 mps +\tab;Titanium ore: some +\tab;Uranium ore: little + +\s;-> SUBSOIL\c; +\tab;Energy source: everywhere +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: yes, not immediate +\tab;Detected: unknown flying organisms +\tab; - Danger: yes, immediate +\n; diff --git a/help/D/mivolca3.txt b/help/D/mivolca3.txt new file mode 100644 index 00000000..0d314f33 --- /dev/null +++ b/help/D/mivolca3.txt @@ -0,0 +1,19 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Volcano. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 83.5C +\tab;Atmosphere: CO2, SO2, HCN, HS, CH4, NH3 +\tab;Wind: 3.4 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: everywhere +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: not immediate +\n; diff --git a/help/D/mivolca4.txt b/help/D/mivolca4.txt new file mode 100644 index 00000000..46046659 --- /dev/null +++ b/help/D/mivolca4.txt @@ -0,0 +1,21 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Volcano. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 96.7C +\tab;Atmosphere: CO2, SO2, HCN, HS, CH4, NH3 +\tab;Wind: 2.8 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: bot +\tab; - Type: unknown +\tab;Detected: giant ants +\tab; - Danger: not immediate +\n; diff --git a/help/D/mivolca5.txt b/help/D/mivolca5.txt new file mode 100644 index 00000000..1a8aceeb --- /dev/null +++ b/help/D/mivolca5.txt @@ -0,0 +1,21 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Volcano. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 96.6C +\tab;Atmosphere: CO2, SO2, HCN, HS, CH4, NH3 +\tab;Wind: 2.7 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: immediate +\tab;Detected: giant spiders +\tab; - Danger: not immediate +\n; diff --git a/help/D/mivolca6.txt b/help/D/mivolca6.txt new file mode 100644 index 00000000..19e3556b --- /dev/null +++ b/help/D/mivolca6.txt @@ -0,0 +1,19 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Volcano. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 96.6C +\tab;Atmosphere: CO2, SO2, HCN, HS, CH4, NH3 +\tab;Wind: 2.7 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: immediate +\n; diff --git a/help/D/mlcent1.txt b/help/D/mlcent1.txt new file mode 100644 index 00000000..01b6c330 --- /dev/null +++ b/help/D/mlcent1.txt @@ -0,0 +1,15 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/D/mlcent2.txt b/help/D/mlcent2.txt new file mode 100644 index 00000000..01b6c330 --- /dev/null +++ b/help/D/mlcent2.txt @@ -0,0 +1,15 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/D/mlcent3.txt b/help/D/mlcent3.txt new file mode 100644 index 00000000..01b6c330 --- /dev/null +++ b/help/D/mlcent3.txt @@ -0,0 +1,15 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/D/mlcent4.txt b/help/D/mlcent4.txt new file mode 100644 index 00000000..01b6c330 --- /dev/null +++ b/help/D/mlcent4.txt @@ -0,0 +1,15 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/D/mlcent5.txt b/help/D/mlcent5.txt new file mode 100644 index 00000000..01b6c330 --- /dev/null +++ b/help/D/mlcent5.txt @@ -0,0 +1,15 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/D/mlcrys1.txt b/help/D/mlcrys1.txt new file mode 100644 index 00000000..99fa7fde --- /dev/null +++ b/help/D/mlcrys1.txt @@ -0,0 +1,29 @@ +\b;Programs dispatched by Houston +Below is one of the programs that has been developed by our engineers. +It instructs a \l;grabber\u object\botgr; to retrieve the nearest chunk of \l;titanium ore\u object\titanore; and place it on the \l;converter\u object\convert;. + +In order to execute this program, select the program \c;CollectTitanium1\n; in the list of the programs available on the bot (on the lower left-hand corner of your screen), and click on the arrow symbol \button 21;. At any moment you can stop the program and take over at the controls with the stop button \button 8;. +\c; +\s;extern void object::CollectTitanium1() +\s;{ +\s; // 1) Variable definition. +\s; \l;object\u cbot\type; item; // info. about objects +\s; +\s; // 2) Go to the titanium ore and grab it. +\s; item = \l;radar\u cbot\radar;(\l;TitaniumOre\u cbot\category;);// look for titanium ore +\s; \l;goto\u cbot\goto;(item.position); // go to the position +\s; \l;grab\u cbot\grab;(); // grab the titanium +\s; +\s; // 3) Go to the converter and drop it. +\s; item = \l;radar\u cbot\radar;(\l;Converter\u cbot\category;); // look for converter +\s; \l;goto\u cbot\goto;(item.position); // go to the position +\s; \l;drop\u cbot\drop;(); // drop the titanium +\s; \l;move\u cbot\move;(-2.5); // step back 2.5 m +\s;} +\n; +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/D/mlcrys2.txt b/help/D/mlcrys2.txt new file mode 100644 index 00000000..5e1a7ec3 --- /dev/null +++ b/help/D/mlcrys2.txt @@ -0,0 +1,38 @@ +\b;Programs dispatched by Houston +Below is one of the programs that has been developed by our engineers. +An upgrade on the previous program: the \l;grabber\u object\botgr;, on its way back from the converter, makes a stop, if necessary, at the \l;power station\u object\station; to recharge its power cell. + +This program also works on \l;winged grabbers\u object\botgj;, if the \l;derrick\u object\derrick; is on another island than the \l;converter\u object\convert;. +\c; +\s;extern void object::CollectTitanium2() +\s;{ +\s; // 1) Variable definition. +\s; \l;object\u cbot\type; item; // info. about objects +\s; +\s; // 2) Go to the titanium ore and grab it. +\s; item = \l;radar\u cbot\radar;(\l;TitaniumOre\u cbot\category;);// look for titanium ore +\s; \l;goto\u cbot\goto;(item.position); // go to the position +\s; \l;grab\u cbot\grab;(); // grab the titanium +\s; +\s; // 3) Go to the converter and drop it. +\s; item = \l;radar\u cbot\radar;(\l;Converter\u cbot\category;); // look for converter +\s; \l;goto\u cbot\goto;(item.position); // go to the position +\s; \l;drop\u cbot\drop;(); // drop the titanium +\s; \l;move\u cbot\move;(-2.5); // step back 2.5 m +\s; +\s; // 4) If power cell half empty, recharges. +\s; if ( energyCell.energyLevel < 0.5 ) +\s; { // if so: +\s; item = \l;radar\u cbot\radar;(\l;PowerStation\u cbot\category;); // look for station +\s; \l;goto\u cbot\goto;(item.position); // go there +\s; \l;wait\u cbot\wait;(5); // wait +\s; } +\s;} +\n; +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/D/mlcrys3.txt b/help/D/mlcrys3.txt new file mode 100644 index 00000000..1357500d --- /dev/null +++ b/help/D/mlcrys3.txt @@ -0,0 +1,11 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/D/mlcrys4.txt b/help/D/mlcrys4.txt new file mode 100644 index 00000000..1357500d --- /dev/null +++ b/help/D/mlcrys4.txt @@ -0,0 +1,11 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/D/mllune1.txt b/help/D/mllune1.txt new file mode 100644 index 00000000..1850e907 --- /dev/null +++ b/help/D/mllune1.txt @@ -0,0 +1,17 @@ +\b;Programs dispatched by Houston +Following is a program that has been developed by our engineers. It allows you to switch \l;power cells\u object\power;. A charged cell needs to be placed on the ground in front of the bot. + +In order to execute this program, select the program \c;SwitchCell1\n; in the list of the programs available on the bot (on the lower left-hand corner of your screen), and click on the arrow symbol \button 21;. +\c; +\s;extern void object::SwitchCell1() +\s;{ +\s; \l;grab\u cbot\grab;(InFront); // take the new cell in front +\s; \l;drop\u cbot\drop;(Behind); // and drop it behind +\s; +\s; \l;grab\u cbot\grab;(EnergyCell); // take the cell from the bot +\s; \l;drop\u cbot\drop;(InFront); // and drop it in front +\s; +\s; \l;grab\u cbot\grab;(Behind); // take the new cell +\s; \l;drop\u cbot\drop;(EnergyCell); // and drop it on the bot +\s;} +\n; diff --git a/help/D/mllune2.txt b/help/D/mllune2.txt new file mode 100644 index 00000000..15fe0f0f --- /dev/null +++ b/help/D/mllune2.txt @@ -0,0 +1,7 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/D/mllune3.txt b/help/D/mllune3.txt new file mode 100644 index 00000000..5e7e6787 --- /dev/null +++ b/help/D/mllune3.txt @@ -0,0 +1,7 @@ +\b;Program(s) dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/D/mllune4.txt b/help/D/mllune4.txt new file mode 100644 index 00000000..fbc672cd --- /dev/null +++ b/help/D/mllune4.txt @@ -0,0 +1,23 @@ +\b;Programs dispatched by Houston +Below is a program that has been developed by our engineers. It allows you to recharge the \l;power cell\u object\power; of a bot: it goes to the closest \l;power station\u object\station;, waits 5 seconds, and comes back to the initial position. + +Remark: If you click on an element of the program underlined in blue, your SatCom will display a text that explains this element. The texts that follow a double slash \c;//\n; are not part of the program, but are comments that help you to understand the program. +\c; +\s;extern void object::Recharge1() +\s;{ +\s; \l;point\u cbot\type; start; // variable for initial pos. +\s; \l;object\u cbot\type; item; // info. about power station +\s; +\s; start = position; // store initial position +\s; +\s; item = \l;radar\u cbot\radar;(\l;PowerStation\u cbot\category;); // look for station +\s; \l;goto\u cbot\goto;(item.position); // go to the power station +\s; \l;wait\u cbot\wait;(5); // wait 5 seconds +\s; +\s; \l;goto\u cbot\goto;(start); // go back to initial pos. +\s;} +\n; +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/D/mlnull.txt b/help/D/mlnull.txt new file mode 100644 index 00000000..9fe96daa --- /dev/null +++ b/help/D/mlnull.txt @@ -0,0 +1,3 @@ +\b;Program(s) dispatched by Houston +No program was transmitted. +If you feel like developing one that can be of use to the completion of this mission, be our guest but you are on your own. diff --git a/help/D/mlorph1.txt b/help/D/mlorph1.txt new file mode 100644 index 00000000..01b6c330 --- /dev/null +++ b/help/D/mlorph1.txt @@ -0,0 +1,15 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/D/mlorph2.txt b/help/D/mlorph2.txt new file mode 100644 index 00000000..f856d805 --- /dev/null +++ b/help/D/mlorph2.txt @@ -0,0 +1,14 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/D/mlsaari1.txt b/help/D/mlsaari1.txt new file mode 100644 index 00000000..1357500d --- /dev/null +++ b/help/D/mlsaari1.txt @@ -0,0 +1,11 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/D/mlsaari2.txt b/help/D/mlsaari2.txt new file mode 100644 index 00000000..805dca34 --- /dev/null +++ b/help/D/mlsaari2.txt @@ -0,0 +1,31 @@ +\b;Programs dispatched by Houston +Execute the program \c;KillAnt1\n; immediately on your \l;wheeled shooter\u object\botfr;, it will protect your west flank. Meantime you can elaborate your defense strategy. +\c; +\s;extern void object::KillAnt1() +\s;{ +\s; \l;object\u cbot\type; item; // info. about object +\s; +\s; \l;goto\u cbot\goto;(-30, 0); // go west +\s; \l;aim\u cbot\aim;(0); // aim straight +\s; +\s; \l;while\u cbot\while; ( true ) // repeat forever: +\s; { +\s; item = \l;radar\u cbot\radar;(\l;AlienAnt\u cbot\category;, 0, 360, 0, 40); +\s; \l;if\u cbot\if; ( item != null ) // ant detected ? +\s; { +\s; \l;turn\u cbot\turn;(\l;direction\u cbot\direct;(item.position)); +\s; \l;fire\u cbot\fire;(0.5); // shoot 0.5 s +\s; } +\s; \l;wait\u cbot\wait;(1); // wait 1 second +\s; } +\s;} +\n; +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/D/mlsaari3.txt b/help/D/mlsaari3.txt new file mode 100644 index 00000000..13f3cec8 --- /dev/null +++ b/help/D/mlsaari3.txt @@ -0,0 +1,12 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/D/mlterra1.txt b/help/D/mlterra1.txt new file mode 100644 index 00000000..5ac691d0 --- /dev/null +++ b/help/D/mlterra1.txt @@ -0,0 +1,30 @@ +\b;Programs dispatched by Houston +According to the data transmitted by the satellite, our engineers have developed two programs. The first one guides the \l;shielder bot\u object\botshld; through the narrow valley north close to the place where the key has been located. You can follow it without fearing any attack: +\c; +\s;extern void object::Outward() +\s;{ +\s; \l;shield\u cbot\shield;(1,15); // activate the shield +\s; \l;goto\u cbot\goto;(6,160); // go close to the key +\s; \l;shield\u cbot\shield;(0,15); // deactivate the shield +\s;} +\n; +The second program guides the \l;shielder bot\u object\botshld; back to the \l;spaceship\u object\base;: +\c; +\s;extern void object::Return() +\s;{ +\s; \l;shield\u cbot\shield;(1,15); // activate the shield +\s; \l;goto\u cbot\goto;(8,60); // go to the spaceship +\s; \l;shield\u cbot\shield;(0,15); // deactivate the shield +\s;} +\n; +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/D/mlterra2.txt b/help/D/mlterra2.txt new file mode 100644 index 00000000..f856d805 --- /dev/null +++ b/help/D/mlterra2.txt @@ -0,0 +1,14 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/D/mlterra3.txt b/help/D/mlterra3.txt new file mode 100644 index 00000000..f856d805 --- /dev/null +++ b/help/D/mlterra3.txt @@ -0,0 +1,14 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/D/mlterra4.txt b/help/D/mlterra4.txt new file mode 100644 index 00000000..73e1d1ab --- /dev/null +++ b/help/D/mlterra4.txt @@ -0,0 +1,50 @@ +\b;Programs dispatched by Houston +Below is a program that has been developed by our engineers. + +It instructs the \l;shielder\u object\botshld; to follow and protect the \l;phazer\u object\botphaz;. +\c; +\s;extern void object::FollowPhazer() +\s;{ +\s; \l;object\u cbot\type; item; // info. about phazer +\s; \l;point\u cbot\type; dest; // position where to go +\s; \l;float\u cbot\type; dist; // distance to phazer +\s; +\s; item = \l;radar\u cbot\radar;(\l;PhazerShooter\u cbot\category;); +\s; \l;if\u cbot\if; ( item == null ) +\s; { +\s; \l;message\u cbot\message;("No phazer found"); +\s; \l;return\u cbot\return;; // stop the program +\s; } +\s; \l;shield\u cbot\shield;(1, 25); // activate the shield +\s; +\s; \l;while\u cbot\while; ( true ) // repeat forever +\s; { +\s; item = \l;radar\u cbot\radar;(PhazerShooter);// look for phazer +\s; \l;if\u cbot\if; ( item == null ) break; +\s; +\s; dist = \l;distance\u cbot\dist;(item.position, position); +\s; \l;if\u cbot\if; ( dist < 5 ) +\s; { // if closer than 5 m: +\s; \l;wait\u cbot\wait;(1); // wait +\s; } +\s; \l;else\u cbot\if; // otherwise: +\s; { // Calculate a position 5 m before the phazer +\s; dest.x = (item.position.x-position.x)*((dist-5)/dist)+position.x; +\s; dest.y = (item.position.y-position.y)*((dist-5)/dist)+position.y; +\s; dest.z = (item.position.z-position.z)*((dist-5)/dist)+position.z; +\s; \l;goto\u cbot\goto;(dest, 0, 1, 1); // and go there +\s; } +\s; } +\s;} +\n; +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/D/mltropi1.txt b/help/D/mltropi1.txt new file mode 100644 index 00000000..6d775e52 --- /dev/null +++ b/help/D/mltropi1.txt @@ -0,0 +1,8 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/D/mltropi3.txt b/help/D/mltropi3.txt new file mode 100644 index 00000000..40d4b187 --- /dev/null +++ b/help/D/mltropi3.txt @@ -0,0 +1,27 @@ +\b;Programs dispatched by Houston +We have improved the recharge program. When it arrives at the \l;power station\u object\station;, the bot does not wait exactly 5 seconds, but only until the \l;power cell\u object\power; is fully charged. After the bot is back at the initial position, it displays a message on the screen. +\c; +\s;extern void object::Recharge2() +\s;{ +\s; \l;point\u cbot\type; start; // variable for initial pos. +\s; \l;object\u cbot\type; item; // info. about power station +\s; +\s; start = position; // store initial position +\s; +\s; item = \l;radar\u cbot\radar;(\l;PowerStation\u cbot\category;); // look for station +\s; \l;goto\u cbot\goto;(item.position); // go to the power station +\s; +\s; \l;while\u cbot\while; ( \l;energyCell.energyLevel\u cbot\object; < 1 ) +\s; { +\s; \l;wait\u cbot\wait;(1); // wait until recharged +\s; } +\s; +\s; \l;goto\u cbot\goto;(start); // go back to initial pos. +\s; \l;message\u cbot\message;("Recharge completed"); +\s;} +\n; +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;SwitchCell1\u mllune1;\n; +o \c;\l;Recharge1\u mllune4;\n; diff --git a/help/D/mltropi4.txt b/help/D/mltropi4.txt new file mode 100644 index 00000000..3b138af2 --- /dev/null +++ b/help/D/mltropi4.txt @@ -0,0 +1,9 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/D/mltropi5.txt b/help/D/mltropi5.txt new file mode 100644 index 00000000..3b138af2 --- /dev/null +++ b/help/D/mltropi5.txt @@ -0,0 +1,9 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/D/mlvolca1.txt b/help/D/mlvolca1.txt new file mode 100644 index 00000000..f1e12cea --- /dev/null +++ b/help/D/mlvolca1.txt @@ -0,0 +1,61 @@ +\b;Programs dispatched by Houston +As you will need lots of titanium for this mission, we have made the program \c;CollectTitanium\n; still more efficient. It gathers a whole series of titanium cubes on a free surface, so you can let it work on its own. It also recharges itself at the \l;power station\u object\station; if necessary. +\c; +\s;extern void object::CollectTitanium3() +\s;{ +\s; // 1) Variable definition. +\s; \l;object\u cbot\type; item; // info. about objects +\s; +\s; \l;while\u cbot\while; (true) // repeat forever +\s; { +\s; +\s; // 2) Go to the titanium ore and grab it. +\s; item = \l;radar\u cbot\radar;(\l;TitaniumOre\u cbot\category;);// look for titanium +\s; \l;goto\u cbot\goto;(item.position); // go to the position +\s; \l;grab\u cbot\grab;(); // grab the titanium +\s; +\s; // 3) Go to the converter and drop it. +\s; item = \l;radar\u cbot\radar;(\l;Converter\u cbot\category;); // look for converter +\s; \l;goto\u cbot\goto;(item.position); // go to the position +\s; \l;drop\u cbot\drop;(); // drop the titanium +\s; \l;move\u cbot\move;(-2.5); // step back 2.5 m +\s; +\s; // 4) Wait until titanium converted and grab it +\s; \l;do\u cbot\do; +\s; { +\s; \l;wait\u cbot\wait;(1); // wait for cube +\s; item = \l;radar\u cbot\radar;(\l;Titanium\u cbot\category;, 0, 45, 0, 5); +\s; } +\s; \l;while\u cbot\while; ( item == null ); +\s; \l;goto\u cbot\goto;(item.position); +\s; \l;grab\u cbot\grab;(); // grab it +\s; +\s; // 5) Drop on a free space +\s; \l;goto\u cbot\goto;(\l;space\u cbot\space;(position)); // go to free space +\s; \l;drop\u cbot\drop;(); // drop titanium +\s; +\s; // 6) If power cell half empty, recharges. +\s; \l;if\u cbot\if; ( energyCell.energyLevel < 0.5 ) +\s; { // if so: +\s; item = \l;radar\u cbot\radar;(\l;PowerStation\u cbot\category;); +\s; \l;if\u cbot\if; ( item != null ) // station found ? +\s; { +\s; \l;goto\u cbot\goto;(item.position); // go there +\s; \l;while\u cbot\while; ( energyCell.energyLevel < 1 ) +\s; { // until recharged: +\s; \l;wait\u cbot\wait;(1); // wait +\s; } +\s; } +\s; } +\s; } +\s;} +\n; +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/D/mlvolca2.txt b/help/D/mlvolca2.txt new file mode 100644 index 00000000..ad0537da --- /dev/null +++ b/help/D/mlvolca2.txt @@ -0,0 +1,53 @@ +\b;Programs dispatched by Houston +We have developed a program that takes care of recharging the power cell of a \l;defense tower\u object\tower;: + +1) Go to a \l;defense tower\u object\tower;. +2) Wait until the \l;power cell\u object\power; is 80% empty. +3) Grab the \l;power cell\u object\power; and recharge it on a \l;power station\u object\station;. +4) Put it back on the \l;defense tower\u object\tower;. + +Build the \l;power station\u object\station; as close as possible to the tower in order to reduce the time when the tower has got no power cell. A good trick is to place a power cell on the ground in front of the tower. The wasp will attack the power cell, and if the first shoot misses or a wasp arrives when the defense tower has got no energy, only the power cell is destroyed and not the defense tower. +\c; +\s;extern void object::ServiceTower1() +\s;{ +\s; \l;object\u cbot\object; tower; // info. about tower +\s; \l;object\u cbot\object; station; // info. about station +\s; +\s; // 1) go to the defense tower +\s; tower = \l;radar\u cbot\radar;(DefenseTower); // look for tower +\s; \l;goto\u cbot\goto;(tower.position); // go there +\s; +\s; \l;while\u cbot\while; ( true ) // repeat forever +\s; { +\s; // 2) wait until power cell is empty +\s; \l;while\u cbot\while; ( tower.energyCell.energyLevel > 0.2 ) +\s; { +\s; \l;wait\u cbot\wait;(2); +\s; } +\s; \l;grab\u cbot\grab;(); // grab the power cell +\s; +\s; // 3) go to the power station to recharge +\s; station = \l;radar\u cbot\radar;(PowerStation); +\s; \l;goto\u cbot\goto;(station.position); // go there +\s; \l;while\u cbot\while; ( load.energyLevel < 1 ) +\s; { +\s; \l;wait\u cbot\wait;(1); // wait until recharged +\s; } +\s; +\s; // 4) go back to defense tower +\s; \l;goto\u cbot\goto;(tower.position); // go to tower +\s; \l;drop\u cbot\drop;(); // drop the power cell +\s; } +\s;} +\n; +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/D/mlvolca3.txt b/help/D/mlvolca3.txt new file mode 100644 index 00000000..01b6c330 --- /dev/null +++ b/help/D/mlvolca3.txt @@ -0,0 +1,15 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/D/mlvolca4.txt b/help/D/mlvolca4.txt new file mode 100644 index 00000000..01b6c330 --- /dev/null +++ b/help/D/mlvolca4.txt @@ -0,0 +1,15 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/D/mlvolca5.txt b/help/D/mlvolca5.txt new file mode 100644 index 00000000..01b6c330 --- /dev/null +++ b/help/D/mlvolca5.txt @@ -0,0 +1,15 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/D/mlvolca6.txt b/help/D/mlvolca6.txt new file mode 100644 index 00000000..01b6c330 --- /dev/null +++ b/help/D/mlvolca6.txt @@ -0,0 +1,15 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/D/mscent1.txt b/help/D/mscent1.txt new file mode 100644 index 00000000..befd97f5 --- /dev/null +++ b/help/D/mscent1.txt @@ -0,0 +1,20 @@ +\b;Walkthrough +You'll find some useful items in a small valley northeast. +o A \l;recycler\u object\botrecy; that will allow you to make your first \l;titanium cube\u object\titan;. +o A \l;legged grabber\u object\botgs; that is very good at climbing steep slopes. +o A nearly charged \l;nuclear power cell\u object\atomic;. + +1) Power the \l;legged grabber\u object\botgs; with the \l;nuclear power cell\u object\atomic;, and use it to carry a \l;titanium cube\u object\titan; to the \l;spaceship\u object\base;. Choose the direct way over the mountains. + +2) Use the titanium to build a \l;converter\u object\convert;. Execute the program \c;CollectTitanium3\n; on the \l;legged grabber\u object\botgs; and you will have plenty of titanium. + +3) Stop the program, and use the grabber to collect some \l;uranium ore\u object\uranore; in a second small valley to the east. Again, do not take the way of the valley which is crawling with ants, but take the direct way over the mountains. + +4) Build a \l;winged shooter\u object\botfj; and power it with a \l;nuclear power cell\u object\atomic;. If you take the pass south-east, you will arrive immediately at the ant nest. Kill all the ants, and bring back a ball of \l;organic matter\u object\bullet; to the \l;spaceship\u object\base;. + +5) Build an \l;auto-lab\u object\labo;, drop the \l;organic matter\u object\bullet; on the platform and click the \button 110; button in order to develop the blueprints for the orgaShooter cannon. + +6) Build a \l;legged orga shooter\u object\botos;, bring it aboard and take off. + +\t;See also +\l;Controls\u command; diff --git a/help/D/mscent2.txt b/help/D/mscent2.txt new file mode 100644 index 00000000..417c8f0b --- /dev/null +++ b/help/D/mscent2.txt @@ -0,0 +1,5 @@ +\b;Walkthrough +Drive the \l;legged orga shooter\u object\botos; to each of the pads in front of the targets, and hit all targets that you see with only one burst, moving the mouse during the burst. With 4 bursts, you must be able to hit all the targets. + +\t;See also +\l;Controls\u command; diff --git a/help/D/mscent3.txt b/help/D/mscent3.txt new file mode 100644 index 00000000..d14266fa --- /dev/null +++ b/help/D/mscent3.txt @@ -0,0 +1,11 @@ +\b;Walkthrough +In order to kill all ants and spiders in this large and mountainous region, you will need a \l;winged orga shooter\u object\botfj; powered with \l;nuclear power cells\u object\atomic;. In a small valley to the southeast you will find everything you need: \l;titanium cubes\u object\titanium;, \l;power cells\u object\power; and even a \l;winged grabber\u object\botgj; in working condition. + +1) Build a \l;radar\u object\radar; and a \l;winged shooter\u object\botfj; and power it. Kill the ant that is watching over the \l;uranium ore\u object\uranore; further north. + +2) Use the abandoned \l;nuclear plant\u object\nuclear; on the hill above and the \l;winged grabber\u object\botgj; to produce several \l;nuclear power cells\u object\atomic;, and use one to power the \l;winged shooter\u object\botfj;. + +3) Wipe out all insects from the region. There is one isolated ant in the northwest hidden in a hole: an approach from the west thorough the deep valley will make it easier to hit. + +\t;See also +\l;Controls\u command; diff --git a/help/D/mscent4.txt b/help/D/mscent4.txt new file mode 100644 index 00000000..ceb46949 --- /dev/null +++ b/help/D/mscent4.txt @@ -0,0 +1,12 @@ +\b;Walkthrough +1) Search the area for \l;titanium\u object\titan;. +2) Build a \l;converter\u object\convert;. +3) Build a \l;research center\u object\research;. +4) Run the \button 66;. +5) Manufacture a \l;thumper\u object\bottump;. +6) Position the thumper close to the derelict spaceship and "thump" the ground. +7) Quickly retrieve the \l;black box\u object\bbox; and bring it back aboard your \l;spaceship\u object\base;. +8) Bring the thumper along and take off. + +\t;See also +\l;Controls\u command; diff --git a/help/D/mscent5.txt b/help/D/mscent5.txt new file mode 100644 index 00000000..a631c9d5 --- /dev/null +++ b/help/D/mscent5.txt @@ -0,0 +1,8 @@ +\b;Walkthrough +1) Thump the deck of the \l;spaceship\u object\base;. You don't need to move the \l;thumper\u object\bottump; anywhere. +2) Locate the \l;orga shooter\u object\botoj; approximately 70 meters to the east. +3) Terminate the \l;ants\u object\ant; while they are still on their backs. +4) Take off. + +\t;See also +\l;Controls\u command; diff --git a/help/D/mscrys1.txt b/help/D/mscrys1.txt new file mode 100644 index 00000000..e7e5c03e --- /dev/null +++ b/help/D/mscrys1.txt @@ -0,0 +1,12 @@ +\b;Walkthrough +1) Build a \l;bot factory\u object\factory;. +2) Produce a \l;winged grabber\u object\botgj;. +3) Carry a \l;titanium cube\u object\titan; to the highest point. +4) Build a \l;radar\u object\radar; on the spot. +5) Build a \l;research center\u object\research; next to the spaceship. +6) Initiate the \button 68;. +7) Build the \l;defense tower\u object\tower; next to the radar. +8) When all the worms are destroyed, you can go back to your ship and take off. + +\t;See also +\l;Controls\u command; diff --git a/help/D/mscrys2.txt b/help/D/mscrys2.txt new file mode 100644 index 00000000..d64057d1 --- /dev/null +++ b/help/D/mscrys2.txt @@ -0,0 +1,17 @@ +\b;Walkthrough +1) Build a \l;bot factory\u object\factory;. +2) Produce a \l;winged sniffer\u object\botsj;. +3) Sniff the ground near the large crystals until you get a \l;red cross\u object\stonspot;. +4) Build a \l;derrick\u object\derrick; near the red cross. +5) Build a \l;converter\u object\convert;. + +The pairing of a derrick and a converter allows for an unlimited supply of \l;titanium\u object\titan;. In order to leave this task to a bot, execute the program \c;CollectTitanium2\n;. + +6) Sniff the area at the foot of the spaceship. A \l;green cross\u object\enerspot; means you can build a \l;power station\u object\station; on the spot. +7) Build a \l;radar\u object\radar;. +8) Produce a \l;winged shooter\u object\botfj;. +9) Eliminate all worms. +10) Go back to your ship and take off. + +\t;See also +\l;Controls\u command; diff --git a/help/D/mscrys3.txt b/help/D/mscrys3.txt new file mode 100644 index 00000000..b015bb5a --- /dev/null +++ b/help/D/mscrys3.txt @@ -0,0 +1,7 @@ +\b;Walkthrough +If you lose the bot, it will drop the black box somewhere southwest of your spaceship on a region surrounded by crystals. + +In case your power runs out before you can bring the black box back, use the second grabber left on the spaceship. + +\t;See also +\l;Controls\u command; diff --git a/help/D/mscrys4.txt b/help/D/mscrys4.txt new file mode 100644 index 00000000..cf8c5f7c --- /dev/null +++ b/help/D/mscrys4.txt @@ -0,0 +1,7 @@ +\b;Walkthrough +Somewhere northeast in the valley itself you should come across a fully functional \l;power station\u object\station;. Northwest you will find several \l;power cells\u object\power;. + +A few shooters in working condition have been abandoned in and around the same area in the valley; use them to shoot all the ants. With the \l;winged grabber\u object\botgj;, you can then retrieve the \l;black box\u object\bbox; that is located behind the derelict spaceship and take off. + +\t;See also +\l;Controls\u command; diff --git a/help/D/mslune1.txt b/help/D/mslune1.txt new file mode 100644 index 00000000..b97ffbec --- /dev/null +++ b/help/D/mslune1.txt @@ -0,0 +1,15 @@ +\b;Walkthrough +In order to build the \l;research center\u object\research;, drop a \l;titanium cube\u object\titan; on a flat surface not too far from the spaceship. \l;You\u object\human; can carry the cube yourself, or use the available \l;grabber\u object\botgr;. + +If you used the bot, move it away from the cube in order not to interfere with the construction. To shift the selection from the bot to yourself (remember that only you can build), use \key;\key human;\norm;. + +Position yourself close to the \l;titanium cube\u object\titan; and build a \l;research center\u object\research; \button 163;. Drop a \l;power cell\u object\power; on the \l;research center\u object\research;, select the building and click the \button 65; symbol in order to perform the . + +Build a \l;bot factory\u object\factory; in the same way, and drop a \l;titanium cube\u object\titan; in the center. Build a \l;winged grabber\u object\botgj; with the \button 139; symbol, and power it with a \l;power cell\u object\power;. + +It may be preferable to scout the area yourself in order to save power. You'll find the chunks of titanium ore at the bottom of a few craters located north of the spaceship. A \l;flag\u object\flag; may help you pin down the spot faster on subsequent trips. + +Collect 4 chunks of \l;titanium ore\u object\titanore; and bring them back aboard your \l;spaceship\u object\base;. Take the \l;winged grabber\u object\botgj; and the \l;wheeled grabber\u object\botgr; along with you and take off \button 28;. + +\t;See also +\l;Controls\u command; diff --git a/help/D/mslune2.txt b/help/D/mslune2.txt new file mode 100644 index 00000000..e46a8501 --- /dev/null +++ b/help/D/mslune2.txt @@ -0,0 +1,7 @@ +\b;Walkthrough +If your bot suddenly explodes, this means that you have hit the steel structures too often. Drive more slowly, so your bot will not be damaged even if you bump into an obstacle. + +If you can not take off after you have completed the training, this means that you did not pass through all the targets. Go round one more time, and pass through the targets where the cross is left in the center. + +\t;See also +\l;Controls\u command; diff --git a/help/D/mslune3.txt b/help/D/mslune3.txt new file mode 100644 index 00000000..e46a8501 --- /dev/null +++ b/help/D/mslune3.txt @@ -0,0 +1,7 @@ +\b;Walkthrough +If your bot suddenly explodes, this means that you have hit the steel structures too often. Drive more slowly, so your bot will not be damaged even if you bump into an obstacle. + +If you can not take off after you have completed the training, this means that you did not pass through all the targets. Go round one more time, and pass through the targets where the cross is left in the center. + +\t;See also +\l;Controls\u command; diff --git a/help/D/mslune4.txt b/help/D/mslune4.txt new file mode 100644 index 00000000..7535c4d7 --- /dev/null +++ b/help/D/mslune4.txt @@ -0,0 +1,19 @@ +\b;Walkthrough +1) Build a converter \button 162; with the only titanium cube available. + +2) Deposit one chunk of titanium ore at a time at the center of the platform and let the converter do the rest. + +3) Build a power station \button 164; with one of the newly converted titanium cubes. + +4) If you don't feel like looking for the black box yourself, build a radar \button 168; and the box will appear on your mini map somewhere north of your present location, at the bottom of a crater, next to a few derelict spacecraft and debris from the previous expedition. + +5) Place the grabbers at the center of the power station platform to recharge them. The cells should still have a little power left in them, just enough to radio-control the bots onto the platform. + +6) Radio-control the winged grabber to the black box and back. + +7) Gather both grabbers and the black box onto the spaceship platform and climb on board yourself. + +8) Take off. + +\t;See also +\l;Controls\u command; diff --git a/help/D/msorph1.txt b/help/D/msorph1.txt new file mode 100644 index 00000000..28c154db --- /dev/null +++ b/help/D/msorph1.txt @@ -0,0 +1,15 @@ +\b;Walkthrough +1) Quickly build a \l;power captor\u object\captor; near the blue flag. +All subsequent buildings should be erected within the \button 41; covered by the power captor. +2) Carry some empty \l;power cells\u object\power; under the power captor. When lightning strikes, they will be recharged. +3) Build a \l;derrick\u object\derrick;. +4) Build a \l;converter\u object\convert;. +5) Execute the program \c;CollectTitanium3\n; in order to produce \l;titanium\u object\titan;. +6) Build a \l;bot factory\u object\factory;. +7) Manufacture a \l;winged orga shooter\u object\botoj;. +8) Build a \l;radar\u object\radar;. +9) Locate and terminate all \l;ants\u object\ant;. +10) Return to your \l;spaceship\u object\base; and take off. + +\t;See also +\l;Controls\u command; diff --git a/help/D/msorph2.txt b/help/D/msorph2.txt new file mode 100644 index 00000000..486d4475 --- /dev/null +++ b/help/D/msorph2.txt @@ -0,0 +1,9 @@ +\b;Walkthrough +You will find a \l;radar\u object\radar;, a \l;power captor\u object\captor;, a \l;power cell\u object\power; and a \l;winged orga shooter\u object\botoj; in the valley south of the spaceship. This will allow you to kill the ants close to the spaceship and to locate the \l;black box\u object\bbox; in the north next to the remains of the first expedition spaceship. + +Build a succession of \l;power captors\u object\captor; along the natural path offered by the northern mountain peaks. 5 or 6 captors should offer sufficient protection against lightning. + +Bring the black box back aboard your \l;spaceship\u object\base; and take off. + +\t;See also +\l;Controls\u command; diff --git a/help/D/mssaari1.txt b/help/D/mssaari1.txt new file mode 100644 index 00000000..6bfb8087 --- /dev/null +++ b/help/D/mssaari1.txt @@ -0,0 +1,22 @@ +\b;Walkthrough +1) You'll find a \l;titanium cube\u object\titan; left in a smashed up bot factory. Use it to build a \l;power station\u object\station;. + +2) The \l;recycler\u object\botrecy; is designed to convert derelicts back into usable titanium cubes. + +3) Build both a \l;repair center\u object\repair; and a \l;radar\u object\radar;. + +4) Recharge one of the \l;power cells\u object\power; available and power a \l;winged shooter\u object\botfj;. + +5) Eliminate all \l;ants\u object\ant;. Note that you should recharge and repair the shooter regularly. Check your levels. + +6) Fully charge the \l;grabber\u object\botgr;'s power cell, then radio-control it to the summit... + a) Access the first level by ramp on west; + b) On first level travel east to find second ramp; + c) On second level travel south to find third ramp; + d) On third level travel west for access to summit; +...then, with the chunk, straight back to the spaceship by the most direct route so as to save the remaining power. + +7) Climb aboard the ship yourself and take off. + +\t;See also +\l;Controls\u command; diff --git a/help/D/mssaari2.txt b/help/D/mssaari2.txt new file mode 100644 index 00000000..22371a78 --- /dev/null +++ b/help/D/mssaari2.txt @@ -0,0 +1,9 @@ +\b;Walkthrough +Execute immediately the program \c;KillAnt1\n; on the \l;wheeled shooter\u object\botfr;; it will take care of the first wave of attack coming from west. + +Then build two \l;defense towers\u object\tower; one in the north of the \l;spaceship\u object\base;, the other one in the south (you have to do this VERY quickly). While \l;you\u object\human; are building, use the \l;grabber\u object\botgr; to get a \l;power cell\u object\power;. + +As soon as the successive waves of attack, made up of about fifteen \l;ants\u object\ant;, are gone, you have time to take care of the ants that did not attack. Build a \l;radar\u object\radar; in order to spot them, and a \l;converter\u object\convert;, a \l;bot factory\u object\factory;, a \l;power station\u object\station; and a \l;winged shooter\u object\botfj; in order to get rid of them... + +\t;See also +\l;Controls\u command; diff --git a/help/D/mssaari3.txt b/help/D/mssaari3.txt new file mode 100644 index 00000000..84f2fa66 --- /dev/null +++ b/help/D/mssaari3.txt @@ -0,0 +1,9 @@ +\b;Walkthrough +You should build a \l;radar\u object\radar; first. + +The \l;ants\u object\ant; appear to be running away from you. Try to circle around each one of them until they find themselves trapped between you and a \l;mine\u object\mine;. They'll opt for the mine and blow themselves up. + +Then bring the \l;black box\u object\bbox; aboard your ship. It is next to the derelict spaceship. + +\t;See also +\l;Controls\u command; diff --git a/help/D/msterra1.txt b/help/D/msterra1.txt new file mode 100644 index 00000000..a7487ad7 --- /dev/null +++ b/help/D/msterra1.txt @@ -0,0 +1,6 @@ +\b;Walkthrough +Unfortunately no walkthrough has been provided for this mission. +You are on your own... + +\t;See also +\l;Controls\u command; diff --git a/help/D/msterra2.txt b/help/D/msterra2.txt new file mode 100644 index 00000000..a7487ad7 --- /dev/null +++ b/help/D/msterra2.txt @@ -0,0 +1,6 @@ +\b;Walkthrough +Unfortunately no walkthrough has been provided for this mission. +You are on your own... + +\t;See also +\l;Controls\u command; diff --git a/help/D/msterra3.txt b/help/D/msterra3.txt new file mode 100644 index 00000000..a7487ad7 --- /dev/null +++ b/help/D/msterra3.txt @@ -0,0 +1,6 @@ +\b;Walkthrough +Unfortunately no walkthrough has been provided for this mission. +You are on your own... + +\t;See also +\l;Controls\u command; diff --git a/help/D/msterra4.txt b/help/D/msterra4.txt new file mode 100644 index 00000000..a7487ad7 --- /dev/null +++ b/help/D/msterra4.txt @@ -0,0 +1,6 @@ +\b;Walkthrough +Unfortunately no walkthrough has been provided for this mission. +You are on your own... + +\t;See also +\l;Controls\u command; diff --git a/help/D/msterre1.txt b/help/D/msterre1.txt new file mode 100644 index 00000000..3e7e0cc2 --- /dev/null +++ b/help/D/msterre1.txt @@ -0,0 +1,11 @@ +\b;Walkthrough +To find the survival kit from your starting point : + +1) Follow the road heading south. +2) Turn east (left) at the first crossroad. +3) The survival kit is lying between the northern wall of Mission Control and the first tree on the right hand side of the road. + +Just position yourself close to it to successfully complete the drill. + +\t;See also +\l;Controls\u command; diff --git a/help/D/msterre2.txt b/help/D/msterre2.txt new file mode 100644 index 00000000..a97023d8 --- /dev/null +++ b/help/D/msterre2.txt @@ -0,0 +1,11 @@ +\b;Walkthrough +Walk down the street that runs beside \l;Mission Control\u object\Huston;. You will find a \l;titanium cube\u object\titan; on the left hand side of the road, right after the \l;grabber bot\u object\botgr;. + +1) Face the cube. Click on the first button at the bottom left of your screen: \button 163; . +2) Walk further down the road. The second cube is on the right past the four green \l;power cells\u object\power;. +3) Repeat 1) but click on the second button: \button 160; . + +As soon as both buildings are completed, the mission is at an end. + +\t;See also +\l;Controls\u command; diff --git a/help/D/msterre3.txt b/help/D/msterre3.txt new file mode 100644 index 00000000..509ae869 --- /dev/null +++ b/help/D/msterre3.txt @@ -0,0 +1,28 @@ +\b;Walkthrough +Before taking off, you need to bring the following aboard your spaceship: + +1) \l;Black box\u object\bbox;. +2) \l;Wheeled\u object\botgr; and \l;tracked\u object\botgc; grabbers. +3) \l;Yourself\u object\human;. + +Here is a detailed breakdown of the operations: +1) Power the \l;research center\u object\research; with one of the green \l;power cells\u object\power;. +2) Activate the \l;research center\u object\research; then click on the \button 64; button. +3) Place a \l;titanium cube\u object\titan; inside the \l;bot factory\u object\factory;. +4) Step back out and activate the \l;bot factory\u object\factory;. +5) Click on the \button 138; button. +6) Power the \l;tracked grabber\u object\botgc; with a brand new \l;power cell\u object\power;. +7) Radio-control the \l;tracked grabber\u object\botgc; to the top of the mountain in the south-west. +8) Bring the \l;black box\u object\bbox; back aboard your \l;spaceship\u object\base;. +9) Radio-control both the \l;tracked\u object\botgc; and the \l;wheeled\u object\botgr; grabbers onto the platform. +10) Climb aboard the \l;spaceship\u object\base; yourself. +11) Take off! + +In order to take off, select the \l;spaceship\u object\base;, provided that it is visible, by clicking on it. If it is not visible, you need to click one of the buttons in the upper left corner of your screen. The blue triangle \button 130; allows you to alternate between symbols for bots and symbols for buildings. Click once to shift to the list. A \button 171; symbol will now appear. Click on the button to select it. + +Once the spaceship is selected, click on the larger \button 28; button in the lower center of your screen. If the objects mentioned above as well as yourself are indeed standing on deck, takeoff will take place. + +No object or bot should hinder the closing of the eight large panel doors. + +\t;See also +\l;Controls\u command; diff --git a/help/D/mstropi1.txt b/help/D/mstropi1.txt new file mode 100644 index 00000000..ca0330be --- /dev/null +++ b/help/D/mstropi1.txt @@ -0,0 +1,5 @@ +\b;Walkthrough +Follow the path shown on your mini map. The explosive device lies at the bottom of a small valley populated by giant ants. They will probably attack you and you will probably lose consciousness. There is nothing you can really do about this. + +\t;See also +\l;Controls\u command; diff --git a/help/D/mstropi2.txt b/help/D/mstropi2.txt new file mode 100644 index 00000000..23bc0024 --- /dev/null +++ b/help/D/mstropi2.txt @@ -0,0 +1,21 @@ +\b;Walkthrough +Here is a breakdown of the steps to follow to get back to the spaceship. + +1) Go round the lake, and head towards the green fluorescent globe. This globe is generated by a gravi-plant that will make flight impossible inside the globe. + +2) Follow the left flank of the valley, passing a pond on your right, and climb the small slope. On top you will be facing some giant ants: run as fast as you can towards another gravi-plant a little further on your right, your wounds will have time to heal later. + +3) Use your reactor to fly past the lake before the gravi-plant on your right. + +4) When you leave the gravi-plant, keep on the left-hand side of the lake, and follow the shore until you reach a peninsula adorned with fern-like plants. + +5) Do some island-hopping across the larger lake. Aim for the trees in order to avoid falling into the water on the other side of the island. The last island is 50 cm under water but you can still land on it without having your head submerged. + +6) The path continues to the left. A giant ant is waiting for you there, but it will not do you much harm. + +7) Give your reactor enough time to cool down, then fly across the small lake. Try to land as high on the right as you can, this is the best way not to fall into the second lake. + +8) Cross the second lake, get aboard the spaceship, and take off. + +\t;See also +\l;Controls\u command; diff --git a/help/D/mstropi3.txt b/help/D/mstropi3.txt new file mode 100644 index 00000000..852a973e --- /dev/null +++ b/help/D/mstropi3.txt @@ -0,0 +1,13 @@ +\b;Walkthrough +1) There is a \l;titanium cube\u object\titan; west of your present location, near the blue flag/blue cross on your mini map. You don't need to move the cube, just build a \l;power station\u object\station; right there on the spot. + +2) With the titanium cubes on the spaceship, build a \l;research center\u object\research; and execute the \button 67;. + +3) Build a \l;bot factory\u object\factory; and a \l;winged shooter\u object\botfj;. If this bot is destroyed by enemy fire, you will find some additional \l;titanium cubes\u object\titan; in a small foggy valley northwest of the spaceship. You can bring them back with the \l;winged grabber\u object\botgj;\n;. + +4) Build a \l;radar station\u object\radar; in order to see the location of the ants on the mini-map, and let the hunt begin. Be careful not to run out of energy and not to overheat the reactor of a bot while over water. If a bot falls into deep water, it explodes. + +5) Once you have killed all the ants, get on board and take off. + +\t;See also +\l;Controls\u command; diff --git a/help/D/mstropi4.txt b/help/D/mstropi4.txt new file mode 100644 index 00000000..6b73f89d --- /dev/null +++ b/help/D/mstropi4.txt @@ -0,0 +1,7 @@ +\b;Walkthrough +If your bot suddenly explodes, this means that you have hit the steel structures too often. Drive more slowly, so your bot will not be damaged even if you bump into an obstacle. + +If you can not take off after you completed the training, this means that you have not hit all the targets. Go round one more time, and check if any of the explosive devices or crosses in the center of the steel structures are left. + +\t;See also +\l;Controls\u command; diff --git a/help/D/mstropi5.txt b/help/D/mstropi5.txt new file mode 100644 index 00000000..06802556 --- /dev/null +++ b/help/D/mstropi5.txt @@ -0,0 +1,15 @@ +\b;Walkthrough +1) Locate the \l;black box\u object\bbox; on your own. You can try to spot it from above, using your jet engine, or dive into the water. +2) Build a \l;converter\u object\convert; near the chunks of titanium ore. You'll find them in the vicinity of the spaceship to the east. +3) Produce two \l;cubes\u object\titan;. +4) Build a \l;bot factory\u object\factory; not too far from the black box. +5) Manufacture a \l;subber\u object\botsub;. +6) Bring the black box back on board. +7) Take off. + +The black box is lying at the bottom of a small lake, northeast of the spaceship. + +You can build the bot factory right beside the lake, on the south bank. + +\t;See also +\l;Controls\u command; diff --git a/help/D/msvolca1.txt b/help/D/msvolca1.txt new file mode 100644 index 00000000..7c606a2e --- /dev/null +++ b/help/D/msvolca1.txt @@ -0,0 +1,15 @@ +\b;Walkthrough +1) Start by recharging a \l;regular power cell\u object\power; and power the \l;research center\u object\research;. Use it to research the technology for the building of a \l;nuclear plant\u object\nuclear; \button 170;. + +2) Produce a \l;wheeled grabber\u object\botgr;. + +3) Find some \l;uranium ore\u object\uranore; northwest of your position. The nuclear plant will then transform it into \l;nuclear power cells\u object\atomic; of a longer duration. + +4) Power a \l;wheeled shooter\u object\botfr; with one of your new nuclear cells. Dispatch it to kill all intruding \l;spiders\u object\spider; along the way. + +5) A \l;radar\u object\radar; is optional but could turn out useful to mark the position of the spiders on your mini map. + +6) A wheeled grabber should be part of the expedition. It will both clear the way cluttered with \l;titanium ore\u object\titanore; and bring the \l;explosive device\u object\tnt; back. + +\t;See also +\l;Controls\u command; diff --git a/help/D/msvolca2.txt b/help/D/msvolca2.txt new file mode 100644 index 00000000..319cd4db --- /dev/null +++ b/help/D/msvolca2.txt @@ -0,0 +1,19 @@ +\b;Walkthrough +1) Quickly build a \l;defense tower\u object\tower; north of your spaceship. After you \l;powered\u object\power; it, execute the program \c;ServiceTower1\n; on one of the \l;grabbers\u object\botgr; which will recharge the power cell when it is empty. Place another power cell 2 m north of the tower as a first target for the attacking wasps. + +2) Build a \l;power station\u object\station; close to the defense tower. + +3) Build a \l;converter\u object\convert; south of the spaceship and execute the program \c;CollectTitanium3\n; on the second \l;grabber\u object\botgr; in order to produce some \l;titanium\u object\titan;. + +4) Build a \l;bot factory\u object\factory; and a \l;winged shooter\u object\botfj; to eliminate the \l;ants\u object\ant;. + +5) Use a \l;winged grabber\u object\botgj; to bring back some \l;organic matter\u object\bullet; from the island in the middle of the lava lake. + +6) Build an \l;autolab\u object\labo;, drop the \l;organic matter\u object\bullet; on the platform and click the button \button 109; in order to develop the blueprints for legged bots. + +7) As soon as the organic matter has been analyzed, produce a \l;legged grabber\u object\botgs; and bring it aboard the spaceship. + +8) Take off. + +\t;See also +\l;Controls\u command; diff --git a/help/D/msvolca3.txt b/help/D/msvolca3.txt new file mode 100644 index 00000000..bcd857b8 --- /dev/null +++ b/help/D/msvolca3.txt @@ -0,0 +1,11 @@ +\b;Walkthrough +1) Power a \l;legged shooter\u object\botfs;. There is even a \l;nuclear cell\u object\atomic; left behind the \l;bot factory\u object\factory;. + +2) Climb the northern cliff and kill a few \l;ants\u object\ant;. The best access is from the east. + +3) Keep going until all ants are out of the way. + +4) Climb the northern cliff with a \l;legged grabber\u object\botgs; and retrieve the \l;black box\u object\bbox; that you will find in the derelict bot factory. + +\t;See also +\l;Controls\u command; diff --git a/help/D/msvolca4.txt b/help/D/msvolca4.txt new file mode 100644 index 00000000..4000a249 --- /dev/null +++ b/help/D/msvolca4.txt @@ -0,0 +1,13 @@ +\b;Walkthrough +A gap in the northwest mountain leads the way to a lake of boiling lava. + +Just hop from one rocky island to the next. Keep checking your reactor, let it cool off completely before taking off again. The mini map will help you to figure out where the closest island is. + +In case of an ant attack, don't worry too much. Just take the time for your reactor to cool off, without lingering longer than necessary, and your built-in shield should do its duty. However we advise you to save the game from time to time (key Esc, and "Save"), so you will not have to start from the beginning in case of a landing in the lava lake. + +The bot is at the westernmost point on your map though you'll have to take a roundabout route to reach it. A \l;nuclear power cell\u object\atomic; lies nearby. + +You don't have to radio-control the bot back to the spaceship by the same way you came because its reactor has a greater range than yours. One or two stops may still be needed and watch out for those ants. + +\t;See also +\l;Controls\u command; diff --git a/help/D/msvolca5.txt b/help/D/msvolca5.txt new file mode 100644 index 00000000..938b80b0 --- /dev/null +++ b/help/D/msvolca5.txt @@ -0,0 +1,11 @@ +\b;Walkthrough +Everything is blowing up around you. You need to leave the old basecamp as quickly as possible. Just retreat the same way you came. + +\l;Ants\u object\ant; are fairly easy to avoid. If you're badly hit, find a quiet spot and wait until your shield has regenerated. + +\l;Spiders\u object\spider; are a bit tougher but also more stupid. As soon as they see you, they burst their abdomen, dying in the process. If one fragment hits you, you'll die too. One risky but efficient method to rid yourself of a spider consists in moving dangerously close and, when the spider's abdomen starts inflating, swiftly fly backwards to safety. + +As soon as you have reached a quiet island, you can use the \l;winged orga shooter\u object\botoj; to clear your way of hostile insects. Be careful not to lose it, otherwise the whole mission would be in vain. + +\t;See also +\l;Controls\u command; diff --git a/help/D/msvolca6.txt b/help/D/msvolca6.txt new file mode 100644 index 00000000..b5b7fcb1 --- /dev/null +++ b/help/D/msvolca6.txt @@ -0,0 +1,9 @@ +\b;Walkthrough +It is safer for \l;you\u object\human; to stay on the \l;spaceship\u object\base;. You may get hit a few times but not fatally. + +Put your new \l;winged orga shooter\u object\botoj; to good use and don't waste any time. First shoot the ants on your right, then turn clockwise around the spaceship, flying at low altitude. + +If you can not do it this way, place the \l;winged orga shooter\u object\botoj; on a safe place north of the spaceship, then save yourself. You can then take your time to shoot the ants one after another; they can do no harm to the spaceship and the black box. + +\t;See also +\l;Controls\u command; diff --git a/help/D/navig.txt b/help/D/navig.txt new file mode 100644 index 00000000..63622750 --- /dev/null +++ b/help/D/navig.txt @@ -0,0 +1,22 @@ +\b;Navigation +The three buttons on the upper left-hand corner of the screen allow you to navigate in the different texts of the help file: + +\button 30; Home +Get back to the home page, i.e. the first page that was displayed, for example when you hit the \key;\key help;\norm; or \key;\key prog;\norm; key. + +\button 55; Previous +Get back to the previous page, i.e. the page that was displayed before you clicked on a link. + +\button 48; Next +Get again to the next page, after you used the "Home" or "Previous" button. + +\t;Remark +When a button is gray, this means that it can not be used at this precise moment. For example, when you are in the home page, the "Home" button is gray, because it does not make sense to use it. + +This remark is valid for all buttons in COLOBOT. + +\t;Text scrolling +If your mouse is equipped with a wheel, you can use it to scroll the text up and down. Otherwise, use the arrow keys and the scroll bar on the right-hand side of the screen. + +\t;Font size +The cursor on the upper side of the screen allows you to change the font size of the text. diff --git a/help/D/object/ant.txt b/help/D/object/ant.txt new file mode 100644 index 00000000..87b82f40 --- /dev/null +++ b/help/D/object/ant.txt @@ -0,0 +1,11 @@ +\b;Ant +\image ant 8 8; +Ants shoot tiny corrosive balls that eventually gnaw into the protective shielding of bots and buildings, causing them to explode. + +\l;You\u object\human; can resist their attack much longer than most buildings and bots, and your protective shield will be restored as your wounds heal. However, if you stay too long in their range or if there are too many of them, your life is in great danger. + +\t;Object \l;Category\u cbot\category; +\c;AlienAnt\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/atomic.txt b/help/D/object/atomic.txt new file mode 100644 index 00000000..367dff0e --- /dev/null +++ b/help/D/object/atomic.txt @@ -0,0 +1,15 @@ +\b;Nuclear Power Cell +\image atomic 4 4; +A nuclear power cell supplies the bots and some buildings with energy. +Its capacity is 100 times that of a \l;regular power cell\u object\power;. + +Nuclear power cells cannot be recharged or recycled. A \l;nuclear plant\u object\nuclear; and some \l;uranium ore\u object\uranore; is needed to produce a new and fully charged nuclear power cell. + +\t;Transport +All \l;grabbers\u object\botgr; and the \l;astronaut\u object\human;. + +\t;Object \l;Category\u cbot\category; +\c;NuclearCell\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/barrier.txt b/help/D/object/barrier.txt new file mode 100644 index 00000000..14646cb0 --- /dev/null +++ b/help/D/object/barrier.txt @@ -0,0 +1,8 @@ +\b;Barrier +The barrier is nothing more than an obstacle used in the exercises. + +\t;Object \l;Category\u cbot\category; +\c;Barrier\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/base.txt b/help/D/object/base.txt new file mode 100644 index 00000000..84577068 --- /dev/null +++ b/help/D/object/base.txt @@ -0,0 +1,11 @@ +\b;\button 171; Spaceship +\image base 8 8; +\l;Your\u object\human; means of transportation from one planet to the next, the only way to travel safely across the cosmos and accomplish your missions. + +In addition to yourself, the spaceship can carry bots and raw materials. Whenever a mission is completed, you must select the spaceship, then click on the command \button 28;. + +\t;Object \l;Category\u cbot\category; +\c;SpaceShip\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/bbox.txt b/help/D/object/bbox.txt new file mode 100644 index 00000000..4b4a8557 --- /dev/null +++ b/help/D/object/bbox.txt @@ -0,0 +1,14 @@ +\b;Black Box +\image bbox 4 4; +A black box is actually orange so as to be easier to identify and locate. Each \l;spaceship\u object\base; is equipped with a black box that records and stores information about the flight. + +A black box can also be used to leave important information. On every planet the first expedition has left a black box containing the coordinates of the planet it was heading towards next. + +\t;Transport +All \l;grabbers\u object\botgr; and the \l;astronaut\u object\human;. + +\t;Object \l;Category\u cbot\category; +\c;BlackBox\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/botfc.txt b/help/D/object/botfc.txt new file mode 100644 index 00000000..b95751e3 --- /dev/null +++ b/help/D/object/botfc.txt @@ -0,0 +1,20 @@ +\b;\button 144; Tracked Shooter +\image botfc 8 8; +Tracked bot equipped with a fireball cannon. + +The fireball cannon is an efficient weapon against most kinds of \l;enemies\u object\mother;. Use it sparingly though for it requires large amounts of energy. A \l;regular power cell\u object\power; will only allow you to shoot 4 fireball bursts. + +Tip : it is possible to move the mouse while shooting, so as to sweep a larger area. + +Tracked bots can ascend steep inclinations but they are quite slow and use a lot of energy. On flat ground for short distances, a \l;wheeled shooter\u object\botfr; is a better option. When it is possible to build \l;winged bots\u object\botfj;, these represent the best solution for long distances. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the fireball cannon, use \c;\l;fire\u cbot\fire;\n;. To raise or lower the aim, use \c;\l;aim\u cbot\aim;\n;. + +\t;Object \l;Category\u cbot\category; +\c;TrackedShooter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/botfj.txt b/help/D/object/botfj.txt new file mode 100644 index 00000000..b852517d --- /dev/null +++ b/help/D/object/botfj.txt @@ -0,0 +1,22 @@ +\b;\button 145; Winged Shooter +\image botfj 8 8; +Jet propelled flying bot equipped with a fireball cannon. + +The fireball cannon is an efficient weapon against most kinds of \l;enemies\u object\mother;. Use it sparingly though for it requires large amounts of energy. A \l;regular power cell\u object\power; will only allow you to shoot 4 fireball bursts. + +Tip : it is possible to move the mouse while shooting, so as to sweep a larger area. + +The display at the bottom of your screen indicates the temperature of the reactor. Keep an eye on it. If the reactor overheats, the engine will stop and the bot will crash. + +Winged bots can fly across natural obstacles such as mountains or lakes but their energy supply is used up quickly. They're slow on the ground. To cover a short distance that will not call for flying, it is recommended to use a \l;wheeled shooter\u object\botfr; instead. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;jet\u cbot\jet;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the fireball cannon, use \c;\l;fire\u cbot\fire;\n;. To raise or lower the aim, use \c;\l;aim\u cbot\aim;\n;. + +\t;Object \l;Category\u cbot\category; +\c;WingedShooter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/botfr.txt b/help/D/object/botfr.txt new file mode 100644 index 00000000..43cea003 --- /dev/null +++ b/help/D/object/botfr.txt @@ -0,0 +1,20 @@ +\b;\button 143; Wheeled Shooter +\image botfr 8 8; +Wheeled bot equipped with a fireball cannon. + +The fireball cannon is an efficient weapon against most kinds of \l;enemies\u object\mother;. Use it sparingly though for it requires large amounts of energy. A \l;regular power cell\u object\power; will only allow you to shoot 4 fireball bursts. + +Tip : it is possible to move the mouse while shooting, so as to sweep a larger area. + +Wheels constitute a standard, fast and energy-saving mode of propulsion, which is perfectly adapted for a relatively flat terrain. Whenever the terrain gets sloped, it is advised to use a \l;winged shooter\u object\botfj; instead, or, if this is impossible, a \l;tracked shooter\u object\botfc;. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the fireball cannon, use \c;\l;fire\u cbot\fire;\n;. To raise or lower the aim, use \c;\l;aim\u cbot\aim;\n;. + +\t;Object \l;Category\u cbot\category; +\c;WheeledShooter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/botfs.txt b/help/D/object/botfs.txt new file mode 100644 index 00000000..5a5c2728 --- /dev/null +++ b/help/D/object/botfs.txt @@ -0,0 +1,20 @@ +\b;\button 151; Legged Shooter +\image botfs 8 8; +Ant-legged creeping bot equipped with a fireball cannon. + +The fireball cannon is an efficient weapon against most kinds of \l;enemies\u object\mother;. Use it sparingly though for it requires large amounts of energy. A \l;regular power cell\u object\power; will only allow you to shoot 4 fireball bursts. + +Tip : it is possible to move the mouse while shooting, so as to sweep a larger area. + +A moving legged shooter uses up half as much energy as a \l;wheeled shooter\u object\botfr;. A legged bot is also perfectly adapted to climb the steepest slopes. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the fireball cannon, use \c;\l;fire\u cbot\fire;\n;. To raise or lower the aim, use \c;\l;aim\u cbot\aim;\n;. + +\t;Object \l;Category\u cbot\category; +\c;LeggedShooter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/botgc.txt b/help/D/object/botgc.txt new file mode 100644 index 00000000..8abb41c7 --- /dev/null +++ b/help/D/object/botgc.txt @@ -0,0 +1,33 @@ +\b;\button 138; Tracked Grabber +\image botgc 8 8; +Tracked bot equipped with an operating arm. + +\button 32; Grabs an object or lays it down again, at a position that is determined by one of the following options : +\button 33; The object is lying in front of the bot, on the ground or on the back of a second bot. +\button 35; The object is the bot's own power cell. +\button 34; The object is lying behind the bot, on the ground. + +The following objects can be transported : +o \l;Titanium ore\u object\titanore;. +o \l;Uranium ore\u object\uranore;. +o \l;Cube of titanium\u object\titan;. +o \l;Regular power cell\u object\power;. +o \l;Nuclear power cell\u object\atomic;. +o \l;Black box\u object\bbox;. +o \l;Keys A, B, C, and D\u object\key;. +o \l;Organic matter\u object\bullet;. + +Tracked bots can ascend steep inclinations but they are quite slow and use much energy. On flat ground for short distances, a \l;wheeled grabber\u object\botgr; is a better option. When it is possible to build \l;winged bots\u object\botgj;, these represent the best solution for long distances. + +A grabber won't function underwater. What you'll need instead is a \l;subber\u object\botsub;. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the operating arm, use \c;\l;grab\u cbot\grab;\n; and \c;\l;drop\u cbot\drop;\n;. + +\t;Object \l;Category\u cbot\category; +\c;TrackedGrabber\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/botgj.txt b/help/D/object/botgj.txt new file mode 100644 index 00000000..f237bfaf --- /dev/null +++ b/help/D/object/botgj.txt @@ -0,0 +1,35 @@ +\b;\button 139; Winged Grabber +\image botgj 8 8; +Jet propelled flying bot equipped with an operating arm. + +\button 32; Grabs an object or lays it down again, at a position that is determined by one of the following options : +\button 33; The object is lying in front of the bot, on the ground or on the back of a second bot. +\button 35; The object is the bot's own power cell. +\button 34; The object is lying behind the bot, on the ground. + +The following objects can be transported : +o \l;Titanium ore\u object\titanore;. +o \l;Uranium ore\u object\uranore;. +o \l;Cube of titanium\u object\titan;. +o \l;Regular power cell\u object\power;. +o \l;Nuclear power cell\u object\atomic;. +o \l;Black box\u object\bbox;. +o \l;Keys A, B, C, and D\u object\key;. +o \l;Organic matter\u object\bullet;. + +The display at the bottom of your screen indicates the temperature of the reactor. Keep an eye on it. If the reactor overheats, the engine will stop and the bot will crash. + +Winged bots can fly across natural obstacles such as mountains or lakes but their energy supply is used up quickly. They're slow on the ground. To cover a short distance that will not call for flying, it is recommended to use a \l;wheeled grabber\u object\botgr; instead. + +A grabber won't function underwater. What you'll need instead is a \l;subber\u object\botsub;. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the operating arm, use \c;\l;grab\u cbot\grab;\n; and \c;\l;drop\u cbot\drop;\n;. + +\t;Object \l;Category\u cbot\category; +\c;WingedGrabber\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/botgr.txt b/help/D/object/botgr.txt new file mode 100644 index 00000000..8dcc5991 --- /dev/null +++ b/help/D/object/botgr.txt @@ -0,0 +1,33 @@ +\b;\button 137; Wheeled Grabber +\image botgr 8 8; +Wheeled bot equipped with an operating arm. + +\button 32; Grabs an object or lays it down again, at a position that is determined by one of the following options : +\button 33; The object is lying in front of the bot, on the ground or on the back of a second bot. +\button 35; The object is the bot's own power cell. +\button 34; The object is lying behind the bot, on the ground. + +The following objects can be transported : +o \l;Titanium ore\u object\titanore;. +o \l;Uranium ore\u object\uranore;. +o \l;Converted titanium\u object\titan;. +o \l;Regular power cell\u object\power;. +o \l;Nuclear power cell\u object\atomic;. +o \l;Black box\u object\bbox;. +o \l;Keys A, B, C, and D\u object\key;. +o \l;Organic matter\u object\bullet;. + +Wheels constitute a standard, fast and energy-saving mode of propulsion, which is perfectly adapted for a relatively flat terrain. Whenever the terrain gets sloped, it is advised to use a \l;winged shooter\u object\botfj; instead, or, if this is impossible, a \l;tracked shooter\u object\botfc;. + +A grabber won't function underwater. What you'll need instead is a \l;subber\u object\botsub;. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the operating arm, use \c;\l;grab\u cbot\grab;\n; and \c;\l;drop\u cbot\drop;\n;. + +\t;Object \l;Category\u cbot\category; +\c;WheeledGrabber\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/botgs.txt b/help/D/object/botgs.txt new file mode 100644 index 00000000..b839c9fb --- /dev/null +++ b/help/D/object/botgs.txt @@ -0,0 +1,34 @@ +\b;\button 150; Legged Grabber +\image botgs 8 8; +Ant-legged creeping bot equipped with an operating arm. + +\button 32; Grabs an object or lays it down again, at a position that is determined by one of the following options : +\button 33; The object is lying in front of the bot, on the ground or on the back of a second bot. +\button 35; The object is the bot's own power cell. +\button 34; The object is lying behind the bot, on the ground. + +The following objects can be transported : +o \l;Titanium ore\u object\titanore;. +o \l;Uranium ore\u object\uranore;. +o \l;Converted titanium\u object\titan;. +o \l;Regular power cell\u object\power;. +o \l;Nuclear power cell\u object\atomic;. +o \l;Black box\u object\bbox;. +o \l;Keys A, B, C, and D\u object\key;. +o \l;Organic matter\u object\bullet;. + +A moving legged grabber uses up half as much energy as a \l;wheeled grabber\u object\botgr;. A legged bot is also perfectly adapted to climb the steepest slopes. + +A grabber won't function underwater. What you'll need instead is a \l;subber\u object\botsub;. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the operating arm, use \c;\l;grab\u cbot\grab;\n; and \c;\l;drop\u cbot\drop;\n;. + +\t;Object \l;Category\u cbot\category; +\c;LeggedGrabber\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. + diff --git a/help/D/object/botoc.txt b/help/D/object/botoc.txt new file mode 100644 index 00000000..43fecf54 --- /dev/null +++ b/help/D/object/botoc.txt @@ -0,0 +1,18 @@ +\b;\button 154; Tracked Orga Shooter +\image botoc 8 8; +Tracked bot equipped with an orgaball cannon. + +The orgaball cannon is more effective than the \l;fireball cannon\u object\botfc;. It shoots small spheres of corrosive \l;organic matter\u object\bullet;. A \l;regular power cell\u object\power; will allow you to shoot 11 orgaball bursts. + +Tracked bots can ascend steep inclinations but they are quite slow and use a lot of energy. On flat ground for short distances, a \l;wheeled orga shooter\u object\botor; is a better option. When it is possible to build \l;winged bots\u object\botoj;, these represent the best solution for long distances. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the orgaball cannon, use \c;\l;fire\u cbot\fire;\n;. To raise or lower the aim, use \c;\l;aim\u cbot\aim;\n;. + +\t;Object \l;Category\u cbot\category; +\c;TrackedOrgaShooter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/botoj.txt b/help/D/object/botoj.txt new file mode 100644 index 00000000..70f7b99d --- /dev/null +++ b/help/D/object/botoj.txt @@ -0,0 +1,20 @@ +\b;\button 155; Winged Orga Shooter +\image botoj 8 8; +Jet propelled flying bot equipped with an orgaball cannon. + +The orgaball cannon is more effective than the \l;fireball cannon\u object\botfj;. It shoots small spheres of corrosive \l;organic matter\u object\bullet;. A \l;regular power cell\u object\power; will allow you to shoot 11 orgaball bursts. + +The display at the bottom of your screen indicates the temperature of the reactor. Keep an eye on it. If the reactor overheats, the engine will stop and the bot will crash. + +Winged bots can fly across natural obstacles such as mountains or lakes but their energy supply is used up quickly. They're slow on the ground. To cover a short distance that will not call for flying, it is recommended to use a \l;wheeled orga shooter\u object\botor; instead. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;jet\u cbot\jet;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the orgaball cannon, use \c;\l;fire\u cbot\fire;\n;. To raise or lower the aim, use \c;\l;aim\u cbot\aim;\n;. + +\t;Object \l;Category\u cbot\category; +\c;WingedOrgaShooter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/botor.txt b/help/D/object/botor.txt new file mode 100644 index 00000000..8da2ce7c --- /dev/null +++ b/help/D/object/botor.txt @@ -0,0 +1,19 @@ +\b;\button 153; Wheeled Orga Shooter +\image botor 8 8; +Wheeled bot equipped with an orgaball cannon. + +The orgaball cannon is more effective than the \l;fireball cannon\u object\botfr;. It shoots small spheres of corrosive \l;organic matter\u object\bullet;. A \l;regular power cell\u object\power; will allow you to shoot 11 orgaball bursts. + +Wheels constitute a standard, fast and energy-saving mode of propulsion, which is perfectly adapted for a relatively flat terrain. Whenever the terrain gets sloped, it is advised to instead use a \l;winged orga shooter\u object\botoj;, or, if this is impossible, a \l;tracked orga shooter\u object\botoc;. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the orgaball cannon, use \c;\l;fire\u cbot\fire;\n;. To raise or lower the aim, use \c;\l;aim\u cbot\aim;\n;. + +\t;Object \l;Category\u cbot\category; +\c;WheeledOrgaShooter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. + diff --git a/help/D/object/botos.txt b/help/D/object/botos.txt new file mode 100644 index 00000000..a1ff6d09 --- /dev/null +++ b/help/D/object/botos.txt @@ -0,0 +1,18 @@ +\b;\button 156; Legged Orga Shooter +\image botos 8 8; +Ant-legged creeping bot equipped with an orgaball cannon. + +The orgaball cannon is more effective than the \l;fireball cannon\u object\botfs;. It shoots small spheres of corrosive \l;organic matter\u object\bullet;. A \l;regular power cell\u object\power; will allow you to shoot 11 orgaball bursts. + +A moving legged orga shooter uses up half as much energy as a \l;wheeled orga shooter\u object\botor;. A legged bot is also perfectly adapted to climb the steepest slopes. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the orgaball cannon, use \c;\l;fire\u cbot\fire;\n;. To raise or lower the aim, use \c;\l;aim\u cbot\aim;\n;. + +\t;Object \l;Category\u cbot\category; +\c;LeggedOrgaShooter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/botphaz.txt b/help/D/object/botphaz.txt new file mode 100644 index 00000000..232463e1 --- /dev/null +++ b/help/D/object/botphaz.txt @@ -0,0 +1,14 @@ +\b;\button 147; Phazer Shooter +\image botphaz 8 8; +Tracked bot equipped with a very powerful phazer cannon, efficient against most kinds of enemies. When you aim upward, it can shoot up to 60 meters. It is the only weapon that can kill the \l;Alien Queen\u object\mother;. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the phazer cannon, use \c;\l;fire\u cbot\fire;\n;. To raise or lower the aim, use \c;\l;aim\u cbot\aim;\n;. + +\t;Object \l;Category\u cbot\category; +\c;PhazerShooter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/botrecy.txt b/help/D/object/botrecy.txt new file mode 100644 index 00000000..68d06f26 --- /dev/null +++ b/help/D/object/botrecy.txt @@ -0,0 +1,14 @@ +\b;\button 148; Recycler +\image botrecy 8 8; +Tracked bot designed to convert a \l;derelict bot\u object\wreck; back into a reusable \l;titanium cube\u object\titan;. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the recycling of a derelict bot, use \c;\l;recycle\u cbot\recycle;\n;. + +\t;Object \l;Category\u cbot\category; +\c;RecyclerBot\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/botsc.txt b/help/D/object/botsc.txt new file mode 100644 index 00000000..5d6424ea --- /dev/null +++ b/help/D/object/botsc.txt @@ -0,0 +1,20 @@ +\b;\button 141; Tracked Sniffer +\image botsc 8 8; +Tracked bot equipped to prospect the geological structure of the subsoil. Whenever it locates something of use, the sniffer lays down the following marks: + +- a \l;red cross\u object\stonspot; -> \l;titanium ore\u object\titanore;. +- a \l;yellow circle\u object\uranspot; -> \l;uranium ore\u object\uranore;. +- a \l;green cross\u object\enerspot; -> energy deposit, useful for a \l;power station\u object\station; or a \l;power plant\u object\energy;. + +Tracked bots can ascend steep inclinations but they are quite slow and use a lot of energy. On flat ground for short distances, a \l;wheeled sniffer\u object\botsr; is a better option. When it is possible to build \l;winged bots\u object\botsj;, these represent the best solution for long distances. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the sniffing arm, use \c;\l;sniff\u cbot\sniff;\n;. + +\t;Object \l;Category\u cbot\category; +\c;TrackedSniffer\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/botshld.txt b/help/D/object/botshld.txt new file mode 100644 index 00000000..d1bcdaa8 --- /dev/null +++ b/help/D/object/botshld.txt @@ -0,0 +1,18 @@ +\b;\button 157; Shielder +\image botshld 8 8; +Tracked bot designed to protect and defend against all \l;enemy\u object\mother; attacks within a perimeter of 10 to 25 meters. The individual shields of bots and buildings are re-energized through the shielder's defensive actions. This bot is the only way to get through narrow passages adorned with poisonous green mushrooms. + +A \l;regular power cell\u object\power; allows for a 20-second activity span with a radius of 25 meters, much too short in most cases. A \l;nuclear power cell\u object\atomic; is of course more suited to this bot. + +The energy consumption is proportional to the radius of the protective sphere. With a radius of 10 meters, the bot can work 2.5 times longer than with the maximum radius of 25 meters. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the deployment of the shield, use \c;\l;shield\u cbot\shield;\n;. + +\t;Object \l;Category\u cbot\category; +\c;Shielder\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/botsj.txt b/help/D/object/botsj.txt new file mode 100644 index 00000000..9085244f --- /dev/null +++ b/help/D/object/botsj.txt @@ -0,0 +1,22 @@ +\b;\button 142; Winged Sniffer +\image botsj 8 8; +Jet propelled flying bot equipped to prospect the geological structure of the subsoil. Whenever it locates something of use, the sniffer lays down the following marks: + +- a \l;red cross\u object\stonspot; -> \l;titanium ore\u object\titanore;. +- a \l;yellow circle\u object\uranspot; -> \l;uranium ore\u object\uranore;. +- a \l;green cross\u object\enerspot; -> energy deposit, useful for a \l;power station\u object\station; or a \l;power plant\u object\energy;. + +The display at the bottom of your screen indicates the temperature of the reactor. Keep an eye on it. If the reactor overheats, the engine stops and the bot crashes. + +Winged bots can fly across natural obstacles such as mountains or lakes but their energy supply uses up quickly. They're slow on the ground. To cover a short distance that will not call for flying, it is recommended to use a \l;wheeled sniffer\u object\botsr; instead. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;jet\u cbot\jet;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the sniffing arm, use \c;\l;sniff\u cbot\sniff;\n;. + +\t;Object \l;Category\u cbot\category; +\c;WingedSniffer\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/botsr.txt b/help/D/object/botsr.txt new file mode 100644 index 00000000..9e5609c8 --- /dev/null +++ b/help/D/object/botsr.txt @@ -0,0 +1,20 @@ +\b;\button 140; Wheeled Sniffer +\image botsr 8 8; +Wheeled bot equipped to prospect the geological structure of the subsoil. Whenever it locates something of use, the sniffer lays down the following marks: + +- a \l;red cross\u object\stonspot; -> \l;titanium ore\u object\titanore;. +- a \l;yellow circle\u object\uranspot; -> \l;uranium ore\u object\uranore;. +- a \l;green cross\u object\enerspot; -> energy deposit, useful for a \l;power station\u object\station; or a \l;power plant\u object\energy;. + +Wheels constitute a standard, fast and energy-saving mode of propulsion, which is perfectly adapted for a relatively flat terrain. Whenever the terrain gets sloped, it is advised to use a \l;winged sniffer\u object\botsj; instead, or, if this is impossible, a \l;tracked sniffer\u object\botsc;. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the sniffing arm, use \c;\l;sniff\u cbot\sniff;\n;. + +\t;Object \l;Category\u cbot\category; +\c;WheeledSniffer\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/botss.txt b/help/D/object/botss.txt new file mode 100644 index 00000000..b2bb5b53 --- /dev/null +++ b/help/D/object/botss.txt @@ -0,0 +1,20 @@ +\b;\button 152; Legged Sniffer +\image botss 8 8; +Ant-legged creeping bot equipped to prospect the geological structure of the subsoil. Whenever it locates something of use, the sniffer lays down the following marks: + +- a \l;red cross\u object\stonspot; -> \l;titanium ore\u object\titanore;. +- a \l;yellow circle\u object\uranspot; -> \l;uranium ore\u object\uranore;. +- a \l;green cross\u object\enerspot; -> energy deposit, useful for a \l;power station\u object\station; or a \l;power plant\u object\energy;. + +A moving legged shooter uses up half as much energy as a \l;wheeled sniffer\u object\botsr;. A legged bot is also perfectly adapted to climb the steepest slopes. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the sniffing arm, use \c;\l;sniff\u cbot\sniff;\n;. + +\t;Object \l;Category\u cbot\category; +\c;LeggedSniffer\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/botsub.txt b/help/D/object/botsub.txt new file mode 100644 index 00000000..4b9f8959 --- /dev/null +++ b/help/D/object/botsub.txt @@ -0,0 +1,16 @@ +\b;\button 149; Subber +\image botsub 8 8; +Amphibious tracked bot equipped with an operating claw. The subber is the only bot capable of moving and running operations underwater. + +It is best to check the \l;power cell\u object\power; readings prior to immersion since replacing or recharging it underwater is impossible. The subber can only pick up objects from the ground, as opposed to, for example, a battery from the back of another bot. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the operating claw, use \c;\l;grab\u cbot\grab;\n; and \c;\l;drop\u cbot\drop;\n;. + +\t;Object \l;Category\u cbot\category; +\c;Subber\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/bottarg.txt b/help/D/object/bottarg.txt new file mode 100644 index 00000000..4807d784 --- /dev/null +++ b/help/D/object/bottarg.txt @@ -0,0 +1,11 @@ +\b;\button 173; Target Bot +\image bottarg 8 8; +Wheeled bot intended solely for target practice. It is autonomous and its trajectory is dependant upon the nature of the exercise. + +Note that target bots, loaded as they are with \l;TNT\u object\tnt;, are extremely sensitive to shocks. + +\t;Object \l;Category\u cbot\category; +\c;TargetBot\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/bottr.txt b/help/D/object/bottr.txt new file mode 100644 index 00000000..65f185c6 --- /dev/null +++ b/help/D/object/bottr.txt @@ -0,0 +1,12 @@ +\b;\button 158; Practice Bot +\image bottr 8 8; +Wheeled bot intended solely for training and practice. Its only purpose is to help you get accustomed to the programming of the bots' various ground movements. + +\t;Instructions +To program the bot's movements, use the following commands: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +\t;Object \l;Category\u cbot\category; +\c;PracticeBot\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/bottump.txt b/help/D/object/bottump.txt new file mode 100644 index 00000000..8398f770 --- /dev/null +++ b/help/D/object/bottump.txt @@ -0,0 +1,18 @@ +\b;\button 146; Thumper +\image bottump 8 8; +Tracked bot designed to hit the ground with enormous force. The purpose of the thumping is to turn \l;ants\u object\ant; and \l;spiders\u object\spider; belly up within a radius of 100 meters. An insect on its back is not dead but will struggle to get right side up again. After approximately 60 seconds of effort, it will usually succeed. + +To visualize the zone of impact, hit the button \button 41;. Little red dots outline the circular zone for 20 seconds. + +The bot uses up a large amount of power. A thump will drain 2/5ths of a \l;regular power cell\u object\power;. + +\t;Instructions +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the thumping, use \c;\l;thump\u cbot\thump;\n;. + +\t;Object \l;Category\u cbot\category; +\c;Thumper\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/bullet.txt b/help/D/object/bullet.txt new file mode 100644 index 00000000..5df1efe5 --- /dev/null +++ b/help/D/object/bullet.txt @@ -0,0 +1,12 @@ +\b;Organic Matter +\image bullet 4 4; +The organic matter is the insects' secretion. \l;Wasps\u object\wasp; often use balls of organic matter to bombard you. You should perhaps try to get hold of some since it could allow you, given the necessary \l;analysis\u object\labo;, to discover new and strange technologies that will improve the efficiency of your bots. + +\t;Transport +All \l;grabbers\u object\botgr; and the \l;astronaut\u object\human;. + +\t;Object \l;Category\u cbot\category; +\c;OrgaMatter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/captor.txt b/help/D/object/captor.txt new file mode 100644 index 00000000..d13df6f7 --- /dev/null +++ b/help/D/object/captor.txt @@ -0,0 +1,25 @@ +\b;\button 174; Power Captor +\image captor 8 8; +The power captor acts as both a lightning conductor and a power converter. +It offers protection within a radius of 50 meters against the perilous lightning bolts of magnetic storms. Additionally, when the captor is hit by lightning, all bots and \l;power cells\u object\power; placed underneath, with the exception of the \l;nuclear power cells\u object\atomic;, are recharged. + +To visualize the zone shielded by a power captor, select it then hit the button \button 41;. Red dots outline the circular zone for 20 seconds. + +In the vastness of space, few planets suffer from magnetic storms. Among the ones you'll be visiting, only Orpheon is subject to this phenomenon. + +Note that your \l;spaceship\u object\base; can also act as a lightning conductor. However it will not recharge power cells. + +\t;Requirements for building +Any flat surface of at least 10 meters wide. + +\t;Power source +Lightning bolts. + +\t;Duration of operation +1 second. + +\t;Object \l;Category\u cbot\category; +\c;PowerCaptor\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/convert.txt b/help/D/object/convert.txt new file mode 100644 index 00000000..49836688 --- /dev/null +++ b/help/D/object/convert.txt @@ -0,0 +1,24 @@ +\b;\button 162; Converter +\image convert 8 8; +This building was designed to convert chunks of \l;titanium ore\u object\titanore; into usable \l;titanium cubes\u object\titan;. All \l;you\u object\human; need to do is place a chunk at the center of the platform and step back. The converter takes care of the rest. + +\t;Requirements for building +Any flat surface of at least 6 meters wide. + +\t;Input +Titanium ore. + +\t;Output +Titanium. + +\t;Power source +None. + +\t;Duration of operation +15 seconds. + +\t;Object \l;Category\u cbot\category; +\c;Converter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/derrick.txt b/help/D/object/derrick.txt new file mode 100644 index 00000000..4eea1369 --- /dev/null +++ b/help/D/object/derrick.txt @@ -0,0 +1,29 @@ +\b;\button 161; Derrick +\image derrick 8 8; +The derrick is intended for the extraction of raw materials. + +In order to determine the best site on which to erect a derrick, a \l;sniffer\u object\botsr; should be used to prospect the subsoil. The marks it lays down provide information about the specifics of what the derrick will be able to extract: + +- a \l;red cross\u object\stonspot; -> \l;titanium ore\u object\titanore;. +- a \l;yellow circle\u object\uranspot; -> \l;uranium ore\u object\uranore;. + +\t;Requirements for building +Any flat and geologically adequate surface of at least 2.5 meters wide. + +\t;Input +Titanium or uranium ore in the subsoil. + +\t;Output +Chunks of titanium or uranium ore. + +\t;Power source +None. + +\t;Duration of operation +10 seconds for titanium and 30 for uranium. + +\t;Object \l;Category\u cbot\category; +\c;Derrick\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/egg.txt b/help/D/object/egg.txt new file mode 100644 index 00000000..d3e11e20 --- /dev/null +++ b/help/D/object/egg.txt @@ -0,0 +1,8 @@ +\b;Alien Egg +The alien eggs are laid by the \l;Alien Queen\u object\mother;. After a short time, they will hatch and an \l;ant\u object\ant;, a \l;wasp\u object\wasp;, a \l;spider\u object\spider; or a \l;worm\u object\worm; will come out. + +\t;Object \l;Category\u cbot\category; +\c;AlienEgg\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/energy.txt b/help/D/object/energy.txt new file mode 100644 index 00000000..45a695bf --- /dev/null +++ b/help/D/object/energy.txt @@ -0,0 +1,28 @@ +\b;\button 167; Power Plant +\image energy 8 8; +The power plant is a \l;power cell\u object\power; factory. It transforms a \l;titanium cube\u object\titan; into a regular power cell fully charged and ready for use. + +A power plant requires some energy in the subsoil. If the satellite report says that energy is available only at some places, you will need a \l;sniffer bot\u object\botsr; to prospect the subsoil. The marks it lays down provide information about the specifics of its findings: a \l;green cross\u object\enerspot; means that there is an energy deposit at this location beneath the surface, which is indispensable for the construction of a power plant or a \l;power station\u object\station;. + +If the large power cell at the base of the plant remains red after the construction is completed, this means that the site is not geologically adequate. + +\t;Requirements for building +Any flat and geologically adequate surface of at least 4 meters wide. + +\t;Input +Titanium. + +\t;Output +Regular power cell. + +\t;Power source +Subsoil energy. + +\t;Duration of operation +12 seconds. + +\t;Object \l;Category\u cbot\category; +\c;PowerPlant\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/enerspot.txt b/help/D/object/enerspot.txt new file mode 100644 index 00000000..44bf6235 --- /dev/null +++ b/help/D/object/enerspot.txt @@ -0,0 +1,17 @@ +\b;Underground Energy Deposit +\image enerspot 4 4; +Whenever a \l;sniffer\u object\botsr; uncovers a source of energy in the subsoil, it lays down a green cross. The following buildings can be erected nearby : + +o \l;Power station\u object\station; +o \l;Power plant\u object\energy; + +In order to prospect the subsoil you need a \l;sniffer bot\u object\botsr;, which can also discover \l;titanium ore\u object\titanore; deposits (indicated by a \l;red cross\u object\stonspot;) or \l;uranium ore\u object\uranore; deposits (indicated by a \l;yellow circle\u object\uranspot;). + +\t;Transport +Impossible. + +\t;Object \l;Category\u cbot\category; +\c;EnergySite\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/exchange.txt b/help/D/object/exchange.txt new file mode 100644 index 00000000..2cb763a7 --- /dev/null +++ b/help/D/object/exchange.txt @@ -0,0 +1,31 @@ +\b;\button 172; Information Exchange Post +\image info 8 8; +This building stores digital information. A post can contain up to 10 pieces of information, each one referenced by a name. +For example, a post can contain 3 informations¦:\c; +\tab;"Position.x" 23.45 +\tab;"Position.y" -102.70 +\tab;"Quantity" 3.00 +\n; +To put new information, you must execute the command \c;\l;send\u cbot\send;\n;. +To read information from a post, you must execute the command \c;\l;receive\u cbot\receive;\n;. + +\t;Requirements for building +Any flat surface of at least 2.5 meters wide. + +\t;Input +None. + +\t;Output +Digital information. + +\t;Power source +None. + +\t;Duration of operation +1 second. + +\t;Object \l;Category\u cbot\category; +\c;ExchangePost\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/factory.txt b/help/D/object/factory.txt new file mode 100644 index 00000000..cc86ca11 --- /dev/null +++ b/help/D/object/factory.txt @@ -0,0 +1,33 @@ +\b;\button 160; Bot Factory +\image factory 8 8; +This building is intended for the manufacturing of bots using \l;titanium\u object\titan;. + +1) Place the titanium cube inside the factory. +2) Step back out. +3) Select the factory. +4) Click on the button showing the diagram of the bot you want the factory to assemble (e.g. \button 137; for a \l;wheeled grabber\u object\botgr;). + +The finished bot does not include an onboard \l;power cell\u object\power;. You'll need to supply it with one for it to be able to leave the factory. + +The list of feasible bots will depend upon the research your \l;research center\u object\research; has completed at this time. + +\t;Requirements for building +Any flat surface of at least 7.5 meters wide. + +\t;Input +Titanium. + +\t;Output +Completed bot. + +\t;Power source +None. + +\t;Duration of operation +15 seconds. + +\t;Object \l;Category\u cbot\category; +\c;BotFactory\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/flag.txt b/help/D/object/flag.txt new file mode 100644 index 00000000..4740d2ff --- /dev/null +++ b/help/D/object/flag.txt @@ -0,0 +1,22 @@ +\b;Colored Flag +\image flag 4 4; +The colored flags are helpful to mark strategic locations or positions that \l;you\u object\human; will need to find again. Flags appear on the mini-map in the shape of a cross of the same color as the flag. + +Use the buttons \button 118; and \button 119; to plant and remove flags, the colors of which you can choose with the buttons above. + +When your mini-map is out of order, the fact that flags follow the direction of the wind can help you to find your way and not to walk around in circles. + +When programming, you can use flags to give a bot a reference to a certain position: the instruction \c;\l;radar\u cbot\radar;\n; allows bots to know the exact position of a flag of a given color. + +\t;Transport +Impossible. + +\t;Object \l;Category\u cbot\category; +\c;BlueFlag\n; +\c;RedFlag\n; +\c;GreenFlag\n; +\c;YellowFlag\n; +\c;VioletFlag\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/goal.txt b/help/D/object/goal.txt new file mode 100644 index 00000000..d59fa12f --- /dev/null +++ b/help/D/object/goal.txt @@ -0,0 +1,8 @@ +\b;Finishing Pad +The finishing pad is an objective to be reached in some exercises. + +\t;Object \l;Category\u cbot\category; +\c;GoalArea\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/human.txt b/help/D/object/human.txt new file mode 100644 index 00000000..399384af --- /dev/null +++ b/help/D/object/human.txt @@ -0,0 +1,19 @@ +\b;\button 136; Astronaut +\image human 8 8; +The astronaut is you within the game. + +If you die, the mission immediately fails. + +You can construct buildings with the help of the neutron gun holstered to your survival kit. The survival kit allows you, in most missions, to fly, thanks to the reactor placed underneath, or to swim with no time limit. You can carry most objects but the weight will slow down your movements considerably. Flying, swimming and walking underwater are also made impossible if you are carrying an object. The use of a \l;grabber\u object\botgr; or a \l;subber\u object\botsub; is advised for tasks such as these. + +You cannot carry \l;uranium ore\u object\uranore; because of the risks attached to radioactivity. + +A special button \button 111; allows you to ensure that the ground around you is flat. This is important since building is only possible on a flat surface. A flat surface is designated green while a sloping one is red. + +A button \button 118; allows you to mark a location with \l;flags\u object\flag; of various colors. This can help you not to get lost, to find important positions again, or to indicate a position to a bot. 5 flags of 5 different colors are at your disposal. You can remove a flag by using the next button \button 119; and store it for further use. + +\t;Object \l;Category\u cbot\category; +\c;Me\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/huston.txt b/help/D/object/huston.txt new file mode 100644 index 00000000..8bcaa64e --- /dev/null +++ b/help/D/object/huston.txt @@ -0,0 +1,11 @@ +\b;\button 176; Mission Control +\image huston 8 8; +Earth control center for all \l;your\u object\human; space missions. Though still named after the well-known mission control of the old days, "Houston" is actually located in the middle of the Nevada Desert, the new center for space exploration activities. + +The Mission Control Center watches over you day and night, and a whole team of scientists and engineers are working hard trying to find a solution to all the problems that you encounter. + +\t;Object \l;Category\u cbot\category; +\c;Houston\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/key.txt b/help/D/object/key.txt new file mode 100644 index 00000000..e21d292f --- /dev/null +++ b/help/D/object/key.txt @@ -0,0 +1,17 @@ +\b;Keys A, B, C and D +\image key 4 4; +The keys give \l;you\u object\human; access to the \l;vault\u object\safe;. You'll need 4 of them. + +o Key A, blue and triangle-shaped +o Key B, red and pentagon-shaped +o Key C, green and shaped like a 6-pointed star +o Key D, yellow and circular + +\t;Transport +All \l;grabbers\u object\botgr; and the \l;astronaut\u object\human;. + +\t;Objects \l;Category\u cbot\category; +\c;KeyA\n;, \c;KeyB\n;, \c;KeyC\n; and \c;KeyD\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/labo.txt b/help/D/object/labo.txt new file mode 100644 index 00000000..d6a03462 --- /dev/null +++ b/help/D/object/labo.txt @@ -0,0 +1,24 @@ +\b;\button 166; Autolab +\image labo 8 8; +The lab is intended for the analysis of \l;organic matter\u object\bullet;. It will help \l;you\u object\human; become familiar with the insects' very own technology and perhaps even use it to your advantage. Place a chunk of \l;organic matter\u object\bullet; on the platform, select the lab, and click the button corresponding to the desired research program. + +\t;Requirements for building +Any flat surface of at least 6 meters wide. + +\t;Input +Organic matter. + +\t;Output +New and improved technologies. + +\t;Power source +None. + +\t;Duration of operation +20 seconds. + +\t;Object \l;Category\u cbot\category; +\c;AutoLab\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/lrv.txt b/help/D/object/lrv.txt new file mode 100644 index 00000000..e4271afc --- /dev/null +++ b/help/D/object/lrv.txt @@ -0,0 +1,9 @@ +\b;Apollo Lunar Roving Vehicle + + + +\c;< no archive picture available >\n; + + + +The Lunar Jeep (LRV) was brought to the moon on July 30th 1971 by the astronauts David Scott and Jim Irwin from Apollo mission 15. Its batteries are still partly charged, which allows you to remote control it. But this old-fashioned technology will be of no use to you. diff --git a/help/D/object/mine.txt b/help/D/object/mine.txt new file mode 100644 index 00000000..6da1b95c --- /dev/null +++ b/help/D/object/mine.txt @@ -0,0 +1,14 @@ +\b;Mine +\image mine 8 8; +Mines were a defensive weapons system used by the first expedition. Because of the dangers this system causes for the mission itself, they are no longer used in your expedition. In some exercises mines are used to learn how to avoid obstacles. There is no way to remove them or to create new ones. + +With a \l;practice bot\u object\bottr;, don't get any closer than 2 meters to the position given by the instruction \l;radar\u cbot\radar;. + +\t;Transport +Impossible. + +\t;Object \l;Category\u cbot\category; +\c;Mine\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/mother.txt b/help/D/object/mother.txt new file mode 100644 index 00000000..bb26c86a --- /dev/null +++ b/help/D/object/mother.txt @@ -0,0 +1,15 @@ +\b;Alien Queen +\image mother 8 8; +This huge insect is the mother of them all. It lays \l;eggs\u object\egg; and from these eggs will hatch all the various kinds of insects \l;you\u object\human;'re likely to encounter. All of them are extremely hazardous to yourself and your mission. The queen's protective shell is particularly resistant to attack. + +It gives birth to the following insects : +o \l;ants\u object\ant; +o \l;spiders\u object\spider; +o \l;wasps\u object\wasp; +o \l;worms\u object\worm; + +\t;Object \l;Category\u cbot\category; +\c;AlienQueen\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/nest.txt b/help/D/object/nest.txt new file mode 100644 index 00000000..c14e16f2 --- /dev/null +++ b/help/D/object/nest.txt @@ -0,0 +1,8 @@ +\b;Nest +The alien nest is an odd structure out of which \l;organic matter\u object\bullet; erupts on a regular basis. \l;Wasps\u object\wasp; visit nests regularly to collect ammunition that they will use to bombard your bots, buildings and yourself. + +\t;Object \l;Category\u cbot\category; +\c;AlienNest\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/nuclear.txt b/help/D/object/nuclear.txt new file mode 100644 index 00000000..6d06b3f3 --- /dev/null +++ b/help/D/object/nuclear.txt @@ -0,0 +1,24 @@ +\b;\button 170; Nuclear Plant +\image nuclear 8 8; +The nuclear plant is a \l;nuclear power cell\u object\atomic; factory. It transforms a chunk of \l;uranium ore\u object\uranore; into a \l;nuclear power cell\u object\atomic; fully charged and ready for use. + +\t;Requirements for building +Any flat surface of at least 10 meters wide. + +\t;Input +Uranium ore. + +\t;Output +Nuclear power cell. + +\t;Power source +None. + +\t;Duration of operation +30 seconds. + +\t;Object \l;Category\u cbot\category; +\c;NuclearPlant\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/power.txt b/help/D/object/power.txt new file mode 100644 index 00000000..03e2bc2b --- /dev/null +++ b/help/D/object/power.txt @@ -0,0 +1,16 @@ +\b;Regular Power Cell +\image power 4 4; +A power cell supplies the bots and a few buildings with energy. + +An entirely red power cell is empty. The green section indicates the remaining capacity. A power cell can be recharged using a \l;power station\u object\station;. A \l;power plant\u object\energy; is needed to produce a new and fully charged power cell. + +The capacity of a regular power cell is 100 times smaller than that of a \l;nuclear power cell\u object\atomic; produced by a \l;nuclear plant\u object\nuclear; using \l;uranium ore\u object\uranore;. + +\t;Transport +All \l;grabbers\u object\botgr; and the \l;astronaut\u object\human;. + +\t;Object \l;Category\u cbot\category; +\c;PowerCell\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/radar.txt b/help/D/object/radar.txt new file mode 100644 index 00000000..453f2ea9 --- /dev/null +++ b/help/D/object/radar.txt @@ -0,0 +1,26 @@ +\b;\button 168; Radar +\image radar 8 8; +The radar indicates the direction of the nearest \l;enemy\u object\mother;. Moreover, the information given by the radar allows the mini-map at the bottom right corner of your screen to show the position of all bots, buildings and enemies as small squares and triangles of different colors. + +Radar stations also act as relays for communication with the Earth from distant planets. + +\t;Requirements for building +Any flat surface of at least 2.5 meters wide. + +\t;Input +None. + +\t;Output +Information for the mini-map. + +\t;Power source +None. + +\t;Duration of operation +Constant. + +\t;Object \l;Category\u cbot\category; +\c;RadarStation\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/repair.txt b/help/D/object/repair.txt new file mode 100644 index 00000000..4adac267 --- /dev/null +++ b/help/D/object/repair.txt @@ -0,0 +1,24 @@ +\b;\button 169; Repair Center +\image repair 8 8; +The repair center regenerates the shield on damaged bots. A bot's shield will absorb a certain amount of \l;enemy\u object\mother; hits. If there is no shield left, this means that the bot itself, when hit next, will be destroyed. + +\t;Requirements for building +Any flat surface of at least 6 meters wide. + +\t;Input +Damaged bot. + +\t;Output +Repaired bot with regenerated shield. + +\t;Power source +None. + +\t;Duration of operation +A few seconds depending on the repair job to be done. + +\t;Object \l;Category\u cbot\category; +\c;RepairCenter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/research.txt b/help/D/object/research.txt new file mode 100644 index 00000000..47e66333 --- /dev/null +++ b/help/D/object/research.txt @@ -0,0 +1,27 @@ +\b;\button 163; Research Center +\image research 8 8; +The research center is an enormous computer. Its most useful feature is its ability to come up with new technologies as well as improvements on existing ones regarding buildings and bots in particular. + +The 65'536 processors it contains use up a large amount of energy. +Each research program necessitates a brand new and fully charged \l;power cell\u object\power; + +\t;Requirements for building +Any flat surface of at least 5 meters wide. + +\t;Input +Request for research. + +\t;Output +New and improved technologies. + +\t;Power source +Regular or nuclear power cell. + +\t;Duration of operation +Between 9 seconds and 1 minute depending on the research. + +\t;Object \l;Category\u cbot\category; +\c;ResearchCenter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/safe.txt b/help/D/object/safe.txt new file mode 100644 index 00000000..79bc849e --- /dev/null +++ b/help/D/object/safe.txt @@ -0,0 +1,9 @@ +\b;\button 175; Vault +\image safe 8 8; +This dome-shaped building was conceived by the first expedition. Its purpose was to offer protection to a new type of advanced bot. To protect it from insect attacks, the vault was locked by 4 \l;keys\u object\key;. Only after you find the 4 keys and place each one of them on their corresponding slots will you be given access to the bot. + +\t;Object \l;Category\u cbot\category; +\c;Vault\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/spider.txt b/help/D/object/spider.txt new file mode 100644 index 00000000..7e65b27b --- /dev/null +++ b/help/D/object/spider.txt @@ -0,0 +1,9 @@ +\b;Spider +\image spider 8 8; +Spiders work like suicide commandoes: whenever a spider gets within a close enough range of its target, it inflates its abdomen and bursts into a multitude of tiny burning fragments. These fragments will set fire to everything they get in contact with. Luckily the spider won't survive. + +\t;Object \l;Category\u cbot\category; +\c;AlienSpider\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/start.txt b/help/D/object/start.txt new file mode 100644 index 00000000..a4523e12 --- /dev/null +++ b/help/D/object/start.txt @@ -0,0 +1,8 @@ +\b;Starting Pad +The starting pad is a platform used in some exercises. + +\t;Object \l;Category\u cbot\category; +\c;StartArea\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/station.txt b/help/D/object/station.txt new file mode 100644 index 00000000..17ad780d --- /dev/null +++ b/help/D/object/station.txt @@ -0,0 +1,28 @@ +\b;\button 164; Power Station +\image station 8 8; +The power station extracts energy from the underground and recharges \l;regular power cells\u object\power; through induction. To recharge a power cell loaded at the back of a bot, just move the bot to the center of the platform and wait a few seconds. A \l;power cell\u object\power; carried at arm's length can also be recharged. \l;Nuclear power cells\u object\atomic; are non-rechargeable. + +A power plant needs some energy in the subsoil. If the satellite report says that energy is available only at some places, you will need a \l;sniffer bot\u object\botsr; to prospect the subsoil. The marks it lays down provide information about the specifics of its findings: a \l;green cross\u object\enerspot; means that there is an energy deposit at this location beneath the surface, which is indispensable to the construction of a power station or a \l;power plant\u object\energy;. + +The large power cell at the top of the station remaining red after the construction is completed can only mean that the site is not geologically adequate. + +\t;Requirements for building +Any flat and geologically adequate surface at least 6 meters wide. + +\t;Input +Empty power cell. + +\t;Output +Recharged power cell. + +\t;Power source +Subsoil energy. + +\t;Duration of operation +A few seconds, depending on the capacity to be recharged. + +\t;Object \l;Category\u cbot\category; +\c;PowerStation\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/stonspot.txt b/help/D/object/stonspot.txt new file mode 100644 index 00000000..2c9f4deb --- /dev/null +++ b/help/D/object/stonspot.txt @@ -0,0 +1,14 @@ +\b;Underground Titanium Deposit +\image stonspot 4 4; +A red cross reveals the presence of a stratum of \l;titanium ore\u object\titanore; in the subsoil. It will be possible to extract it using a \l;derrick\u object\derrick;. + +A \l;sniffer\u object\botsr; will lay down a red cross each time it uncovers a deposit. \l;Sniffer bots\u object\botsr; can also detect the presence of \l;uranium ore\u object\uranore; as indicated by a \l;yellow circle\u object\uranspot; and of energy as indicated by a \l;green cross\u object\enerspot;. + +\t;Transport +Impossible. + +\t;Object \l;Category\u cbot\category; +\c;TitaniumSite\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/titan.txt b/help/D/object/titan.txt new file mode 100644 index 00000000..2e0d306d --- /dev/null +++ b/help/D/object/titan.txt @@ -0,0 +1,14 @@ +\b;Titanium +\image titan 4 4; +Titanium is indispensable for the construction of buildings, \l;bots\u object\factory; and \l;regular power cells\u object\energy;. There is usually some left on the \l;spaceship\u object\base; when you embark on a new mission. + +If more is needed, you'll have to \l;convert\u object\convert; chunks of \l;titanium ore\u object\titanore; into usable titanium cubes. + +\t;Transport +All \l;grabbers\u object\botgr; and the \l;astronaut\u object\human;. + +\t;Object \l;Category\u cbot\category; +\c;Titanium\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/titanore.txt b/help/D/object/titanore.txt new file mode 100644 index 00000000..a42551d3 --- /dev/null +++ b/help/D/object/titanore.txt @@ -0,0 +1,14 @@ +\b;Titanium Ore +\image titanore 4 4; +\l;Titanium\u object\titan; is indispensable for the construction of buildings, \l;bots\u object\factory; and \l;regular power cells\u object\energy;. The titanium \l;you\u object\human; see in its usable, cube shaped form has been \l;converted\u object\convert; from raw chunks of titanium ore. + +Titanium ore can be found either directly on the surface or in the subsoil. In the latter case, it needs to be first located and identified by a \l;sniffer\u object\botsr;, then extracted using a \l;derrick\u object\derrick;. If a sniffer identifies a titanium ore deposit, it lays down a \l;red cross\u object\stonspot;. + +\t;Transport +All \l;grabbers\u object\botgr; and the \l;astronaut\u object\human;. + +\t;Object \l;Category\u cbot\category; +\c;TitaniumOre\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/tnt.txt b/help/D/object/tnt.txt new file mode 100644 index 00000000..264d5acf --- /dev/null +++ b/help/D/object/tnt.txt @@ -0,0 +1,12 @@ +\b; Explosive (TNT) +\image tnt 4 4; +A TNT charge is extremely sensitive. You should approach it with caution so as not to hit it or give it any kind of shock. The risk is minimized once the explosive is within a \l;grabber\u object\botgr;'s grasp. + +\t;Transport +All \l;grabbers\u object\botgr; and the \l;astronaut\u object\human;. + +\t;Object \l;Category\u cbot\category; +\c;TNT\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/tower.txt b/help/D/object/tower.txt new file mode 100644 index 00000000..27443a6d --- /dev/null +++ b/help/D/object/tower.txt @@ -0,0 +1,22 @@ +\b;\button 165; Defense Tower +\image tower 8 8; +The tower constitutes the best defense against \l;enemy\u object\mother; attacks, whether they originate on the ground or from the skies. + +The tower requires either a \l;regular\u object\power; or a \l;nuclear\u object\atomic; power cell. A regular power cell provides a capacity for 8 shots. A nuclear power cell is of course preferable. The tower starts blinking when it runs out of power. + +The range is 40 meters. To visualize it, select the tower then hit the button \button 41;. Red dots outline the circular zone for 20 seconds. + +\t;Requirements for building +Any flat surface of at least 3.5 meters wide. + +\t;Power source +Regular or nuclear power cell. + +\t;Duration of operation +1 second. + +\t;Object \l;Category\u cbot\category; +\c;DefenseTower\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/uranore.txt b/help/D/object/uranore.txt new file mode 100644 index 00000000..354f2a25 --- /dev/null +++ b/help/D/object/uranore.txt @@ -0,0 +1,16 @@ +\b;Uranium Ore +\image uranore 4 4; +Uranium ore is essential to the production of \l;nuclear power cells\u object\atomic;. + +It is to be found on the surface or in the subsoil. In the latter case, it needs to be first located and identified by a \l;sniffer\u object\botsr;, then extracted using a \l;derrick\u object\derrick;. If a sniffer identifies a deposit of uranium ore, it lays down a \l;yellow circle\u object\uranspot;. + +A \l;nuclear plant\u object\nuclear; will then take care of converting the chunk into a new and fully charged \l;nuclear power cell\u object\atomic;. + +\t;Transport +All \l;grabbers\u object\botgr;. Due to its radioactivity, the \l;astronaut\u object\human; can not transport it. + +\t;Object \l;Category\u cbot\category; +\c;UraniumOre\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/uranspot.txt b/help/D/object/uranspot.txt new file mode 100644 index 00000000..2f90e070 --- /dev/null +++ b/help/D/object/uranspot.txt @@ -0,0 +1,15 @@ +\b; Underground Uranium Deposit +\image uranspot 4 4; +A yellow circle reveals the presence of a stratum of \l;uranium ore\u object\uranore; in the subsoil. It will be possible to extract it using a \l;derrick\u object\derrick;. + +A \l;sniffer\u object\botsr; will lay down a yellow circle each time it uncovers a deposit. \l;Sniffer bots\u object\botsr; can also detect the presence of \l;titanium ore\u object\titanore; as indicated by a \l;red cross\u object\stonspot; and of energy as indicated by a \l;green cross\u object\enerspot;. + + +\t;Transport +Impossible. + +\t;Object \l;Category\u cbot\category; +\c;UraniumSite\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/wasp.txt b/help/D/object/wasp.txt new file mode 100644 index 00000000..19c70649 --- /dev/null +++ b/help/D/object/wasp.txt @@ -0,0 +1,11 @@ +\b;Wasp +\image wasp 8 8; +The wasp is a formidable enemy, very hard to shoot down since its flying is particularly swift. Wasps carry balls of \l;organic matter\u object\bullet; that they will hurl at your bots and buildings and at yourself from above. + +The \l;defense tower\u object\tower; is the easiest way to get rid of them. + +\t;Object \l;Category\u cbot\category; +\c;AlienWasp\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/waypoint.txt b/help/D/object/waypoint.txt new file mode 100644 index 00000000..e3d322c0 --- /dev/null +++ b/help/D/object/waypoint.txt @@ -0,0 +1,12 @@ +\b;Checkpoint +\image waypoint 4 4; +In the exercises, blue crosses indicate positions that have to be crossed. They disappear as soon as a \l;practice bot\u object\bottr; crosses them. + +\t;Transport +Impossible. + +\t;Object \l;Category\u cbot\category; +\c;WayPoint\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/worm.txt b/help/D/object/worm.txt new file mode 100644 index 00000000..8644162b --- /dev/null +++ b/help/D/object/worm.txt @@ -0,0 +1,11 @@ +\b;Worm +\image worm 8 8; +Worms transmit viruses to programmed bots. The virus alters the programming to such an extent that the bot either functions in a very erratic way or stops functioning altogether. + +Worms live in the subsoil but sometimes emerge and crawl on the surface. When they are underground they are undetectable and indestructible. + +\t;Object \l;Category\u cbot\category; +\c;AlienWorm\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/object/wreck.txt b/help/D/object/wreck.txt new file mode 100644 index 00000000..dd0315e6 --- /dev/null +++ b/help/D/object/wreck.txt @@ -0,0 +1,10 @@ +\b;Derelict bot +A derelict bot is what's left of a bot after it has been disabled by a \l;spider\u object\spider; or by friendly fire. + +A \l;recycler\u object\botrecy; can convert a derelict bot back into a reusable \l;titanium cube\u object\titan;. + +\t;Object \l;Category\u cbot\category; +\c;Wreck\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/D/tant1.txt b/help/D/tant1.txt new file mode 100644 index 00000000..950b9bac --- /dev/null +++ b/help/D/tant1.txt @@ -0,0 +1,16 @@ +\b;Objective +As a defense against several giant ants attacking from the north, rotate the bot when shooting in order to perform barrage fire. + +\t;Program +When you are radio-guiding a bot, you can rotate the cannon during the burst in order to sweep a whole zone. You can also do this when programming the bot, but you have to turn the whole bot with the instruction \c;\l;motor\u cbot\motor;( , )\n;. This instruction asks for two numbers: the speed of the left-hand motor, and the speed of the right-hand motor. These numbers must range between -1 and +1.\c; motor(1,1);\n; moves the bot forward with maximum speed (both motors at full power).\c; motor(-1,-1);\n; moves the bot backward with maximum speed.\c; motor(1,0.9);\n; moves the bot forward with a slight turn to the right: the left-hand motor turns a little faster than the right-hand motor. And \c;motor(1,-1);\n; will turn the bot clockwise on the spot: the left-hand motor moves forward, the right-hand motor moves backward. + +After a \l;motor\u cbot\motor; instruction the motors will keep this speed until the next \c;motor\n;, \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n; or \c;\l;goto\u cbot\goto;\n; instruction. For example, if you perform a rotation on the spot with \c;motor(1,-1);\n; and afterward you shoot with \c;fire(1);\n;, the bot will continue to turn during the burst, and will sweep a whole zone. + +The ants attack from the north. In order to sweep the whole zone north of the bot, first turn 90 degrees left with \c;turn(90);\n;, then repeat always with \c;\l;while\u cbot\while; (true)\n; the following instructions: +o rotate clockwise with \c;motor(1,-1);\n; +o a 2 seconds burst with \c;fire(2);\n; +o rotate counter-clockwise with \c;motor(-1,1);\n; +o a 2 seconds burst. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/tant2.txt b/help/D/tant2.txt new file mode 100644 index 00000000..a775f77f --- /dev/null +++ b/help/D/tant2.txt @@ -0,0 +1,33 @@ +\b;Objective +As a defense against ants attacking from all sides, adapt the program \c;Spider2\n; in order to fly at a given altitude. + +\t;Program +The program necessary for this task is somewhat similar to the program \c;Spider2\n; that looks for the closest ant, turns towards it and fires: +\c; +\s;extern void object::Spider2() +\s;{ +\s; object item; +\s; +\s; while (true) +\s; { +\s; item = radar(AlienSpider); +\s; turn(direction(item.position)); +\s; fire(1); +\s; } +\s;} +\n; +You can copy-paste it to the editor, and adapt it. Replace \c;radar(AlienSpider);\n; by \c;radar(AlienAnt);\n;, and write before the \c;while\n; loop another loop that activates the jet beneath the \l;winged shooter\u object\botfj; until the bot reaches an altitude of 20 meters. + +The instruction \c;\l;jet\u cbot\jet;()\n; controls the jet beneath winged bots. The number in brackets must range between \c;-1\n; and \c;1\n;.\c; jet(1);\n; moves the bot upward with maximum speed.\c; jet(-1);\n; moves the bot downward with maximum speed, and \c;jet(0);\n; stabilizes the altitude. As the bot must reach a precise altitude, move it upward slowly with \c;jet(0.2);\n;, wait until it has reached the desired height, then stabilize the altitude with \c;jet(0);\n;. + +In order to "wait until it has reached the desired height", we need a conditional loop: the instructions inside the loop will be repeated only as long as a certain condition is true. The altitude of the bot is given by \c;position.z\n;. We already saw that \c;position\n; gives the position of the bot. And a position is given by the three coordinates x, y and z: the x-axis is the axis west-east, the y-axis is the axis south-north, and the z-axis is the vertical axis. Therefore we must wait while \c;position.z\n; is smaller than 20: +\c; +\s; while (position.z < 20) +\s; { +\s; wait(0.2); +\s; } +\n; +After waiting 0.2 seconds, the program will check if the altitude is still below 20 meters. If this is the case, it will wait a little more, if not, the program continues after the loop, i.e. after the closing brace \c;}\n;. Do not forget after the loop to stabilize the altitude with \c;jet(0);\n;. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/tant3.txt b/help/D/tant3.txt new file mode 100644 index 00000000..0798edad --- /dev/null +++ b/help/D/tant3.txt @@ -0,0 +1,40 @@ +\b;Objective +Adapt the program \c;Tower1\n; in order to avoid wasting energy when shooting at ants that are out of range. + +\t;Program +The program \c;Tower1\n; shoots in the direction of the closest ant, even if it is still out of range: +\c; +\s;extern void object::Tour1() +\s;{ +\s; object item; +\s; +\s; jet(0.2); +\s; while(position.z < 20) +\s; { +\s; wait(0.2); +\s; } +\s; jet(0); +\s; +\s; while(true) +\s; { +\s; item = radar(AlienAnt); +\s; turn(direction(item.position)); +\s; fire(1); +\s; } +\s;} +\n; +If the bot must perform the same task than before with only a \l;regular power cell\u object\power;, you can insert a loop that waits until the ant is close enough, i.e. until the ant is at less than 40 meters. Only one burst will be needed for every ant then. + +You can give the instruction \c;\l;radar\u cbot\radar();\n; more parameters (numbers) indicating where the radar should look for the ants. For example \c;radar(AlienAnt,0,360,0,40);\n; will only look for ants that are closer than 40 meters. The two first numbers tell the radar to search in all directions, the two last numbers tell the radar to detect only ants that are at a distance between 0 and 40 meters. If no ant is found that is closer than 40 meters, the instruction \c;\l;radar\u cbot\radar();\n; returns the value \c;null\n;. We can then write a conditional loop similar to the one written in the last exercise that waits as long as there is no ant closer than 40 meters: +\c; +\s; while (radar(AlienAnt, 0, 360, 0, 40) == null) +\s; { +\s; wait(0.2); +\s; } +\n; +Notice that two equal signs "==" are needed to perform a comparison of equality. + +Just insert these lines before the instruction \c;fire(0);\n;, and the bot will wait before shooting until the ant is closer than 40 meters. Like this a regular power cell is enough to kill all ants. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/tant4.txt b/help/D/tant4.txt new file mode 100644 index 00000000..7c58831f --- /dev/null +++ b/help/D/tant4.txt @@ -0,0 +1,10 @@ +\b;Objectif +Program a \l;winged shooter\u object\botfj; to hunt all ants in the region. + +\t;Program +In this swamp, a wheeled or tracked shooter is of little use. And ants, in opposition to spiders, keep moving: you can not just turn towards the closest ant, move forward and shoot. + +The easiest way to solve the problem consists in flying at a height of 10 meters, aiming downward with \c;aim(-20);\n;, and approaching the ant with a conditional loop as long as the \l;distance\u cbot\dist; is greater than 20m. In this conditional loop, you must look for the closest ant, turn towards it, set the motors at full speed with \c;motor(1,1);\n;, and wait a little, for example 0.2 seconds. All these instructions must be repeated until the ant is at less than 20 meters. Then just shoot it. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/tant5.txt b/help/D/tant5.txt new file mode 100644 index 00000000..e822f2fb --- /dev/null +++ b/help/D/tant5.txt @@ -0,0 +1,52 @@ +\b;Objective +Adapt the flying height of the \l;winged shooter\u object\botfj; to the terrain. + +\t;Program +Here is one more time the program of the previous exercise that hunts ants: +\c; +\s;extern void object::JetFighter1() +\s;{ +\s; object item; +\s; +\s; aim(-20); +\s; jet(0.2); +\s; while (position.z < 10) +\s; { +\s; wait(0.2); +\s; } +\s; jet(0); +\s; +\s; while (true) +\s; { +\s; while (radar(AlienAnt, 0, 360, 0, 20) == null) +\s; { +\s; item = radar(AlienAnt); +\s; turn(direction(item.position)); +\s; motor(1,1); +\s; wait(0.2); +\s; } +\s; fire(1); +\s; } +\s;} +\n; +The bot always stays at an altitude of 10m above sea level. This is not adapted to the mountainous terrain of the present exercise, the bot has got to adapt to the terrain. The best way to do so is to insert just before the \c;wait(0.2);\n; a test to see if the height above ground is too low or too high, and to react accordingly. + +We already saw that \c;position.z\n; gives the altitude above sea level. \c;\l;topo\u cbot\topo;(position)\n; gives the altitude of the ground at the position of the bot. If we want the bot to stay at an altitude between 6 and 9m above ground, we must treat the following cases: if \c;position.z-topo(position)\n; is smaller than 6, the bot must climb with \c;jet(1);\n;. If \c;position.z-topo(position)\n; is greater than 9, the bot must go down with \c;jet(-1);\n;. In order to program these tests, use the instruction \c;\l;if\u cbot\if;\n;, that executes the instructions in braces only once if the condition is true: +\c; +\s; jet(0); +\s; if (position.z-topo(position) < 6) +\s; { +\s; jet(1); +\s; } +\s; +\s; if (position.z-topo(position) > 9) +\s; { +\s; jet(-1); +\s; } +\n; +Before starting the testing, stabilize the altitude with \c;jet(0);\n;: in case the height above ground lies between 6 and 9m, the bot must neither climb nor go down. If afterwards either \c;jet(1);\n; or \c;jet(-1);\n; is executed, it will cancel the previous \c;jet(0);\n;. + +Just insert these lines before the \c;wait(0.2)\n;, and the bot will adapt to the terrain. You can then delete the first lines of the program that set the initial altitude at 10m. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/tcell1.txt b/help/D/tcell1.txt new file mode 100644 index 00000000..f001d85c --- /dev/null +++ b/help/D/tcell1.txt @@ -0,0 +1,38 @@ +\b;Objective +Program the \l;grabber bot\u object\botgr; to change the \l;power cell\u object\power; of the \l;winged shooter\u object\botfj;. The winged shooter can then shoot the spiders. + +\t;Procedure +1) Program the \l;grabber bot\u object\botgr;. +2) Execute the program with the arrow button \button 21;. +The \l;winged shooter\u object\botfj; is already programmed, it will do its job as soon as it has got a new power cell. + +\t;Program +You will need the following instructions: +\c; +\s;grab();\n; +\n;Takes whatever there is in front of the bot. +\c; +\s;drop();\n; +\n;Drops whatever the bot is carrying in front. +\c; +\s;turn();\n; +\n;We have seen this instruction already in the previous exercise: it performs a rotation of a certain angle, given in degrees. + +Let us see the beginning of the program: +o pick up the empty power cell with \c;grab();\n; +o turn left 90 degrees (quarter turn) with \c;turn(90)\n; +o drop the empty cell with \c;drop();\n; +o etc. + +It is up to you now to write the rest of the program! + +If you have got a problem, you can always look at the solution: select the \c;Solution\n; program, and click the braces button \button 22;. + +\t;Remarks +Be careful to write the instructions precisely, respecting lower and upper case letters. + +Always write one instruction per line, finishing each line with a semicolon. + +In case your program does not do exactly what you wanted, you can put the bot back at the starting point with the button \button 59;. You can also start over again from the beginning (hit the key "Esc", the click "Restart"). The program you have written will not be lost. + +\key;\key help;\norm; allows you to review these instructions at all times. diff --git a/help/D/tcell2.txt b/help/D/tcell2.txt new file mode 100644 index 00000000..6d989599 --- /dev/null +++ b/help/D/tcell2.txt @@ -0,0 +1,48 @@ +\b;Objective +Power the \l;winged shooters\u object\botfj; with \l;power cells\u object\power;, so that they can kill the ants in the ant nest located in a hole north of your position. + +\t;Program +The \l;wheeled grabber\u object\botgr; must go to a \l;power cell\u object\power;, grab it, go to a \l;winged shooter\u object\botfj;, and drop the cell. This task is very similar to the task performed in the previous exercise. Here is this program again: +\c; +\s;extern void object::Titanium2() +\s;{ +\s; object item; +\s; +\s; item = radar(TitaniumOre); +\s; goto(item.position); +\s; grab(); +\s; +\s; item = radar(Converter); +\s; goto(item.position); +\s; drop(); +\s;} +\n; +The best way to solve the present exercise is to copy \button 61; the program above into the clipboard (from \c;object\n; to \c;drop();\n;), and paste \button 62; it into the program editor. Then you just have to make the necessary changes in order to adapt it to the new task. + +Instead of looking for titanium ore (\c;TitaniumOre\n;), look for a power cell (\c;PowerCell\n;). Instead of going to a converter (\c;Converter\n;), go to a winged shooter (\c;WingedShooter\n;). As soon as the winged shooter has got a new power cell, it will get down to work. + +If you want to know more about the "names" of the different objects in the programming language, please refer to the \l;text about categories\u cbot\category;. + +\t;Further improvement: loops +Once the program explained above works properly, you can improve it in order to repeat the task over and over again. Like this you will not have to execute the program several times in order to power several bots. + +All programs written until now execute all instructions only once, one after another, from the beginning to the end of the program. You can also tell the bot to repeat some instructions: just write \c;while (true)\n;, an open brace, the instructions to be repeated, and a closing brace. Repeating some instructions several times in this way is called a loop. Here is an example of a program that repeats over and over the instructions that look for a power cell, grab it, and drop it on a winged shooter: +\c; +\s; while (true) +\s; { +\s; item = radar(PowerCell); +\s; goto(item.position); +\s; grab(); +\s; +\s; item = radar(WingedShooter); +\s; goto(item.position); +\s; drop(); +\s; } +\n; +Of course the variable declaration \c;object item;\n; must not be inside the loop, but just before: declare a variable only once. + +\t;Remark +A bot can execute a program perfectly well on his own. Meantime you can for example select the astronaut and take a look at what is happening at the nest, the show is worth it. But be careful not to get shot by your own bots... + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/tchasse.txt b/help/D/tchasse.txt new file mode 100644 index 00000000..eb807f5a --- /dev/null +++ b/help/D/tchasse.txt @@ -0,0 +1,18 @@ +\b;Exercise +You must find a way to destroy the four moving \l;target bots\u object\bottarg; without wasting one shot. Notice that after every move, the targets will stay motionless during one second. + +\b;General principle +1) Detect a target with the instruction \c;\l;radar\u cbot\radar;(TargetBot);\n;. +2) Turn towards the target with \c;\l;turn\u cbot\turn;(direction());\n;. +3) After the rotation, check if the target did not move. +4) If it did not, wait 0.2 seconds with \c;\l;wait\u cbot\wait;(0.2);\n;. +5) Re-check if the target did not move. +6) If it did not, shoot with \c;\l;fire\u cbot\fire;(2);\n; and wait 2 seconds for the target to be hit by the bullets and destroyed. + +There are of course other ways to achieve the goal. + +\b;Remark +In order to increase the efficiency of your shots, aim a little downward with \c;\l;aim\u cbot\aim;(-3);\n;. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/tdragst.txt b/help/D/tdragst.txt new file mode 100644 index 00000000..38b62d30 --- /dev/null +++ b/help/D/tdragst.txt @@ -0,0 +1,64 @@ +\b;Exercise +Reach the finishing pad (25m in front of you) as fast as possible, using the instruction \c;motor( , )\n;. You will have to slow down progressively at the end of the move, otherwise the bot will get blown up on the \l;mines\u object\mine;. + +You could very well write no more than \c;\l;move\u cbot\move;(25);\n;, this would work perfectly well. However, the aim of this exercise is to learn how to use the instruction \c;\l;motor\u cbot\motor;\n;. + +This instruction asks for two values: +1) The speed of the left-hand motor. +2) The speed of the right-hand motor. + +\s;\c; motor( left, right ); +\n; +The values must range between -1 and 1: +-1 = full throttle backward + 0 = stop + 1 = full throttle forward + +For example, \c;motor(0.5, 0.5);\n; will move the motor forward with half-speed, until new instructions are given to the motors. + +With the instruction \c;motor(0.5, 0.6);\n;, the bot will move forward with half-speed, turning at the same time slightly to the left: the right-hand motor moves a little faster (\c;0.6\n;) than the left-hand motor (\c;0.5\n;). + +\b;General principle +In order to move forward for exactly 25 meters and not more, you must move full speed during the first 23 meters, then reduce the speed of the motors progressively during the last two meters. +The \l;variable\u cbot\var; \l;position\u cbot\object; gives you at any moment the current position of the bot, and the instruction \c;\l;distance\u cbot\dist;( , );\n; returns the distance between two points. The best way to know where you are consists in saving the current position before the start into a \l;variable\u cbot\var;, for example a variable called \c;start\n;. Then you can calculate the distance between the starting position and your current position with \c;distance(position, start)\n;. + +\b;The program +1) declare the variables +\s;\c; point start; +\s; float len; +\n; +2) save the starting position +\s;\c; start = position; +\n; +3) start full throttle : +\s;\c; motor(1, 1); +\n; +4) Perform an infinite \c;\l;while\u cbot\while;\n; loop: +\s;\c; while ( true ) +\s; { +\s; len = distance(position, start); +\s; if ( len > 25-2 ) +\s; { +\s; motor( less than before ! ); +\s; } +\s; } +\n; +As long as the distance between the start and the current position is smaller than 23m, the instruction in braces after the \c;\l;if\u cbot\if;\n; instruction will not be executed, so the motors keep their maximum speed as they were told by the \c;\l;motor\u cbot\motor;(1,1);\n; instruction. + +In order to slow down progressively, the speed of the motors must be proportional to the remaining distance: +o \c;2.0\n; meters left -> speed = \c;1.00\n; (maximum) +o \c;1.5\n; meters left -> speed = \c;0.75\n; +o \c;1.0\n; meter left -> speed = \c;0.50\n; +o \c;0.5\n; meter left -> speed = \c;0.25\n; +o \c;0.0\n; meter left -> speed = \c;0.00\n; (stop) + +\image tdragst1 12 6; +You can use the following \l;expression\u cbot\expr; \c;(25-len)/2\n; in order to calculate the value for the speed instruction that must be given to the motors. + +It is now up to you to put everything together and to test the program. + +\b;Remark +You can use values greater than 1 for the instruction \c;\l;motor\u cbot\motor;();\n;, but the bot will not move any faster. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/texch1.txt b/help/D/texch1.txt new file mode 100644 index 00000000..914ba70f --- /dev/null +++ b/help/D/texch1.txt @@ -0,0 +1,31 @@ +\b;Exercise +Several \l;information exchange posts\u object\exchange; stand in the middle of a \l;mine\u object\mine; field. When the bot is close enough to an exchange post, it can read the information that it contains. Every exchange post contains the angle of the rotation that must be performed in order to reach the next exchange post, without touching a \l;mine\u object\mine;. +The exchange posts are distant 20m from each other. + +\b;General principe +Repeat 5 times : + o Move 20m forward. + o Read the direction of the next \l;information exchange post\u object\exchange;. + o Execute the necessary rotation. + +\image tinfo1 8 8; +In order to repeat the steps above, use a \c;\l;for\u cbot\for;\n; loop, as we saw it before. +\s;\c; for ( int i=0 ; i<5 ; i=i+1 ) +\n; +Move forward with the instruction \c;move(20);\n;. + +Use the instruction \c;\l;receive\u cbot\receive;("Direction");\n; in order to read the information contained in the \l;exchange post\u object\exchange;. This is of course possible only when the bot is close enough to the exchange post. +You will need a \l;variable\u cbot\var; to contain the value retrieved from the exchange post. Let us call it \c;dir\n;; you must declare it with the following line: +\s;\c; float dir; +\n; +Then retrieve the rotation angle from the exchange post, and put it into the variable: +\s;\c; dir = receive(...); +\n; +Then you can execute the rotation: +\s;\c; turn(dir); +\n; +\b;Remark +You can click on an \l;information exchange post\u object\exchange; in order to read what information it contains. In this exercise, every exchange post contains only one value called \c;"Direction"\n;, but it can contain up to 10 different values, as you will see in some of the following exercises. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/texch2.txt b/help/D/texch2.txt new file mode 100644 index 00000000..842770cf --- /dev/null +++ b/help/D/texch2.txt @@ -0,0 +1,36 @@ +\b;Exercise +In this exercise, the \l;information exchange posts\u object\exchange; along the way contain the direction of the next post and the distance. And you do not know how many exchange posts you must get in touch with before arriving at your goal. + +\b;General principle + Repeat forever: + o Retrieve the direction from the \l;exchange post\u object\exchange;. + o Retrieve the distance from the \l;exchange post\u object\exchange;. + o If no information could be retrieved, stop the program. + o Execute the rotation. + o Move forward to the next post. + +In order to repeat always, use a \c;\l;while\u cbot\while; (true)\n; loop. The instructions between the braces \c;{ }\n; will be repeated over and over, or until a \c;\l;break\u cbot\break;\n; instruction is executed. +\s;\c; while ( true ) +\n; +This time you need 2 \l;variables\u cbot\var;, one for the rotation angle, one for the distance, for example \c;dir\n; and \c;len\n; : +\s;\c; float dir, len; +\n; +Then you can retrieve the information: +\s;\c; dir = receive("Direction"); +\s;\c; len = receive("Length"); +\n; +A variable of the \l;type\u cbot\type; \c;\l;float\u cbot\float;\n; can take a special value called \c;\l;nan\u cbot\nan;\n;. This value means that the variable contains no number (Not A Number). +When there is no \l;exchange post\u object\exchange; nearby, either because the bot has reached the goal, or because it took the wrong way, the two variables \c;dir\n; and \c;len\n; contain this value. You can test this with the instruction \c;\l;if\u cbot\if;\n;, and stop the program if necessary with the instruction \c;\l;break\u cbot\break;\n;: +\s;\c; if ( dir == nan ) break; +\n; +If the information retrieval from the \l;exchange post\u object\exchange; has been performed successfully, execute the rotation: +\s;\c; turn(dir); +\n; +And move forward: +\s;\c; move(len); +\n; +\b;Remark +You can click on an \l;information exchange post\u object\exchange; in order to read what information it contains. In this exercise, every exchange post contains two values called \c;"Direction"\n; and \c;"Length"\n;. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/tfollow1.txt b/help/D/tfollow1.txt new file mode 100644 index 00000000..25f6fb93 --- /dev/null +++ b/help/D/tfollow1.txt @@ -0,0 +1,62 @@ +\b;Exercise +You must follow the \l;target bot\u object\bottr; with the explosive device, but without touching it, otherwise it will blow up. Every time the target bot stops, you must be close to it (less than 10m). After you managed to stay close to the target bot at 10 successive stops, it will lead you to the finishing pad, and the exercise is over. At every stop, the target bot checks that you are there. If you are not there, you must start over again. + +\b;General principle +Repeat forever : +o Look for the target bot. +o Calculate the distance to the bot. +o if the distance to the target bot is less than 5m, move backward. +o Otherwise, calculate the direction of the target bot, and move towards it. + +As many times before, use \c;\l;while\u cbot\while; (true)\n; in order to perform the infinite loop: +\s;\c;while (true) +\s;{ +\s; \n;instructions to be repeated ...\c; +\s;} +\n; +Look for the target bot with the instruction \c;\l;radar\u cbot\radar;\n;: +\s;\c; target = radar(TargetBot); +\n; +You do not have to test if the radar found a target bot: there must be one. + +Use the instruction \c;\l;distance\u cbot\dist;( , )\n; to calculate the distance between two points. The first point will be the position of your own bot, given by \c;position\n;. The second point is the position of the target bot, given by \c;target.position\n;. +\s;\c;len = distance(position, target.position); +\n; +If the distance to the target bot is smaller than 5m, move backward with a speed inversely proportional to the distance: the closer you are to the bot, the faster you must move backward. + Distance = 5.0 meters -> speed = 0.0 + Distance = 2.5 meters -> speed = -0.5 + Distance = 0.0 meters -> speed = -1.0 +You can use the \l;expression\u cbot\expr; \c;distance/5-1\n; in order to achieve this, together with the \c;\l;if\u cbot\if;\n; to test if the target is closer than 5m: +\s;\c;if ( len < 5 ) // too close ? +\s;{ +\s; motor(len/5-1, len/5-1); // moves backward +\s;} +\n; +If the distance to the target is greater than 5m, move towards the target. First calculate the angle necessary to face the target with the instruction \c;\l;direction\u cbot\direct;\n;. You can then adjust the speed of the right-hand and left-hand motor in order to follow the target: +\s;\c;else +\s;{ +\s; dir = direction(target.position); +\s; if ( dir >= 0 ) // target on the left side? +\s; { +\s; motor(1-dir/90, 1); +\s; } +\s; else // target on the right side? +\s; { +\s; \n;it is up to you to fill in\c; +\s; } +\s;} +\n; +When the target is on your left, \c;dir\n; takes a positive value, ranging between 0 and 180. The \l;expression\u cbot\expr; \c;1-dir/90\n; returns a speed ranging between 1 and -1, according to the direction: + direction = 0 -> speed = 1.0 + direction = 45 -> speed = 0.5 + direction = 90 -> speed = 0.0 + direction = 135 -> speed = -0.5 + direction = 180 -> speed = -1.0 + +\image radar2 14 10; +When the target is on the right side, \c;dir\n; is negative, ranging between 0 and -180. + +The only task left for you now is to declare the \l;variables\u cbot\var; that you use in the program. \c;target\n; is of type \c;object\n;, whereas \c;dir\n; and \c;len\n; are of type \c;float\n;. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/tfor.txt b/help/D/tfor.txt new file mode 100644 index 00000000..07285d69 --- /dev/null +++ b/help/D/tfor.txt @@ -0,0 +1,57 @@ +\b;Exercise +Destroy the six \l;targets\u object\bottarg; with a program using a loop. The bot must move 5m forward to get from one target to the next. + +\b;General principle +The program must execute the following scheme: +Repeat 6 times : + o move 5m forward + o turn 90 degrees left + o shoot + o turn 90 degrees right + +\image tfor1 14 5; +\b;Instruction \c;for ( )\n; +The instruction \c;\l;for\u cbot\for;\n; asks for 3 expressions: +1) Initialize the counting variable. +2) The end \l;condition\u cbot\cond;. +3) The counting \l;expression\u cbot\expr;. + +Here is the loop once it is integrated into the program frame: +\s;\c;extern void object::Massacre( ) +\s;{ +\s; for ( int i=0 ; i<6 ; i=i+1 ) +\s; { +\s; \n;instructions repeated 6 times ...\c; +\s; } +\s;} +\n; +ATTENTION: The line \c;for ( )\n; must not be followed by a \l;semicolon\u cbot\term; ! + +\b;Explanation of the instruction \c;for ( )\n; +1) \c;int i=0\n; + The \l;variable\u cbot\var; i is set to zero before the beginning of the loop. + +2) \c;i<6\n; + The loop will be executed as long as i is smaller than 6. + +3) \c;i=i+1\n; + At the end of every loop, add 1 to the variable i. + +\b;Blocks +Use braces \c;{ }\n; in order to create a \l;block\u cbot\bloc;. All the instructions that must be executed in the \c;for\n; loop are held together by a block. The whole program itself is made up of a block: +\c; +\s;extern void object::massacre( ) +\s;{ +\s; \n;fill in here ...\c; +\s;} +\n; +Never change these characters. Just add the instructions of the program between the braces. +You can fit several blocks one into the other. For example the \c;for\n; block is fitted into the block of the whole program. In order to improve readability, the editor lines up the braces belonging to the different blocks. + +\b;Remember +The instruction used to move forward is \c;\l;move\u cbot\move;();\n;. +The instruction used to turn the bot is \c;\l;turn\u cbot\turn;();\n;. A positive angle turns left. +The instruction used to fire the cannon is \c;\l;fire\u cbot\fire;(1);\n;. A one-second burst allows to destroy all six \l;targets\u object\bottarg;. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/tlaby1.txt b/help/D/tlaby1.txt new file mode 100644 index 00000000..c5deb7c6 --- /dev/null +++ b/help/D/tlaby1.txt @@ -0,0 +1,62 @@ +\b;Exercise +Program the bot so that it will find its way without hitting the walls of the labyrinth. We suppose that you do not know the configuration of the labyrinth, but there are no bifurcations, and no dead-ends. The labyrinth is made of squares measuring 5m each. + +\b;The instruction \c;radar\n; +The instruction \c;\l;radar\u cbot\radar;(Barrier, 0, 45, 0, 5);\n; will find any \l;barrier\u object\barrier; in front of the radar that is closer than 5m. Let us take a closer look at the five parameters used: + +\s;\c;Barrier\n; +\l;Category\u cbot\category; of the object that the radar must look for, i.e. a barrier. + +\s;\c;0\n; +Direction of the radar. \c;0\n; means that the radar must search straight forward. + +\s;\c;45\n; +Opening angle in degrees. With an opening angle of 45 degrees, barriers situated between 22.5 degrees to the left and 22.5 degrees to the right will be detected. + +\s;\c;0\n; +Minimum detection distance. \c;0\n; means that even object that are very close to the bot will be detected. + +\s;\c;5\n; +Maximum detection range. Any barrier situated beyond \c;5\n; meters will not be detected. + +To take another example, \c;\l;radar\u cbot\radar;(Barrier, 90, 45, 0, 5);\n; will direct the radar 90 degrees to the left, in order to test if the way to the left is free. + +\image tlaby1 10 10; +\b;General principle +The program must only take care of one square portion of the labyrinth. You will have to execute it several times in order to arrive at the finishing pad. +o If there is nothing in front, move forward. +o If there is nothing on the left side, quarter turn left, move forward. +o If there is nothing on the right side, quarter turn right, move forward. + +1) First of all declare three \l;variables\u cbot\var; of type \c;\l;object\u cbot\object;\n;, that we call \c;front\n;, \c;left\n; and \c;right\n;. Variables of this type can contain the description of any object, for example of a barrier found by the radar. +\s;\c; object front, left, right;\n; + +2) Look for barriers in all three directions, and put the result of the \c;radar\n; instruction into the three variables defined at point 1). If the radar finds nothing, the variable will contain the value \c;\l;null\u cbot\null;\n;. +\s;\c; front = radar(Barrier, 0, 45, 0, 5); +\s; left = radar(Barrier, 90, 45, 0, 5); +\s; right = radar(Barrier, -90, 45, 0, 5); +\n; +3) Test if the way is free in front of the bot with the instruction \c;\l;if\u cbot\if;\n;. If the test is true, the instructions in braces \c;{ }\n; will be executed, otherwise the execution will resume after the closing brace \c;}\n;. +The instruction \c;return\n; leaves the program: the job is done. +\s;\c;if ( front == null ) +\s;{ +\s; move(5); +\s; return; +\s;} +\n; +4) Test if it is possible to turn left; if so, turn left with the instruction \c;\l;turn\u cbot\turn;\n; and move 5m forward. +\s;\c;if ( left == null ) +\s;{ +\s; turn(90); +\s; move(5); +\s; return; +\s;} +\n; +5) Test if it is possible to turn right. + ... + +\b;Attention +The instruction \c;if ( )\n; must never be followed by a \l;semicolon\u cbot\term;. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/tlaby2.txt b/help/D/tlaby2.txt new file mode 100644 index 00000000..b09ec7f2 --- /dev/null +++ b/help/D/tlaby2.txt @@ -0,0 +1,55 @@ +\b;Exercise +This exercise is very similar to the previous one. This time the bot should find its way alone from the start to the goal; you will have to execute the program only once. + +\b;Remark +The labyrinth is not exactly the same, but this should be of no importance, as the program adapts to what it "sees". + +\image tlaby1 10 10; +\b;General principle +Use an infinite \c;\l;while\u cbot\while;\n; loop in order to execute the previous program several times: +\s;\c;while ( true ) +\s;{ +\s; \n;If there is nothing in front, move forward\c; +\s; \n;If there is nothing on your left hand, turn left\c; +\s; \n;If there is nothing on your right hand, turn right\c; +\s;} +\n; +Inside this \c;while\n; loop, replace the \c;return\n; instructions by \c;\l;continue\u cbot\continue;\n; instructions. \c;return\n; would quit the program, which is not what we want here. \c;continue\n; will just resume the execution at the beginning of the \c;\l;while\u cbot\while;\n; loop: +\s;\c;if ( front == null ) +\s;{ +\s; move(5); +\s; continue; +\s;} +\n; +\b;Remember +Here is again the program of the previous exercise : +\c; +\s;object front, left, right; +\s; +\s;front = radar(Barrier, 0, 45, 0, 5); +\s;left = radar(Barrier, 90, 45, 0, 5); +\s;right = radar(Barrier, -90, 45, 0, 5); +\s; +\s;if ( front == null ) +\s;{ +\s; move(5); +\s; return; +\s;} +\s;if ( left == null ) +\s;{ +\s; turn(90); +\s; move(5); +\s; return; +\s;} +\s;if ( right == null ) +\s;{ +\s; turn(-90); +\s; move(5); +\s; return; +\s;} +\n; +\b;Help +If you need some help, just click on the hyperlinks of the instructions \c;\l;radar\u cbot\radar;\n;, \c;\l;if\u cbot\if;\n;, \c;\l;move\u cbot\move;\n; or \c;\l;turn\u cbot\turn;\n;. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/tmove1.txt b/help/D/tmove1.txt new file mode 100644 index 00000000..24604c1f --- /dev/null +++ b/help/D/tmove1.txt @@ -0,0 +1,33 @@ +\b;Exercise +Program the robot in such a way that it arrives on the finishing pad, after having passed by the three blue crosses. + +\b;Procedure +1) Take the power cell and put it on the rear of the bot. +2) Walk around on reconnaissance to understand what the bot must do. +3) Program the bot. To do so, you must select it, and then click on the braces button \button 22;; you will get into the program editor. +4) Once you finished writing the program, click "OK", and execute the program with the arrow key \button 21;. + +\b;Program +The pads are at a distance of 20 meters from each other. +The instruction \c;move(20);\n; moves 20 meters forward. +The instruction \c;turn(90);\n; turns left with an angle of 90 degrees. +The instruction \c;turn(-90);\n; turns right with an angle of 90 degrees. + +The frame of the program consists in: +\c; +\s; extern void object::MoveBot( ) +\s; { +\s; \n;\\write the necessary instructions here ...\c; +\s; } +\n; +For now, you must not change the frame of the program. Just insert the instructions you need to move the bot around between the braces \c;{ }\n;. + +\b;Attention +Be very careful about upper case and lower case letters! +Every instruction must be terminated with a semicolon. + +\b;Helpful trick +When you write the program, you can watch the scene by clicking on the button \button 51;, and by moving the mouse to the edges of the window to turn the camera. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/tmove2.txt b/help/D/tmove2.txt new file mode 100644 index 00000000..14e873f5 --- /dev/null +++ b/help/D/tmove2.txt @@ -0,0 +1,66 @@ +\b;Exercise +This exercise is very similar to the previous one. The bot must move exactly in the same way, but when writing the program, you must use a new concept that is extremely important in programming: \l;variables\u cbot\var;. +We saw that all the pads are at a distance form each other of 20 meters. And all the rotations performed consist in 90 degree angles. Instead of rewriting the same values over and over again in the program, we can store them in a variable: + +Instead of: +\c;\s; move(20); +\s; turn(90); +\s; move(20); +\s; turn(-90); +\s; ... +\n; +We write : +\c;\s; dist = 20; +\s; dir = 90; +\s; move(dist); +\s; turn(dir); +\s; move(dist); +\s; turn(-dir); +\s; ... +\n; +\b;Variables +A \l;variable\u cbot\var; is composed of three elements: +1) The name +2) The type of the content +3) The content + +\t;The name +Use the name to refer to a variable. For example, instead of writing \c;move(20);\n;, write \c;move(dist);\n;: "dist" is the name of the variable. You can choose almost any name for a variable, for example \c;dist\n;, \c;dir\n;, \c;p2\n;, \c;a\n;, \c;x\n;, \c;nothing_2_grab\n;, etc. + +\t;The type +The type of a variable determines what kind of information the variable can contain. According to the type, a variable can contain a whole number, a real number, a character string, the coordinates of a point, etc. Here is a list with the most common variable types: + o \c;\l;int\u cbot\int;\n; for a whole number (12, -500, etc.) + o \c;\l;float\u cbot\float;\n; for a real number (3.14, 0.2, -99.98, etc.) + o \c;\l;string\u cbot\string;\n; for a character string ("Hello!", "Nothing to grab", etc.) + o \c;\l;point\u cbot\point;\n; for the x,y,z-coordinates of a point in space + o \c;\l;object\u cbot\object;\n; for the information about an object (bot, building, etc.) + +\t;The content +The content of a variable can be a number, a string, coordinates, etc., according to the type of the variable. The content of a variable can change many times during the execution of a program. + +Before you can use a variable, you have to declare it. For example, before you can use the two variables \c;dist\n; and \c;dir\n;, you must declare them with the following lines: +\c; +\s; float dist; +\s; float dir; +\n; +Now you can use the two variables. To put the value 20 into \c;dist\n; and 90 into \c;dir\n;, write: +\c; +\s; dist = 20; +\s; dir = 90; +\n; +Now you can move and turn the bot with the instructions \c;\l;move\u cbot\move;\n; and \c;\l;turn\n;\u cbot\turn;: +\c; +\s; move(dist); +\s; turn(dir); +\n; +You can also use a whole \l;mathematical expression\u cbot\expr; instead of just the variable: +\c; +\s; move(dist+100); +\s; turn(-dir); +\n; +The latter instruction will be needed to turn the bot right. + +Now, rewrite the program of the previous exercise, but use a variable for the distance and another variable for the angle of the rotation. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/tproc1.txt b/help/D/tproc1.txt new file mode 100644 index 00000000..484d7897 --- /dev/null +++ b/help/D/tproc1.txt @@ -0,0 +1,59 @@ +\b;Exercise +The \l;bot\u object\bottr; must pass over all the \l;blue crosses\u object\waypoint; on the ground. The way that must be covered is made of two squares. The first one measures 15 meters, the second 25 meters. + +\image tproc1a 8 8; +\b;General principle +In order to solve this problem, the most efficient solution consists in creating a \l;function\u cbot\function; that instructs the bot to move on a square shape of a certain size. The main program becomes then very simple:\c; +\s;extern void object::Function1( ) +\s;{ +\s; Square(15); +\s; Square(25); +\s;} +\n; +You still have to define the function called \c;Square\n;. In order to do this, you will have to write some instructions outside the \l;block\u cbot\bloc; that until now was the frame of each one of your programs. At the very end of the program, after the last closing brace, we will define the function \c;Square\n;. The program will take the following shape: +\c; +\s;extern void object::Function1( ) +\s;{ +\s; \n;main function ...\c; +\s;} +\s; +\s;void object::Square(float length) +\s;{ +\s; \n;new function ...\c; +\s;} +\n; +Let us look in detail at the different elements of the declaration of the function \c;Square\n;: + +\c;\l;void\u cbot\void;\n; +This means that this function will return no value. + +\c;\l;object\u cbot\object;::\n; +When you write this in front of the function name, you can have access in the function to all the characteristics of the bot, such as \c;position\n;, \c;orientation\n;, etc. In this exercise, this element is not compulsory, as we will not need the characteristics of the bot in the function. + +\c;Square ( )\n; +This is the name of the function. You can call it Square, or any other name. + +\c;\l;float\u cbot\float; length\n; +Here you define the parameters that the function will get when it is called. The first time the function is actually called with \c;Square(15)\n;, the variable \c;length\n; will contain the value \c;15\n;. The second time, \c;length\n; will contain \c;25\n;. + +Here is in detail what will happen when the program is executed: +- First the main function \c;Function\n; will be executed. +- At the line \c;Square(15)\n;, the program will follow the red arrow and enter the function \c;Square\n; a first time, \c;length\n; containing \c;15\n;. +- At the end of the function \c;Square\n;, the program follows the orange arrow and comes back to the main function. +- At the line \c;Square(25)\n;, the program will follow the blue arrow and enter the function \c;Square\n; a second time. +- At the end of the function \c;Square\n;, the program follows the light blue arrow and comes back to the main function. + +\image tproc1b 17 12; +In the function \c;Square\n;, use the instructions \c;\l;move\u cbot\move;\n; and \c;\l;turn\u cbot\turn;\n;. In order to make it shorter, you can use a \c;\l;for\u cbot\for;\n; loop, that will repeat the instructions \c;\l;move\u cbot\move;\n; and \c;\l;turn\u cbot\turn;\n; 4 times; however, this is not compulsory. +\c; +\s;void object::Square(float length) +\s;{ +\s; for ( int i=0 ; i<4 ; i=i+1 ) +\s; { +\s; move(length); +\s; turn(90); +\s; } +\s;} +\n; +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/tproc2.txt b/help/D/tproc2.txt new file mode 100644 index 00000000..6be8e7b2 --- /dev/null +++ b/help/D/tproc2.txt @@ -0,0 +1,34 @@ +\b;Exercise +Follow the way in form of a spiral. The bot must move 2 times 25m forward and turn, then move 2 times 20m forward and turn, and so on. +\image tproc2 8 8; +\b;Function +You will have noticed that the way is made of "L"-shaped parts that are fit one into another. The first one (dark blue) measures two times 25 meters. The second one (light blue) measures 5 meters less. Let us start with writing the \l;function\u cbot\function; that will move the bot on a "L"-shaped part whose length will be given as a parameter: +\c; +\s;void object::Part(float length) +\s;{ +\s; for ( int i=0 ; i<2 ; i=i+1 ) +\s; { +\s; move(length); +\s; turn(90); +\s; } +\s;} +\n; +Now you just need to write the main function, that will call the function \c;Part\n;. At the beginning the variable \c;rest\n; will be set to 25m. The \c;while\n; loop will then repeat the instructions inside the block as long as \c;rest\n; is greater than zero. Inside the loop, first call the function \c;Part\n; (see above), then subtract 5m to the length of the L. +\c; +\s;extern void object::Function2( ) +\s;{ +\s; float rest = 25; +\s; while ( rest > 0 ) +\s; { +\s; Part(rest); +\s; rest = rest-5; +\s; } +\s;} +\n; +The function \c;Part\n; will be called a last time with the value \c;5\n;. Then the expression \c;rest-5\n; will set the value of the variable \c;rest\n; to zero, and the \c;while\n; loop will stop. + +\b;Remark +You will have noticed that in the previous exercise, the main function was at the beginning of the program, whereas in this exercise, it is at the end of the program, after the function \c;Part\n;. The rank order of the functions in the program does not matter, you can write a program either way. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/tradar1.txt b/help/D/tradar1.txt new file mode 100644 index 00000000..d55a31c6 --- /dev/null +++ b/help/D/tradar1.txt @@ -0,0 +1,57 @@ +\b;Exercise +Let the bot find all the \l;blue crosses\u object\waypoint; on the ground. As soon as the bot passed over one of the crosses, it will disappear. Here is the general principle that you will apply: + +Repeat forever: + o Look for a cross + o If there is none, stop the program. + o Calculate the direction of the cross. + o Set the speed of the motors in such a way that they will find their way to the cross. + +\b;The program +Use a \c;\l;while\u cbot\while;\n; loop in order to repeat several instructions over and over: +\s;\c;while ( true ) +\s;{ +\s; \n;instructions...\c; +\s;} +\n; +The instruction \c;\l;radar\u cbot\radar;\n; will detect the blue crosses and put their description into a variable, for example \c;spot\n;. In this case, \c;\l;radar\u cbot\radar;()\n; needs only one parameter, i.e. the category of the object that it must look for: +\s;\c;spot = radar(WayPoint); +\n; +Once all the crosses have been found, \c;radar\n; will return the value \c;\l;null\u cbot\null;\n;. You will have to test this case and react accordingly with the instruction \c;\l;if\u cbot\if;\n;: +\s;\c;if ( spot == null ) // no more ? +\s;{ +\s; motor(0, 0); // stops the motors +\s; break; // stops the loop +\s;} +\n;The instruction \c;\l;break\u cbot\break;\n; will stop the infinite loop \c;while (true)\n;. + +Use the instruction \c;\l;direction\u cbot\direct;()\n; to calculate the angle of the rotation that the bot must perform in order to turn towards the blue cross. The coordinates of the object are given by \c;spot.position\n;. The following line will put the angle of the necessary rotation into the \l;variable\u cbot\var; \c;dir\n;: +\s;\c;dir = direction(spot.position); +\n; +The value of the angle is positive if the blue cross is on your left hand, and negative if it is on your right hand. If the cross to be reached is on your left hand, you must set the right-hand motor to full speed, and set the left-hand motor to a lower speed, according to the angle: + + direction = \c; 0\n; -> speed = \c; 1.0\n; + direction = \c; 45\n; -> speed = \c; 0.5\n; + direction = \c; 90\n; -> speed = \c; 0.0\n; + direction = \c;135\n; -> speed = \c;-0.5\n; + direction = \c;180\n; -> speed = \c;-1.0\n; + +The graphic below shows the speed of the left-hand and right-hand motor as set by the instruction \c;\l;motor\u cbot\motor;\n;, according to the angle: + +\image radar2 14 10; +If the cross is straight ahead, the angle is 0 degrees. The motors will get the speeds 1 and 1, which means full speed ahead. If the cross is behind, the right motor will be set to speed -1: it will turn around. You can use the \l;expression\u cbot\expr; \c;1+dir/90\n; in order to calculate the necessary speed of the motors: +\s;\c;if ( dir < 0 ) // on the right side? +\s;{ +\s; motor(1, 1+dir/90); // turns more or less +\s;} +\n; +Use the same principle if the angle has got a positive value, ranging between 0 and 180 degrees. It is up to you to work out the exact instructions to be performed: +\s;\c;else // on the left side? +\s;{ +\s; \n;up to you to fill in here...\c; +\s;} +\n; +At the beginning of the program, you must still declare all the variables. \c;spot\n; is of type \c;\l;object\u cbot\object;\n;, whereas \c;dir\n; is of type \c;\l;float\u cbot\float;\n;. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/tradar2.txt b/help/D/tradar2.txt new file mode 100644 index 00000000..8ad15fce --- /dev/null +++ b/help/D/tradar2.txt @@ -0,0 +1,8 @@ +\b;Exercise +In this exercise, a "crazy bot" places many \l;blue crosses\u object\waypoint; on the ground. In order to find them, you can reuse the program written in the previous exercise. This can show you the flexibility of such a program: it adapts to whatever environment it encounters. + +\t;Remark +Do not wait too long, because the crazy bot gets down to work immediately. Fortunately, as long as you are in the program editor, the game will pause. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/tremote1.txt b/help/D/tremote1.txt new file mode 100644 index 00000000..70c55aa0 --- /dev/null +++ b/help/D/tremote1.txt @@ -0,0 +1,39 @@ +\b;Exercise +Remote control a robot using an \l;information exchange post\u object\exchange;, so it will transport \l;uranium ore\u object\uranore;. +The main actors of this exercise are¦: + +1) A \l;sniffer\u object\botsr; (can't carry anything). +2) An \l;information exchange post\u object\exchange; that receives information from a sender and then transmits it to a receiver. +3) A \l;grabber\u object\botgr; which waits for orders from the exchange post. You have no way control this robot directly. + +\image tremot1a 16 8; +An information exchange post stores "name/value" couples. To control the "slave" robot we use just one couple¦: + + name="order", valuer=order number + +The slace robot understands following orders¦: +\c; + 1 -> grab(); // take an object + 2 -> drop(); // drop an object + 3 -> move(10); // move 10 meters forward + 4 -> move(-10); // move 10 meters backwards +\n; +To instruct the slave to move forward 10 meters all you have to do is¦: +\c;\s; \l;send\u cbot\send;("order", 3, 100); // order 3 -> "move(10)" +\n; +After the send instruction we wait for 5 seconds to be sure the move is done. +\c;\s; \l;wait\u cbot\wait;(5); +\n; +Remark: There is a better way for waiting the order has been executed, but we'll see this later in exercise "Remote Control #2". + +To finish the exercise you must¦: + +1) Take the uranium ore +2) Move forward by 10 meters +3) Drop the uranium ore +4) Move backwards by 10 meters + +It's up to you to write the program. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/tremote2.txt b/help/D/tremote2.txt new file mode 100644 index 00000000..58083be3 --- /dev/null +++ b/help/D/tremote2.txt @@ -0,0 +1,50 @@ +\b;Exercise +Remote control a robot using an \l;information exchange post\u object\exchange;, so it will pass over the 6 blue waypoints. +The main actors of this exercise are¦: + +1) A \l;wheeled grabber\u object\botgr; robot without an energy cell. This is the master you have to program. +2) An \l;information exchange post\u object\exchange; that receives information from the master and then transmits it to the slave. +3) A \l;practice bot\u object\bottr; which waits for orders from the exchange post. This robot has already been programmed. + +\image tremot2a 16 8; +An information exchange post stores "name/value" couples. To control the "slave" robot we use two couples¦: + +1) name="order", value=order number +2) nom="param", valuer=parameter for the operation + +Order #1 means "move" and order #2 means "turn". The parameter is the distance to move or the turning angle. For example to make the slave move 20 meters write¦: +\c;\s; \l;send\u cbot\send;("order", 1, 100); // order "move" +\s; \l;send\u cbot\send;("param", 20, 100); // distance 20 meters +\n; +These two instruction send following 2 pieces of information to the exchange post¦: +\c; order=1 + param=20 +\n; +The slave robot waits for an order and executes it. Once the order has been executed by the slave, it removes the order from the exchange post. Once an order has been sent, the master must wait for the slave finishing the order before sending the next order. This is done by testing if the order is still inside the exchange post. Just write¦: +\c;\s; while ( \l;testinfo\u cbot\testinfo;("order", 100) ) // wait for end of work +\s; { +\s; wait(1); +\s; } +\n; +As we must give more than one order its most convenient to write a \l;function\u cbot\function; \c;SendToPost\n;, that sends the order and wait for its completion¦: +\c;\s;void object::SendToPost(float order, float param) +\s;{ +\s; send("param", param, 100); // send the parameter +\s; send("order", order, 100); // send the order +\s; +\s; while ( testinfo("order", 100) ) // wait for end of work +\s; { +\s; wait(1); +\s; } +\s;} +\n; +To move forward by 20 meters, you must write in the main program¦: +\c;\s; SendToPost(1, 20); // move(20); +\n; +This is the route the robot must travel through¦: + +\image tremot2b 8 8; +It's up to you to finish the programming. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/tremote3.txt b/help/D/tremote3.txt new file mode 100644 index 00000000..b8875f05 --- /dev/null +++ b/help/D/tremote3.txt @@ -0,0 +1,103 @@ +\b;Exercice +Remote control a slave robot without using an \l;information exchange post\u object\exchange;. The robot should pass over the 6 blue crosses. You must use a \l;string\u cbot\string; to pass the orders to the slave bot. This string contains the order the slave shoud execute, for exemple \c;"move(20)"\n;. You can see that this is the same syntax as used in the CBOT language but we could have chosen any other syntax for exemple something like \c;"advance=20"\n;. The string will be a \c;\l;static\u cbot\static;\n; class member that will be used to communicate from the master to the slave. + +The two main actors of this exercise are: +1) The \l;wheeled grabber\u object\botgr; without an energy pack and therefore immobile. This is the master you should program so it will transmit orders to the slave. +2) The slave \l;practice bot\u object\bottr; which is already programmed and just waits for orders from the master. + +\b;The slave +First of all we must understand how the program of the slave works. The \l;class\u cbot\class; \c;exchange\n; contains the mechanism for exchaning the orders. We declare a \c;\l;static\u cbot\static;\n; class member \c;m_order\n; which will contain the order to be executed. The word \c;static\n; insures that the member \c;m_order\n; is shared between all instances of the \l;class\u cbot\class; exchange. + +\c;\s;\l;public\u cbot\public; \l;class\u cbot\class; exchange +\s;{ +\s; \l;static\u cbot\static; \l;private\u cbot\private; \l;string\u cbot\string; m_order = ""; + +\n;The \c;put\n; method will be used by the master robot for transmitting an order. As long as the string \c;m_order\n; is not empty, the slave has not finished the order and the \c;put\n; method will return \c;false\n; and will do nothing. + +\c;\s; \l;synchronized\u cbot\synchro; \l;bool\u cbot\bool; put(string order) +\s; { +\s; if ( m_order == "" ) +\s; { +\s; m_order = order; +\s; return true; +\s; } +\s; else +\s; { +\s; return false; +\s; } +\s; } +\n; +Another method \c;get\n; will be used by the slave to retrieve the orders. This method returns the string contained in \c;m_order\n; and empties it, so a new order can be accepted: + +\c;\s; \l;synchronized\u cbot\synchro; string get() +\s; { +\s; string ret = m_order; +\s; m_order = ""; +\s; return ret; +\s; } +\s;} +\n; +The main program of the slave contains an instance of the class \c;exchange\n; called \c;list\n;. + +\c;\s;\l;extern\u cbot\extern; void object::Slave3( ) +\s;{ +\s; exchange list(); +\s; string todo; +\n; +The outer \c;while\n; loop lasts for ever. The inner \c;while\n; loop waits for an order by using the \c;get\n; method of the \c;exchange\n; class. As soon as \c;get\n; returns a non empty string, the while loop stops. + +\c;\s; \l;while\u cbot\while; ( true ) +\s; { +\s; \l;while\u cbot\while; ( true ) +\s; { +\s; todo = list.get(); +\s; if ( todo != "" ) break; +\s; wait(1); +\s; } +\n; +Now we have received the order in the \c;todo\n; variable. All we have to do is execute it: + +\c;\s; if ( \l;strfind\u cbot\strfind;(todo, "move") == 0 ) +\s; { +\s; move(\l;strval\u cbot\strval;(\l;strmid\u cbot\strmid;(todo,5))); +\s; } +\s; if ( strfind(todo, "turn") == 0 ) +\s; { +\s; turn(strval(strmid(todo,5))); +\s; } +\s; } +\s;} +\n; +\b;The master +In the master we write an function called \c;SendOrder\n; which will send an order to the slave: + +\c;\s;void object::SendOrder(string order) +\s;{ +\s; exchange list(); +\s; +\s; while ( list.put(order) == false ) +\s; { +\s; wait(1); +\s; } +\s;} +\n; +The \c;while\n; loop waits until a pending order has been terminated, that is the slaved has exited from the \c;get\n; method. +Now the main program of the master is very simple: + +\c;\s;extern void object::Remote3( ) +\s;{ +\s; SendOrder("move(20)"); +\s; SendOrder("turn(90)"); +\s; SendOrder("move(20)"); +\s; SendOrder("turn(90)"); +\s; SendOrder("move(10)"); +\s; SendOrder("turn(90)"); +\s; SendOrder("move(10)"); +\s; SendOrder("turn(-90)"); +\s; SendOrder("move(10)"); +\s;} +\n; +\key;\key help;\norm; show these instruction at any time. + +\t;See also +\l;Controls\u command; and \l;programming\u cbot;. diff --git a/help/D/tremote4.txt b/help/D/tremote4.txt new file mode 100644 index 00000000..876a00f3 --- /dev/null +++ b/help/D/tremote4.txt @@ -0,0 +1,129 @@ +\b;Exercise +Remote control a slave robot without using an \l;information exchange post\u object\exchange;. The robot should pass over the 6 blue crosses. You must use a \c;\l;static\u cbot\static;\n; variable to pass the orders to the slave bot. + +The two main actors of this exercise are: +1) The \l;wheeled grabber\u object\botgr; without an energy pack and therefore immobile. This is the master you should program so it will transmit orders to the slave. +2) The slave \l;practice bot\u object\bottr; which is already programmed and just waits for orders from the master. + +\b;The slave +First of all we must understand how the program of the slave works. The \l;class\u cbot\class; \c;order\n; contains two members: \c;m_type\n; is the order to execute (move or turn) and \c;m_param\n; is the distance to move or the rotation angle¦: + +\c;\s;\l;public\u cbot\public; \l;class\u cbot\class; order +\s;{ +\s; \l;int\u cbot\int; m_type = \l;nan\u cbot\nan;; +\s; \l;float\u cbot\float; m_param; +\s;} +\n; +A second \l;class\u cbot\class; \c;exchange\n; contains the mechanism for exchanging the orders. We declare a \c;\l;static\u cbot\static;\n; class member \c;m_order\n; which will contain the order to be executed. The word \c;static\n; insures that the member \c;m_order\n; is shared between all instances of the \l;class\u cbot\class; exchange. + +\c;\s;\l;public\u cbot\public; \l;class\u cbot\class; exchange +\s;{ +\s; \l;static\u cbot\static; \l;private\u cbot\private; order m_order = new order; +\n; +\n;The \c;put\n; method will be used by the master robot for transmitting an order. As long as \c;m_order\n; is different from \c;\l;nan\u cbot\nan;\n;, the slave has not finished the order and the \c;put\n; method will return \c;false\n; and will do nothing¦: + +\c;\s; \l;synchronized\u cbot\synchro; \l;bool\u cbot\bool; put(order a) +\s; { +\s; if ( m_order.m_type == nan ) +\s; { +\s; m_order = a; +\s; return true; +\s; } +\s; else +\s; { +\s; return false; +\s; } +\s; } +\n; +Another method \c;get\n; will be used by the slave to retrieve the orders. This method returns the order to be executed: + +\c;\s; \l;synchronized\u cbot\synchro; order get() +\s; { +\s; return m_order; +\s; } +\n; +A third method \c;delete\n; will be used by the slave to indicate that the order has been executed: + +\c;\s; \l;synchronized\u cbot\synchro; void delete() +\s; { +\s; m_order.m_type = nan; +\s; } +\s;} +\n; +The main program of the slave contains an instance of the class \c;exchange\n; called \c;list\n;. We put () after the word \c;list\n; in order to create an instance of the class \c;exchange\n;. + +\c;\s;\l;extern\u cbot\extern; void object::Slave3( ) +\s;{ +\s; exchange list(); +\s; order todo; +\n; +The outer \c;while\n; loop lasts for ever. The inner \c;while\n; loop waits for an order by using the \c;get\n; method of the \c;exchange\n; class. As soon as \c;get\n; returns a value different from \c;nan\n;, the while loop stops. + +\c;\s; \l;while\u cbot\while; ( true ) +\s; { +\s; \l;while\u cbot\while; ( true ) +\s; { +\s; todo = list.get(); +\s; if ( todo.m_type != nan ) break; +\s; wait(1); +\s; } +\n; +Now we have received the order in the \c;todo\n; variable. All we have to do is execute it: + +\c;\s; if ( todo.m_type == 1 ) +\s; { +\s; move(todo.m_param); +\s; } +\s; else if ( todo.m_type == 2 ) +\s; { +\s; turn(todo.m_param); +\s; } +\s; else +\s; { +\s; message("Unknown order"); +\s; } +\n; +As soon as the execution of the order is finished, we must call the \c;delete\n; method so the master knows that another order can be sent¦: + +\c;\s; list.delete(); +\s; } +\s;} +\n; +\b;The master +In the master we write an function called \c;SendOrder\n; which will send an order to the slave: + +\c;\s;void object::SendOrder(float order, float param) +\s;{ +\s; exchange list(); +\s; order todo(); +\s; +\s; todo.m_type = order; +\s; todo.m_param = param; +\s; +\s; while ( list.put(todo) == false ) +\s; { +\s; wait(1); +\s; } +\s;} +\n; +The \c;while\n; loop waits until a pending order has been terminated, that is the slaved has exited from the \c;get\n; method and the \c;delete\n; method has been called. +Now the main program of the master is very simple: + +\c;\s;extern void object::Remote4( ) +\s;{ +\s; SendOrder(1, 20); // move(20); +\s; SendOrder(2, 90); // turn(90); +\s; SendOrder(1, 20); // move(20); +\s; SendOrder(2, 90); // turn(90); +\s; SendOrder(1, 10); // move(10); +\s; SendOrder(2, 90); // turn(90); +\s; SendOrder(1, 10); // move(10); +\s; SendOrder(2,-90); // turn(-90); +\s; SendOrder(1, 10); // move(10); +\s;} +\n; +\key;\key help;\norm; show these instruction at any time. + + +\t;See also +\l;Controls\u command; and \l;programming\u cbot;. diff --git a/help/D/tremote5.txt b/help/D/tremote5.txt new file mode 100644 index 00000000..f2313946 --- /dev/null +++ b/help/D/tremote5.txt @@ -0,0 +1,113 @@ +\b;Exercise +Remote control a slave robot without using an \l;information exchange post\u object\exchange;. The robot should pass over the 6 blue crosses. + +The two main actors of this exercise are: +1) The \l;wheeled grabber\u object\botgr; without an energy pack and therefore immobile. This is the master you should program so it will transmit orders to the slave. +2) The slave \l;practice bot\u object\bottr; which is already programmed and just waits for orders from the master. + +The orders shall be stored, so the master will be able to transmit several orders without waiting for each order being processed. We use an \l;array\u cbot\array; for this purpose. + +\b;The slave +First of all we must understand how the program of the slave works. The \l;class\u cbot\class; \c;order\n; contains two members: \c;m_type\n; is the order to execute (move or turn) and \c;m_param\n; is the distance to move or the rotation angle¦: + +\c;\s;\l;public\u cbot\public; \l;class\u cbot\class; order +\s;{ +\s; \l;int\u cbot\int; m_type; +\s; \l;float\u cbot\float; m_param; +\s;} +\n; +A second \l;class\u cbot\class; \c;exchange\n; contains the mechanism for exchanging the orders. We declare a \c;\l;static\u cbot\static;\n; class member \c;m_fifo\n; which will contain the list of orders to be executed. The word \c;static\n; insures that the member \c;m_fifo\n; is shared between all instances of the \l;class\u cbot\class; exchange. + +\c;\s;{ +\s; \l;static\u cbot\static; \l;private\u cbot\private; order m_fifo[] = null; +\n; +The \c;put\n; method will be used by the master robot for transmitting an order. The order will simply be added at the end of the \c;m_fifo\n; array: + +\c;\s; \l;synchronized\u cbot\synchro; void put(order a) +\s; { +\s; m_fifo[sizeof(m_fifo)] = a; +\s; } +\n; +Another method \c;get\n; will be used by the slave to retrieve the orders. This method returns the order to be executed. If the list is empty, \c;null\n; will be returned and the robot must wait for more orders. Otherwise the first order in the list must be returned and the remaining orders must be "scrolled up". As an array can not be "shortened" we use a temporary array \c;copy\n;¦: + +\c;\s; \l;synchronized\u cbot\synchro; order get() +\s; { +\s; if ( sizeof(m_fifo) == 0 ) return null; +\s; +\s; order a = m_fifo[0]; +\s; order copy[] = null; +\s; for ( int i=1 ; i 9) +\s; { +\s; \l;jet\u cbot\jet;(-1); +\s; } +\s; \l;wait\u cbot\wait;(0.2); +\s; } +\s; \l;fire\u cbot\fire;(1); +\s; } +\s;} +\n; +In order to adapt the program to shooting wasps, you need to make a few changes. Replace all \c;radar(AlienAnt)\n; with \c;radar(AlienWasp)\n;. The cannon must aim straight forward and not downward, replace \c;aim(-20);\n; with \c;aim(0);\n;. And the bot must fly at the same height as the wasp. For this, you must compare the altitude of the bot given by \c;position.z\n; with the altitude of the wasp given by \c;item.position.z\n;: if \c;position.z > item.position.z\n;, go down slowly with \c;jet(-0.3);\n;. If \c;position.z < item.position.z-1\n;, climb slowly with \c;jet(0.3);\n;. A winged shooter is higher than a wasp, therefore it is better if the altitude of the bot is a little lower than the altitude of the wasp. In this case, we admit that the altitude of the bot ranges between the altitude of the wasp and the altitude of the wasp minus 1. + +\t;Further improvement +Wasps move very fast. In order to increase your chances to get them, better to repeat just before the \c;fire(1);\n; a \c;radar\n; and a \c;turn\n; in order to perform a last readjustment of the direction before the shot. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/twasp2.txt b/help/D/twasp2.txt new file mode 100644 index 00000000..fcec44ab --- /dev/null +++ b/help/D/twasp2.txt @@ -0,0 +1,84 @@ +\b;Objective +Bring down the flying wasps in a more efficient way than with the previous program. + +\b;Program +Here is again the program of the previous exercise that shoots down all the wasps after many, many unsuccessful attempts: +\c; +\s;extern void object::Wasp1() +\s;{ +\s; \l;object\u cbot\type; item; +\s; +\s; \l;aim\u cbot\aim;(0); +\s; +\s; \l;while\u cbot\while; (true) +\s; { +\s; \l;while\u cbot\while; (\l;radar\u cbot\radar;(AlienWasp, 0, 360, 0, 20) == null) +\s; { +\s; item = \l;radar\u cbot\radar;(AlienWasp); +\s; \l;turn\u cbot\turn;(\l;direction\u cbot\direct;(item.position)); +\s; \l;motor\u cbot\motor;(1,1); +\s; +\s; \l;jet\u cbot\jet;(0); +\s; \l;if\u cbot\if; (position.z > item.position.z) +\s; { +\s; \l;jet\u cbot\jet;(-0.3); +\s; } +\s; +\s; \l;if\u cbot\if; (position.z < item.position.z - 1) +\s; { +\s; \l;jet\u cbot\jet;(0.3); +\s; } +\s; +\s; \l;wait\u cbot\wait;(0.2); +\s; } +\s; item = \l;radar\u cbot\radar;(AlienWasp); +\s; \l;turn\u cbot\turn;(\l;direction\u cbot\direct;(item.position)); +\s; \l;fire\u cbot\fire;(1); +\s; } +\s;} +\n; +The many failures are due to the fact that the wasp is already gone before the bullets can reach it. The only way to improve the program consists in setting the power of the two motors and of the jet in such a way that the bot follows the movement of the target during the burst. + +Just before the shot, the program adjusts a last time the direction with \c;turn(direction(item.position));\n;. In order to follow the wasp during the burst, you have to "remember" the angle of this last rotation: if the angle was positive (rotation to the left), the bot must continue to turn left during the burst; if the angle was negative, the bot must continue to turn right. + +In order to "remember" the angle of the last rotation, we need a variable that can contain just one number. If we choose to call it \c;angle\n;, we must define the variable with the following line at the beginning of the program: +\c; +\s; \l;float\u cbot\type; angle; +\n; +The variable type \l;float\u cbot\type; is the variable type that can contain any number, i.e. whole numbers or real numbers. Please refer to the \l;text about variable types\u cbot\type; if you want to know more about the different types of variables and what they can contain. + +Just before the instruction \c;fire(1);\n;, instead of writing \c;\l;turn\u cbot\turn;(\l;direction\u cbot\direct;(item.position));\n;, we will put the rotation angle into the variable \c;angle\n;: +\c; +\s; angle = direction(item.position); +\n; +Then we perform the rotation, and we set the power of the motors so that the bot continues the movement: +\c; +\s; turn(angle); +\s; if (angle < 0) +\s; { +\s; motor(1,0.5); +\s; } +\s; else +\s; { +\s; motor(0.5,1); +\s; } +\n; +The instruction \c;else\n; determines what instructions the program should execute if the condition stated in the \c;if\n; instruction is false. + +Then we must set the power of the jet so that the bot follows the wasp also in the vertical direction: +\c; +\s; jet(0); +\s; if(position.z > item.position.z) +\s; { +\s; jet(-0.3); +\s; } +\s; +\s; if(position.z < item.position.z - 1) +\s; { +\s; jet(0.3); +\s; } +\n; +As you will see, this program is much more efficient than the previous one! + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/D/win.txt b/help/D/win.txt new file mode 100644 index 00000000..88e55a42 --- /dev/null +++ b/help/D/win.txt @@ -0,0 +1,3 @@ + +Houston congratulates you in the name of mankind for the success of your missin. +The Great Migration to Terra Nova will start very soon. diff --git a/help/E/authors.txt b/help/E/authors.txt new file mode 100644 index 00000000..392b4ee5 --- /dev/null +++ b/help/E/authors.txt @@ -0,0 +1,7 @@ +Development team: Beta tester core team: + +- Daniel Roux - Adrien Roux - Michael Jubin +- Denis Dumoulin - Didier Raboud - Daniel Sauthier +- Otto Kölbl - Nicolas Beuchat - Nicolas Stubi +- Michael Walz - Joël Roux - Patrick Thévoz +- Didier Gertsch diff --git a/help/E/cbot.txt b/help/E/cbot.txt new file mode 100644 index 00000000..87b2a004 --- /dev/null +++ b/help/E/cbot.txt @@ -0,0 +1,91 @@ +\b;Programming - the CBOT language +The CBOT language is very close in structure and syntax to C++ and Java. It has been adapted for the specific purposes of COLOBOT, and for an efficient pedagogical approach. +This language is made up of instructions (see below), \l;blocks\u cbot\bloc;, \l;functions\u cbot\function;, \l;classes\u cbot\class;, \l;variables\u cbot\var;, \l;arrays\u cbot\array;, \l;expressions\u cbot\expr; and \l;conditions\u cbot\cond;. + +o \c;\token;Instructions\norm;\n; +In the program editor, an instruction in the CBOT language is always displayed on an orange background. If an instruction hasn't got an orange background, this means that it has been misspelled. Instruction names are always written in lower case. + +o \c;\type;Type\norm;\n; +The \l;type\u cbot\type; of a variable appears with a green background. + +o \c;\const;Constants\norm;\n; +Constants like \l;categories\u cbot\category; are displayed with a red background. + +\t;Instructions in the CBOT language: +\c;\l;extern\u cbot\extern; \n;Indicate the main function +\c;\l;if\u cbot\if; \n;Choice structure +\c;\l;else\u cbot\if; \n;Alternative choice structure +\c;\l;for\u cbot\for; \n;Loop structure +\c;\l;while\u cbot\while; \n;Control structure +\c;\l;do\u cbot\do; \n;Control structure +\c;\l;break\u cbot\break; \n;Exit from a loop +\c;\l;continue\u cbot\continue; \n;Continues the loop +\c;\l;return\u cbot\return; \n;Exit from a function +\c;\l;sizeof\u cbot\sizeof; \n;Size of an array + +\t;Specific instructions for bots: +\c;\l;radar\u cbot\radar; \n;Object detection +\c;\l;direction\u cbot\direct; \n;Calculates a rotation angle +\c;\l;distance\u cbot\dist; \n;Calculates a distance +\c;\l;distance2d\u cbot\dist2d; \n;Calculates a distance +\c;\l;wait\u cbot\wait; \n;Waits +\c;\l;move\u cbot\move; \n;Moves forward or backward +\c;\l;turn\u cbot\turn; \n;Turns +\c;\l;goto\u cbot\goto; \n;Goes to a given position +\c;\l;motor\u cbot\motor; \n;Direct motor control +\c;\l;jet\u cbot\jet; \n;Direct jet engine control +\c;\l;message\u cbot\message; \n;Displays a message +\c;\l;retobject\u cbot\retobj; \n;Returns an object from a function +\c;\l;errmode\u cbot\errmode; \n;Error treatement control +\c;\l;abstime\u cbot\abstime; \n;Returns the absolute time + +\t;Instructions about topology: +\c;\l;space\u cbot\space; \n;Calculates a free space +\c;\l;topo\u cbot\topo; \n;Returns the altitude of a point +\c;\l;flatground\u cbot\flatgrnd; \n;Returns radius of a flat area + +\t;Instructions specific to some bots: +\c;\l;grab\u cbot\grab; \n;Picks up an object +\c;\l;drop\u cbot\drop; \n;Puts down an object +\c;\l;sniff\u cbot\sniff; \n;Sounds the subsoil +\c;\l;thump\u cbot\thump; \n;Overturns alien insects +\c;\l;recycle\u cbot\recycle; \n;Recycles a derelict bot +\c;\l;shield\u cbot\shield; \n;Extends or withdraws the shield +\c;\l;fire\u cbot\fire; \n;Fires the cannon +\c;\l;aim\u cbot\aim; \n;Vertical angle of the cannon + +\t;Specific instructions for exchange posts: +\c;\l;receive\u cbot\receive; \n;Receives an information +\c;\l;send\u cbot\send; \n;Sends a new information +\c;\l;testinfo\u cbot\testinfo; \n;Tests if an information exists +\c;\l;deleteinfo\u cbot\delinfo; \n;Deletes an existing information + +\t;Specific instructions for classes: +\c;\l;class\u cbot\class; \n;Class declararion +\c;\l;public\u cbot\public; \n;Declares a public function +\c;\l;private\u cbot\private; \n;Declares a private class member +\c;\l;static\u cbot\static; \n;Declares a static class member +\c;\l;synchronized\u cbot\synchro; \n;Prevents simultaneous execution +\c;\l;new\u cbot\new; \n;Creates a new instance +\c;\l;this\u cbot\this; \n;Reference to the current instance + +\t;Specific instructions for strings: +\c;\l;strlen\u cbot\strlen; \n;Gets string length +\c;\l;strleft\u cbot\strleft; \n;Extracts left part +\c;\l;strright\u cbot\strright; \n;Extracts right part +\c;\l;strmid\u cbot\strmid; \n;Extracts center part +\c;\l;strfind\u cbot\strfind; \n;Finds a substring. +\c;\l;strval\u cbot\strval; \n;Converts string to number +\c;\l;strupper\u cbot\strupper; \n;Converts to upper case +\c;\l;strlower\u cbot\strlower; \n;Converts to lower case + +\t;Specific instructions for files: +\c;\l;open\u cbot\open; \n;Opens a file +\c;\l;close\u cbot\close; \n;Closes a file +\c;\l;writeln\u cbot\writeln; \n;Writes line to a file +\c;\l;readln\u cbot\readln; \n;Reads line from a file +\c;\l;eof\u cbot\eof; \n;Tests if end of file +\c;\l;deletefile\u cbot\deletef; \n;Deletes a file + +\t;See also +\l;Types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/abstime.txt b/help/E/cbot/abstime.txt new file mode 100644 index 00000000..bdfe4c90 --- /dev/null +++ b/help/E/cbot/abstime.txt @@ -0,0 +1,11 @@ +\b;Instruction \c;abstime\n; +Syntax¦: +\s;\c;abstime ( );\n; + +Return the time in seconds elapsed since the beginning of the mission. + +\t;Return: \c;\l;float\u cbot\float;\n; +Time in seconds. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/aim.txt b/help/E/cbot/aim.txt new file mode 100644 index 00000000..8d1e460f --- /dev/null +++ b/help/E/cbot/aim.txt @@ -0,0 +1,21 @@ +\b;Instruction \c;aim\n; +Syntax : +\s;\c;aim ( angle );\n; + +This instruction sets the vertical angle of the cannon. The following robots are equipped with a cannon: +o \l;Shooter\u object\botfr; +o \l;Orga shooter\u object\botor; +o \l;Phazer shooter\u object\botphaz; + +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 \c;\l;turn\u cbot\turn;\n;. + +\t;angle: \c;\l;float\u cbot\float;\n; +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 \c;-20\n; to \c;+20\n; degrees. For phazer shooters, the angle must range from \c;-20\n; to \c;45\n; degrees. + +\t;Return value: \c;\l;int\u cbot\int;\n; +Zero if everything is OK, a value different from zero if the rotation could not be performed: +\c;== 0 \n;The gun has now got the desired orientation +\c;!= 0 \n;rotation impossible + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/array.txt b/help/E/cbot/array.txt new file mode 100644 index 00000000..152bed55 --- /dev/null +++ b/help/E/cbot/array.txt @@ -0,0 +1,31 @@ +\b;Arrays +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 \c;[]\n; after the type name or the variable name to declare an array. +\c; +\s;int [ ] a; // an array of int +\s;int a [12]; // an array of int limited to 12 elements +\s;string s[3]; // an array of 3 strings +\s;float xy[][]; // an 2 dimensionnal array of floats +\n; +Actually when the CBOT interpreter encounters an array declaration, it just creates a \c;\l;null\u cbot\null;\n; \l;reference\u cbot\pointer;: +\c; +\s;int a[5]; // a is now a null reference +\n; +As soon as you put values into the array, the elements are created and the reference is initialized: +\c; +\s;a[2] = 213; // a points to +\s; // 3 élements [0], [1] et [2] +\n; +After this operation, \c;a\n; contains a reference to the elements of the array. Elements \c;[0]\n; and \c;[1]\n; are created but not initialized because an array cannot contain empty elements. The \c;\l;sizeof\u cbot\sizeof;\n; instruction allows you to obtain the number of elements contained in an array. + +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: +\c; +\s;{ +\s; int a[5]; +\s; a[7] = 123; // no error at compile time +\s; // but error at run time +\s;} +\n; +If you pass an array as parameter to a \l;function\u cbot\function;, the function only receives a \l;reference\u cbot\pointer; 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. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/bloc.txt b/help/E/cbot/bloc.txt new file mode 100644 index 00000000..287536ea --- /dev/null +++ b/help/E/cbot/bloc.txt @@ -0,0 +1,49 @@ +\b;Blocks +You can use braces \c;{ }\n; to group a number of instructions together in order to make one single block out of them, for example: +\c; +\s; { +\s; float t; +\s; t = a; +\s; a = b; +\s; b = t; // switches round a and b +\s; } +\n; +Every instruction in the block is followed by a \l;semicolon\u cbot\term;, but the block itself is not. +Let us take the following example with the instruction \c;\l;if\u cbot\if;\n; to illustrate the use of blocks in a program: +\c; +\s; if ( a < b ) +\s; \n;instruction 1\c;; +\s; \n;instruction 2\c;; +\s; \n;instruction 3\c;; +\n; +If the \l;condition\u cbot\cond; 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: +\c; +\s; if ( a < b ) +\s; { +\s; \n;instruction 1\c;; +\s; \n;instruction 2\c;; +\s; } +\s; \n;instruction 3\c;; +\n; +Blocks may be needed with instructions \c;\l;if\u cbot\if;\n;, \c;\l;while\u cbot\while;\n; and \c;\l;for\u cbot\for;\n;, 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 : +\c; +\s; if ( a > b ) +\s; { +\s; int i = 0; +\s; while ( i < 18 ) +\s; { +\s; move(10); +\s; turn(5); +\s; i = i+1; +\s; } +\s; } +\n; +You had better line up the open brace \c;{\n; with the closing brace \c;}\n; 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 : +\c; +\s; if(a>b) { int i=0; while(i<18) { +\s; move(10);turn(5);i=i+1; }} +\n; +\t;See also +\l;Instructions\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/bool.txt b/help/E/cbot/bool.txt new file mode 100644 index 00000000..b97ab9d4 --- /dev/null +++ b/help/E/cbot/bool.txt @@ -0,0 +1,5 @@ +\b;Type \c;bool\n; +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. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/break.txt b/help/E/cbot/break.txt new file mode 100644 index 00000000..2833e6c2 --- /dev/null +++ b/help/E/cbot/break.txt @@ -0,0 +1,25 @@ +\b;Instruction \c;break\n; +Syntax : +\s;\c;while ( condition ) +\s;{ +\s; break; +\s;} +\n; +With this instruction, you can get out immediately of a \c;\l;while\u cbot\while;\n; or \c;\l;for\u cbot\for;\n; loop. + +Here is an example: +\s;\c;int i = 0; +\s;while ( true ) +\s;{ +\s; \n;Instructions ...\c; +\s; i = i+1; +\s; if ( i >= 10 ) +\s; { +\s; break; +\s; } +\s; \n;more instructions ...\c; +\s;} +\n; + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/category.txt b/help/E/cbot/category.txt new file mode 100644 index 00000000..6dd7f3c2 --- /dev/null +++ b/help/E/cbot/category.txt @@ -0,0 +1,108 @@ +\b;Value \c;Categories\n; +Categories represent the names of objects in the CBOT language. Everything in COLOBOT is an object: robots, buildings, raw materials, etc., even yourself. + +In a program, categories are always displayed on a \const;red background\norm;. If a category isn't highlighted in red, it is misspelled. Caps and lower cases should be kept as is. + +Below are the different categories available : + +\t;Buildings : + +\button 176; \c;\l;Houston\u object\Huston; \n;Mission Control +\button 171; \c;\l;SpaceShip\u object\base; \n;Spaceship +\button 160; \c;\l;BotFactory\u object\factory; \n;Robot Factory +\button 163; \c;\l;ResearchCenter\u object\research; \n;Research Center +\button 168; \c;\l;RadarStation\u object\radar; \n;Radar +\button 172; \c;\l;ExchangePost\u object\exchange; \n;Information Exchange Post +\button 169; \c;\l;RepairCenter\u object\repair; \n;Repair Center +\button 165; \c;\l;DefenseTower\u object\tower; \n;Defense Tower +\button 166; \c;\l;AutoLab\u object\labo; \n;Organic Matter Analyzer +\button 164; \c;\l;PowerStation\u object\station; \n;Power Station +\button 167; \c;\l;PowerPlant\u object\energy; \n;Power Cell Factory +\button 170; \c;\l;NuclearPlant\u object\nuclear; \n;Nuclear Plant +\button 162; \c;\l;Converter\u object\convert; \n;Titanium Converter +\button 161; \c;\l;Derrick\u object\derrick; \n;Derrick +\button 174; \c;\l;PowerCaptor\u object\captor; \n;Parabolic Lightning Conductor +\button 175; \c;\l;Vault\u object\safe; \n;Vault + \c;\l;StartArea\u object\start; \n;Starting Pad + \c;\l;GoalArea\u object\goal; \n;Finishing Pad + \c;\l;AlienNest\u object\nest; \n;Alien Nest + + +\t;Portable Objects : + + \c;\l;TitaniumOre\u object\titanore; \n;Titanium Ore + \c;\l;UraniumOre\u object\uranore; \n;Uranium Ore + \c;\l;Titanium\u object\titan; \n;Cube of converted Titanium + \c;\l;PowerCell\u object\power; \n;Regular Power Cell + \c;\l;NuclearCell\u object\atomic; \n;Nuclear Power Cell + \c;\l;OrgaMatter\u object\bullet; \n;Organic Matter + \c;\l;BlackBox\u object\bbox; \n;Black Box + \c;\l;TNT\u object\tnt; \n;Explosive device + \c;\l;KeyA..D\u object\key; \n;Keys A, B, C and D + + +\t;Robots : + +\button 158; \c;\l;PracticeBot\u object\bottr; \n;Practice Bot +\button 173; \c;\l;TargetBot\u object\bottarg; \n;Target Bot + +\button 137; \c;\l;WheeledGrabber\u object\botgr; \n;Wheeled Grabber +\button 138; \c;\l;TrackedGrabber\u object\botgc; \n;Tracked Grabber +\button 139; \c;\l;WingedGrabber\u object\botgj; \n;Winged Grabber +\button 150; \c;\l;LeggedGrabber\u object\botgs; \n;Legged Grabber + +\button 140; \c;\l;WheeledSniffer\u object\botsr; \n;Wheeled Sniffer +\button 141; \c;\l;TrackedSniffer\u object\botsc; \n;Tracked Sniffer +\button 142; \c;\l;WingedSniffer\u object\botsj; \n;Winged Sniffer +\button 152; \c;\l;LeggedSniffer\u object\botss; \n;Legged Sniffer + +\button 143; \c;\l;WheeledShooter\u object\botfr; \n;Wheeled Shooter +\button 144; \c;\l;TrackedShooter\u object\botfc; \n;Tracked Shooter +\button 145; \c;\l;WingedShooter\u object\botfj; \n;Winged Shooter +\button 151; \c;\l;LeggedShooter\u object\botfs; \n;Legged Shooter + +\button 153; \c;\l;WheeledOrgaShooter\u object\botor; \n;Wheeled Orga Shooter +\button 154; \c;\l;TrackedOrgaShooter\u object\botoc; \n;Tracked Orga Shooter +\button 155; \c;\l;WingedOrgaShooter\u object\botoj; \n;Winged Orga Shooter +\button 156; \c;\l;LeggedOrgaShooter\u object\botos; \n;Legged Orga Shooter + +\button 149; \c;\l;Subber\u object\botsub; \n;Subber +\button 148; \c;\l;Recycler\u object\botrecy; \n;Recycler +\button 157; \c;\l;Shielder\u object\botshld; \n;Shielder +\button 146; \c;\l;Thumper\u object\bottump; \n;Thumper +\button 147; \c;\l;PhazerShooter\u object\botphaz; \n;Phazer Shooter + + +\t;Enemies : + + \c;\l;AlienQueen\u object\mother; \n;Alien Queen + \c;\l;AlienEgg\u object\egg; \n;Alien Egg + \c;\l;AlienAnt\u object\ant; \n;Ant + \c;\l;AlienSpider\u object\spider; \n;Spider + \c;\l;AlienWasp\u object\wasp; \n;Wasp + \c;\l;AlienWorm\u object\worm; \n;Worm + + +\t;Miscellaneous : + +\button 136; \c;\l;Me\u object\human; \n;You! + \c;\l;Mine\u object\mine; \n;Mine + \c;\l;Barrier\u object\barrier; \n;Barrier + \c;\l;Wreck\u object\wreck; \n;Derelict bot + \c;\l;Ruin\u object\ruin; \n;Derelict building + + +\t;Flags and Other Indicators : + + \c;\l;BlueFlag\u object\flag; \n;Blue Flag + \c;\l;RedFlag\u object\flag; \n;Red Flag + \c;\l;GreenFlag\u object\flag; \n;Green Flag + \c;\l;YellowFlag\u object\flag; \n;Yellow Flag + \c;\l;VioletFlag\u object\flag; \n;Violet Flag + \c;\l;WayPoint\u object\waypoint; \n;Checkpoint + \c;\l;EnergySite\u object\enerspot; \n;Underground Energy Deposit + \c;\l;TitaniumSite\u object\stonspot; \n;Underground Titanium Deposit + \c;\l;UraniumSite\u object\uranspot; \n;Underground Uranium Deposit + +\t;See also +\l;CBOT Language\u cbot; and \l;Variables\u cbot\type;. diff --git a/help/E/cbot/class.txt b/help/E/cbot/class.txt new file mode 100644 index 00000000..942d7b0e --- /dev/null +++ b/help/E/cbot/class.txt @@ -0,0 +1,72 @@ +\b;Instruction \c;class\n; +This allows you to declare a class definition using following syntax: +\c; +\s;public class ClassName +\s;{ +\s; declarations; +\s;} +\n; +Classes can only be \l;public\u cbot\public;, that is they can be used from all bots in a mission. Class members are also public, that is they are accessible from outside the class. Class members can be fields or functions (also called methods), for example the followin class \c;MyClass\n; contains 4 fields (a, b, x and s) and one method (MyFunction). +\c; +\s;public class MyClass +\s;{ +\s; int a, b; +\s; float x = 3.33; +\s; string s = "hello"; +\s; float MyFunction( float value ) +\s; { +\s; return (value*x)-1; +\s; } +\s;} +\n; +As shown in this exemple the class members can be initialized (\c;x=3.33\n;). You can also define a constructor which is a special method having the same name as the class name. This method will be called automatically at creation time of a class instance. You can also declare more than one method with the same name but different parameters. +\c; +\s;public class MyClass +\s;{ +\s; int a, b; +\s; void MyClass( ) +\s; { +\s; a = 2; b = 3; +\s; } +\s; void MyClass( int a, int b ) +\s; { +\s; this.a = a; this.b = b; +\s; } +\s;} +\n; +In this example two constructors are declared for \c;MyClass\n;, one without parameters and the other one with two parameters. As the names of the parameters of the second constructor are the same as the names of the two members \c;a\n; et \c;b\n; we must use the \c;\l;this\u cbot\this;.a\n; and \c;\l;this\u cbot\this;.b\n; to avoid confusion with the parameters. Another more simpler solution would be to give different names to the parameters. +\c; +\s;void Test( ) +\s;{ +\s; MyClass item1(); // constr. w/o parameters +\s; MyClass item2(4, 5); // constr. with 2 parameters +\s; MyClass item3; // no constructor called, +\s; // therefore item3 == null +\s;} +\n; +You can also define a destructor. This must be a \c;void\n; fonction without parameters that has the same name as the class name but prefixed by the ~ character. The destructor is called automatically as soon as the class instance is no more referenced by anyone. +\c; +\s;public class MyClass +\s;{ +\s; static private int counter = 0; // instance counter +\s; void MyClass( ) +\s; { +\s; counter ++; // one instance more +\s; } +\s; void ~MyClass( ) +\s; { +\s; counter --; // one instance less +\s; } +\s;} +\s;void Test() +\s;{ +\s; MyClass item1( ); // counter = 1 +\s; MyClass item2( ); // counter = 2 +\s; item1 = null; // counter = 1 +\s;} // counter = 0 +\n; +If you pass a class instance as parameter to a \l;function\u cbot\function;, the function only receives a \l;reference\u cbot\pointer; to the instance. That means if you modify the instance in the function, the instance that has been passed to the function will be actuallay modified. + +\t;See also +\c;\l;public\u cbot\public;\n;, \c;\l;private\u cbot\private;\n;, \c;\l;static\u cbot\static;\n;, \c;\l;synchronized\u cbot\synchro;\n;, \c;\l;new\u cbot\new;\n;, \c;\l;reference\u cbot\pointer;\n;, \c;\l;this\u cbot\this;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/close.txt b/help/E/cbot/close.txt new file mode 100644 index 00000000..bca89ae3 --- /dev/null +++ b/help/E/cbot/close.txt @@ -0,0 +1,8 @@ +\b;Instruction \c;close\n; +Close a file opened previously with \c;\l;open\u cbot\open;\n;. This is a method of the \c;\l;file\u cbot\file;\n; class; therefore you cannot write \c;close()\n; but only \c;handle.close()\n;¦: +\c; +\s; handle.close(); +\n; +\t;See also +\c;\l;file\u cbot\file;\n;, \c;\l;open\u cbot\open;\n;, \c;\l;readln\u cbot\readln;\n;, \c;\l;writeln\u cbot\writeln;\n; and \c;\l;eof\u cbot\eof;\n;. +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/cond.txt b/help/E/cbot/cond.txt new file mode 100644 index 00000000..f6f41794 --- /dev/null +++ b/help/E/cbot/cond.txt @@ -0,0 +1,29 @@ +\b;Conditions +A condition is a special \l;expression\u cbot\expr; that returns a \l;boolean\u cbot\bool; value, that can only be either \c;\l;true\u cbot\true;\n; or \c;\l;false\u cbot\false;\n;. With a condition, you can choose f. ex. if the instructions in a \c;\l;while\u cbot\while;\n; loop must be repeated again, or if the instruction in a \c;\l;if\u cbot\if;\n; bloc must be executed. +Here are some operators that you can use in conditions to compare two values : + +\c;a == b \n;\c;a\n; equals \c;b\n; +\c;a != b \n;\c;a\n; is different from \c;b\n; +\c;a < b \n;\c;a\n; smaller than \c;b\n; +\c;a <= b \n;\c;a\n; smaller than or equal to \c;b\n; +\c;a > b \n;\c;a\n; greater than \c;b\n; +\c;a >= b \n;\c;a\n; greater than or equal to \c;b\n; + +For example : + +\c;12 == 12 \n;returns true +\c;45 != 47 \n;returns true +\c;99 == 98 \n;returns false +\c;12 < -1 \n;returns false +\c;12 >= 10 \n;returns true +\c;12 >= 12 \n;returns true + +\t;Remarque +Be careful not to confuse the equality comparison \c;==\n; with the assignment of a \l;variable\u cbot\var; \c;=\n;. + +\c;a == b\n; is an expression that compares \c;a\n; with \c;b\n;. +\c;a = b\n; is an expression that copies the value of \c;b\n; into \c;a\n;. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/E/cbot/continue.txt b/help/E/cbot/continue.txt new file mode 100644 index 00000000..d516aa78 --- /dev/null +++ b/help/E/cbot/continue.txt @@ -0,0 +1,25 @@ +\b;Instruction \c;continue\n; +Syntax : +\s;\c;while ( condition ) +\s;{ +\s; continue; +\s;} +\n; +With this instruction, you can jump over the rest of instructions in the \c;\l;bloc\u cbot\bloc;\n; of a \c;\l;while\u cbot\while;\n; or \c;\l;for\u cbot\for;\n; loop: The execution will resume at the beginning of the bloc, the next time the loop is repeated. + +Here is an example: +\s;\c;int i = 0; +\s;while ( i < 5 ) +\s;{ +\s; i = i+1; +\s; if ( i == 3 ) +\s; { +\s; continue; +\s; } +\s; \n;Instructions ...\c; +\s;} +\n; +The instructions will only be executed for the values of \c;i\n; 1, 2, 4 and 5. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/deletef.txt b/help/E/cbot/deletef.txt new file mode 100644 index 00000000..dc6e93f9 --- /dev/null +++ b/help/E/cbot/deletef.txt @@ -0,0 +1,10 @@ +\b;Instruction \c;deletefile\n; +The deletefile instruction deletes an existing file in the files/ folder. + +Files can only be deleted in the files/ folder which is located in the folder where Colobot has been installed. You cannot not delete files that are located elsewhere than in the files/ folder. + +Syntax¦: +\s;\c;deletefile ( filename );\n; + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/delinfo.txt b/help/E/cbot/delinfo.txt new file mode 100644 index 00000000..6d93b26b --- /dev/null +++ b/help/E/cbot/delinfo.txt @@ -0,0 +1,15 @@ +\b;Instruction \c;deleteinfo\n; +Syntax¦: +\s;\c;deleteinfo ( name, power );\n; + +Delete an existing information in the closest \l;information exchange post\u object\exchange;. + +\t;name: \c;string\n; +Name of the information to be deleted. This name is a string: it must be written in quotation marks "¦". + +\t;power: \c;float\n; +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. + +\t;See also +\c;\l;receive\u cbot\receive;\n;, \c;\l;send\u cbot\send;\n; and \c;\l;testinfo\u cbot\testinfo;\n;. +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/direct.txt b/help/E/cbot/direct.txt new file mode 100644 index 00000000..d400e805 --- /dev/null +++ b/help/E/cbot/direct.txt @@ -0,0 +1,15 @@ +\b;Instruction \c;direction\n; +Syntax : +\s;\c;direction ( pos );\n; + +Calculates the rotation that a robot must perform in order to point towards a given position. + +\t;pos: \c;\l;point\u cbot\point;\n; +Position towards which the robot must point. + +\t;Return value: \c;\l;float\u cbot\float;\n; +Angle of the rotation that must be performed. -90 means f. ex. a rotation of 90 degrees to the right. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/E/cbot/dist.txt b/help/E/cbot/dist.txt new file mode 100644 index 00000000..a4183d44 --- /dev/null +++ b/help/E/cbot/dist.txt @@ -0,0 +1,30 @@ +\b;Instruction \c;distance\n; +With the instruction \c;distance( , )\n; you can calculate the distance between two positions. + +\b;Basic use +If you write \c;position\n; alone, this gives you the position of the bot that executes the program. If you write the name of a variable followed by \c;.position\n;, this gives you the position of the object described in the variable. + +Here is a program that moves forward, covering exactly the distance between the bot and the closest ant: +\c; +\s; item = \l;radar\u cbot\radar;(AlienAnt); +\s; \l;move\u cbot\move;(distance(position, item.position)); +\n; +This is of course pure suicide. Better to stop 40 meters before, in order to be at shooting range: +\c; +\s; item = radar(AlienAnt); +\s; move(distance(position, item.position) - 40); +\n; +\b;For specialists +Syntax: +\s;\c;distance ( pos1, pos2 );\n; + +Calculates the distance between two positions. + +\t;pos1, pos2: \c;\l;point\u cbot\point;\n; +Coordinates of the two positions. + +\t;Return value: \c;\l;float\u cbot\float;\n; +Distance between the two positions. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/dist2d.txt b/help/E/cbot/dist2d.txt new file mode 100644 index 00000000..89ea1cb2 --- /dev/null +++ b/help/E/cbot/dist2d.txt @@ -0,0 +1,14 @@ +\b;Instruction \c;distance2d\n; +Syntax: +\s;\c;distance2d ( pos1, pos2 );\n; + +Calculates the distance between two positions (ignores the z coordinate). + +\t;pos1, pos2: \c;\l;point\u cbot\point;\n; +Coordinates of the two positions. + +\t;Return value: \c;\l;float\u cbot\float;\n; +Distance between the two positions. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/do.txt b/help/E/cbot/do.txt new file mode 100644 index 00000000..391745c6 --- /dev/null +++ b/help/E/cbot/do.txt @@ -0,0 +1,28 @@ +\b;Instruction \c;do - while\n; +Syntax: +\s;\c;do +\s;{ +\s; \n;Instructions ...\c; +\s;} +\s;while ( condition ); +\n; +This instruction allows you to perform several times the instructions inside the \l;block\u cbot\bloc;. 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 \c;\l;while\u cbot\while; ( ) { }\n;; the latter tests the condition before the instructions in the block are executed. + +\t;\c;condition\n; +The instructions in the block are performed over and over again, as long as the \l;condition\u cbot\cond; is true. + +Here is an example : +\s;\c;do +\s;{ +\s; p = radar(TitaniumOre); +\s;} +\s;while ( p == null ); +\n; +\t;Attention +Always put a \l;semicolon\u cbot\term; at the end of the line \c;while ( )\n;. + +The instructions \c;\l;break\u cbot\break;\n; and \c;\l;continue\u cbot\continue;\n; can be useful inside a block following the instruction \c;do { }\n;. + +\t;See also +\l;Instructions\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/drop.txt b/help/E/cbot/drop.txt new file mode 100644 index 00000000..9b383dd1 --- /dev/null +++ b/help/E/cbot/drop.txt @@ -0,0 +1,29 @@ +\b;Instruction \c;drop\n; +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. + +\b;Basic use +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: +\c; +\s; \l;grab\u cbot\grab;(); +\s; \l;move\u cbot\move;(5); +\s; drop(); +\n; +\b;For specialists +Syntax: +\s;\c;drop ( oper );\n; + +This instruction appeals to the operating arm of a \l;grabber bot\u object\botgr;, in order to drop what it is holding. + +\t;oper: \c;\l;int\u cbot\int;\n; (default value\c;InFront\n;) +Oper indicates where the robot should drop the object. If no indication is given, the object is dropped in front of the bot. +\c;InFront \n; Drops in front (default value). +\c;Behind \n; Drops behind. +\c;EnergyCell\n; Drops on the bot's own power cell location. + +\t;Return value: \c;\l;int\u cbot\int;\n; +Normally an error stops the program. You can prevent the program from stopping on errors by using the \c;\l;errmode\u cbot\errmode;(0)\n; instruction. A value different from zero if an error occurred is then returned by \c;drop();\n;. +\c;== 0 \n;object was dropped +\c;!= 0 \n;error, no object was dropped + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/eof.txt b/help/E/cbot/eof.txt new file mode 100644 index 00000000..30c2f4c3 --- /dev/null +++ b/help/E/cbot/eof.txt @@ -0,0 +1,15 @@ +\b;Instruction \c;eof\n; +Test the end of file condition of an open file. This is a method of the \c;\l;file\u cbot\file;\n; class; therefore you cannot write \c;eof()\n; but only \c;handle.eof()\n;¦: +\c; +\s; if ( handle.eof() ) +\n; +Example¦: +\c; +\s; while ( not handle.eof() ) +\s; { +\s; s = handle.readln(); +\s; } +\n; +\t;See also +\c;\l;file\u cbot\file;\n;, \c;\l;open\u cbot\open;\n;, \c;\l;close\u cbot\close;\n;, \c;\l;readln\u cbot\readln;\n; and \c;\l;writeln\u cbot\writeln;\n;. +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/errmode.txt b/help/E/cbot/errmode.txt new file mode 100644 index 00000000..8b4286ab --- /dev/null +++ b/help/E/cbot/errmode.txt @@ -0,0 +1,33 @@ +\b;Instruction \c;errmode\n; +The \c;errmode();\n; instruction allows you to chose if the program should stop when an error occurs in one of the following instructions: \c;\l;goto\u cbot\goto;\n;, \c;\l;move\u cbot\move;\n;, \c;\l;grab\u cbot\grab;\n;, \c;\l;drop\u cbot\drop;\n;, etc. + +\b;For specialists +Syntax¦: +\s;\c;errmode ( mode );\n; + +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. + +\t;mode: \c;\l;float\u cbot\float;\n; (\c;1\n; per default) +Error treatment mode. +\c;0\n; -> continues program execution and returns a non zero value +\c;1\n; -> stops the program (default behavior) + +Exemple 1¦: +\s;\c;errmode(0); +\s;while ( goto(pos) != 0 ) +\s;{ +\s; wait(2); +\s;} +\n; +Exemple 2¦: +\s;\c;errmode(0); +\s;int err; +\s;err = goto(pos); +\s;if ( err != 0 ) +\s;{ +\s; \n;goto did not perform correctly ...\c; +\s; \n;take some appropriate action ...\c; +\s;} +\n; +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/expr.txt b/help/E/cbot/expr.txt new file mode 100644 index 00000000..1ff8bc73 --- /dev/null +++ b/help/E/cbot/expr.txt @@ -0,0 +1,88 @@ +\b;Expressions +Expressions can include the following operators: + +\c;+\n; addition +\c;-\n; subtraction +\c;*\n; multiplication +\c;/\n; division +\c;%\n; remainder of the division (only for the type \c;\l;int\u cbot\int;\n;) + +With the addition operator \c;+\n;, you can not only add numbers, you can also append \l;strings\u cbot\string;. +\c; +\s; int i = 12+3; // returns 15 +\s; string s = "a"+"bc"; // returns "abc" +\s; int i = 2-5; // returns -3 +\s; float f = 3.01*10; // returns 30.1 +\s; int i = 5/3; // returns 1 +\s; float f = 5/3; // returns 1.67 +\s; float f = 5/0; // returns an error +\s; int i = 13%5; // returns 3 +\s; int i = -8%3; // returns -2 +\n; +An expression can include constants or \l;variables\u cbot\var;. For example: + +\s;\c; 12+dist\n; + +Multiplications and divisions are performed before additions and subtractions. In order to be sure that the operations are performed in the right order, use brackets: +\c; +\s; 12*a+b/c \n;is equivalent to\c; (12*a)+(b/c) +\s; 2.5*(dist+range) +\n; +In order to improve readability, you can put as many spaces as you want: +\c; +\s; 12*a + b/c +\s; 2.5 * (dist+range) +\n; +Here is a list of mathematical functions: + +\c;sin(angle) \n;sinus +\c;cos(angle) \n;cosinus +\c;tan(angle) \n;tangent +\c;asin(value) \n;arc-sinus +\c;acos(value) \n;arc-cosinus +\c;atan(value) \n;arc-tangente +\c;sqrt(value) \n;square root +\c;pow(x, y) \n;x power y +\c;rand() \n;random value ranging between 0 and 1 + +Angles are in degrees. + +\t;Compound assignment operators (for specialists) +Besides the \c;=\n; operators for variable assignment there are several compound-assignment operators. + +The compound-assignment operators combine the \c;=\n; assignment operator with another binary operator such as \c;+\n; or \c;-\n;. 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 + +\c;\s;expression1 += expression2 + +is equivalent to + +\c;\s;expression1 = expression1 + expression2 + +\c;+=\n; addition +\c;-=\n; subtraction +\c;*=\n; multiplication +\c;/=\n; division +\c;%=\n; remainder of the division (only for the type \c;\l;int\u cbot\int;\n;) + +\t;Prefix and posfix increment- and decrement operators (for specialists) +The operators \c;++\n; and \c;--\n; allow you to increment (++) or to decrement (--) a variable in very compact and efficient manner. + +For example to increment the variable \c;a\n; you can write +\c;\s; a++ ; +\n;instead of +\c;\s; a = a + 1 ; +\n; +The value of the expression \c;a++\n; is the value of the variable \c;a\n; before the increment. If you use the prefix operator \c;++a\n; the value of the expression is the value of the variable \c;a\n; after the increment. The same holds for the \c;--\n; decrement operator. + +Exemples: +\c;\s; a = 2 ; +\s; b = a++ ; +\s; // now b contains 2 and a contains 3 + +\c;\s; a = 2 ; +\s; b = ++a ; +\s; // now b contains 3 and a contains 3 +\n; + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/extern.txt b/help/E/cbot/extern.txt new file mode 100644 index 00000000..08d2cba1 --- /dev/null +++ b/help/E/cbot/extern.txt @@ -0,0 +1,30 @@ +\b;Instruction \c;extern\n; +The \c;extern\n; instruction determines the \l;function\u cbot\function; that acts as main program of a robot. The name of the function declared with \c;extern\n; will apear in the program list in the lower left corner of the screen. +\c; +\s;extern void object::MowDown( ) +\s;{ +\s; while ( true ) +\s; { +\s; fire(1); +\s; turn(10); +\s; } +\s;} +\n; +If the program contains other functions, only the main function must be preceded by \c;extern\n;. +\c; +\s;extern void object::Square( ) +\s;{ +\s; for ( int i=0 ; i<4 ; i++ ) +\s; { +\s; Line(10); +\s; } +\s;} +\s; +\s;void object::Line(float dist) +\s;{ +\s; move(dist); +\s; turn(90); +\s;} +\n; +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/false.txt b/help/E/cbot/false.txt new file mode 100644 index 00000000..e5b1ffa9 --- /dev/null +++ b/help/E/cbot/false.txt @@ -0,0 +1,6 @@ +\b;Type \c;false\n; +This value means that a condition is not true; it is one of the two values that a \l;boolean\u cbot\bool; \l;variable\u cbot\var; can take. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/E/cbot/file.txt b/help/E/cbot/file.txt new file mode 100644 index 00000000..44bac38f --- /dev/null +++ b/help/E/cbot/file.txt @@ -0,0 +1,18 @@ +\b;Type \c;file\n; +This type is used for accessing files in the files/ folder. +\c; +\s; file handle(); +\n; +Use the syntax above for declaring a file handle. You must use () to create an instance of the \c;file\n; class. Without the () the handle would have the value \c;\l;null\u cbot\null;\n;. + +Files can only be created and opened in the files/ folder which is located in the folder where Colobot has been installed. You cannot not create or open files elsewhere than in the files/ folder. + +\b;For specialists +\c;file\n; is actually not a simple type but a class. \c;open\n;, \c;close\n;, \c;writeln\n; etc. are methods of the \c;file\n; class. This is the reason why we always write \c;handle.method()\n;¦: +\c; +\s; handle.open("test.txt", "w"); +\s; handle.close(); +\n; +\t;See also +\c;\l;open\u cbot\open;\n;, \c;\l;close\u cbot\close;\n;, \c;\l;readln\u cbot\readln;\n;, \c;\l;writeln\u cbot\writeln;\n; and \c;\l;eof\u cbot\eof;\n;. +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/fire.txt b/help/E/cbot/fire.txt new file mode 100644 index 00000000..fad947a6 --- /dev/null +++ b/help/E/cbot/fire.txt @@ -0,0 +1,31 @@ +\b;Instruction \c;fire\n; +The instruction \c;fire();\n; fires the bot's onboard cannon. + +\b;Basic use +Generally this instruction is used to shoot one-second bursts: +\c; +\s; fire(1); +\n; +\b;For specialists +Syntax: +\s;\c;fire ( time );\n; + +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: +o \l;Shooter\u object\botfr; +o \l;Orga shooter\u object\botor; +o \l;Phazer shooter\u object\botphaz; + +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 \c;\l;turn\u cbot\turn;\n;. + +In order to move the gun upward or downward, use the instruction \c;\l;aim\u cbot\aim;\n;. + +\t;time: \c;\l;float\u cbot\float;\n; +Duration of the burst. Generally, the value given is 1. Shorter bursts can also be performed in order to spare time and energy. + +\t;Return value: \c;\l;int\u cbot\int;\n; +Zero if OK, or a value different from zero if an error occurred. +\c;== 0 \n;the cannon has been fired +\c;!= 0 \n;error, the cannon could not be fired + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/flatgrnd.txt b/help/E/cbot/flatgrnd.txt new file mode 100644 index 00000000..ae821eb4 --- /dev/null +++ b/help/E/cbot/flatgrnd.txt @@ -0,0 +1,17 @@ +\b;Instruction \c;flatground\n; +Syntax¦: +\s;\c;flatground ( center, rmax );\n; + +Calculates the maximal radius of a flat zone on which a building ca be built. + +\t;center: \c;\l;point\u cbot\point;\n; +Center of the circlular zone. + +\t;rmax: \c;\l;float\u cbot\float;\n; +Maximal radius. + +\t;Return value: \c;\l;float\u cbot\float;\n; +Radius of the flat zone (always between 0 and rmax). + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/float.txt b/help/E/cbot/float.txt new file mode 100644 index 00000000..77876058 --- /dev/null +++ b/help/E/cbot/float.txt @@ -0,0 +1,25 @@ +\b;Type \c;float\n; +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: +\c; +\s; 12.9 +\s; 1.125 +\s; 0.002 +\s; -4.1 +\n; +If you need only whole numbers (f. ex. 12 or -5000), you should rather use the type \c;\l;int\u cbot\int;\n;. + +\t;Attention +Do not insert space or colon characters into a number. To separate the whole part from the fractional part, use a dot. +\c; +\s; Write and not +\s; 12.56 12 . 56 +\s; -54.34 -54,34 +\s;12895.69 12,895.69 +\n; +\t;For specialists +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. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/for.txt b/help/E/cbot/for.txt new file mode 100644 index 00000000..2465dd72 --- /dev/null +++ b/help/E/cbot/for.txt @@ -0,0 +1,40 @@ +\b;Instruction \c;for\n; +Syntax: +\s;\c;for ( before ; condition ; end ) +\s;{ +\s; \n;Instructions ...\c; +\s;} +\n; +This instruction allows you to execute a certain number of times the instructions contained in the \l;block\u cbot\bloc;. + +\t;\c;before\n; +This instruction is executed before the first loop instance. + +\t;\c;condition\n; +This \l;condition\u cbot\cond; determines if another instance of the loop must be executed. It is tested before every instance of the loop. + +\t;\c;end\n; +This instruction is executed at the end of every instance of the loop. + +Example: count from 1 to 4 +\c;\s;\c;for ( i = 0 ; i <= 4 ; i++ ) +\s;{ +\s; message(i) ; +\s;} +\n; +The following example is strictly equivalent to a \c;for\n;-loop, but it uses the instruction \c;\l;while\u cbot\while;\n;: +\s;\c;before; +\s;while ( condition ) +\s;{ +\s; \n;Instructions ...\c; +\s; end; +\s;} +\n; +\t;Attention +Do not put a \l;semicolon\u cbot\term; at the end of the line \c;for ( )\n;. + +The instructions \c;\l;break\u cbot\break;\n; and \c;\l;continue\u cbot\continue;\n; can be useful inside a block following the instruction \c;for \n;. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/E/cbot/function.txt b/help/E/cbot/function.txt new file mode 100644 index 00000000..9b403896 --- /dev/null +++ b/help/E/cbot/function.txt @@ -0,0 +1,85 @@ +\b;Functions +With functions you can divide your program into several parts, each of them will execute a specific task. +Let's imagine following program¦: +\c; +\s;extern void object::Remote( ) +\s;{ +\s; send("order", 1, 100); +\s; wait(5); +\s; send("order", 3, 100); +\s; wait(5); +\s; send("order", 2, 100); +\s; wait(5); +\s; send("order", 4, 100); +\s; wait(5); +\s;} +\n; +\c;send\n; and \c;wait\n; are repeated several times. So it would be a good thing if we created a function that executes these two instructions: +\c; +\s;void object::SendToPost( float op ) +\s;{ +\s; send("order", op, 100); +\s; wait(5); +\s;} +\s;extern void object::Remote( ) +\s;{ +\s; SendToPost(1); +\s; SendToPost(3); +\s; SendToPost(2); +\s; SendToPost(4); +\s;} +\n; +A function can have paramteters¦: +\c; +\s;void Example( int a, float x, string s ) +\n; +The \c;Exemple\n; function will reveive un integer \c;a\n;, a floating point number \c;x\n; and a string \c;s\n;. 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 \c;int\n; to a function, its parameter is a copy of whatever value was being passed as argument, and the function can change its parameter value without affecting values in the code that invoked the function. + +If you pass a \l;class\u cbot\class; instance or an \l;array\u cbot\array; as parameter to a function, the function only receives a \l;reference\u cbot\pointer; 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 actuallay modified. + +A function can also return a result with the \c;\l;return\u cbot\return;\n; instruction. Therefore the function must be declared no longer as void but as a type: +\c; +\s;float Mean( float a, float b ) +\s;{ +\s; return (a+b)/2; +\s;} +\s; +\s;extern void object::Test( ) +\s;{ +\s; float value; +\s; value = Mean(2, 6); +\s; message( value ); // will display 4 +\s;} +\n; +Some other examples¦: +\c; +\s;float Pi( ) +\s;{ +\s; return 3.1415; +\s;} +\s; +\s;string Sign( float a ) +\s;{ +\s; if ( a > 0 ) return "positive"; +\s; if ( a < 0 ) return "négative"; +\s; return "null"; +\s;} +\n; +You can declare several functions with the same name but different parameters¦: +\c; +\s;float Pythagoras( float a, float b ) +\s;{ +\s; return sqrt((a*a)+(b*b)); +\s;} +\s; +\s;float Pythagoras( float a, float b, float c ) +\s;{ +\s; return sqrt((a*a)+(b*b)+(c*c)); +\s;} +\n; +CBOT will call either the one or the other function depending on the paramteres passed. + +You can also declare a function \l;public\u cbot\public; so it can be used by other bots. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/goto.txt b/help/E/cbot/goto.txt new file mode 100644 index 00000000..7657012c --- /dev/null +++ b/help/E/cbot/goto.txt @@ -0,0 +1,35 @@ +\b;Instruction \c;goto\n; +The instruction \c;goto();\n; instructs the bot to reach a given position. + +\b;Basic use +The most current use consists in moving the bot to an object located with the instruction \c;\l;radar\u cbot\radar;();\n;. If the information returned by the \c;\l;radar\u cbot\radar;();\n; has been stored in a certain variable, write the name of the variable followed by \c;.position\n; in order to get the position of the object. Here is an example of a program that looks for a \l;titanium cube\u object\titan;, goes to the position and grabs it: +\c; +\s; item = \l;radar\u cbot\radar;(Titanium); +\s; goto(item.position); +\s; \l;grab\u cbot\grab;(); +\n; +\b;For specialists +Syntax: +\s;\c;goto ( position, altitude, goal, crash );\n; + +Tells the robot to go to the given position, avoiding all the obstacles if this is possible. + +\t;pos: \c;\l;point\u cbot\point;\n; +Coordinates of the goal position. + +\t;altitude: \c;\l;float\u cbot\float;\n; +Flight altitude for \l;winged bots\u object\botgj;. The altitude is useful only for \l;winged bots\u object\botgj;. 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. + +\t;goal: \c;\l;int\u cbot\int;\n; (default value \c;0\n;) +This parameter tells the bot how it must reach the goal: +\c;0\n; stops exactly at the goal position +\c;1\n; goes close to the goal position, without stopping. +If no value is given, \c;1\n; (precision) is the default value. + +\t;Return value: \c;\l;int\u cbot\int;\n; +Normally an error stops the program. You can prevent the program from stopping on errors by using the \c;\l;errmode\u cbot\errmode;(0)\n; instruction. A value different from zero if an error occurred is then returned by \c;goto()\n;. +\c;== 0 \n;Goal position reached +\c;!= 0 \n;Goal position impossible to reach + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/grab.txt b/help/E/cbot/grab.txt new file mode 100644 index 00000000..5cc81374 --- /dev/null +++ b/help/E/cbot/grab.txt @@ -0,0 +1,29 @@ +\b;Instruction \c;grab\n; +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. + +\b;Basic use +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: +\c; +\s; grab(); +\s; \l;move\u cbot\move;(5); +\s; \l;drop\u cbot\drop;(); +\n; +\b;For specialists +Syntax: +\s;\c;grab ( oper );\n; + +This instruction appeals to the operating arm of a \l;grabber bot\u object\botgr;, in order to grab the closest object. + +\t;oper: \c;\l;int\u cbot\int;\n; (default value\c;InFront\n;) +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. +\c;InFront \n; Grabs in front (default value). +\c;Behind \n; Grabs behind. +\c;EnergyCell\n; Grabs the bot's own power cell. + +\t;Return value: \c;\l;int\u cbot\int;\n; +Normally an error stops the program. You can prevent the program from stopping on errors by using the \c;\l;errmode\u cbot\errmode;(0)\n; instruction. A value different from zero if an error occurred is then returned by \c;grab();\n;. +\c;== 0 \n;an object was grabbed +\c;!= 0 \n;error, no object was grabbed + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/if.txt b/help/E/cbot/if.txt new file mode 100644 index 00000000..ad2ed990 --- /dev/null +++ b/help/E/cbot/if.txt @@ -0,0 +1,40 @@ +\b;Instructions \c;if\n; and \c;else\n; +With the instruction \c;if() {}\n; you can execute a set of instructions only if a certain condition is true. Write the condition in brackets \c;()\n;, and the instructions in braces \c;{}\n;. + +\b;Basic use +Here is a concrete example: The bot will shoot only if the target is closer than 40 meters: +\c; +\s; item = \l;radar\u cbot\radar;(AlienAnt); +\s; if (\l;distance\u cbot\dist;(position, item.position) < 40) +\s; { +\s; fire(1); +\s; } +\n; +You can also test if an object exists at all. If the instruction \c;\l;radar\u cbot\radar;();\n; does not find the requested object, it returns the value \c;null\n;. So you can test if an object does not exists with the condition \c;(item == null)\n;, or test if it exists with \c;(item != null)\n;. Two equal signs \c;==\n; test equality, an exclamation mark followed by an equal sign \c;!=\n; test inequality. Here is a test that will go to rechage the \l;power cell\u object\power; only if there is a \l;power station\u object\station;: +\c; +\s; item = \l;radar\u cbot\radar;(PowerStation); +\s; if (item != null) +\s; { +\s; \l;goto\u cbot\goto;(item.position); +\s; \l;wait\u cbot\wait;(5); +\s; } +\n; +\b;For specialists +Syntax: +\s;\c;if ( condition ) +\s;{ +\s; \n;Instructions A ...\c; +\s;} +\s;else +\s;{ +\s; \n;Instructions B ...\c; +\s;} +\n; +With this conditional structure you can execute a \l;bloc\u cbot\bloc; A or a \l;bloc\u cbot\bloc; B depending on a \l;condition\u cbot\cond;. If the condition is true, bloc A is executed. If the condition is false, bloc B is executed. +Part \c;else { }\n; is not compulsory. + +\t;Attention +Do not put a \l;semicolon\u cbot\term; at the end of the line \c;if ( )\n;. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/int.txt b/help/E/cbot/int.txt new file mode 100644 index 00000000..deb86d9e --- /dev/null +++ b/help/E/cbot/int.txt @@ -0,0 +1,20 @@ +\b;Type \c;int\n; +Use this type for variables that contain only whole numbers, negative or positive. For example: +\c; +\s; 12 +\s; 1000 +\s; -4 +\n; +To represent real numbers like 12.05 or -0.005, use the type \c;\l;float\u cbot\float;\n;. + +\t;Attention +Do not put space or colon signs inside a number. + +\t;For specialists +Numbers of the type \c;int\n; 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. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/E/cbot/jet.txt b/help/E/cbot/jet.txt new file mode 100644 index 00000000..71e8da2d --- /dev/null +++ b/help/E/cbot/jet.txt @@ -0,0 +1,16 @@ +\b;Instruction \c;jet\n; +Syntax: +\s;\c;jet ( power );\n; + +Direct control of the jet of a \l;winged bot\u object\botgj;. The jet is what makes the bot fly. Use this instruction in order to take off, climb, descend or land. + +\t;power: \c;\l;float\u cbot\float;\n; +Power of the jet, ranges between \c;-1\n; and \c;+1\n;. \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;. + + +\t;Return value: \c;\l;void\u cbot\void;\n; +None. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/E/cbot/message.txt b/help/E/cbot/message.txt new file mode 100644 index 00000000..01d0f706 --- /dev/null +++ b/help/E/cbot/message.txt @@ -0,0 +1,25 @@ +\b;Instruction \c;message\n; +Syntax: +\s;\c;message ( text, type );\n; + +Prints a message on top of the screen. After a few seconds, the message disappears automatically. + +\t;text: \c;\l;string\u cbot\string;\n; +Text that is to be displayed. It is possible to append several texts and/or values with the operator \c;+\n;: +\c;message("Not found");\n; +\c;message(angle);\n; +\c;message(n + " object(s) found");\n; +\c;message("Distance = " + dist + " meters");\n; + +\t;type: \c;\l;int\u cbot\int;\n; (default value \c;DisplayMessage\n;) +Type of the message, that determines the background color. +o \c;DisplayMessage\n; Standard message on yellow background. +o \c;DisplayInfo \n; Information on green background. +o \c;DisplayWarning\n; Warning on blue background. +o \c;DisplayError \n; Error on red background. + +\t;Return value: \c;\l;void\u cbot\void;\n; +None. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/motor.txt b/help/E/cbot/motor.txt new file mode 100644 index 00000000..712a1ff3 --- /dev/null +++ b/help/E/cbot/motor.txt @@ -0,0 +1,39 @@ +\b;Instruction \c;motor\n; +The instruction \c;motor( , );\n; sets the speed for the left-hand and the right-hand motor of the bot. + +\b;Basic use +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;\l;fire\u cbot\fire;();\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: +\c; +\s; \l;turn\u cbot\turn;(45); // turns 45 degrees left +\s; motor(0.5, -0.5); // slow rotation to the right +\s; \l;fire\u cbot\fire;(2); // fire +\s; motor(0,0); // stops the rotation +\n; +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. + +\b;For specialists +Syntax : +\s;\c;motor ( left, right );\n; + +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 \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n; or \c;\l;goto\u cbot\goto;\n; instruction is performed. + +\t;left: \c;\l;float\u cbot\float;\n; +Speed instruction for the left motor; the value must range between -1 and 1. + +\t;right: \c;\l;float\u cbot\float;\n; +Speed instruction for the right motor; the value must range between -1 and 1. + +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. + +Note : +\c;motor(2, 2);\n; will not move forward any faster than \c;motor(1, 1)\n; +\c;motor(-2, -2);\n; will not move backward any faster than \c;motor(-1, -1)\n; + +\t;Return value: \c;\l;void\u cbot\void;\n; +None. + +\t;See also +\l;Instructions\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/move.txt b/help/E/cbot/move.txt new file mode 100644 index 00000000..74177b22 --- /dev/null +++ b/help/E/cbot/move.txt @@ -0,0 +1,22 @@ +\b;Instruction \c;move\n; +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. + +\b;Basic use +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 \l;titanium ore\u object\titanore; on the \l;converter\u object\convert;, write \c;move(-2.5);\n;. + +\b;For specialists +Syntax: +\s;\c;move ( length );\n; + +Moves forward or backward of a given distance, always keeping the current orientation of the bot. + +\t;length: \c;\l;float\u cbot\float;\n; +Length of the move, in meters. A negative value makes the bot move backward. + +\t;Return value: \c;\l;int\u cbot\int;\n; +Normally an error stops the program. You can prevent the program from stopping on errors by using the \c;\l;errmode\u cbot\errmode;(0)\n; instruction. A value different from zero if an error occurred is then returned by \c;move()\n;. +\c;== 0 \n;Move executed +\c;!= 0 \n;error, the instruction was not performed correctly + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/nan.txt b/help/E/cbot/nan.txt new file mode 100644 index 00000000..f4732189 --- /dev/null +++ b/help/E/cbot/nan.txt @@ -0,0 +1,16 @@ +\b;Type \c;nan\n; +This special value indicates that a \l;variable\u cbot\var; of type \c;\l;int\u cbot\int;\n; or \c;\l;float\u cbot\float;\n; contains no number, but "nothing". +For example, if the instruction \c;\l;receive\u cbot\receive;\n; can not get the requested information, it returns \c;nan\n; : +\c; +\s; value = receive("Length"); +\s; if ( value == nan ) // not found ? +\s; { +\s; +\s; } +\n; +\t;Dictionnary +\c;nan\n; = Not A Number + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/E/cbot/new.txt b/help/E/cbot/new.txt new file mode 100644 index 00000000..97261784 --- /dev/null +++ b/help/E/cbot/new.txt @@ -0,0 +1,21 @@ +\b;Instruction \c;new\n; (for specialists) +The \c;new\n; operator creates a \l;class\u cbot\class; instance: +\c;\s; MyClass item; // now item is a null reference +\s; item = new MyClass(); // now item is a reference +\s; // to a new class instance +\n; +If you want to create a new instance at declaration time you can ommit the new \c;new\n; operator by putting () after the declaration: + +Instead of: +\c;\s; MyClass item = new MyClass(); +\n;you can write: +\c;\s; MyClass item(); +\n; +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); +\n; +\t;See also +\c;\l;class\u cbot\class;\n;, \c;\l;reference\u cbot\pointer;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/null.txt b/help/E/cbot/null.txt new file mode 100644 index 00000000..6e5219da --- /dev/null +++ b/help/E/cbot/null.txt @@ -0,0 +1,7 @@ +\b;Type \c;null\n; +This special value indicates that the variable containing it does not reference an instance. + +\t;See also +\l;References\u cbot\pointer; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/E/cbot/object.txt b/help/E/cbot/object.txt new file mode 100644 index 00000000..242de885 --- /dev/null +++ b/help/E/cbot/object.txt @@ -0,0 +1,70 @@ +\b;Type \c;object\n; +Use this type for variables that contain the characteristics of an object, be it a bot, a building, some raw material, an enemy, etc. + +\c;\l;int\u cbot\int; object.category \n;\l;Category\u cbot\category; of the object +\c;\l;point\u cbot\point; object.position \n;Position of the object (x,y,z) +\c;\l;float\u cbot\float; object.orientation \n;Orientation of the object (0..360) +\c;\l;float\u cbot\float; object.pitch \n;Forward/backward angle of the object +\c;\l;float\u cbot\float; object.roll \n;Right/left angle of the object +\c;\l;float\u cbot\float; object.energyLevel \n;Energy level (0..1) +\c;\l;float\u cbot\float; object.shieldLevel \n;Shield level (0..1) +\c;\l;float\u cbot\float; object.temperature \n;Jet temperature (0..1) +\c;\l;float\u cbot\float; object.altitude \n;Altitude above ground +\c;\l;float\u cbot\float; object.lifeTime \n;Lifetime of the object +\c;object object.energyCell \n;Power cell on the bot +\c;object object.load \n;Object carried by the bot + +\s;\c;category\n; +The \n;\l;category\u cbot\category; of an object allows you to know what it is, f. ex. what kind of bot, building, enemy, etc. + +\s;\c;position\n; +Position of the object on the planet, in meters. The coordinates \c;x\n; and \c;y\n; correspond to the location on a map, the \c;z\n; coordinate corresponds to the altitude above (respectively below) sea level. + +\s;\c;orientation\n; +Orientation of the object, in degrees. The orientation tells you what direction the object is facing. An orientation of \c;0\n; corresponds to an object facing eastwards, thus following the positive \c;x\n; axis. The orientation is measured counterclockwise. + +\s;\c;pitch\n; +Forward/backward angle of the robot. A pitch of \c;0\n; 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. + +\s;\c;roll\n; +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. + +\s;\c;energyLevel\n; +Energy level, between 0 and 1. A normal \l;power cell\u object\power; that is fully charged returns the value \c;1\n;. A \l;nuclear power cell\u object\atomic; 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 \c;energyCell.energyLevel\n;. + +\s;\c;shieldLevel\n; +Shield level of a robot or building. A level \c;1\n; 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 \c;0\n;, the next bullet or collision will destroy the bot or building. +Bots can re-energize their shield on a \l;repair center\u object\repair;. The shield of a building is repaired if it lays inside the protection sphere of a \l;shielder\u object\botshld;. + +\s;\c;temperature\n; +Temperature of the jet of \l;winged bots\u object\botgj;. \c;0\n; corresponds to a cold jet. When used, the temperature increases progressively. When it reaches the value \c;1\n;, the jet is overheated and stops working, until it cooled down a little. + +\s;\c;altitude\n; +The \c;z\n; coordinate of the position indicates the altitude above sea level, whereas the \c;altitude\n; indicates the height above ground. This value is meaningful only for \l;winged bots\u object\botgj; and for \l;wasps\u object\wasp;. For all other objects, this value is zero. + +\s;\c;lifeTime\n; +The age of the object in seconds since it's creation. + +\s;\c;energyCell\n; +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 \c;category\n; (PowerCell or NuclearCell), \c;position\n; (the position of the cell), etc. +If you want to know the energy level of a robot, you must not check \c;energyLevel\n;, but \c;energyCell.energyLevel\n;. +If the bot has bot no power cell, \c;energyCell\n; returns \c;null\n;. + +\s;\c;load\n; +This information also returns the description of a whole object: the description of the object carried by a \l;grabber\u object\botgr;. If it carries nothing, \c;load\n; returns \c;null\n;. + +\b;Examples +The type \c;object\n; returns the special value \c;\l;null\u cbot\null;\n; when the object does not exist. For example: +\c; +\s; object a; +\s; a = radar(BotGrabberRoller); +\s; if ( a == null ) // object does not exist ? +\s; { +\s; } +\s; if ( a.position.z > 50 ) // is it on a mountain ? +\s; { +\s; } +\n; +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/E/cbot/open.txt b/help/E/cbot/open.txt new file mode 100644 index 00000000..8af2abd4 --- /dev/null +++ b/help/E/cbot/open.txt @@ -0,0 +1,20 @@ +\b;Instruction \c;open\n; +Open a text file in the files/ folder. This is a method of the \c;\l;file\u cbot\file;\n; class. This is the reason why we always write \c;handle.open()\n;¦: +\c; +\s; handle.open("test.txt", "w"); +\n; +To open a file, proceed as follows¦: +\c; +\s; file handle(); +\s; handle.open("filename", "w"); +\s; handle.writeln("abc"); +\s; handle.close(); +\n; +\c;"r"\n; mode: open for reading. +\c;"w"\n; mode: open for writing. + +Files can only be created and opened in the files/ folder which is located in the folder where Colobot has been installed. You cannot not create or open files that are located elsewhere than in the files/ folder. + +\t;See also +\c;\l;file\u cbot\file;\n;, \c;\l;close\u cbot\close;\n;, \c;\l;readln\u cbot\readln;\n;, \c;\l;writeln\u cbot\writeln;\n; and \c;\l;eof\u cbot\eof;\n;. +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/openfile.txt b/help/E/cbot/openfile.txt new file mode 100644 index 00000000..6e8d59e1 --- /dev/null +++ b/help/E/cbot/openfile.txt @@ -0,0 +1,11 @@ +\b;Instruction \c;openfile\n; +\c;openfile();\n; opens an text file in the files/ folder. This is not a method of the \c;\l;file\u cbot\file;\n; class but openfile returne a \l;reference\u cbot\pointer; to a new instance of the file class. You must supply two parameters, the filename and the opening mode. +\c; +\s;file handle = openfile("filename", "r"); +\n; +\c;"r"\n; mode: open for reading. +\c;"w"\n; mode: open for writing. + + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/point.txt b/help/E/cbot/point.txt new file mode 100644 index 00000000..916be40f --- /dev/null +++ b/help/E/cbot/point.txt @@ -0,0 +1,36 @@ +\b;Type \c;point\n; +Variables of this type contain the coordinates of a point in space. This type is made of three values that represent the \c;x\n;, \c;y\n; and \c;z\n; coordinates. +\c;x\n; and \c;y\n; correspond to the place on the ground. The positive \c;x\n; axis faces towards east, the positive \c;y\n; axis faces towards north. +The \c;z\n; value corresponds to the altitude above sea level. + +If you want to declare a variable of type point, you can write: +\c; +\s; point a (10, 20, 30); +\n; +You can also set the variable taking one value after another: +\c; +\s; point b; +\s; b.x = 10; +\s; b.y = 20; +\s; b.z = 30; +\n; +With these examples, the following \l;condition\u cbot\cond; is true: +\c; +\s; if ( a == b ) +\s; { +\s; } +\n; +The following declaration : +\c; +\s; point c (4, 7); +\n; +Is equivalent to : +\c; +\s; point c; +\s; c.x = 4; +\s; c.y = 7; +\s; c.z = 0; +\n; + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/pointer.txt b/help/E/cbot/pointer.txt new file mode 100644 index 00000000..3d7b348c --- /dev/null +++ b/help/E/cbot/pointer.txt @@ -0,0 +1,53 @@ +\b;References (for specialists) +CBOT uses references for \l;classes\u cbot\class; and \l;arrays\u cbot\array;. 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 \c;\l;null\u cbot\null;\n; 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 \c;\l;null\u cbot\null;\n; reference. + +Example: +\c;\s;{ +\s; MyClass item1(); // create a new instance +\s; // referenced by item1 +\s; MyClass item2; // create a null reference +\s; item2 = item1; // copy the reference, +\s; // item2 and item1 now reference +\s; // the same instance +\s; item1.a = 12; // modifies the instance +\s; // referenced by item1 (and item2) +\s; message(item2.a);// displays 12 +\s;} +\n; +If you pass a \l;class\u cbot\class; 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. + +\c;\s;void Test( MyClass item ) +\s;{ +\s; item.a = 12; // modify the original instance +\s; item = new MyClass(); // new local instance +\s; item.a = 33; // modifie the local instance +\s;} +\n; +Calling the fucntion \c;Test()\n;¦: +\c;\s;{ +\s; MyClass toto(); +\s; Test(toto); +\s; message(toto.a); // displays 12 +\s;} +\n; +The instance containing the field \c;a = 33\n; is referenced only by the newly created instance \c;item\n; inside the fucntion \c;Test\n;. At the end of \c;Test\n; this newly created instance referenced by \c;item\n; is automatically deleted. + +A function can return an instance¦: +\c;\s;MyClass Test2( ) +\s;{ +\s; MyClass item = new MyClass(); +\s; item.x = 33; +\s; return item; +\s;} +\n; +Call the function like this: +\c;\s;{ +\s; MyClass toto; +\s; toto = Test2(); // toto will contain a reference to +\s; // the instance created by Test2() +\s; message(toto.a); // displays 33 +\s;} +\n; +\t;See also +\c;\l;class\u cbot\class;\n;, \c;\l;new\u cbot\new;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/private.txt b/help/E/cbot/private.txt new file mode 100644 index 00000000..5a2921a2 --- /dev/null +++ b/help/E/cbot/private.txt @@ -0,0 +1,19 @@ +\b;Instruction \c;private\n; (for specialists) +\l;Class\u cbot\class; members can be \l;public\u cbot\public; (by default) or private. A member can be declared privat by putting \c;private\n; before the type declaration of the member. Private members are not accessible from outside the class definition. +\c; +\s;public class MyClass +\s;{ +\s; int b; // public by défault +\s; public int a; // als public +\s; private point position; // privat +\s;} +\s;void Test() +\s;{ +\s; MyClass item; +\s; item.a = item.b = 12; // ok +\s; message( item.position ); // this is an error +\s;} +\n; +\t;See also +\c;\l;class\u cbot\class;\n;, \c;\l;public\u cbot\public;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/public.txt b/help/E/cbot/public.txt new file mode 100644 index 00000000..d7e8d920 --- /dev/null +++ b/help/E/cbot/public.txt @@ -0,0 +1,51 @@ +\b;Instruction \c;public\n; (for specialists) +This instruction has two distinct purposes¦: + +1) Make a function available to other bots. +2) Make a class member accessible from outside the class definition. + +\b;Instruction \c;public\n; for functions +If you put \c;public\n; before a \l;function\u cbot\function; definition, you can make the function available to programs in other bots in the same mission. + +For example in the first bot we would have¦: +\c; +\s;public void object::Segment(float dist, float angle) +\s;{ +\s; move(dist); +\s; turn(angle); +\s;} +\n; +And in another bot we would have¦: +\c; +\s;extern void object::Square( ) +\s;{ +\s; for ( int i=0 ; i<4 ; i++ ) +\s; { +\s; Segment(10, 90); +\s; fire(1); +\s; } +\s;} +\n; +If you have declared a function \c;public\n;, you cannot define a function with the same name and arguments in another bot of the same mission. + +If a bot containing a \c;public\n; function is destroyed, the other bots that make use of this function will be stopped with an error. + +\b;Instruction \c;public\n; for classes +\l;Class\u cbot\class; members can be public (by default) or \l;privat\u cbot\private;. A member can be declared private by putting \c;private\n; before the member type. Private members are not accessible from outside the class definition. +\c; +\s;public class MyClass +\s;{ +\s; int b; // public by default +\s; public int a; // also public +\s; private point position; // privat +\s;} +\s;void Test() +\s;{ +\s; MyClass item; +\s; item.a = item.b = 12; // ok +\s; message( item.position ); // this is an error +\s;} +\n; +\t;See also +\c;\l;class\u cbot\class;\n;, \c;\l;private\u cbot\private;\n;, \c;\l;functions\u cbot\function;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/radar.txt b/help/E/cbot/radar.txt new file mode 100644 index 00000000..d16fa639 --- /dev/null +++ b/help/E/cbot/radar.txt @@ -0,0 +1,60 @@ +\b;Instruction \c;radar\n; +With the instruction \c;radar()\n;, you can look for objects like \l;enemies\u object\mother;, bots, buildings or raw materials. + +\b;Basic use +Write in brackets the \l;name of the object\u cbot\category; that you look for. Put the result in a variable of the \l;type\u cbot\type; \c;object\n;. Here is an example that looks for the closest ant: +\c; +\s;// At the beginning of the program: +\s;object item; // variable declaration +\s; +\s;// Look for the closest ant +\s;item = radar(AlienAnt); +\n; +\b;For specialists +Syntax: +\s;\c;radar ( category, angle, focus, min, max, way );\n; + +Detects an object according to several parameters. + +\image radar1 8 8; +Seen from above, the purple zone corresponds to the zone where objects will be detected. + +\t;category: \c;\l;int\u cbot\int;\n; +\l;Category\u cbot\category; of the objects that should be detected. For example, when you are looking for an ant, write \c;radar (AlienAnt)\n;. + +\t;angle: \c;\l;float\u cbot\float;\n; (default value\c;0\n;) +Direction that the radar is facing, in degrees. +\c; 0\n; -> radar is facing straight ahead +\c;-90\n; -> radar is facing a quarter turn right +\c; 90\n; -> radar is facing a quarter turn left + +\t;focus: \c;\l;float\u cbot\float;\n; (default value\c;360\n;) +Opening angle of the radar, in degrees. + +\t;min: \c;\l;float\u cbot\float;\n; (default value \c;0\n;) +Minimum detection distance, in meters. Objects that are closer than the minimum distance will not be detected. + +\t;max: \c;\l;float\u cbot\float;\n; (Default value\c;1000\n;) +Maximum detection distance, in meters. Objects that are farther away than the maximum distance will not be detected. + +\t;way: \c;\l;float\u cbot\float;\n; (default value\c;1\n;) +Determines which way the objects are detected. With value \c;1\n;, returns the closest object found in the specified zone. With value \c;-1\n;, the farthest object in the zone will be returned. + +\t;Return value: \c;\l;object\u cbot\object;\n; +Returns the first object found that corresponds to the specified category in the specified zone. If no object was found, returns the value \c;\l;null\u cbot\null;\n;. + +\t;Remark +You do not have to give all the parameters. Here are two examples of instructions that are equivalent: +\c; +\s; radar(Titanium, 0, 360, 0, 1000); +\s; radar(Titanium); // equivalent + +\s; radar(Titanium, 0, 90, 0, 1000); +\s; radar(Titanium, 0, 90); // equivalent +\n; +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. \c;radar (AlienAnt)\n; detects the closest ant, wherever it may be. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/E/cbot/readln.txt b/help/E/cbot/readln.txt new file mode 100644 index 00000000..4889c0c5 --- /dev/null +++ b/help/E/cbot/readln.txt @@ -0,0 +1,20 @@ +\b;Instruction \c;readln\n; +Read one line from an open file in the files/ folder. This is a method of the \c;\l;file\u cbot\file;\n; class. This is the reason why we always write \c;handle.readln()\n;¦: +\c; +\s; s = handle.readln(); +\n; +The file must have been opened for reading (\c;"r"\n;) with the \c;\l;open\u cbot\open;\n; instruction. \c;readln\n; returns the string containing the whole line but without the end of line characters 0x0D (CR) and 0x0A (LF). + +Syntax¦: +\s;\c;string = handle.readln ( );\n; + +Example¦: +\c; +\s; string s; +\s; s = handle.readln(); +\s; if ( s == "abc" ) +\s; ... +\n; +\t;See also +\c;\l;file\u cbot\file;\n;, \c;\l;open\u cbot\open;\n;, \c;\l;close\u cbot\close;\n;, \c;\l;writeln\u cbot\writeln;\n; and \c;\l;eof\u cbot\eof;\n;. +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/receive.txt b/help/E/cbot/receive.txt new file mode 100644 index 00000000..68b140f5 --- /dev/null +++ b/help/E/cbot/receive.txt @@ -0,0 +1,18 @@ +\b;Instruction \c;receive\n; +Syntax: +\s;\c;receive ( name, power );\n; + +Retrieves an information from the closest \l;information exchange post\u object\exchange;. + +\t;name: \c;string\n; +Name of the information required from the exchange post. This name is a string: it must be written in quotation marks "¦". + +\t;power: \c;float\n; +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. + +\t;Return value: \c;\l;float\u cbot\float;\n; +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 \c;nan\n; is returned. + +\t;See also +\c;\l;send\u cbot\send;\n;, \c;\l;testinfo\u cbot\testinfo;\n; and \c;\l;deleteinfo\u cbot\delinfo;\n;. +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/recycle.txt b/help/E/cbot/recycle.txt new file mode 100644 index 00000000..10d9979d --- /dev/null +++ b/help/E/cbot/recycle.txt @@ -0,0 +1,14 @@ +\b;Instruction \c;recycle\n; +Syntax: +\s;\c;recycle ( );\n; + +Recycles the derelict bot in front of the \l;recycler\u object\botrecy; into a \l;titanium cube\u object\titan;. + +\t;Return value: \c;\l;int\u cbot\int;\n; +Zero if OK, or a value different from zero if an error occurred. +\c;== 0 \n;the derelict bot has been recycled +\c;!= 0 \n;error, no derelict bot could be recycled + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/E/cbot/retobj.txt b/help/E/cbot/retobj.txt new file mode 100644 index 00000000..3cfd3ca7 --- /dev/null +++ b/help/E/cbot/retobj.txt @@ -0,0 +1,15 @@ +\b;Instruction \c;retobject\n; +Syntax: +\s;\c;retobject ( number );\n; + +Returns the object corresponding to the given number. + +\t;number: \c;\l;int\u cbot\int;\n; +Number of the object, between 0 and n. "n" represents the total number of objects in the scene. + +\t;Return value: \c;\l;object\u cbot\object;\n; +Object corresponding to the number. The return value \c;\l;null\u cbot\null;\n; means that no object corresponds to this number, because the number was too high, and there are not so many objects in the scene. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/E/cbot/return.txt b/help/E/cbot/return.txt new file mode 100644 index 00000000..5c74e3e1 --- /dev/null +++ b/help/E/cbot/return.txt @@ -0,0 +1,31 @@ +\b;Instruction \c;return\n; +Returns from a function. Syntax: +\c; +\s;void function ( ) +\s;{ +\s; return; +\s;} +\n; +\b;For specialists +If the \l;function\u cbot\function; has a return type, the \c;return\n; instruction must be followed by the value to be returned: +\c; +\s;float Pi ( ) +\s;{ +\s; return 3.1415; +\s;} + +\s;float Mean (float a, float b) +\s;{ +\s; return (a+b)/2; +\s;} + +\s;string Sign (float a) +\s;{ +\s; if ( a > 0 ) return "positive"; +\s; if ( a < 0 ) return "négative"; +\s; return "null"; +\s;} +\n; +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/E/cbot/search.txt b/help/E/cbot/search.txt new file mode 100644 index 00000000..e63e6c4b --- /dev/null +++ b/help/E/cbot/search.txt @@ -0,0 +1,18 @@ +\b;Instruction \c;search\n; +Syntax: +\s;\c;search ( category, position );\n; + +Detects the object of the given category that is closest to the given position. + +\t;category: \c;\l;int\u cbot\int;\n; +\l;Category\u cbot\category; of the requested object. + +\t;position: \c;\l;point\u cbot\point;\n; +\c;search\n; returns the object of the given category that is closest to the position indicated here. + +\t;Return value: \c;\l;object\u cbot\object;\n; +Characteristics of the object that has been found. The value \c;\l;null\u cbot\null;\n; means that no object of this category has been found. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/E/cbot/send.txt b/help/E/cbot/send.txt new file mode 100644 index 00000000..10aa0606 --- /dev/null +++ b/help/E/cbot/send.txt @@ -0,0 +1,19 @@ +\b;Instruction \c;send\n; +Syntax¦: +\s;\c;send ( name, value, power );\n; + +Sends an information to the closest \l;information exchange post\u object\exchange;. + +\t;name: \c;string\n; +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. + +\t;value: \c;float\n; +Value of the information to be sent. + +\t;power: \c;float\n; +Power of the transmitter, which corresponds to the maximal distance to where information can be the sent. Default value is 10 metres. + +\t;See also +\c;\l;receive\u cbot\receive;\n;, \c;\l;testinfo\u cbot\testinfo;\n; and \c;\l;deleteinfo\u cbot\delinfo;\n;. +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/shield.txt b/help/E/cbot/shield.txt new file mode 100644 index 00000000..d9aff476 --- /dev/null +++ b/help/E/cbot/shield.txt @@ -0,0 +1,19 @@ +\b;Instruction \c;shield\n; +Syntax: +\s;\c;shield ( oper );\n; + +Activates or deactivates the shield of the \l;ahielder\u object\botshld;. 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. + +\t;oper: \c;\l;float\u cbot\float;\n; +\c;1\n; activates the shield. +\c;0\n; deactivates the shield +A normal \l;power cell\u object\power; fully charged can maintain the shield active during 20 seconds. When the cell is empty, the shield deactivates. + +\t;radius: \c;\l;float\u cbot\float;\n; +Radius of the shield, ranging between 10 and 25 meters. + +\t;Return value: \c;\l;void\u cbot\void;\n; +None. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/sizeof.txt b/help/E/cbot/sizeof.txt new file mode 100644 index 00000000..c0722c15 --- /dev/null +++ b/help/E/cbot/sizeof.txt @@ -0,0 +1,22 @@ +\b;Instruction \c;sizeof\n; +The sizeof function lets you know the number of elements contained in an \l;array\u cbot\array;. +That is the index of the last element plus one ("empty" elements are counted). +\c; +\s;{ +\s; int a[12]; +\s; a[5] = 345; +\s; message( sizeof(a) ); // will display 6 +\s;} +\n; +In this example we have 6 elements in the array after \c;a[5]=345\n;. The non initialized elements \c;[0]\n;, \c;[1]\n;, \c;[2]\n;, \c;[3]\n; and \c;[4]\n; will be counted. + +With multidimensionnal arrays you can get the size of a sub array: +\c; +\s;float xy[][]; // 2 dimensionnal array +\s;xy[5][10] = 67; +\s;message( sizeof(xy) ); // will display 6 +\s;message( sizeof(xy[5]) ); // will display 11 +\s; +\n; +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/sniff.txt b/help/E/cbot/sniff.txt new file mode 100644 index 00000000..27872224 --- /dev/null +++ b/help/E/cbot/sniff.txt @@ -0,0 +1,17 @@ +\b;Instruction \c;sniff\n; +Syntax: +\s;\c;sniff ( );\n; + +Sounds the underground in front of the \l;sniffer\u object\botsr;. According to what raw materials were detected, the following objects will be created: + +\c;TitaniumSpot\n; -> \l;Red cross\u object\stonspot; +\c;UraniumSpot \n; -> \l;Yellow circle\u object\uranspot; +\c;PowerSpot \n; -> \l;Green cross\u object\enerspot; + +\t;Return value: \c;\l;int\u cbot\int;\n; +Zero if everything is OK, or a value different from zero if an error occurred. +\c;== 0 \n;sounding performed +\c;!= 0 \n;sounding impossible + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/space.txt b/help/E/cbot/space.txt new file mode 100644 index 00000000..baa660a9 --- /dev/null +++ b/help/E/cbot/space.txt @@ -0,0 +1,23 @@ +\b;Instruction \c;space\n; +Syntax : +\s;\c;space ( center, rmin, rmax, dist );\n; + +Determines the position of the nearest free space around a given position. + +\t;center: \c;\l;point\u cbot\point;\n; (default: bot position) +Desired position of the free space. + +\t;rmin: \c;\l;float\u cbot\float;\n; (default value: \c;8\n;) +Minimum distance from the desired position. + +\t;rmax: \c;\l;float\u cbot\float;\n; (default value: \c;50\n;) +Maximum distance from the desired position. + +\t;dist: \c;\l;float\u cbot\float;\n; (default value: \c;4\n;) +Required distance between two free spaces. + +\t;Return: \c;\l;point\u cbot\point;\n; +Position of the free space. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/static.txt b/help/E/cbot/static.txt new file mode 100644 index 00000000..7d5e6032 --- /dev/null +++ b/help/E/cbot/static.txt @@ -0,0 +1,22 @@ +\b;Instruction \c;static\n; (for specialists) +\l;Class\u cbot\class; members declared with \c;static\n; are shared between all instances of the class. +\c; +\s;public class MyClass +\s;{ +\s; static int nb = 1; +\s; static string [ ] list = null; +\s;} +\s;void Test () +\s;{ +\s; MyClasse item1(); +\s; MyClasse item2(); +\s; item1.nb = 3; +\s; item1.list[item1.nb] = "Hello"; +\s; message( item2.list[item2.nb] ); // display "Hello" +\s;} +\n; +\c;Static\n; members can be declared \c;\l;private\u cbot\private;\n; so they will be only acessible from within class members (including constructors and destructors). + +\t;See also +\c;\l;class\u cbot\class;\n;, \c;\l;synchronized\u cbot\synchro;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/strfind.txt b/help/E/cbot/strfind.txt new file mode 100644 index 00000000..3d42b0d5 --- /dev/null +++ b/help/E/cbot/strfind.txt @@ -0,0 +1,20 @@ +\b;Instruction \c;strfind\n; +Find a substring in a string and returns the position of the first substring found or \l;nan\u cbot\nan; if the substring has not been found. + +Syntax¦: +\s;\c;strfind ( string, sub );\n; + +\t;string: \c;\l;string\u cbot\string;\n; +String we are searching in. + +\t;sub: \c;\l;string\u cbot\string;\n; +Substring we are searching for. + +Examples¦: +\s;\c; int pos = strfind("abcdef", "ab"); // pos will be 0 +\s; int pos = strfind("abcdef", "de"); // pos will be 3 +\s; int pos = strfind("abcdef", "xy"); // pos will be \l;nan\u cbot\nan; +\n; +\t;See also +\c;\l;strlen\u cbot\strlen;\n;, \c;\l;strleft\u cbot\strleft;\n;, \c;\l;strright\u cbot\strright;\n;, \c;\l;strmid\u cbot\strmid;\n;, \c;\l;strval\u cbot\strval;\n;, \c;\l;strupper\u cbot\strupper;\n;, \c;\l;strlower\u cbot\strlower;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/string.txt b/help/E/cbot/string.txt new file mode 100644 index 00000000..cc7b1a17 --- /dev/null +++ b/help/E/cbot/string.txt @@ -0,0 +1,33 @@ +\b;Type \c;string\n; +Use a variable of this type for storing characters or strings. + +For example: +\s;\c; "Hello!" +\s; "This is a string" +\s; "x" +\s; "" // empty string +\n; +You can append two strings with the \c;+\n; operator : +\s;\c; "Good morning," + " " + "Sir" +\n; +Returns the string: +\s;\c; "Good morning, Sir" +\n; +If you want to put a quotation mark (") or a backslash (\) in a string you must write¦: +\s;\c;"This is \"very\" important" +\n;which will result in the string \c; This is "very" important. +\s;\c;"%user%\\ant.txt" +\n;will result in \c;%user%\ant.txt +\n; +Following instructions can be used with strings¦: +\c;\l;strlen\u cbot\strlen; \n;Get string length +\c;\l;strleft\u cbot\strleft; \n;Extract left part +\c;\l;strright\u cbot\strright; \n;Extract right part +\c;\l;strmid\u cbot\strmid; \n;Extract center part +\c;\l;strfind\u cbot\strfind; \n;Find a substring. +\c;\l;strval\u cbot\strval; \n;Convert string to number +\c;\l;strupper\u cbot\strupper; \n;Convert to upper case +\c;\l;strlower\u cbot\strlower; \n;Convert to lower case + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/strleft.txt b/help/E/cbot/strleft.txt new file mode 100644 index 00000000..fa80fdeb --- /dev/null +++ b/help/E/cbot/strleft.txt @@ -0,0 +1,16 @@ +\b;Instruction \c;strleft\n; +Extracts the first (that is, leftmost) characters from a string. + +Syntax¦: +\s;\c;strleft ( string, len );\n; + +\t;len: \c;\l;int\u cbot\int;\n; +Number of characters to be extracted. + +Examples¦: +\s;\c; string s = strleft("abcdef", 2); // s is "ab" +\s; string s = strleft("abc", 10); // s is "abc" +\n; +\t;See also +\c;\l;strlen\u cbot\strlen;\n;, \c;\l;strright\u cbot\strright;\n;, \c;\l;strmid\u cbot\strmid;\n;, \c;\l;strfind\u cbot\strfind;\n;, \c;\l;strval\u cbot\strval;\n;, \c;\l;strupper\u cbot\strupper;\n;, \c;\l;strlower\u cbot\strlower;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/strlen.txt b/help/E/cbot/strlen.txt new file mode 100644 index 00000000..1cc384a7 --- /dev/null +++ b/help/E/cbot/strlen.txt @@ -0,0 +1,14 @@ +\b;Instruction \c;strlen\n; +Get the length of a string. + +Syntax¦: +\s;\c;strlen ( string );\n; + +Examples¦: +\s;\c; int len = strlen("abc"); // len is 3 +\s; int len = strlen(""); // len is 0 +\s; if ( strlen(s) == 0 ) // is string empty ? +\n; +\t;See also +\c;\l;strleft\u cbot\strleft;\n;, \c;\l;strright\u cbot\strright;\n;, \c;\l;strmid\u cbot\strmid;\n;, \c;\l;strfind\u cbot\strfind;\n;, \c;\l;strval\u cbot\strval;\n;, \c;\l;strupper\u cbot\strupper;\n;, \c;\l;strlower\u cbot\strlower;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/strlower.txt b/help/E/cbot/strlower.txt new file mode 100644 index 00000000..b4b7e50b --- /dev/null +++ b/help/E/cbot/strlower.txt @@ -0,0 +1,12 @@ +\b;Instruction \c;strlower\n; +Convert all characters in a string to lowercase. + +Syntax¦: +\s;\c;strlower ( string );\n; + +Examples¦: +\s;\c; string s = strlower("Abc"); // s is "abc" +\n; +\t;See also +\c;\l;strlen\u cbot\strlen;\n;, \c;\l;strleft\u cbot\strleft;\n;, \c;\l;strright\u cbot\strright;\n;, \c;\l;strmid\u cbot\strmid;\n;, \c;\l;strfind\u cbot\strfind;\n;, \c;\l;strval\u cbot\strval;\n;, \c;\l;strupper\u cbot\strupper;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/strmid.txt b/help/E/cbot/strmid.txt new file mode 100644 index 00000000..cf90bd3b --- /dev/null +++ b/help/E/cbot/strmid.txt @@ -0,0 +1,20 @@ +\b;Instruction \c;strmid\n; +Extracts a substring of a given length starting at a given position from a string. + +Syntax¦: +\s;\c;strmid ( string, pos, len );\n; + +\t;pos: \c;\l;int\u cbot\int;\n; +The index of the first character that is to be included in the extracted substring. + +\t;len: \c;\l;int\u cbot\int;\n; +Number of characters to be extracted. + +Examples¦: +\s;\c; string s = strmid("abcdef", 1, 2); // s is "bc" +\s; string s = strmid("abcdef", 4, 5); // s is "ef" +\s; string s = strmid("abcdef", 9, 2); // s is "" +\n; +\t;See also +\c;\l;strlen\u cbot\strlen;\n;, \c;\l;strleft\u cbot\strleft;\n;, \c;\l;strright\u cbot\strright;\n;, \c;\l;strfind\u cbot\strfind;\n;, \c;\l;strval\u cbot\strval;\n;, \c;\l;strupper\u cbot\strupper;\n;, \c;\l;strlower\u cbot\strlower;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/strright.txt b/help/E/cbot/strright.txt new file mode 100644 index 00000000..18824e65 --- /dev/null +++ b/help/E/cbot/strright.txt @@ -0,0 +1,16 @@ +\b;Instruction \c;strright\n; +Extracts the last (that is, rightmost) characters from a string. + +Syntax¦: +\s;\c;strright ( string, len );\n; + +\t;len: \c;\l;int\u cbot\int;\n; +Number of characters to be extracted. + +Examples¦: +\s;\c; string s = strright("abcdef", 2); // s is "ef" +\s; string s = strright("abc", 10); // s is "abc" +\n; +\t;See also +\c;\l;strlen\u cbot\strlen;\n;, \c;\l;strleft\u cbot\strleft;\n;, \c;\l;strmid\u cbot\strmid;\n;, \c;\l;strfind\u cbot\strfind;\n;, \c;\l;strval\u cbot\strval;\n;, \c;\l;strupper\u cbot\strupper;\n;, \c;\l;strlower\u cbot\strlower;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/strupper.txt b/help/E/cbot/strupper.txt new file mode 100644 index 00000000..7091f0ce --- /dev/null +++ b/help/E/cbot/strupper.txt @@ -0,0 +1,12 @@ +\b;Instruction \c;strupper\n; +Convert all characters in a string to uppercase. + +Syntax¦: +\s;\c;strupper ( string );\n; + +Examples¦: +\s;\c; string s = strupper("Abc"); // s is "ABC" +\n; +\t;See also +\c;\l;strlen\u cbot\strlen;\n;, \c;\l;strleft\u cbot\strleft;\n;, \c;\l;strright\u cbot\strright;\n;, \c;\l;strmid\u cbot\strmid;\n;, \c;\l;strfind\u cbot\strfind;\n;, \c;\l;strval\u cbot\strval;\n;, \c;\l;strlower\u cbot\strlower;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/strval.txt b/help/E/cbot/strval.txt new file mode 100644 index 00000000..491fc185 --- /dev/null +++ b/help/E/cbot/strval.txt @@ -0,0 +1,19 @@ +\b;Instruction \c;strval\n; +Convert a string to a number. Don't confuse the string \c;"45"\n; that contains actually the two characters \c;4\n; and \c;5\n; and the number \c;45\n;. + +Examples¦: +\s;\c; string s = "45"+"12"; // s contains "4512" +\s; float n = 45 + 12; // n contains 67 +\n; +Syntax¦: +\s;\c;strval ( string );\n; +\n; +Examples¦: +\s;\c; float n = strval("1.23"); // n is 1.23 +\s; float n = strval("12abc45"); // n is 12 +\s; float n = strval("abc"); // n is 0 +\s; float n = strval("100")+2; // n is 102 +\n; +\t;See also +\c;\l;strlen\u cbot\strlen;\n;, \c;\l;strleft\u cbot\strleft;\n;, \c;\l;strright\u cbot\strright;\n;, \c;\l;strmid\u cbot\strmid;\n;, \c;\l;strfind\u cbot\strfind;\n;, \c;\l;strupper\u cbot\strupper;\n;, \c;\l;strlower\u cbot\strlower;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/synchro.txt b/help/E/cbot/synchro.txt new file mode 100644 index 00000000..8817c38a --- /dev/null +++ b/help/E/cbot/synchro.txt @@ -0,0 +1,25 @@ +\b;Instruction \c;synchronized\n; (for specialists) +A \l;class\u cbot\class; method can be declared \c;synchronized\n;. This is to make sure that the method is never being executed by more than one bot at the same time. + +The following example illustrates the problem: +\c; +\s;class blocking +\s;{ +\s; static int nb = 33; +\s; synchronized int inc( ) +\s; { +\s; int val = nb; +\s; wait ( 2 ); // wait 2 sec. +\s; nb = nb + 1; +\s; return val; +\s; } +\s;} +\n; +What happens if two bots execute the \c;inc\n; method at the same time¦? +Both of them will execute \c;val=nb\n; and wait 2 seconds so both of them will have \c;val=33\n;. With \c;synchronized\n; the first bot starts execution with \c;val=33\n; and then waits 2 seconds and returns. Only once the first bot has returned from the \c;inc\n; method, the second bot will be allowed to enter the \c;inc\n; method and therefore the second bot will always have \c;val=34\n;. + +You can have more than one synchronized method in your \l;class\u cbot\class; 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. + +\t;See also +\c;\l;class\u cbot\class;\n;, \c;\l;static\u cbot\static;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/term.txt b/help/E/cbot/term.txt new file mode 100644 index 00000000..c53d552d --- /dev/null +++ b/help/E/cbot/term.txt @@ -0,0 +1,31 @@ +\b;Semicolon +Always use a semicolon \c;;\n; after a simple expression. For example: +\c; +\s; int counter = 0; +\n; +However, after a \l;bloc\u cbot\bloc;, never put a semicolon: +\c; +\s; { +\s; float dist; +\s; dist = distance(p1, p2); +\s; } \n;// no semicolon here!\c; +\n; +Do not use a semicolon either immediately after the instructions \c;\l;while\u cbot\while;\n;, \c;\l;if\u cbot\if;\n; or \c;\l;for\u cbot\for;\n;: +\c; +\s; if ( a < b ) \n;// no semicolon here!\c; +\s; { +\s; b = 100-a; +\s; } +\n; +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: +\c; +\s; int d=20; +\s; move(d); +\s; turn(90); +\n; +Is equivalent to: +\c; +\s; int d=20; move(d); turn(90); +\n; +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/testinfo.txt b/help/E/cbot/testinfo.txt new file mode 100644 index 00000000..634063af --- /dev/null +++ b/help/E/cbot/testinfo.txt @@ -0,0 +1,18 @@ +\b;Instruction \c;testinfo\n; +Syntax¦: +\s;\c;testinfo ( name, power );\n; + +Tests if an information exists in the closest \l;information exchange post\u object\exchange;. + +\t;name: \c;string\n; +Name of the information to be tested in the exchange post. This name is a string: it must be written in quotation marks "¦". + +\t;power: \c;float\n; +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 \c;false\n;. Default value is 10 metres. + +\t;Return: \c;\l;bool\u cbot\bool;\n; +Return \c;true\n; if the information exists. Return and \c;false\n; if the information does not exist or if the receiver is too far away from the exchange post. + +\t;See also +\c;\l;receive\u cbot\receive;\n;, \c;\l;send\u cbot\send;\n; and \c;\l;deleteinfo\u cbot\delinfo;\n;. +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/this.txt b/help/E/cbot/this.txt new file mode 100644 index 00000000..81516bc3 --- /dev/null +++ b/help/E/cbot/this.txt @@ -0,0 +1,54 @@ +\b;Instruction \c;this\n; +Occasionally, a \l;class\u cbot\class; 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 \c;this\n; is available to methods and \c;this\n; is a reference to the current instance. +\c; +\s;public class MyClass +\s;{ +\s; int m_int; +\s; string m_str; +\s; void MyFunction() +\s; { +\s; OtherFunction(this); +\s; m_int = 2; +\s; } +\s;} +\s; +\s;void OtherFunction(MyClass obj) +\s;{ +\s; message(obj.m_str); +\s;} +\s; +\s;extern void object::Test() +\s;{ +\s; MyClass item(); +\s; item.m_str = "Hello"; +\s; item.MyFunction(); // display "Hello" +\s;} +\n; +You can also put \c;this\n; before a field name in a method but this is not necessary. In the example above in the method \c;MyFunction()\n; following two lines have strictly the same meaning: +\c; +\s; m_int = 2; +\s; this.m_int = 2; // identical +\n; +In a method of the \c;\l;object\u cbot\object;\n; class, you can also use \c;this.\n; before a fieldname. +\c; +\s;extern void object::Display() +\s;{ +\s; message(orientation); +\s; message(this.orientation); // same thing but +\s; // more explicit +\s;} +\n; +However if a field name is hidden by a parameter declaration or a variable declaration you must use \c;this\n;. In the following example the name \c;value\n; of the parameter is the same as the name of the field \c;value\n; of the \l;class\u cbot\class; \c;MyClass\n;, we must therefore write \c;this.value\n; in order to distinguish the field from the parameter. +\c; +\s;public class MyClass +\s;{ +\s; int value; +\s; void Put( int value ) +\s; { +\s; this.value = value; +\s; } +\s;} +\n; +\t;See also +\c;\l;class\u cbot\class;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; et \l;catégories\u cbot\category;. diff --git a/help/E/cbot/thump.txt b/help/E/cbot/thump.txt new file mode 100644 index 00000000..8ce7f161 --- /dev/null +++ b/help/E/cbot/thump.txt @@ -0,0 +1,13 @@ +\b;Instruction \c;thump\n; +Syntax: +\s;\c;thump ( );\n; + +Activates the weapon system of the \l;thumper\u object\bottump;, that turns ants and spiders belly up and makes them completely harmless for a while. + +\t;Return value: \c;\l;int\u cbot\int;\n; +Zero if everything is OK, a value different from zero if an error occurred. +\c;== 0 \n;Thumping performed +\c;!= 0 \n;Operation impossible + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/topo.txt b/help/E/cbot/topo.txt new file mode 100644 index 00000000..e8fef09a --- /dev/null +++ b/help/E/cbot/topo.txt @@ -0,0 +1,14 @@ +\b;Instruction \c;topo\n; +Syntax: +\s;\c;topo ( position );\n; + +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. + +\t;position: \c;\l;point\u cbot\point;\n; +Coordinates of the position whose altitude you want to know. + +\t;Return value: \c;\l;float\u cbot\float;\n; +Altitude of the ground at the given position. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/true.txt b/help/E/cbot/true.txt new file mode 100644 index 00000000..2d29fa1d --- /dev/null +++ b/help/E/cbot/true.txt @@ -0,0 +1,5 @@ +\b;Type \c;true\n; +This value means that a condition is true; it is one of the two values that a \l;boolean\u cbot\bool; \l;variable\u cbot\var; can take. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/turn.txt b/help/E/cbot/turn.txt new file mode 100644 index 00000000..a163dcb5 --- /dev/null +++ b/help/E/cbot/turn.txt @@ -0,0 +1,33 @@ +\b;Instruction \c;turn\n; +Use the instruction \c;turn();\n; to instruct the bot to perform a rotation on itself of a certain number of degrees. + +\b;Basic use +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;: + +\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 + +In order to turn the bot towards an object found with the instruction \c;\l;radar\u cbot\radar;();\n;, you must calculate the rotation angle with the instruction \c;\l;direction\u cbot\direct;()\n;: +\c; +\s; item = \l;radar\u cbot\radar;(AlienSpider); +\s; turn(\l;direction\u cbot\direct;(item.position)); +\n; +After these lines, just fire the cannon, and there is one hostile element less. + +\b;For specialists +Syntax: +\s;\c;turn ( angle );\n; + +Turns the bot with a given angle, right or left, without moving either forward or backward. + +\t;angle: \c;\l;float\u cbot\float;\n; +Angle of the required rotation, in degrees. A positive value turns left, a negative value turns right. \c;turn(180)\n; turns round completely. + +\t;Return value: \c;\l;int\u cbot\int;\n; +Zero if everything is OK, or a value different from zero if an error occurred. +\c;== 0 \n;rotation performed +\c;!= 0 \n;rotation impossible + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/type.txt b/help/E/cbot/type.txt new file mode 100644 index 00000000..16662081 --- /dev/null +++ b/help/E/cbot/type.txt @@ -0,0 +1,33 @@ +\b;Variable types +When you define a \l;variable\u cbot\var;, you must give two elements: + +1) a name +2) a type + +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 \l;float\u cbot\float; can not contain a string, etc. + +In a program, the name of a type is always written on \type;green background\norm;. If the name of a type is not colored, this means that the name is misspelled. Type names are always written with lower case characters. Here is a list of the different types: + +\s;\c;\l;int\u cbot\int;\n; +For a whole number (12, -500, etc.). + +\s;\c;\l;float\u cbot\float;\n; +For a real number (12, 3.14, 0.2, -99.98, etc.). + +\s;\c;\l;bool\u cbot\bool;\n; +For a boolean variable, that can only take the values \c;true\n; or \c;false\n;. + +\s;\c;\l;string\u cbot\string;\n; +For texts ("Hello!", "No object found", etc.) + +\s;\c;\l;point\u cbot\point;\n; +For the coordinates of a point in space; a variable of this type consists of three parts named x, y and z. + +\s;\c;\l;object\u cbot\object;\n; +A variable of this type contains the information about an object (bot, building, enemy, etc.). + +\s;\c;\l;void\u cbot\void;\n; +This type is an "empty type", that you use when you do not want to specify a type. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/var.txt b/help/E/cbot/var.txt new file mode 100644 index 00000000..8c8f95be --- /dev/null +++ b/help/E/cbot/var.txt @@ -0,0 +1,67 @@ +\b;Variables +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. + +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 \c;countTit\n;. This variable must contain only whole numbers, so choose the type \c;int\n;. At the beginning of the program, you must declare the variable. Then you put the value \c;0\n; into the variable, and every time you grab a titanium ore, you increase the variable by \c;1\n;. At every moment, the variable contains the number of titanium ore units that the grabber collected. + +For the declaration of the variable, write the following line: +\c;\s; int countTit;\n; + +To put \c;0\n; into the variable, write: +\c;\s; countTit = 0;\n; + +At every titanium ore grabbed, write: +\c;\s; countTit = countTit + 1\n; + +You have much freedom in the choice of the name for a variable, you can call them by any name, f. ex.: \c;dist\n;, \c;direct\n;, \c;p2\n;, \c;a\n;, \c;x\n;, \c;nothing_2_shoot_at\n;, etc. +A variable name must always begin with a letter. It can be followed by any combination of letters, digits or the underscore character \c;_\n;. You can of course not use the keywords of the CBOT language like \c;\l;for\u cbot\for;\n;, \c;\l;while\u cbot\while;\n;, \c;\l;break\u cbot\break;\n;, \c;\l;continue\u cbot\continue;\n;, \c;do\n;, 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 \c;Bmo45\n;, \c;a\n; or \c;tgBinX\n;. + +In the example above, the keyword \c;int\n; 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 \c;float\n;. + +In fact, a variable is made up of three parts: +1) the name +2) the type of the information stored inside +3) the content, i.e. the information itself + +\t;the name +You need the name to be able to distinguish the different variables from each other. + +\t;the type +The \l;type\u cbot\type; 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: + o \c;\l;int\u cbot\int;\n; for a whole number (12, -500, etc.) + o \c;\l;float\u cbot\float;\n; for a real number (3.14, 0.2, -99.98, etc.) + o \c;\l;string\u cbot\string;\n; for a character string ("Hello!", "No object found", etc.) + o \c;\l;point\u cbot\point;\n; for a x,y,z-coordinate in space + o \c;\l;object\u cbot\object;\n; for information about an object (bot, building, etc.) + +\t;The content +The content of a variable is an information of the kind specified in the type. It can change during the execution of the program. + +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; +\s; j = 25; // j takes the value 25 +\s; j = i; // can not write this, because i has got no content yet. +\n; +You can also declare a variable and put a value inside in the same line, writing: +\c;\s; int countTit = 0; +\n; +When you assign a value to a variable with the equals sign \c;=\n;, the value on the right side is copied into the value on the left side. Consider the following example: +\c;\s; int i, j; +\s; i = 5+2; // i takes the value 7 +\s; j = i+6; // j takes the value of i plus 6, this is 13 +\s; i = j; // i takes the value of j, this is 13 +\n; +At the end of this example, both variables \c;i\n; and \c;j\n; contain the value \c;13\n;. + +The following assignment is not correct, because on the left side of the equals sign \c;=\n;, there can be only a variable name: +\c;\s; i+2 = j; // impossible +\n; +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 \c;a\n; and \c;b\n; : +\c;\s; int temp; +\s; temp = a; // temp takes the value of a +\s; a = b; // the content of b is copied into a +\s; b = temp; // the content of temp is copied into b +\n; +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/void.txt b/help/E/cbot/void.txt new file mode 100644 index 00000000..11509d2b --- /dev/null +++ b/help/E/cbot/void.txt @@ -0,0 +1,11 @@ +\b;Type \c;void\n; +Use this type when you want to declare a function that returns nothing. + +Example: +\c;\s;void MyFunction(int a) +\s;{ +\s; ... +\s;} +\n; +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/wait.txt b/help/E/cbot/wait.txt new file mode 100644 index 00000000..88e6ed64 --- /dev/null +++ b/help/E/cbot/wait.txt @@ -0,0 +1,22 @@ +\b;Instruction \c;wait\n; +The instruction \c;wait();\n; instructs the bot to wait for some seconds, according to the value written in brackets. + +\b;Basic use +In order to wait until the \l;power cell\u object\power; is recharged on a power station, wait 5 seconds with \c;wait(5);\n;. + +In order to wait until the \l;converter\u object\convert; finished transforming some \l;titanium ore\u object\titanore; in a \l;titanium cube\u object\titan;, wait 15 seconds with \c;wait(15);\n;. + +\b;For specialists +Syntax: +\s;\c;wait ( time );\n; + +Waits for a moment. + +\t;time: \c;\l;float\u cbot\float;\n; +Specifies the time that the bot must wait. + +\t;Return value: \c;\l;void\u cbot\void;\n; +None. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/while.txt b/help/E/cbot/while.txt new file mode 100644 index 00000000..5e793c88 --- /dev/null +++ b/help/E/cbot/while.txt @@ -0,0 +1,47 @@ +\b;Instruction \c;while\n; +The instruction \c;while () {}\n; is used to repeat a set of instructions several times. + +\b;Basic use +The most frequent use of \c;while\n; consists in repeating a set of instructions again and again. In order to achieve this, write \c;while (true) {}\n; and put the instructions to be repeated in braces \c;{}\n;. As an example, here is a program that repeats again and again the following actions: +o look for a spider, +o turn towards it, +o shoot. +\c; +\s; while (true) +\s; { +\s; item = \l;radar\u cbot\radar;(AlienSpider); +\s; \l;turn\u cbot\turn;(direction(item.position)); +\s; \l;fire\u cbot\fire;(1); +\s; } +\n; +Just execute this program once, and it will kill all spiders around it. + +\b;For specialists +Syntax : +\s;\c;while ( condition ) +\s;{ +\s; \n;Instructions ...\c; +\s;} +\n; +This instruction allows you to perform the instructions inside the \l;block\u cbot\bloc; several times. + +Be careful not to confuse the instruction \c;while( ) { }\n; with the instruction \c;\l;do\u cbot\do; { } while( );\n;; the latter tests the condition only after the instructions in the block have been performed a first time. + +\t;\c;condition\n; +The instructions in the block are performed over and over again, as long as the \l;condition\u cbot\cond; is true. + +Here is an example : +\s;\c;int i = 0; +\s;while ( i < 10 ) +\s;{ +\s; \n;Instructions ...\c; +\s; i = i+1; +\s;} +\n; +\t;Attention +Do not put a \l;semicolon\u cbot\term; at the end of the line \c;while ( )\n;. + +The instructions \c;\l;break\u cbot\break;\n; and \c;\l;continue\u cbot\continue;\n; can be useful inside a block following the instruction \c;while { }\n;. + +\t;See also +\l;Instructions\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/cbot/writeln.txt b/help/E/cbot/writeln.txt new file mode 100644 index 00000000..260f4507 --- /dev/null +++ b/help/E/cbot/writeln.txt @@ -0,0 +1,21 @@ +\b;Instruction \c;writeln\n; +Write one line of text to an open file in the files/ folder. This is a method of the \c;\l;file\u cbot\file;\n; class. This is the reason why we always write \c;handle.writeln()\n;¦: +\c; +\s; handle.writeln("abc"); +\n; +The file must have been opened for writing (\c;"w"\n;) with the \c;\l;open\u cbot\open;\n; instruction. The line will automatically be terminated by the end of line characters 0x0D (CR) and 0x0A (LF). + +Syntax¦: +\s;\c;handle.writeln ( string );\n; + +Examples¦: +\c; +\s; writeln("Line of text"); + +\s; string s1 = "abc"; +\s; string s2 = "def"; +\s; writeln(s1 + " " + s2); +\n; +\t;See also +\c;\l;file\u cbot\file;\n;, \c;\l;open\u cbot\open;\n;, \c;\l;close\u cbot\close;\n;, \c;\l;readln\u cbot\readln;\n; and \c;\l;eof\u cbot\eof;\n;. +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/command.txt b/help/E/command.txt new file mode 100644 index 00000000..43126082 --- /dev/null +++ b/help/E/command.txt @@ -0,0 +1,45 @@ +\b;Controls +You are advised to play with one hand on the arrow keys and the other hand on the mouse. + +\t;Bots +\key;\key left;\norm; = turn left +\key;\key right;\norm; = turn right +\key;\key up;\norm; = move forward +\key;\key down;\norm; = move back +These controls are unavailable when working with the \l;practice bots\u object\bottr;. + +\key;\key gup;\norm; = take off and climb \button 28; +\key;\key gdown;\norm; = descend and land \button 29; +These controls are of course restricted to the \l;astronaut\u object\human; as well as the various \l;winged bots\u object\botgj; and in selected missions only. + +mouse forward = higher aim +mouse backward = lower aim +mouse right = aim right +mouse left = aim left +These controls are only available to the \l;shooters\u object\botfr;, the \l;orga shooters\u object\botor; and the \l;phazer shooter\u object\botphaz;. + +\key;\key action;\norm; = main action for a given selection (human or bot) +This control will for example operate the arm of a \l;grabber\u object\botgr; or fire a \l;shooter\u object\botfr; \button 42;. + +\t;Selections +\key;\key next;\norm; = selects next object +\key;\key human;\norm; = selects astronaut +\key;\key desel;\norm; = previous selection \button 10; + +\t;Camera +\key;\key camera;\norm; = shifts between onboard and following cameras \button 13; +\key;\key near;\norm; = zoom in +\key;\key away;\norm; = zoom out +\key;\key visit;\norm; = pauses the game and shows where the latest message originated. Press again to show origin of previous message. + +\t;Help +\key;\key help;\norm; = mission instructions +\key;\key prog;\norm; = programming help + +\t;Game +\key;\key speed10;\norm; = normal speed x1 +\key;\key speed15;\norm; = medium speed x1.5 +\key;\key speed20;\norm; = faster speed x2 +\key;\key quit;\norm; = exits mission \button 11; + +All these commands can be redefined in the options/controls menu. diff --git a/help/E/dexch1.txt b/help/E/dexch1.txt new file mode 100644 index 00000000..cf330c6a --- /dev/null +++ b/help/E/dexch1.txt @@ -0,0 +1,19 @@ +\b;Exercice +Several \l;information exchange posts\u object\exchange; are standing along the way. When the bot is close enough to a post, it can read the instructions it contains. The \l;information exchange posts\u object\exchange; along the way contain the direction of the next post and the distance. And you do not know how many exchange posts you must get in touch with before arriving at your goal. + +\b;General principle + Always repeat: + o Retrieve the direction from the \l;exchange post\u object\exchange;. + o Retrieve the distance from the \l;exchange post\u object\exchange;. + o If no information could be retrieved, stop the program. + o Execute the rotation. + o Move forward to the next post. + +\b;Useful instructions +\c;\l;while\u cbot\while;\n; to repeat the instructions +\c;\l;receive\u cbot\receive;\n; to get the information from a post +\c;\l;move\u cbot\move;\n; to move the bot +\c;\l;turn\u cbot\turn;\n; to turn the bot + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/dfollow1.txt b/help/E/dfollow1.txt new file mode 100644 index 00000000..2be46365 --- /dev/null +++ b/help/E/dfollow1.txt @@ -0,0 +1,20 @@ +\b;Exercise +You must follow the \l;target bot\u object\bottr; with the explosive device, but without touching it, otherwise it will blow up. Every time the target bot stops, you must be close to it (less than 10m). After you managed to stay close to the target bot at 10 successive stops, it will lead you to the finishing pad, and the exercise is over. At every stop, the target bot checks that you are there. If you are not there, you must start over again. + +\b;General principle +Repeat forever: +o Look for the target bot. +o Calculate the distance to the bot. +o if the distance to the target bot is less than 5m, move backward. +o Otherwise, calculate the direction of the target bot, and move towards it. + +\b;Useful instructions +\c;\l;radar\u cbot\radar;\n; to look for the bot (category \c;\l;TargetBot\u object\bottarg;\n;) +\c;\l;radar\u cbot\radar;\n; to detect obstacles +\c;\l;distance\u cbot\dist;\n; to calculate a distance +\c;\l;direction\u cbot\direct;\n; to calculate a direction +\c;\l;if\u cbot\if;\n; to test a condition +\c;\l;motor\u cbot\motor;\n; to set the motor speeds + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/dfor.txt b/help/E/dfor.txt new file mode 100644 index 00000000..116be043 --- /dev/null +++ b/help/E/dfor.txt @@ -0,0 +1,11 @@ +\b;Exercise +Destroy all four \l;targets\u object\bottarg; with a program using a \c;for\n; loop. You must move 10m to get from one target to another. + +\b;Useful instructions +\c;\l;for\u cbot\for;\n; loop to repeat the instructions +\c;\l;move\u cbot\move;\n; to move the bot +\c;\l;turn\u cbot\turn;\n; to turn the bot +\c;\l;fire\u cbot\fire;\n; to fire the cannon + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/dhelp1.txt b/help/E/dhelp1.txt new file mode 100644 index 00000000..718907d0 --- /dev/null +++ b/help/E/dhelp1.txt @@ -0,0 +1,15 @@ +\b;Exercise +Defend against all enemy attacks + +\b;General idea +The range of your cannon is about 40m. The category of the enemies is \c;AlienAnt\n;. Turn towards the closest ant, even if it is still more than 40m away. But shoot only when it is closer than 40m, in order not to waste your energy. + +\b;Useful instructions +\c;\l;radar\u cbot\radar;\n; to detect your enemies (category \c;\l;AlienAnt\u object\ant;\n;) +\c;\l;direction\u cbot\direct;\n; to calculate a direction +\c;\l;distance\u cbot\dist;\n; to calculate a distance +\c;\l;fire\u cbot\fire;\n; to fire your cannon +\c;\l;wait\u cbot\wait;\n; to wait + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/dlaby1.txt b/help/E/dlaby1.txt new file mode 100644 index 00000000..75e3e368 --- /dev/null +++ b/help/E/dlaby1.txt @@ -0,0 +1,11 @@ +\b;Exercise +Program the bot so that it will find its way without hitting the walls of the labyrinth. We suppose that you do not know the configuration of the labyrinth, but there are no bifurcations, and no dead-ends. The labyrinth is made of squares measuring 5m each. + +\b;Useful instructions +\c;\l;radar\u cbot\radar;\n; to detect obstacles +\c;\l;if\u cbot\if;\n; to test a condition +\c;\l;move\u cbot\move;\n; to move the bot +\c;\l;turn\u cbot\turn;\n; to turn the bot + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/dmove1.txt b/help/E/dmove1.txt new file mode 100644 index 00000000..1f207bd0 --- /dev/null +++ b/help/E/dmove1.txt @@ -0,0 +1,10 @@ +\b;Exercise +Program the robot in such a way that it arrives on the finishing pad, after having passed by the three blue crosses. +The platforms and the crosses are all distant of 20m from each other. + +\b;Useful instructions +\c;\l;move\u cbot\move;\n; to move the bot +\c;\l;turn\u cbot\turn;\n; to turn the bot + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/dproc1.txt b/help/E/dproc1.txt new file mode 100644 index 00000000..e1cda96b --- /dev/null +++ b/help/E/dproc1.txt @@ -0,0 +1,21 @@ +\b;Exercice +\b;Exercise +The \l;bot\u object\bottr; must pass over all the \l;blue crosses\u object\waypoint; on the ground. The way that must be covered is made of two squares. The first one measures 15 meters, the second 25 meters. + +\image tproc1a 8 8; +\b;General principle +In order to solve this problem, the most efficient solution consists in creating a \l;function\u cbot\function; that instructs the bot to move on a square shape of a certain size. The main program becomes then very simple:\c; +\c; +\s; extern void object::Function3( ) +\s; { +\s; Square(15); +\s; Square(25); +\s; } +\n; +\b;Useful instructions +\c;\l;for\u cbot\for;\n; loop to repeat some instructions +\c;\l;move\u cbot\move;\n; to move the bot +\c;\l;turn\u cbot\turn;\n; to turn the bot + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/dproc2.txt b/help/E/dproc2.txt new file mode 100644 index 00000000..6424eb36 --- /dev/null +++ b/help/E/dproc2.txt @@ -0,0 +1,14 @@ +\b;Exercise +Follow the way in form of a spiral. The bot must move 2 times 25m forward and turn, then move 2 times 20m forward and turn, and so on. +\image tproc2 8 8; + +\b;Function +You will have noticed that the way is made of "L"-shaped parts that are fit one into another. The first one (dark blue) measures two times 25 meters. The second one (light blue) measures 5 meters less. Let us start with writing the \l;function\u cbot\function; that will move the bot on a "L"-shaped part whose length will be given as a parameter. + +\b;Useful instructions +\c;\l;for\u cbot\for;\n; loop to repeat some instructions +\c;\l;move\u cbot\move;\n; to move the bot +\c;\l;turn\u cbot\turn;\n; to turn the bot + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/dradar1.txt b/help/E/dradar1.txt new file mode 100644 index 00000000..2b97def6 --- /dev/null +++ b/help/E/dradar1.txt @@ -0,0 +1,14 @@ +\b;Exercise +In this exercise, a "crazy bot" places many \l;blue crosses\u object\waypoint; on the ground. Just try to find them all. + +\b;Useful instructions +\c;\l;radar\u cbot\radar;\n; to detect the blue crosses (category \c;\l;WayPoint\u object\waypoint;\n;) +\c;\l;direction\u cbot\direct;\n; to calculate a direction +\c;\l;if\u cbot\if;\n; to test a condition +\c;\l;motor\u cbot\motor;\n; to set the motor speeds + +\t;Remark +Do not wait too long, because the crazy bot gets down to work immediately. Fortunately, as long as you are in the program editor, the game will pause. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/dremova1.txt b/help/E/dremova1.txt new file mode 100644 index 00000000..d3175a1d --- /dev/null +++ b/help/E/dremova1.txt @@ -0,0 +1,35 @@ +\b;Exercise +Convert some \l;titanium ore\u object\titanore; to \l;titanium cubes\u object\titan;, then drop 2 titanium cubes on the pads whose coordinates are: +\c; + x=10, y=-60 + x=10, y=-65 +\n; +\image derrick 8 8; +The \l;derrick\u object\derrick; extracts titanium ore from the subsoil; you just have to pick it up. + +\image convert 8 8; +The \l;converter\u object\convert; converts titanium ore to titanium cubes. Just drop the titanium ore on the platform, move backward, and wait until it has been converted. + +\b;General principle +Repeat two times : +o Wait until there is some titanium ore. +o Go to the titanium ore. +o Pick it up. +o Go to the converter. +o Drop the titanium ore. +o Move back 2.5 meters. +o Wait until there is a titanium cube. +o Pick up the titanium cube. +o Go to the platform. +o Drop the titanium cube. + +\b;Useful instructions +\c;\l;for\u cbot\for;\n; to repeat some instructions +\c;\l;do - while\u cbot\do;\n; to repeat some instructions +\c;\l;radar\u cbot\radar;\n; to look for different objects +\c;\l;goto\u cbot\goto;\n; to move the bot +\c;\l;grab\u cbot\grab;\n; to grab an object +\c;\l;drop\u cbot\drop;\n; to drop an object + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/dremova2.txt b/help/E/dremova2.txt new file mode 100644 index 00000000..ec6549c7 --- /dev/null +++ b/help/E/dremova2.txt @@ -0,0 +1,11 @@ +\b;Exercise +Move the \l;titanium cube\u object\titan; on the finishing pad. You do not know the position of the titanium, but we can tell you the position of the finishing pad x=10 and y=-60. + +\b;Useful instructions +\c;\l;radar\u cbot\radar;\n; to find the titanium cube (category \c;\l;Titanium\u object\titan;\n;) +\c;\l;goto\u cbot\goto;\n; to move the bot +\c;\l;grab\u cbot\grab;\n; to grab an object +\c;\l;drop\u cbot\drop;\n; to drop an object + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/dtrap1.txt b/help/E/dtrap1.txt new file mode 100644 index 00000000..8cf7bd08 --- /dev/null +++ b/help/E/dtrap1.txt @@ -0,0 +1,26 @@ +\b;Exercise +Instruct the bot to find all the \l;blue crosses\u object\waypoint; on the ground, but do not get too close to the \l;mines\u object\mine;. When the bot passes over a cross, it disappears. Here is the general principle: + + Repeat forever: + o Look for a mine + o If a mine has been found, calculate the opposite direction + o Look for a cross + o If nothing has been found, stop the program + o Calculate the direction of the cross + o Calculate the mean value of the two directions + o Set the motor speeds in order to head towards the mean direction + +\b;The instruction \c;radar\n; +In order to detect a mine with the \c;\l;radar\u cbot\radar;\n;, we recommend the following parameters: +\c;\s; radar(Mine, 0, 180, 0, 5);\n; +With the opening angle of 180 degrees, mines that are behind the bot will not be found. Mines that are at more than 5 meters are also ignored. + +In order to find a blue cross, simply write: +\c;\s; radar(WayPoint);\n; +Blue crosses will be found everywhere. + +In order to calculate a direction, use \c;\l;direction\u cbot\direct;\n;. +In order to set the motor speeds, use \c;\l;motor\u cbot\motor;\n;. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/dtrap2.txt b/help/E/dtrap2.txt new file mode 100644 index 00000000..85acba71 --- /dev/null +++ b/help/E/dtrap2.txt @@ -0,0 +1,7 @@ +\b;Exercise +Instruct your \l;bot\u object\bottr; to find all the \l;blue crosses\u object\waypoint; on the ground, but do not get too close to the \l;mines\u object\mine;. + +If a bot gets within less than 2m of the center of a mine (which is the position returned by the radar instruction), il will blow up. However, you must take into account the inertia of the bot. Probably a safety distance of 3 to 3.5m would be more appropriate. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/fglobal.txt b/help/E/fglobal.txt new file mode 100644 index 00000000..f7c4caf2 --- /dev/null +++ b/help/E/fglobal.txt @@ -0,0 +1,5 @@ +\b;Objective +Here you can play around without any definite objective. You can do whatever you want, explore the region, build a base camp and several bots, run various research programs, kill the insects if you find some, etc. + +\t;See also +\l;Controls\u command;. diff --git a/help/E/licences.txt b/help/E/licences.txt new file mode 100644 index 00000000..f892ed07 --- /dev/null +++ b/help/E/licences.txt @@ -0,0 +1,3 @@ +The photograph of the nebula NGC3606 illuminating the sky on Orpheon and the installation program was taken with the Hubble space telescope. It is used with the permission of the authors Wolfgang Brandner (JPL/IPAC), Eva K. Grebel (Washington University), You-Hua Chu (Illinois Urbana-Champaign University) and NASA. + +The thunder sound on Orpheon is used by limited permission from CREATIVE. diff --git a/help/E/mhcent1.txt b/help/E/mhcent1.txt new file mode 100644 index 00000000..0bdecf07 --- /dev/null +++ b/help/E/mhcent1.txt @@ -0,0 +1,11 @@ +\b;From Mission Control +Find some more \l;organic matter\u object\bullet; and, given an appropriate research program performed by your \l;autolab\u object\labo;, \l;you\u object\human; should be able to manufacture orga shooters yourself. + +Produce a \l;legged orga shooter\u object\botos; and bring it back aboard your \l;spaceship\u object\base;. + +Please keep in mind that low energy resources are a major concern on this planet. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/E/mhcent2.txt b/help/E/mhcent2.txt new file mode 100644 index 00000000..99de1d4f --- /dev/null +++ b/help/E/mhcent2.txt @@ -0,0 +1,7 @@ +\b;From Mission Control +It is time for \l;you\u object\human; to improve your shooting skills again. In the following drill, hit all the \l;explosive devices\u object\tnt; but watch out: your \l;orga shooter\u object\botoj; has very little power left in it, barely enough to complete the drill. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/E/mhcent3.txt b/help/E/mhcent3.txt new file mode 100644 index 00000000..48067c8f --- /dev/null +++ b/help/E/mhcent3.txt @@ -0,0 +1,9 @@ +\b;From Mission Control +Build a \l;radar\u object\radar; on one of the highest accessible spots and make sure that no organism can destroy it after \l;you\u object\human;'re gone. + +The destruction of a previous radar set up by the first expedition was probably the cause of a communication breakdown, which led to complete loss of contact. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/E/mhcent4.txt b/help/E/mhcent4.txt new file mode 100644 index 00000000..72284c2a --- /dev/null +++ b/help/E/mhcent4.txt @@ -0,0 +1,19 @@ +\b;A Word on New Policies +We are sorry to have to bring this to your attention but this seems like a good a time to let you in on a little concern we're having at the moment. There has been a strong reaction in the public opinion and in Congress concerning your systematic termination of the "indigenous inhabitants" of the planets you've been visiting. Congress has chosen to demonstrate its sensitivity to the concerns of the general population. + +We hereby relay their new directives and these directives intimate for you to limit the casualties as much as humanly possible. In other words, do your very best to spare the life-forms you encounter from now on. Your mission should of course in no way find itself jeopardized by this new course of action. + +\b;From Mission Control +Your energy resources appear dangerously limited at this time and so is your arsenal but you need to locate and retrieve the previous expedition's \l;black box\u object\bbox; so you can proceed to the next planet. + +We received a piece of information from your predecessors, via the observation satellite, regarding a new type of weaponry they have developed precisely for a predicament such as this one. + +This weapon will offer you an opportunity to demonstrate your newfound compassion towards \l;indigenous species\u object\ant; for it is not a weapon of mass destruction. What it offers instead, to the best of our knowledge, is an option to incapacitate them, rendering them, if only temporarily, harmless. If this is indeed the case, you'll need to act quickly before they are given a chance to become hostile to you again. + +\b;Procedure +Perform the \l;research program\u object\research; and experiment for yourself but don't forget to bring this new weapon back on board. We are very curious to study its workings. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/E/mhcent5.txt b/help/E/mhcent5.txt new file mode 100644 index 00000000..c4c0e0a1 --- /dev/null +++ b/help/E/mhcent5.txt @@ -0,0 +1,9 @@ +\b;From Mission Control +You're under attack and this is no time for compassion... + +Your new \l;thumper\u object\bottump; might come in very handy. However, we emphasize that you should not risk a takeoff if there are any ants still alive in the vicinity of the spaceship. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/E/mhcrys1.txt b/help/E/mhcrys1.txt new file mode 100644 index 00000000..6b4c840b --- /dev/null +++ b/help/E/mhcrys1.txt @@ -0,0 +1,13 @@ +\b;From Mission Control +Build a \l;radar\u object\radar; on the highest point in the area. Make sure that the radar will work safely even after your departure to other planets. Your \l;research center\u object\research; should be able to provide a solution. + +It is possible that the organisms detected are in fact the \l;worms\u object\worm; alluded to by the first expedition. If this is indeed the case, don't be excessively alarmed: they seem fairly harmless to living organisms but could cause the programs of bots and buildings to malfunction through the emission of viruses. + +Radars not only give you precious information about objects and organisms present in the region, they also relay information to and from the Earth once you have taken off to other planets. It is highly probable that problems with the radar stations built by the first expedition caused the transmission problems that we are aware of. + +In order to help you with the boring task of gathering the necessary raw material, we have developed a program that instructs the \l;wheeled grabber\u object\botgr; to look for \l;titanium ore\u object\titanore; on its own (see the programming page \button 53;). + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/E/mhcrys2.txt b/help/E/mhcrys2.txt new file mode 100644 index 00000000..b0ceb067 --- /dev/null +++ b/help/E/mhcrys2.txt @@ -0,0 +1,11 @@ +\b;From Mission Control +Cleanse the area of all hostile organisms. The way you accomplish this (\l;defense tower\u object\tower; or \l;winged shooter\u object\botfj;) is up to you. + +The radar seems to be perfectly suited to the detection of worms. Keep in mind though that they only appear when they are on the surface. + +We relayed a transmission to your \l;bot factory\u object\factory;. It concerns a bot designed to detect raw materials in the subsoil: energy sources, ore. We call it a \l;sniffer\u object\botsr; for short. Preliminary analysis leads us to believe that the presence of titanium ore on Crystalium is closely linked to the growth of large blue crystals. If this is indeed the case, this information should allow you to save some precious time. A \l;derrick\u object\derrick; is of course required for the extraction. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/E/mhcrys3.txt b/help/E/mhcrys3.txt new file mode 100644 index 00000000..029ced15 --- /dev/null +++ b/help/E/mhcrys3.txt @@ -0,0 +1,9 @@ +\b;From Mission Control +We have just received this warning from the observation satellite: a rogue bot from the previous expedition has seized the black box from your spaceship. + +We are going to investigate this incident further but it is of vital importance that you retrieve your black box at once. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/E/mhcrys4.txt b/help/E/mhcrys4.txt new file mode 100644 index 00000000..a1db90ef --- /dev/null +++ b/help/E/mhcrys4.txt @@ -0,0 +1,11 @@ +\b;From Mission Control +This planet has turned out to be a very unlikely candidate for colonization. Better to leave it for good. Retrieve the \l;black box\u object\bbox; from the previous expedition and head towards the next planet. + +The observation satellite has indicated that its present location is at the bottom of a valley. However the pervasive stratum of electromagnetic smog could make all satellite information rather undependable. + +Stay alert. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/E/mhlune1.txt b/help/E/mhlune1.txt new file mode 100644 index 00000000..8bc9c193 --- /dev/null +++ b/help/E/mhlune1.txt @@ -0,0 +1,22 @@ +\b;From Mission Control +Collect 4 chunks of \l;titanium ore\u object\titanore; and bring them back aboard your \l;spaceship\u object\base;. Build the equipment necessary for this task (\l;flying bots\u object\botgj;). + +Before you venture any further, you should always take a look at the satellite report \button 186;. + +We have transmitted to your \l;spaceship\u object\base; a program that might help you in this task; please refer to the corresponding page of your SatCom with the button \button 53;. + +\b;Procedure +1) A new \l;research program\u object\research; is required for winged bots to be added to the list of bots that can be produced by the factory. This research program will also make the propulsion reactor in your personal survival kit operational. + +2) Produce a \l;winged grabber\u object\botgj; and collect the 4 chunks of \l;titanium ore\u object\titanore;. + +3) Take the \l;winged grabber\u object\botgj; and the \l;wheeled grabber\u object\botgr; along with you and take off. + +Be careful that your winged bot does not run out of power when you are far from base. If necessary, replace the \l;power cell\u object\power; before leaving the spaceship. You can either do this manually or you can execute the enclosed program provided by Houston \button 53;. + +In order not to lose your way among the numerous craters on the Moon's surface, use the mini map on the lower right-hand corner of your screen. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom. + +\t;See also +\l;Controls\u command; diff --git a/help/E/mhlune2.txt b/help/E/mhlune2.txt new file mode 100644 index 00000000..5d6cfbd9 --- /dev/null +++ b/help/E/mhlune2.txt @@ -0,0 +1,17 @@ +\b;From Mission Control +This apparatus was set up by the previous expedition to test and train the flying capacity of winged bots. + +\b;Objective +Use these drills to your advantage. Your ability to survive future critical situations may depend upon the dexterity they will have helped you develop. + +\b;Procedure +Fly as quickly as possible through each target. Try to accomplish this without causing the engine to overheat. If this appears too difficult, just touch down and let the engine cool off. + +You should use the arrow keys on the keyboard to pilot the bot, but keep one hand on the mouse. The mouse is useless in this exercise, but will be essential in later missions. + +It may be useful to come back to these drills once in a while if you wish to improve your reflexes further. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/E/mhlune3.txt b/help/E/mhlune3.txt new file mode 100644 index 00000000..a11586b5 --- /dev/null +++ b/help/E/mhlune3.txt @@ -0,0 +1,7 @@ +\b;From Mission Control +Similar drill as before, only this time viewed through the camera placed on board. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/E/mhlune4.txt b/help/E/mhlune4.txt new file mode 100644 index 00000000..cc87d088 --- /dev/null +++ b/help/E/mhlune4.txt @@ -0,0 +1,20 @@ +\b;From Mission Control +We have no way of being sure where the previous expedition was headed when it left the Moon surface nor why it chose to go wherever it was going. + +Locate the \l;black box\u object\bbox; they must have left behind and bring it back aboard your ship. The black box should contain the coordinates of the next planet the expedition was planning to visit. + +Your bot's \l;power cells\u object\power; are almost entirely empty. Recharging them should be your priority. The observation satellite in orbit indicates that the subsoil in this particular area is loaded with energy. You should therefore be able to build a functional \l;power station\u object\station; on any flat surface. + +We have developed a program that will recharge the \l;power cell\u object\power; of a bot. Refer to the program page of your SatCom \button 53;. + +\b;Procedure +1) You first need to build a \l;converter\u object\convert; that converts the chunks of titanium ore already in your possession into usable \l;titanium cubes\u object\titan;. + +2) You should then build both a \l;power station\u object\station; and a \l;radar\u object\radar; which will indicate the location of the black box on your mini map. + +3) With your power cells fully charged, retrieve the black box. It needs to be placed on the \l;spaceship\u object\base; platform for you to be able to take off. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/E/mhorph1.txt b/help/E/mhorph1.txt new file mode 100644 index 00000000..7154f14a --- /dev/null +++ b/help/E/mhorph1.txt @@ -0,0 +1,13 @@ +\b;From Mission Control +It seems obvious enough that this planet will be no haven for humanity. + +Build a radar to relay future transmissions. + +Also... we're very sorry to inform you that you may need to exterminate all hostile organisms. + +The first expedition located \l;titanium ore\u object\titanore; under the surface of Orpheon. The spot is marked with a blue \l;flag\u object\flag;. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/E/mhorph2.txt b/help/E/mhorph2.txt new file mode 100644 index 00000000..7391a1fc --- /dev/null +++ b/help/E/mhorph2.txt @@ -0,0 +1,11 @@ +\b;From Mission Control +Retrieve the black box. + +Electromagnetic lightning bolts appear to strike even more frequently now than they did previously. You need to protect your equipment. + +Please note that your spaceship also naturally acts as a lightning conductor, and our engineers assure us that your space suit does not attract lightning. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/E/mhsaari1.txt b/help/E/mhsaari1.txt new file mode 100644 index 00000000..065eb931 --- /dev/null +++ b/help/E/mhsaari1.txt @@ -0,0 +1,7 @@ +\b;From Mission Control +The observation satellite has detected a chunk of \l;uranium ore\u object\uranore; on the summit of the main mountain. You need to bring it back to your spaceship. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/E/mhsaari2.txt b/help/E/mhsaari2.txt new file mode 100644 index 00000000..ae22711a --- /dev/null +++ b/help/E/mhsaari2.txt @@ -0,0 +1,11 @@ +\b;From Mission Control +Eliminate all hostile presence from the region. + +Your current situation is of utmost concern to us. The satellite has detected an extremely strong enemy presence approaching your spaceship from all directions. Use your best judgment and the quickest, most efficient defense: either \l;towers\u object\tower; or \l;shooters\u object\botfr;. + +In order to increase your survival chances, we have developed a program that will protect your west flank if you execute it on your \l;wheeled shooter\u object\botfr;; see the program page \button 53;. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/E/mhsaari3.txt b/help/E/mhsaari3.txt new file mode 100644 index 00000000..2a6b8587 --- /dev/null +++ b/help/E/mhsaari3.txt @@ -0,0 +1,9 @@ +\b;From Mission Control +Your satellite has located the remains of the previous expedition. You should come across a \l;black box\u object\bbox; not too far from there. It will give you the coordinates of your next destination. + +Exterminate the few remaining ants. We've been notified that your neutron gun is currently out of order so you will not be able to build new bots. We're convinced that you're resourceful enough at this point to come up with a solution. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/E/mhterra1.txt b/help/E/mhterra1.txt new file mode 100644 index 00000000..0b1fb5f9 --- /dev/null +++ b/help/E/mhterra1.txt @@ -0,0 +1,15 @@ +\b;From Mission Control +We've just received information that the first expedition designed a brand new weapon to be used on Terranova. It was safely stored away from possible enemy reach, inside a \l;vault\u object\safe; which can be accessed only by using four \l;keys\u object\key;. The keys are scattered on or under the planet surface. + +The observation satellite has located one of these keys (A) north of your present position. + +In compliance with Congress directives, our engineers have developed yet another strictly "defensive" bot : it is called a \l;shielder\u object\botshld; and it will offer adequate protection within a given perimeter. The data have been transmitted to your \l;research center\u object\research; along with a couple of relevant programs. + +As you may know, uranium ore in the subsoil is a powerful fertilizer, furthering the growth of a variety of mushrooms. Please also note that \l;titanium ore\u object\titanore; is often located at the bottom of lakes on this planet. + +When your mission is completed and before taking off, bring both a \l;shielder\u object\botshld; and a \l;subber\u object\botsub; aboard your spaceship. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/E/mhterra2.txt b/help/E/mhterra2.txt new file mode 100644 index 00000000..530285a9 --- /dev/null +++ b/help/E/mhterra2.txt @@ -0,0 +1,9 @@ +\b;From Mission Control +Retrieve the second \l;key\u object\key; (B). It should be located near your current position. + +When your mission is completed and before taking off, bring both \l;shielder\u object\botshld; and \l;subber\u object\botsub; aboard your spaceship. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/E/mhterra3.txt b/help/E/mhterra3.txt new file mode 100644 index 00000000..f3ca9465 --- /dev/null +++ b/help/E/mhterra3.txt @@ -0,0 +1,9 @@ +\b;From Mission Control +The third \l;key\u object\key; (C) is buried in a mushroom-infested area. A \l;sniffer\u object\botss; should be able to locate it and a \l;derrick\u object\derrick; should be able to extract it. + +When your mission is completed and before taking off, bring both \l;shielder\u object\botshld; and \l;subber\u object\botsub; aboard your spaceship. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/E/mhterra4.txt b/help/E/mhterra4.txt new file mode 100644 index 00000000..cf29413f --- /dev/null +++ b/help/E/mhterra4.txt @@ -0,0 +1,13 @@ +\b;From Mission Control +With the help of the fourth \l;key\u object\key; (D) located nearby, you will finally gain access to the \l;vault\u object\safe;. The groundbreaking bot you'll find inside was named a "\l;phazer\u object\botphaz;". + +A program allowing for a collaboration between a \l;phazer\u object\botphaz; and a \l;shielder\u object\botshld; has been attached. + +You should soon find yourself in a position to test your new weapon. Your last mission is to dispose of the \l;Alien Queen\u object\mother;, the egglayer responsible for the growing number of insects on Terranova. The phazer might very well be the only bot capable of getting the job done. + +There will then be no further obstacle to the human colonization of this magnificent planet and you'll soon be able to notify Earth of the success of your mission. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/E/mhterre1.txt b/help/E/mhterre1.txt new file mode 100644 index 00000000..7c758945 --- /dev/null +++ b/help/E/mhterre1.txt @@ -0,0 +1,27 @@ +\b;From the NASA Training Center +We are pleased to inform you that you have been selected for the space exploration mission Colobot. + +Your psychological profile has been established as more than 98.84% favorable, and your aptitude during the extensive testing period was undeniable. The detailed results are at your disposal in the central computer under the registration number that was assigned to you. + +Please report to the \l;Houston Mission Control\u object\Huston; for further directives about your forthcoming mission. + +\b;From Houston Mission Control +As you know, Earth is heading towards imminent disaster, due to increasing atmospheric pollution. + +\l;Your\u object\human; mission consists of exploring neighboring galaxies with the hopes of finding a planet that will be suitable to human needs and possibly serve as a shelter for mankind. You will be on your own for the entire mission but your spaceship will be carrying a few bots along. + +Eight months ago an expedition composed entirely of robots was sent across the cosmos with the same objective. It encountered a fair share of obstacles along the way, apparently landing on planets that were unsuitable for colonization, even possibly outright hostile. Very recently all communications were terminated. + +The reasons for the mission's failure are unclear at this date, mainly because of recurrent transmission problems. It is our hope that you will be able to use some of the data it gathered to your advantage. + +\b;Immediate Objective +The Nevada desert is already bustling with activity. Bots are setting up a space station catered to your specific needs. + +In order to let you familiarize with your spacesuit and equipment, we have set up a few training drills. + +In the first drill, you need to find your survival kit that contains all the tools necessary to brave the cold of outer space. It is easy to spot since it contains both an orange and a blue tank. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; diff --git a/help/E/mhterre2.txt b/help/E/mhterre2.txt new file mode 100644 index 00000000..14de04fe --- /dev/null +++ b/help/E/mhterre2.txt @@ -0,0 +1,14 @@ +\b;From Mission Control +This is your second drill. \l;You\u object\human; should now familiarize yourself with the handling of basic equipment. This could turn out to be your best ally during the course of this expedition. + +The construction of buildings and the manufacturing of bots all require the use of \l;titanium\u object\titan;. Titanium is a mineral found in most solar systems in the universe. + +\b;Procedure +1) Position yourself close to the first \l;titanium cube\u object\titan;. +2) Build a \l;research center\u object\research; \button 163;. Note that only \l;you\u object\human; can accomplish the task of building; no bot can be substituted. +3) With a second \l;titanium cube\u object\titan;, build a \l;bot factory\u object\factory; \button 160;. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; diff --git a/help/E/mhterre3.txt b/help/E/mhterre3.txt new file mode 100644 index 00000000..ca679582 --- /dev/null +++ b/help/E/mhterre3.txt @@ -0,0 +1,24 @@ +\b;From Mission Control +Your \l;spaceship\u object\base; is now standing on the launching pad, ready for takeoff. + +The last drill left for \l;you\u object\human; to perform before embarking on your journey is to equip your spaceship with its \l;black box\u object\bbox;. The only way to reach the \l;black box\u object\bbox; is by a steep path that can only be climbed by a \l;tracked grabber\u object\botgc; which you need to build. + +Unfortunately your \l;bot factory\u object\factory; hasn't yet got the capacity to assemble this type of bot. You need to request your \l;research center\u object\research; to come up with a blueprint for this particular propeller. + +\b;Procedure +1) Power the research center with one of the green \l;power cells\u object\power;. +2) Click on the button \button 64;. +3) Drop a \l;titanium cube\u object\titan; in the center of the \l;bot factory\u object\factory; and build a \l;tracked grabber\u object\botgc;. +4) Power and radio-control the \l;tracked grabber\u object\botgc; to the top of the southwest-oriented mountain. +5) Bring the black box back aboard your spaceship. +6) Don't forget to take the \l;wheeled grabber\u object\botgr; along. These bots may prove very useful in the future. +7) Climb aboard the \l;spaceship\u object\base;. +11) Select the \l;spaceship\u object\base; and take off \button 28;. + + +Please note: To work more efficiently, you can use the \l;wheeled grabber\u object\botgr;. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; diff --git a/help/E/mhtropi1.txt b/help/E/mhtropi1.txt new file mode 100644 index 00000000..8b4e5110 --- /dev/null +++ b/help/E/mhtropi1.txt @@ -0,0 +1,10 @@ +\b;From Mission Control +The observation satellite has detected a new kind of explosive apparently designed by the previous expedition. You must locate it and bring it back to your \l;spaceship\u object\base;. + +\b;Procedure +The location of the explosive is marked by a red cross on your mini map. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; diff --git a/help/E/mhtropi2.txt b/help/E/mhtropi2.txt new file mode 100644 index 00000000..a6f8603a --- /dev/null +++ b/help/E/mhtropi2.txt @@ -0,0 +1,18 @@ +\b;From Mission Control +It is our hope that this message will reach you. + +A transmission from the observation satellite a few hours ago informed us that you seemed to be wandering in a frighteningly uncoordinated manner. Your SatCom has ceased broadcasting. Your reactor seems to have suffered some sort of damage and your helmet was spotted at the bottom of a lake. If this is indeed the case, do not try to retrieve it, do not go into the water! Water on Tropica is highly toxic. You would not survive it. + +Get back to your ship as quickly as possible and try to transmit information about the possible causes of this disaster. The satellite's information remains undecipherable. We have been speculating about an X-factor ever since the first expedition got lost. It appears you have just encountered it. + +There is nothing we can really do to guide you but don't forget that you're following in the footsteps of a previous expedition. If what happened to you is what happened to them, chances are they may have left some clues along the way back to their own spaceship which landed in roughly the same area as yours. Use those clues. + +You may also want to consider planting flags. They indicate the direction of the wind so you can use them to orient yourself. + +This is all we can say for now... +Good Luck... + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; diff --git a/help/E/mhtropi3.txt b/help/E/mhtropi3.txt new file mode 100644 index 00000000..02ae2348 --- /dev/null +++ b/help/E/mhtropi3.txt @@ -0,0 +1,16 @@ +\b;From Mission Control +Terminate all hostile life-form. +Perform the necessary \l;research program\u object\research; in order to develop an offensive weapon system. + +The satellite has detected an energy source, on a spot marked by the previous expedition with a blue flag (blue cross on the mini-map). + +Do not forget to take a look at the satellite report \button 186; before you venture any further in a mission; we suspect that you have not always done this. + +We have improved the recharge program. Please refer to the page \button 53;. + +A note of warning: bots cannot be submerged. If in doubt, test the water yourself if you plan to radio-control a non-winged bot across - water shouldn't be deeper than knee-level. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/E/mhtropi4.txt b/help/E/mhtropi4.txt new file mode 100644 index 00000000..657e0da1 --- /dev/null +++ b/help/E/mhtropi4.txt @@ -0,0 +1,13 @@ +\b;From Mission Control +This is another training course set up by your predecessors and intended this time to test and train the firing capacity of \l;winged bots\u object\botfj;. Use it to familiarize yourself with the two simultaneous actions of shooting while flying. + +Fly quickly through all targets and shoot all 10 explosive devices scattered along the way. Try to complete the drill without touching down. Watch your reactor though: if it overheats, just settle the bot and let it cool off. + +Use one hand on the keyboard to pilot the bot, and the other hand on the mouse to aim and to shoot (left button). + +It may be useful to come back to these drills once in a while if you wish to improve your reflexes further. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/E/mhtropi5.txt b/help/E/mhtropi5.txt new file mode 100644 index 00000000..d8f30ee6 --- /dev/null +++ b/help/E/mhtropi5.txt @@ -0,0 +1,9 @@ +\b;From Mission Control +Locate and retrieve another \l;black box\u object\bbox; from the previous expedition. + +The observation satellite seems to have spotted it underwater. Water is harmless to you as long as you wear your helmet but keep in mind that you can't carry objects underwater. A \l;subber\u object\botsub; may come in handy. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/E/mhvolca1.txt b/help/E/mhvolca1.txt new file mode 100644 index 00000000..0344a8ab --- /dev/null +++ b/help/E/mhvolca1.txt @@ -0,0 +1,13 @@ +\b;From Mission Control +You need to retrieve an \l;explosive device\u object\tnt; that has been spotted in a deep valley next to a lake of boiling lava. + +Because of the high temperatures, reactors no longer function, i.e. flying is impossible. It is a long way there and you should equip your bots with \l;nuclear power cells\u object\atomic;. Nuclear power cells are manufactured from \l;uranium ore\u object\uranore;. + +A more efficient program for the gathering of raw materials is attached to this message. + +A note of warning: the explosive device is extremely volatile. Use extreme caution. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/E/mhvolca2.txt b/help/E/mhvolca2.txt new file mode 100644 index 00000000..41dccc38 --- /dev/null +++ b/help/E/mhvolca2.txt @@ -0,0 +1,17 @@ +\b;From Mission Control +The previous expedition provided us with a piece of information about some \l;organic matter\u object\bullet;, which seems to be produced by the \l;ants\u object\ant;, and which opened startling new possibilities. It apparently allows the creation of a new type of mutant bot with enhanced performance through the use of insect parts. + +Your mission is to experiment with the first practical application of this "green gold". Build a \l;legged grabber bot\u object\botgs;, load it on the spaceship and take off. + +\b;Procedure +Take a sample of organic matter from a nest of giant ants. The analysis of it will be performed by an \l;autolab\u object\labo;, which will also perform the necessary research to allow a practical application. + +In order to improve your defense capacity, we have transmitted a program to your \l;grabber bots\u object\botgr; that takes care of recharging the power cell of a \l;defense tower\u object\tower; (see \button 53; ). + +\b;Note +The temperature has dropped significantly, it should therefore be possible to fly. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/E/mhvolca3.txt b/help/E/mhvolca3.txt new file mode 100644 index 00000000..ba33482c --- /dev/null +++ b/help/E/mhvolca3.txt @@ -0,0 +1,7 @@ +\b;From Mission Control +This planet is obviously unsuited to a long-lasting colonization. Retrieve the \l;black box\u object\bbox; from the previous expedition then take off. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/E/mhvolca4.txt b/help/E/mhvolca4.txt new file mode 100644 index 00000000..2a3876a0 --- /dev/null +++ b/help/E/mhvolca4.txt @@ -0,0 +1,9 @@ +\b;An urgent notification from Mission Control +As you were about to take off, we received from the satellite the following piece of information: a bot of a type yet unknown has been spotted on Volcano. Try to bring it back onto your spaceship for further study. + +Our engineers on Earth have very recently come up with a formula that should allow reactors to function properly, at least for a short while, despite the high temperatures. The data have been transmitted to you. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/E/mhvolca5.txt b/help/E/mhvolca5.txt new file mode 100644 index 00000000..a83bb143 --- /dev/null +++ b/help/E/mhvolca5.txt @@ -0,0 +1,11 @@ +\b;From Mission Control +Congratulations on a fine job as usual. + +This new weapon appears to be yet another practical application of what we've come to refer to as "green gold", the \l;organic matter\u object\bullet; produced by the insects. We've named this bot the \l;orga shooter\u object\botoj; or bot equipped with an orgaball cannon. + +It will most certainly come in handy as you make your way back to your \l;spaceship\u object\base;. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/E/mhvolca6.txt b/help/E/mhvolca6.txt new file mode 100644 index 00000000..35225cc4 --- /dev/null +++ b/help/E/mhvolca6.txt @@ -0,0 +1,7 @@ +\b;From Mission Control +You need to repel a last minute ant attack before taking off. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/E/micent1.txt b/help/E/micent1.txt new file mode 100644 index 00000000..57f72f1d --- /dev/null +++ b/help/E/micent1.txt @@ -0,0 +1,20 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Centaury. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 23.4C +\tab;Atmosphere: oxygen, nitrogen, ammonia +\tab;Wind: 1.2 mps +\tab;Titanium ore: some +\tab;Uranium ore: some + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: not immediate +\tab;Detected: reusable derelicts +\n; diff --git a/help/E/micent2.txt b/help/E/micent2.txt new file mode 100644 index 00000000..46c3e658 --- /dev/null +++ b/help/E/micent2.txt @@ -0,0 +1,15 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Centaury. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 25.4C +\tab;Atmosphere: oxygen, nitrogen, ammonia +\tab;Wind: 1.2 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none +\n; diff --git a/help/E/micent3.txt b/help/E/micent3.txt new file mode 100644 index 00000000..cff00288 --- /dev/null +++ b/help/E/micent3.txt @@ -0,0 +1,22 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Centaury. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 25.4C +\tab;Atmosphere: oxygen, nitrogen, ammonia +\tab;Wind: 0.7 mps +\tab;Titanium ore: some +\tab;Uranium ore: some + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: not immediate +\tab;Detected: spiders +\tab; - Danger: not immediate +\tab;Detected: reusable derelicts +\n; diff --git a/help/E/micent4.txt b/help/E/micent4.txt new file mode 100644 index 00000000..d76f7316 --- /dev/null +++ b/help/E/micent4.txt @@ -0,0 +1,20 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Centaury. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 21.3C +\tab;Atmosphere: oxygen, nitrogen, ammonia +\tab;Wind: 1.9 mps +\tab;Titanium ore: some +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: not immediate +\tab;Detected: derelicts of no particular use +\n; diff --git a/help/E/micent5.txt b/help/E/micent5.txt new file mode 100644 index 00000000..c979dbb9 --- /dev/null +++ b/help/E/micent5.txt @@ -0,0 +1,19 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Centaury. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 21.3C +\tab;Atmosphere: oxygen, nitrogen, ammonia +\tab;Wind: 1.9 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: immediate +\n; diff --git a/help/E/micrys1.txt b/help/E/micrys1.txt new file mode 100644 index 00000000..9458bf1d --- /dev/null +++ b/help/E/micrys1.txt @@ -0,0 +1,19 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Crystalium. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 5.4C +\tab;Atmosphere: nitrogen +\tab;Wind: 0.0 mps +\tab;Titanium ore: some +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: data not available +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: unidentified organisms +\tab; - Danger: ? +\n; diff --git a/help/E/micrys2.txt b/help/E/micrys2.txt new file mode 100644 index 00000000..2a4c1d8a --- /dev/null +++ b/help/E/micrys2.txt @@ -0,0 +1,19 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Crystalium. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 3.2C +\tab;Atmosphere: nitrogen +\tab;Wind: 0.0 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: isolated (close to the spaceship) +\tab;Titanium ore: scattered +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: worms +\tab; - Danger: no +\n; diff --git a/help/E/micrys3.txt b/help/E/micrys3.txt new file mode 100644 index 00000000..6e76e8a8 --- /dev/null +++ b/help/E/micrys3.txt @@ -0,0 +1,21 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Crystalium. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 4.3C +\tab;Atmosphere: nitrogen +\tab;Wind: 0.0 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: not immediate +\tab;Detected: unknown organisms +\tab; - Danger: ? +\n; diff --git a/help/E/micrys4.txt b/help/E/micrys4.txt new file mode 100644 index 00000000..2873cb70 --- /dev/null +++ b/help/E/micrys4.txt @@ -0,0 +1,19 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Crystalium. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 1.2C +\tab;Atmosphere: nitrogen +\tab;Wind: 0.0 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: electromagnetic smog +\tab;Detected: reusable derelicts +\n; diff --git a/help/E/milune1.txt b/help/E/milune1.txt new file mode 100644 index 00000000..775c0506 --- /dev/null +++ b/help/E/milune1.txt @@ -0,0 +1,18 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of the Moon. +\c; +\s;-> SURFACE\c; +\tab;Temperature: -53.1C +\tab;Atmosphere: none +\tab;Wind: 0.0 mps +\tab;Titanium ore: some +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Terrain in places too uneven for wheeled bots. +\n; diff --git a/help/E/milune2.txt b/help/E/milune2.txt new file mode 100644 index 00000000..dd7ea770 --- /dev/null +++ b/help/E/milune2.txt @@ -0,0 +1,15 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of the Moon. +\c; +\s;-> SURFACE\c; +\tab;Temperature: -51.0C +\tab;Atmosphere: none +\tab;Wind: 0.0 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none +\n; diff --git a/help/E/milune3.txt b/help/E/milune3.txt new file mode 100644 index 00000000..d50b3109 --- /dev/null +++ b/help/E/milune3.txt @@ -0,0 +1,15 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of the Moon. +\c; +\s;-> SURFACE\c; +\tab;Temperature: -58.9C +\tab;Atmosphere: none +\tab;Wind: 0.0 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none +\n; diff --git a/help/E/milune4.txt b/help/E/milune4.txt new file mode 100644 index 00000000..a57ce4b3 --- /dev/null +++ b/help/E/milune4.txt @@ -0,0 +1,15 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of the Moon. +\c; +\s;-> SURFACE\c; +\tab;Temperature: -38.2C +\tab;Atmosphere: none +\tab;Wind: 0.0 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: everywhere +\tab;Titanium ore: none +\tab;Uranium ore: none +\n; diff --git a/help/E/miorph1.txt b/help/E/miorph1.txt new file mode 100644 index 00000000..6414f2d0 --- /dev/null +++ b/help/E/miorph1.txt @@ -0,0 +1,20 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Orpheon. +\c; +\s;-> SURFACE\c; +\tab;Temperature: -72.8C +\tab;Atmosphere: none +\tab;Wind: 0.0 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: some (blue flag) +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: not immediate +\tab;Detected: fierce electromagnetic storms +\n; diff --git a/help/E/miorph2.txt b/help/E/miorph2.txt new file mode 100644 index 00000000..5db18a70 --- /dev/null +++ b/help/E/miorph2.txt @@ -0,0 +1,20 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Orpheon. +\c; +\s;-> SURFACE\c; +\tab;Temperature: -64.7C +\tab;Atmosphere: none +\tab;Wind: 0.0 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: not immediate +\tab;Detected: fierce electromagnetic storms +\n; diff --git a/help/E/misaari1.txt b/help/E/misaari1.txt new file mode 100644 index 00000000..957227a7 --- /dev/null +++ b/help/E/misaari1.txt @@ -0,0 +1,20 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Saari. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 41.3C +\tab;Atmosphere: CO2, oxygen, nitrogen +\tab;Wind: 2.3 mps +\tab;Titanium ore: none +\tab;Uranium ore: some (mountain summit) + +\s;-> SUBSOIL\c; +\tab;Energy source: everywhere +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: reusable derelicts +\tab;Detected: giant ants +\tab; - Danger: not immediate +\n; diff --git a/help/E/misaari2.txt b/help/E/misaari2.txt new file mode 100644 index 00000000..6eddf002 --- /dev/null +++ b/help/E/misaari2.txt @@ -0,0 +1,19 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Saari. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 38.4C +\tab;Atmosphere: CO2, oxygen, nitrogen +\tab;Wind: 1.4 mps +\tab;Titanium ore: some +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: everywhere +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants approaching +\tab; - Danger: yes, immediate +\n; diff --git a/help/E/misaari3.txt b/help/E/misaari3.txt new file mode 100644 index 00000000..8822ca92 --- /dev/null +++ b/help/E/misaari3.txt @@ -0,0 +1,20 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Saari. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 44.3C +\tab;Atmosphere: CO2, oxygen, nitrogen +\tab;Wind: 2.3 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: reusable derelicts +\tab;Detected: giant ants +\tab; - Danger: ? +\n; diff --git a/help/E/miterra1.txt b/help/E/miterra1.txt new file mode 100644 index 00000000..683cffe2 --- /dev/null +++ b/help/E/miterra1.txt @@ -0,0 +1,22 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Terranova. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 24.8C +\tab;Atmosphere: oxygen +\tab;Wind: 0.7 mps +\tab;Titanium ore: underwater +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: at some places +\tab;Titanium ore: none +\tab;Uranium ore: some + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: immediate +\tab;Detected: giant wasps +\tab; - Danger: not immediate +\tab;Detected: reusable derelicts +\n; diff --git a/help/E/miterra2.txt b/help/E/miterra2.txt new file mode 100644 index 00000000..ae7e7705 --- /dev/null +++ b/help/E/miterra2.txt @@ -0,0 +1,19 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Terranova. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 24.3C +\tab;Atmosphere: oxygen +\tab;Wind: 0.8 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: immediate +\n; diff --git a/help/E/miterra3.txt b/help/E/miterra3.txt new file mode 100644 index 00000000..73697df5 --- /dev/null +++ b/help/E/miterra3.txt @@ -0,0 +1,21 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Terranova. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 26.1C +\tab;Atmosphere: oxygen +\tab;Wind: 0.4 mps +\tab;Titanium ore: some +\tab;Uranium ore: some + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: immediate +\tab;Detected: giant wasps +\tab; - Danger: immediate +\n; diff --git a/help/E/miterra4.txt b/help/E/miterra4.txt new file mode 100644 index 00000000..779d59c0 --- /dev/null +++ b/help/E/miterra4.txt @@ -0,0 +1,21 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Terranova. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 23.7C +\tab;Atmosphere: oxygen +\tab;Wind: 0.5 mps +\tab;Titanium ore: some +\tab;Uranium ore: some + +\s;-> SUBSOIL\c; +\tab;Energy source: in some places (spaceship) +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: immediate +\tab;Detected: giant egglayer +\tab; - Danger: ? +\n; diff --git a/help/E/mitropi1.txt b/help/E/mitropi1.txt new file mode 100644 index 00000000..abb2258b --- /dev/null +++ b/help/E/mitropi1.txt @@ -0,0 +1,21 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Tropica. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 32.4C +\tab;Atmosphere: helium, oxygen +\tab;Wind: 1.2 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: explosive +\tab; - Type: unknown +\tab;Detected: unidentified organisms +\tab; - Danger: ? +\n; diff --git a/help/E/mitropi3.txt b/help/E/mitropi3.txt new file mode 100644 index 00000000..eed21844 --- /dev/null +++ b/help/E/mitropi3.txt @@ -0,0 +1,20 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Tropica. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 29.6C +\tab;Atmosphere: helium, oxygen +\tab;Wind: 1.5 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: isolated (blue flag) +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: not immediate +\tab;Detected: reusable derelicts +\n; diff --git a/help/E/mitropi4.txt b/help/E/mitropi4.txt new file mode 100644 index 00000000..8717928b --- /dev/null +++ b/help/E/mitropi4.txt @@ -0,0 +1,15 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Tropica. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 32.2C +\tab;Atmosphere: helium, oxygen +\tab;Wind: 0.7 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none +\n; diff --git a/help/E/mitropi5.txt b/help/E/mitropi5.txt new file mode 100644 index 00000000..0f9cce87 --- /dev/null +++ b/help/E/mitropi5.txt @@ -0,0 +1,21 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Tropica. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 29.4C +\tab;Atmosphere: helium, oxygen +\tab;Wind: 0.3 mps +\tab;Titanium ore: some +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: titanium ore +\tab; - Requires: converter +\tab;Detected: scattered derelicts +\tab;Detected: black box (underwater) +\n; diff --git a/help/E/mivolca1.txt b/help/E/mivolca1.txt new file mode 100644 index 00000000..8c071e9b --- /dev/null +++ b/help/E/mivolca1.txt @@ -0,0 +1,20 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Volcano. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 84.6C +\tab;Atmosphere: CO2, SO2, HCN, HS, CH4, NH3 +\tab;Wind: 2.2 mps +\tab;Titanium ore: everywhere +\tab;Uranium ore: some + +\s;-> SUBSOIL\c; +\tab;Energy source: everywhere +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: reusable derelicts +\tab;Detected: unknown organisms +\tab; - Danger: ? +\n; diff --git a/help/E/mivolca2.txt b/help/E/mivolca2.txt new file mode 100644 index 00000000..eae66bbb --- /dev/null +++ b/help/E/mivolca2.txt @@ -0,0 +1,21 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Volcano. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 53.1C +\tab;Atmosphere: CO2, SO2, HCN, HS, CH4, NH3 +\tab;Wind: 0.3 mps +\tab;Titanium ore: some +\tab;Uranium ore: little + +\s;-> SUBSOIL\c; +\tab;Energy source: everywhere +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: yes, not immediate +\tab;Detected: unknown flying organisms +\tab; - Danger: yes, immediate +\n; diff --git a/help/E/mivolca3.txt b/help/E/mivolca3.txt new file mode 100644 index 00000000..0d314f33 --- /dev/null +++ b/help/E/mivolca3.txt @@ -0,0 +1,19 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Volcano. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 83.5C +\tab;Atmosphere: CO2, SO2, HCN, HS, CH4, NH3 +\tab;Wind: 3.4 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: everywhere +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: not immediate +\n; diff --git a/help/E/mivolca4.txt b/help/E/mivolca4.txt new file mode 100644 index 00000000..46046659 --- /dev/null +++ b/help/E/mivolca4.txt @@ -0,0 +1,21 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Volcano. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 96.7C +\tab;Atmosphere: CO2, SO2, HCN, HS, CH4, NH3 +\tab;Wind: 2.8 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: bot +\tab; - Type: unknown +\tab;Detected: giant ants +\tab; - Danger: not immediate +\n; diff --git a/help/E/mivolca5.txt b/help/E/mivolca5.txt new file mode 100644 index 00000000..1a8aceeb --- /dev/null +++ b/help/E/mivolca5.txt @@ -0,0 +1,21 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Volcano. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 96.6C +\tab;Atmosphere: CO2, SO2, HCN, HS, CH4, NH3 +\tab;Wind: 2.7 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: immediate +\tab;Detected: giant spiders +\tab; - Danger: not immediate +\n; diff --git a/help/E/mivolca6.txt b/help/E/mivolca6.txt new file mode 100644 index 00000000..19e3556b --- /dev/null +++ b/help/E/mivolca6.txt @@ -0,0 +1,19 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Volcano. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 96.6C +\tab;Atmosphere: CO2, SO2, HCN, HS, CH4, NH3 +\tab;Wind: 2.7 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: immediate +\n; diff --git a/help/E/mlcent1.txt b/help/E/mlcent1.txt new file mode 100644 index 00000000..01b6c330 --- /dev/null +++ b/help/E/mlcent1.txt @@ -0,0 +1,15 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/E/mlcent2.txt b/help/E/mlcent2.txt new file mode 100644 index 00000000..01b6c330 --- /dev/null +++ b/help/E/mlcent2.txt @@ -0,0 +1,15 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/E/mlcent3.txt b/help/E/mlcent3.txt new file mode 100644 index 00000000..01b6c330 --- /dev/null +++ b/help/E/mlcent3.txt @@ -0,0 +1,15 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/E/mlcent4.txt b/help/E/mlcent4.txt new file mode 100644 index 00000000..01b6c330 --- /dev/null +++ b/help/E/mlcent4.txt @@ -0,0 +1,15 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/E/mlcent5.txt b/help/E/mlcent5.txt new file mode 100644 index 00000000..01b6c330 --- /dev/null +++ b/help/E/mlcent5.txt @@ -0,0 +1,15 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/E/mlcrys1.txt b/help/E/mlcrys1.txt new file mode 100644 index 00000000..99fa7fde --- /dev/null +++ b/help/E/mlcrys1.txt @@ -0,0 +1,29 @@ +\b;Programs dispatched by Houston +Below is one of the programs that has been developed by our engineers. +It instructs a \l;grabber\u object\botgr; to retrieve the nearest chunk of \l;titanium ore\u object\titanore; and place it on the \l;converter\u object\convert;. + +In order to execute this program, select the program \c;CollectTitanium1\n; in the list of the programs available on the bot (on the lower left-hand corner of your screen), and click on the arrow symbol \button 21;. At any moment you can stop the program and take over at the controls with the stop button \button 8;. +\c; +\s;extern void object::CollectTitanium1() +\s;{ +\s; // 1) Variable definition. +\s; \l;object\u cbot\type; item; // info. about objects +\s; +\s; // 2) Go to the titanium ore and grab it. +\s; item = \l;radar\u cbot\radar;(\l;TitaniumOre\u cbot\category;);// look for titanium ore +\s; \l;goto\u cbot\goto;(item.position); // go to the position +\s; \l;grab\u cbot\grab;(); // grab the titanium +\s; +\s; // 3) Go to the converter and drop it. +\s; item = \l;radar\u cbot\radar;(\l;Converter\u cbot\category;); // look for converter +\s; \l;goto\u cbot\goto;(item.position); // go to the position +\s; \l;drop\u cbot\drop;(); // drop the titanium +\s; \l;move\u cbot\move;(-2.5); // step back 2.5 m +\s;} +\n; +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/E/mlcrys2.txt b/help/E/mlcrys2.txt new file mode 100644 index 00000000..5e1a7ec3 --- /dev/null +++ b/help/E/mlcrys2.txt @@ -0,0 +1,38 @@ +\b;Programs dispatched by Houston +Below is one of the programs that has been developed by our engineers. +An upgrade on the previous program: the \l;grabber\u object\botgr;, on its way back from the converter, makes a stop, if necessary, at the \l;power station\u object\station; to recharge its power cell. + +This program also works on \l;winged grabbers\u object\botgj;, if the \l;derrick\u object\derrick; is on another island than the \l;converter\u object\convert;. +\c; +\s;extern void object::CollectTitanium2() +\s;{ +\s; // 1) Variable definition. +\s; \l;object\u cbot\type; item; // info. about objects +\s; +\s; // 2) Go to the titanium ore and grab it. +\s; item = \l;radar\u cbot\radar;(\l;TitaniumOre\u cbot\category;);// look for titanium ore +\s; \l;goto\u cbot\goto;(item.position); // go to the position +\s; \l;grab\u cbot\grab;(); // grab the titanium +\s; +\s; // 3) Go to the converter and drop it. +\s; item = \l;radar\u cbot\radar;(\l;Converter\u cbot\category;); // look for converter +\s; \l;goto\u cbot\goto;(item.position); // go to the position +\s; \l;drop\u cbot\drop;(); // drop the titanium +\s; \l;move\u cbot\move;(-2.5); // step back 2.5 m +\s; +\s; // 4) If power cell half empty, recharges. +\s; if ( energyCell.energyLevel < 0.5 ) +\s; { // if so: +\s; item = \l;radar\u cbot\radar;(\l;PowerStation\u cbot\category;); // look for station +\s; \l;goto\u cbot\goto;(item.position); // go there +\s; \l;wait\u cbot\wait;(5); // wait +\s; } +\s;} +\n; +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/E/mlcrys3.txt b/help/E/mlcrys3.txt new file mode 100644 index 00000000..1357500d --- /dev/null +++ b/help/E/mlcrys3.txt @@ -0,0 +1,11 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/E/mlcrys4.txt b/help/E/mlcrys4.txt new file mode 100644 index 00000000..1357500d --- /dev/null +++ b/help/E/mlcrys4.txt @@ -0,0 +1,11 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/E/mllune1.txt b/help/E/mllune1.txt new file mode 100644 index 00000000..1850e907 --- /dev/null +++ b/help/E/mllune1.txt @@ -0,0 +1,17 @@ +\b;Programs dispatched by Houston +Following is a program that has been developed by our engineers. It allows you to switch \l;power cells\u object\power;. A charged cell needs to be placed on the ground in front of the bot. + +In order to execute this program, select the program \c;SwitchCell1\n; in the list of the programs available on the bot (on the lower left-hand corner of your screen), and click on the arrow symbol \button 21;. +\c; +\s;extern void object::SwitchCell1() +\s;{ +\s; \l;grab\u cbot\grab;(InFront); // take the new cell in front +\s; \l;drop\u cbot\drop;(Behind); // and drop it behind +\s; +\s; \l;grab\u cbot\grab;(EnergyCell); // take the cell from the bot +\s; \l;drop\u cbot\drop;(InFront); // and drop it in front +\s; +\s; \l;grab\u cbot\grab;(Behind); // take the new cell +\s; \l;drop\u cbot\drop;(EnergyCell); // and drop it on the bot +\s;} +\n; diff --git a/help/E/mllune2.txt b/help/E/mllune2.txt new file mode 100644 index 00000000..15fe0f0f --- /dev/null +++ b/help/E/mllune2.txt @@ -0,0 +1,7 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/E/mllune3.txt b/help/E/mllune3.txt new file mode 100644 index 00000000..5e7e6787 --- /dev/null +++ b/help/E/mllune3.txt @@ -0,0 +1,7 @@ +\b;Program(s) dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/E/mllune4.txt b/help/E/mllune4.txt new file mode 100644 index 00000000..fbc672cd --- /dev/null +++ b/help/E/mllune4.txt @@ -0,0 +1,23 @@ +\b;Programs dispatched by Houston +Below is a program that has been developed by our engineers. It allows you to recharge the \l;power cell\u object\power; of a bot: it goes to the closest \l;power station\u object\station;, waits 5 seconds, and comes back to the initial position. + +Remark: If you click on an element of the program underlined in blue, your SatCom will display a text that explains this element. The texts that follow a double slash \c;//\n; are not part of the program, but are comments that help you to understand the program. +\c; +\s;extern void object::Recharge1() +\s;{ +\s; \l;point\u cbot\type; start; // variable for initial pos. +\s; \l;object\u cbot\type; item; // info. about power station +\s; +\s; start = position; // store initial position +\s; +\s; item = \l;radar\u cbot\radar;(\l;PowerStation\u cbot\category;); // look for station +\s; \l;goto\u cbot\goto;(item.position); // go to the power station +\s; \l;wait\u cbot\wait;(5); // wait 5 seconds +\s; +\s; \l;goto\u cbot\goto;(start); // go back to initial pos. +\s;} +\n; +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/E/mlnull.txt b/help/E/mlnull.txt new file mode 100644 index 00000000..9fe96daa --- /dev/null +++ b/help/E/mlnull.txt @@ -0,0 +1,3 @@ +\b;Program(s) dispatched by Houston +No program was transmitted. +If you feel like developing one that can be of use to the completion of this mission, be our guest but you are on your own. diff --git a/help/E/mlorph1.txt b/help/E/mlorph1.txt new file mode 100644 index 00000000..01b6c330 --- /dev/null +++ b/help/E/mlorph1.txt @@ -0,0 +1,15 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/E/mlorph2.txt b/help/E/mlorph2.txt new file mode 100644 index 00000000..f856d805 --- /dev/null +++ b/help/E/mlorph2.txt @@ -0,0 +1,14 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/E/mlsaari1.txt b/help/E/mlsaari1.txt new file mode 100644 index 00000000..1357500d --- /dev/null +++ b/help/E/mlsaari1.txt @@ -0,0 +1,11 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/E/mlsaari2.txt b/help/E/mlsaari2.txt new file mode 100644 index 00000000..805dca34 --- /dev/null +++ b/help/E/mlsaari2.txt @@ -0,0 +1,31 @@ +\b;Programs dispatched by Houston +Execute the program \c;KillAnt1\n; immediately on your \l;wheeled shooter\u object\botfr;, it will protect your west flank. Meantime you can elaborate your defense strategy. +\c; +\s;extern void object::KillAnt1() +\s;{ +\s; \l;object\u cbot\type; item; // info. about object +\s; +\s; \l;goto\u cbot\goto;(-30, 0); // go west +\s; \l;aim\u cbot\aim;(0); // aim straight +\s; +\s; \l;while\u cbot\while; ( true ) // repeat forever: +\s; { +\s; item = \l;radar\u cbot\radar;(\l;AlienAnt\u cbot\category;, 0, 360, 0, 40); +\s; \l;if\u cbot\if; ( item != null ) // ant detected ? +\s; { +\s; \l;turn\u cbot\turn;(\l;direction\u cbot\direct;(item.position)); +\s; \l;fire\u cbot\fire;(0.5); // shoot 0.5 s +\s; } +\s; \l;wait\u cbot\wait;(1); // wait 1 second +\s; } +\s;} +\n; +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/E/mlsaari3.txt b/help/E/mlsaari3.txt new file mode 100644 index 00000000..13f3cec8 --- /dev/null +++ b/help/E/mlsaari3.txt @@ -0,0 +1,12 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/E/mlterra1.txt b/help/E/mlterra1.txt new file mode 100644 index 00000000..5ac691d0 --- /dev/null +++ b/help/E/mlterra1.txt @@ -0,0 +1,30 @@ +\b;Programs dispatched by Houston +According to the data transmitted by the satellite, our engineers have developed two programs. The first one guides the \l;shielder bot\u object\botshld; through the narrow valley north close to the place where the key has been located. You can follow it without fearing any attack: +\c; +\s;extern void object::Outward() +\s;{ +\s; \l;shield\u cbot\shield;(1,15); // activate the shield +\s; \l;goto\u cbot\goto;(6,160); // go close to the key +\s; \l;shield\u cbot\shield;(0,15); // deactivate the shield +\s;} +\n; +The second program guides the \l;shielder bot\u object\botshld; back to the \l;spaceship\u object\base;: +\c; +\s;extern void object::Return() +\s;{ +\s; \l;shield\u cbot\shield;(1,15); // activate the shield +\s; \l;goto\u cbot\goto;(8,60); // go to the spaceship +\s; \l;shield\u cbot\shield;(0,15); // deactivate the shield +\s;} +\n; +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/E/mlterra2.txt b/help/E/mlterra2.txt new file mode 100644 index 00000000..f856d805 --- /dev/null +++ b/help/E/mlterra2.txt @@ -0,0 +1,14 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/E/mlterra3.txt b/help/E/mlterra3.txt new file mode 100644 index 00000000..f856d805 --- /dev/null +++ b/help/E/mlterra3.txt @@ -0,0 +1,14 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/E/mlterra4.txt b/help/E/mlterra4.txt new file mode 100644 index 00000000..73e1d1ab --- /dev/null +++ b/help/E/mlterra4.txt @@ -0,0 +1,50 @@ +\b;Programs dispatched by Houston +Below is a program that has been developed by our engineers. + +It instructs the \l;shielder\u object\botshld; to follow and protect the \l;phazer\u object\botphaz;. +\c; +\s;extern void object::FollowPhazer() +\s;{ +\s; \l;object\u cbot\type; item; // info. about phazer +\s; \l;point\u cbot\type; dest; // position where to go +\s; \l;float\u cbot\type; dist; // distance to phazer +\s; +\s; item = \l;radar\u cbot\radar;(\l;PhazerShooter\u cbot\category;); +\s; \l;if\u cbot\if; ( item == null ) +\s; { +\s; \l;message\u cbot\message;("No phazer found"); +\s; \l;return\u cbot\return;; // stop the program +\s; } +\s; \l;shield\u cbot\shield;(1, 25); // activate the shield +\s; +\s; \l;while\u cbot\while; ( true ) // repeat forever +\s; { +\s; item = \l;radar\u cbot\radar;(PhazerShooter);// look for phazer +\s; \l;if\u cbot\if; ( item == null ) break; +\s; +\s; dist = \l;distance\u cbot\dist;(item.position, position); +\s; \l;if\u cbot\if; ( dist < 5 ) +\s; { // if closer than 5 m: +\s; \l;wait\u cbot\wait;(1); // wait +\s; } +\s; \l;else\u cbot\if; // otherwise: +\s; { // Calculate a position 5 m before the phazer +\s; dest.x = (item.position.x-position.x)*((dist-5)/dist)+position.x; +\s; dest.y = (item.position.y-position.y)*((dist-5)/dist)+position.y; +\s; dest.z = (item.position.z-position.z)*((dist-5)/dist)+position.z; +\s; \l;goto\u cbot\goto;(dest, 0, 1, 1); // and go there +\s; } +\s; } +\s;} +\n; +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/E/mltropi1.txt b/help/E/mltropi1.txt new file mode 100644 index 00000000..6d775e52 --- /dev/null +++ b/help/E/mltropi1.txt @@ -0,0 +1,8 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/E/mltropi3.txt b/help/E/mltropi3.txt new file mode 100644 index 00000000..40d4b187 --- /dev/null +++ b/help/E/mltropi3.txt @@ -0,0 +1,27 @@ +\b;Programs dispatched by Houston +We have improved the recharge program. When it arrives at the \l;power station\u object\station;, the bot does not wait exactly 5 seconds, but only until the \l;power cell\u object\power; is fully charged. After the bot is back at the initial position, it displays a message on the screen. +\c; +\s;extern void object::Recharge2() +\s;{ +\s; \l;point\u cbot\type; start; // variable for initial pos. +\s; \l;object\u cbot\type; item; // info. about power station +\s; +\s; start = position; // store initial position +\s; +\s; item = \l;radar\u cbot\radar;(\l;PowerStation\u cbot\category;); // look for station +\s; \l;goto\u cbot\goto;(item.position); // go to the power station +\s; +\s; \l;while\u cbot\while; ( \l;energyCell.energyLevel\u cbot\object; < 1 ) +\s; { +\s; \l;wait\u cbot\wait;(1); // wait until recharged +\s; } +\s; +\s; \l;goto\u cbot\goto;(start); // go back to initial pos. +\s; \l;message\u cbot\message;("Recharge completed"); +\s;} +\n; +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;SwitchCell1\u mllune1;\n; +o \c;\l;Recharge1\u mllune4;\n; diff --git a/help/E/mltropi4.txt b/help/E/mltropi4.txt new file mode 100644 index 00000000..3b138af2 --- /dev/null +++ b/help/E/mltropi4.txt @@ -0,0 +1,9 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/E/mltropi5.txt b/help/E/mltropi5.txt new file mode 100644 index 00000000..3b138af2 --- /dev/null +++ b/help/E/mltropi5.txt @@ -0,0 +1,9 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/E/mlvolca1.txt b/help/E/mlvolca1.txt new file mode 100644 index 00000000..f1e12cea --- /dev/null +++ b/help/E/mlvolca1.txt @@ -0,0 +1,61 @@ +\b;Programs dispatched by Houston +As you will need lots of titanium for this mission, we have made the program \c;CollectTitanium\n; still more efficient. It gathers a whole series of titanium cubes on a free surface, so you can let it work on its own. It also recharges itself at the \l;power station\u object\station; if necessary. +\c; +\s;extern void object::CollectTitanium3() +\s;{ +\s; // 1) Variable definition. +\s; \l;object\u cbot\type; item; // info. about objects +\s; +\s; \l;while\u cbot\while; (true) // repeat forever +\s; { +\s; +\s; // 2) Go to the titanium ore and grab it. +\s; item = \l;radar\u cbot\radar;(\l;TitaniumOre\u cbot\category;);// look for titanium +\s; \l;goto\u cbot\goto;(item.position); // go to the position +\s; \l;grab\u cbot\grab;(); // grab the titanium +\s; +\s; // 3) Go to the converter and drop it. +\s; item = \l;radar\u cbot\radar;(\l;Converter\u cbot\category;); // look for converter +\s; \l;goto\u cbot\goto;(item.position); // go to the position +\s; \l;drop\u cbot\drop;(); // drop the titanium +\s; \l;move\u cbot\move;(-2.5); // step back 2.5 m +\s; +\s; // 4) Wait until titanium converted and grab it +\s; \l;do\u cbot\do; +\s; { +\s; \l;wait\u cbot\wait;(1); // wait for cube +\s; item = \l;radar\u cbot\radar;(\l;Titanium\u cbot\category;, 0, 45, 0, 5); +\s; } +\s; \l;while\u cbot\while; ( item == null ); +\s; \l;goto\u cbot\goto;(item.position); +\s; \l;grab\u cbot\grab;(); // grab it +\s; +\s; // 5) Drop on a free space +\s; \l;goto\u cbot\goto;(\l;space\u cbot\space;(position)); // go to free space +\s; \l;drop\u cbot\drop;(); // drop titanium +\s; +\s; // 6) If power cell half empty, recharges. +\s; \l;if\u cbot\if; ( energyCell.energyLevel < 0.5 ) +\s; { // if so: +\s; item = \l;radar\u cbot\radar;(\l;PowerStation\u cbot\category;); +\s; \l;if\u cbot\if; ( item != null ) // station found ? +\s; { +\s; \l;goto\u cbot\goto;(item.position); // go there +\s; \l;while\u cbot\while; ( energyCell.energyLevel < 1 ) +\s; { // until recharged: +\s; \l;wait\u cbot\wait;(1); // wait +\s; } +\s; } +\s; } +\s; } +\s;} +\n; +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/E/mlvolca2.txt b/help/E/mlvolca2.txt new file mode 100644 index 00000000..ad0537da --- /dev/null +++ b/help/E/mlvolca2.txt @@ -0,0 +1,53 @@ +\b;Programs dispatched by Houston +We have developed a program that takes care of recharging the power cell of a \l;defense tower\u object\tower;: + +1) Go to a \l;defense tower\u object\tower;. +2) Wait until the \l;power cell\u object\power; is 80% empty. +3) Grab the \l;power cell\u object\power; and recharge it on a \l;power station\u object\station;. +4) Put it back on the \l;defense tower\u object\tower;. + +Build the \l;power station\u object\station; as close as possible to the tower in order to reduce the time when the tower has got no power cell. A good trick is to place a power cell on the ground in front of the tower. The wasp will attack the power cell, and if the first shoot misses or a wasp arrives when the defense tower has got no energy, only the power cell is destroyed and not the defense tower. +\c; +\s;extern void object::ServiceTower1() +\s;{ +\s; \l;object\u cbot\object; tower; // info. about tower +\s; \l;object\u cbot\object; station; // info. about station +\s; +\s; // 1) go to the defense tower +\s; tower = \l;radar\u cbot\radar;(DefenseTower); // look for tower +\s; \l;goto\u cbot\goto;(tower.position); // go there +\s; +\s; \l;while\u cbot\while; ( true ) // repeat forever +\s; { +\s; // 2) wait until power cell is empty +\s; \l;while\u cbot\while; ( tower.energyCell.energyLevel > 0.2 ) +\s; { +\s; \l;wait\u cbot\wait;(2); +\s; } +\s; \l;grab\u cbot\grab;(); // grab the power cell +\s; +\s; // 3) go to the power station to recharge +\s; station = \l;radar\u cbot\radar;(PowerStation); +\s; \l;goto\u cbot\goto;(station.position); // go there +\s; \l;while\u cbot\while; ( load.energyLevel < 1 ) +\s; { +\s; \l;wait\u cbot\wait;(1); // wait until recharged +\s; } +\s; +\s; // 4) go back to defense tower +\s; \l;goto\u cbot\goto;(tower.position); // go to tower +\s; \l;drop\u cbot\drop;(); // drop the power cell +\s; } +\s;} +\n; +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/E/mlvolca3.txt b/help/E/mlvolca3.txt new file mode 100644 index 00000000..01b6c330 --- /dev/null +++ b/help/E/mlvolca3.txt @@ -0,0 +1,15 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/E/mlvolca4.txt b/help/E/mlvolca4.txt new file mode 100644 index 00000000..01b6c330 --- /dev/null +++ b/help/E/mlvolca4.txt @@ -0,0 +1,15 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/E/mlvolca5.txt b/help/E/mlvolca5.txt new file mode 100644 index 00000000..01b6c330 --- /dev/null +++ b/help/E/mlvolca5.txt @@ -0,0 +1,15 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/E/mlvolca6.txt b/help/E/mlvolca6.txt new file mode 100644 index 00000000..01b6c330 --- /dev/null +++ b/help/E/mlvolca6.txt @@ -0,0 +1,15 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/E/mscent1.txt b/help/E/mscent1.txt new file mode 100644 index 00000000..befd97f5 --- /dev/null +++ b/help/E/mscent1.txt @@ -0,0 +1,20 @@ +\b;Walkthrough +You'll find some useful items in a small valley northeast. +o A \l;recycler\u object\botrecy; that will allow you to make your first \l;titanium cube\u object\titan;. +o A \l;legged grabber\u object\botgs; that is very good at climbing steep slopes. +o A nearly charged \l;nuclear power cell\u object\atomic;. + +1) Power the \l;legged grabber\u object\botgs; with the \l;nuclear power cell\u object\atomic;, and use it to carry a \l;titanium cube\u object\titan; to the \l;spaceship\u object\base;. Choose the direct way over the mountains. + +2) Use the titanium to build a \l;converter\u object\convert;. Execute the program \c;CollectTitanium3\n; on the \l;legged grabber\u object\botgs; and you will have plenty of titanium. + +3) Stop the program, and use the grabber to collect some \l;uranium ore\u object\uranore; in a second small valley to the east. Again, do not take the way of the valley which is crawling with ants, but take the direct way over the mountains. + +4) Build a \l;winged shooter\u object\botfj; and power it with a \l;nuclear power cell\u object\atomic;. If you take the pass south-east, you will arrive immediately at the ant nest. Kill all the ants, and bring back a ball of \l;organic matter\u object\bullet; to the \l;spaceship\u object\base;. + +5) Build an \l;auto-lab\u object\labo;, drop the \l;organic matter\u object\bullet; on the platform and click the \button 110; button in order to develop the blueprints for the orgaShooter cannon. + +6) Build a \l;legged orga shooter\u object\botos;, bring it aboard and take off. + +\t;See also +\l;Controls\u command; diff --git a/help/E/mscent2.txt b/help/E/mscent2.txt new file mode 100644 index 00000000..417c8f0b --- /dev/null +++ b/help/E/mscent2.txt @@ -0,0 +1,5 @@ +\b;Walkthrough +Drive the \l;legged orga shooter\u object\botos; to each of the pads in front of the targets, and hit all targets that you see with only one burst, moving the mouse during the burst. With 4 bursts, you must be able to hit all the targets. + +\t;See also +\l;Controls\u command; diff --git a/help/E/mscent3.txt b/help/E/mscent3.txt new file mode 100644 index 00000000..d14266fa --- /dev/null +++ b/help/E/mscent3.txt @@ -0,0 +1,11 @@ +\b;Walkthrough +In order to kill all ants and spiders in this large and mountainous region, you will need a \l;winged orga shooter\u object\botfj; powered with \l;nuclear power cells\u object\atomic;. In a small valley to the southeast you will find everything you need: \l;titanium cubes\u object\titanium;, \l;power cells\u object\power; and even a \l;winged grabber\u object\botgj; in working condition. + +1) Build a \l;radar\u object\radar; and a \l;winged shooter\u object\botfj; and power it. Kill the ant that is watching over the \l;uranium ore\u object\uranore; further north. + +2) Use the abandoned \l;nuclear plant\u object\nuclear; on the hill above and the \l;winged grabber\u object\botgj; to produce several \l;nuclear power cells\u object\atomic;, and use one to power the \l;winged shooter\u object\botfj;. + +3) Wipe out all insects from the region. There is one isolated ant in the northwest hidden in a hole: an approach from the west thorough the deep valley will make it easier to hit. + +\t;See also +\l;Controls\u command; diff --git a/help/E/mscent4.txt b/help/E/mscent4.txt new file mode 100644 index 00000000..ceb46949 --- /dev/null +++ b/help/E/mscent4.txt @@ -0,0 +1,12 @@ +\b;Walkthrough +1) Search the area for \l;titanium\u object\titan;. +2) Build a \l;converter\u object\convert;. +3) Build a \l;research center\u object\research;. +4) Run the \button 66;. +5) Manufacture a \l;thumper\u object\bottump;. +6) Position the thumper close to the derelict spaceship and "thump" the ground. +7) Quickly retrieve the \l;black box\u object\bbox; and bring it back aboard your \l;spaceship\u object\base;. +8) Bring the thumper along and take off. + +\t;See also +\l;Controls\u command; diff --git a/help/E/mscent5.txt b/help/E/mscent5.txt new file mode 100644 index 00000000..a631c9d5 --- /dev/null +++ b/help/E/mscent5.txt @@ -0,0 +1,8 @@ +\b;Walkthrough +1) Thump the deck of the \l;spaceship\u object\base;. You don't need to move the \l;thumper\u object\bottump; anywhere. +2) Locate the \l;orga shooter\u object\botoj; approximately 70 meters to the east. +3) Terminate the \l;ants\u object\ant; while they are still on their backs. +4) Take off. + +\t;See also +\l;Controls\u command; diff --git a/help/E/mscrys1.txt b/help/E/mscrys1.txt new file mode 100644 index 00000000..e7e5c03e --- /dev/null +++ b/help/E/mscrys1.txt @@ -0,0 +1,12 @@ +\b;Walkthrough +1) Build a \l;bot factory\u object\factory;. +2) Produce a \l;winged grabber\u object\botgj;. +3) Carry a \l;titanium cube\u object\titan; to the highest point. +4) Build a \l;radar\u object\radar; on the spot. +5) Build a \l;research center\u object\research; next to the spaceship. +6) Initiate the \button 68;. +7) Build the \l;defense tower\u object\tower; next to the radar. +8) When all the worms are destroyed, you can go back to your ship and take off. + +\t;See also +\l;Controls\u command; diff --git a/help/E/mscrys2.txt b/help/E/mscrys2.txt new file mode 100644 index 00000000..d64057d1 --- /dev/null +++ b/help/E/mscrys2.txt @@ -0,0 +1,17 @@ +\b;Walkthrough +1) Build a \l;bot factory\u object\factory;. +2) Produce a \l;winged sniffer\u object\botsj;. +3) Sniff the ground near the large crystals until you get a \l;red cross\u object\stonspot;. +4) Build a \l;derrick\u object\derrick; near the red cross. +5) Build a \l;converter\u object\convert;. + +The pairing of a derrick and a converter allows for an unlimited supply of \l;titanium\u object\titan;. In order to leave this task to a bot, execute the program \c;CollectTitanium2\n;. + +6) Sniff the area at the foot of the spaceship. A \l;green cross\u object\enerspot; means you can build a \l;power station\u object\station; on the spot. +7) Build a \l;radar\u object\radar;. +8) Produce a \l;winged shooter\u object\botfj;. +9) Eliminate all worms. +10) Go back to your ship and take off. + +\t;See also +\l;Controls\u command; diff --git a/help/E/mscrys3.txt b/help/E/mscrys3.txt new file mode 100644 index 00000000..b015bb5a --- /dev/null +++ b/help/E/mscrys3.txt @@ -0,0 +1,7 @@ +\b;Walkthrough +If you lose the bot, it will drop the black box somewhere southwest of your spaceship on a region surrounded by crystals. + +In case your power runs out before you can bring the black box back, use the second grabber left on the spaceship. + +\t;See also +\l;Controls\u command; diff --git a/help/E/mscrys4.txt b/help/E/mscrys4.txt new file mode 100644 index 00000000..cf8c5f7c --- /dev/null +++ b/help/E/mscrys4.txt @@ -0,0 +1,7 @@ +\b;Walkthrough +Somewhere northeast in the valley itself you should come across a fully functional \l;power station\u object\station;. Northwest you will find several \l;power cells\u object\power;. + +A few shooters in working condition have been abandoned in and around the same area in the valley; use them to shoot all the ants. With the \l;winged grabber\u object\botgj;, you can then retrieve the \l;black box\u object\bbox; that is located behind the derelict spaceship and take off. + +\t;See also +\l;Controls\u command; diff --git a/help/E/mslune1.txt b/help/E/mslune1.txt new file mode 100644 index 00000000..b97ffbec --- /dev/null +++ b/help/E/mslune1.txt @@ -0,0 +1,15 @@ +\b;Walkthrough +In order to build the \l;research center\u object\research;, drop a \l;titanium cube\u object\titan; on a flat surface not too far from the spaceship. \l;You\u object\human; can carry the cube yourself, or use the available \l;grabber\u object\botgr;. + +If you used the bot, move it away from the cube in order not to interfere with the construction. To shift the selection from the bot to yourself (remember that only you can build), use \key;\key human;\norm;. + +Position yourself close to the \l;titanium cube\u object\titan; and build a \l;research center\u object\research; \button 163;. Drop a \l;power cell\u object\power; on the \l;research center\u object\research;, select the building and click the \button 65; symbol in order to perform the . + +Build a \l;bot factory\u object\factory; in the same way, and drop a \l;titanium cube\u object\titan; in the center. Build a \l;winged grabber\u object\botgj; with the \button 139; symbol, and power it with a \l;power cell\u object\power;. + +It may be preferable to scout the area yourself in order to save power. You'll find the chunks of titanium ore at the bottom of a few craters located north of the spaceship. A \l;flag\u object\flag; may help you pin down the spot faster on subsequent trips. + +Collect 4 chunks of \l;titanium ore\u object\titanore; and bring them back aboard your \l;spaceship\u object\base;. Take the \l;winged grabber\u object\botgj; and the \l;wheeled grabber\u object\botgr; along with you and take off \button 28;. + +\t;See also +\l;Controls\u command; diff --git a/help/E/mslune2.txt b/help/E/mslune2.txt new file mode 100644 index 00000000..e46a8501 --- /dev/null +++ b/help/E/mslune2.txt @@ -0,0 +1,7 @@ +\b;Walkthrough +If your bot suddenly explodes, this means that you have hit the steel structures too often. Drive more slowly, so your bot will not be damaged even if you bump into an obstacle. + +If you can not take off after you have completed the training, this means that you did not pass through all the targets. Go round one more time, and pass through the targets where the cross is left in the center. + +\t;See also +\l;Controls\u command; diff --git a/help/E/mslune3.txt b/help/E/mslune3.txt new file mode 100644 index 00000000..e46a8501 --- /dev/null +++ b/help/E/mslune3.txt @@ -0,0 +1,7 @@ +\b;Walkthrough +If your bot suddenly explodes, this means that you have hit the steel structures too often. Drive more slowly, so your bot will not be damaged even if you bump into an obstacle. + +If you can not take off after you have completed the training, this means that you did not pass through all the targets. Go round one more time, and pass through the targets where the cross is left in the center. + +\t;See also +\l;Controls\u command; diff --git a/help/E/mslune4.txt b/help/E/mslune4.txt new file mode 100644 index 00000000..7535c4d7 --- /dev/null +++ b/help/E/mslune4.txt @@ -0,0 +1,19 @@ +\b;Walkthrough +1) Build a converter \button 162; with the only titanium cube available. + +2) Deposit one chunk of titanium ore at a time at the center of the platform and let the converter do the rest. + +3) Build a power station \button 164; with one of the newly converted titanium cubes. + +4) If you don't feel like looking for the black box yourself, build a radar \button 168; and the box will appear on your mini map somewhere north of your present location, at the bottom of a crater, next to a few derelict spacecraft and debris from the previous expedition. + +5) Place the grabbers at the center of the power station platform to recharge them. The cells should still have a little power left in them, just enough to radio-control the bots onto the platform. + +6) Radio-control the winged grabber to the black box and back. + +7) Gather both grabbers and the black box onto the spaceship platform and climb on board yourself. + +8) Take off. + +\t;See also +\l;Controls\u command; diff --git a/help/E/msorph1.txt b/help/E/msorph1.txt new file mode 100644 index 00000000..28c154db --- /dev/null +++ b/help/E/msorph1.txt @@ -0,0 +1,15 @@ +\b;Walkthrough +1) Quickly build a \l;power captor\u object\captor; near the blue flag. +All subsequent buildings should be erected within the \button 41; covered by the power captor. +2) Carry some empty \l;power cells\u object\power; under the power captor. When lightning strikes, they will be recharged. +3) Build a \l;derrick\u object\derrick;. +4) Build a \l;converter\u object\convert;. +5) Execute the program \c;CollectTitanium3\n; in order to produce \l;titanium\u object\titan;. +6) Build a \l;bot factory\u object\factory;. +7) Manufacture a \l;winged orga shooter\u object\botoj;. +8) Build a \l;radar\u object\radar;. +9) Locate and terminate all \l;ants\u object\ant;. +10) Return to your \l;spaceship\u object\base; and take off. + +\t;See also +\l;Controls\u command; diff --git a/help/E/msorph2.txt b/help/E/msorph2.txt new file mode 100644 index 00000000..486d4475 --- /dev/null +++ b/help/E/msorph2.txt @@ -0,0 +1,9 @@ +\b;Walkthrough +You will find a \l;radar\u object\radar;, a \l;power captor\u object\captor;, a \l;power cell\u object\power; and a \l;winged orga shooter\u object\botoj; in the valley south of the spaceship. This will allow you to kill the ants close to the spaceship and to locate the \l;black box\u object\bbox; in the north next to the remains of the first expedition spaceship. + +Build a succession of \l;power captors\u object\captor; along the natural path offered by the northern mountain peaks. 5 or 6 captors should offer sufficient protection against lightning. + +Bring the black box back aboard your \l;spaceship\u object\base; and take off. + +\t;See also +\l;Controls\u command; diff --git a/help/E/mssaari1.txt b/help/E/mssaari1.txt new file mode 100644 index 00000000..6bfb8087 --- /dev/null +++ b/help/E/mssaari1.txt @@ -0,0 +1,22 @@ +\b;Walkthrough +1) You'll find a \l;titanium cube\u object\titan; left in a smashed up bot factory. Use it to build a \l;power station\u object\station;. + +2) The \l;recycler\u object\botrecy; is designed to convert derelicts back into usable titanium cubes. + +3) Build both a \l;repair center\u object\repair; and a \l;radar\u object\radar;. + +4) Recharge one of the \l;power cells\u object\power; available and power a \l;winged shooter\u object\botfj;. + +5) Eliminate all \l;ants\u object\ant;. Note that you should recharge and repair the shooter regularly. Check your levels. + +6) Fully charge the \l;grabber\u object\botgr;'s power cell, then radio-control it to the summit... + a) Access the first level by ramp on west; + b) On first level travel east to find second ramp; + c) On second level travel south to find third ramp; + d) On third level travel west for access to summit; +...then, with the chunk, straight back to the spaceship by the most direct route so as to save the remaining power. + +7) Climb aboard the ship yourself and take off. + +\t;See also +\l;Controls\u command; diff --git a/help/E/mssaari2.txt b/help/E/mssaari2.txt new file mode 100644 index 00000000..22371a78 --- /dev/null +++ b/help/E/mssaari2.txt @@ -0,0 +1,9 @@ +\b;Walkthrough +Execute immediately the program \c;KillAnt1\n; on the \l;wheeled shooter\u object\botfr;; it will take care of the first wave of attack coming from west. + +Then build two \l;defense towers\u object\tower; one in the north of the \l;spaceship\u object\base;, the other one in the south (you have to do this VERY quickly). While \l;you\u object\human; are building, use the \l;grabber\u object\botgr; to get a \l;power cell\u object\power;. + +As soon as the successive waves of attack, made up of about fifteen \l;ants\u object\ant;, are gone, you have time to take care of the ants that did not attack. Build a \l;radar\u object\radar; in order to spot them, and a \l;converter\u object\convert;, a \l;bot factory\u object\factory;, a \l;power station\u object\station; and a \l;winged shooter\u object\botfj; in order to get rid of them... + +\t;See also +\l;Controls\u command; diff --git a/help/E/mssaari3.txt b/help/E/mssaari3.txt new file mode 100644 index 00000000..84f2fa66 --- /dev/null +++ b/help/E/mssaari3.txt @@ -0,0 +1,9 @@ +\b;Walkthrough +You should build a \l;radar\u object\radar; first. + +The \l;ants\u object\ant; appear to be running away from you. Try to circle around each one of them until they find themselves trapped between you and a \l;mine\u object\mine;. They'll opt for the mine and blow themselves up. + +Then bring the \l;black box\u object\bbox; aboard your ship. It is next to the derelict spaceship. + +\t;See also +\l;Controls\u command; diff --git a/help/E/msterra1.txt b/help/E/msterra1.txt new file mode 100644 index 00000000..a7487ad7 --- /dev/null +++ b/help/E/msterra1.txt @@ -0,0 +1,6 @@ +\b;Walkthrough +Unfortunately no walkthrough has been provided for this mission. +You are on your own... + +\t;See also +\l;Controls\u command; diff --git a/help/E/msterra2.txt b/help/E/msterra2.txt new file mode 100644 index 00000000..a7487ad7 --- /dev/null +++ b/help/E/msterra2.txt @@ -0,0 +1,6 @@ +\b;Walkthrough +Unfortunately no walkthrough has been provided for this mission. +You are on your own... + +\t;See also +\l;Controls\u command; diff --git a/help/E/msterra3.txt b/help/E/msterra3.txt new file mode 100644 index 00000000..a7487ad7 --- /dev/null +++ b/help/E/msterra3.txt @@ -0,0 +1,6 @@ +\b;Walkthrough +Unfortunately no walkthrough has been provided for this mission. +You are on your own... + +\t;See also +\l;Controls\u command; diff --git a/help/E/msterra4.txt b/help/E/msterra4.txt new file mode 100644 index 00000000..a7487ad7 --- /dev/null +++ b/help/E/msterra4.txt @@ -0,0 +1,6 @@ +\b;Walkthrough +Unfortunately no walkthrough has been provided for this mission. +You are on your own... + +\t;See also +\l;Controls\u command; diff --git a/help/E/msterre1.txt b/help/E/msterre1.txt new file mode 100644 index 00000000..3e7e0cc2 --- /dev/null +++ b/help/E/msterre1.txt @@ -0,0 +1,11 @@ +\b;Walkthrough +To find the survival kit from your starting point : + +1) Follow the road heading south. +2) Turn east (left) at the first crossroad. +3) The survival kit is lying between the northern wall of Mission Control and the first tree on the right hand side of the road. + +Just position yourself close to it to successfully complete the drill. + +\t;See also +\l;Controls\u command; diff --git a/help/E/msterre2.txt b/help/E/msterre2.txt new file mode 100644 index 00000000..a97023d8 --- /dev/null +++ b/help/E/msterre2.txt @@ -0,0 +1,11 @@ +\b;Walkthrough +Walk down the street that runs beside \l;Mission Control\u object\Huston;. You will find a \l;titanium cube\u object\titan; on the left hand side of the road, right after the \l;grabber bot\u object\botgr;. + +1) Face the cube. Click on the first button at the bottom left of your screen: \button 163; . +2) Walk further down the road. The second cube is on the right past the four green \l;power cells\u object\power;. +3) Repeat 1) but click on the second button: \button 160; . + +As soon as both buildings are completed, the mission is at an end. + +\t;See also +\l;Controls\u command; diff --git a/help/E/msterre3.txt b/help/E/msterre3.txt new file mode 100644 index 00000000..509ae869 --- /dev/null +++ b/help/E/msterre3.txt @@ -0,0 +1,28 @@ +\b;Walkthrough +Before taking off, you need to bring the following aboard your spaceship: + +1) \l;Black box\u object\bbox;. +2) \l;Wheeled\u object\botgr; and \l;tracked\u object\botgc; grabbers. +3) \l;Yourself\u object\human;. + +Here is a detailed breakdown of the operations: +1) Power the \l;research center\u object\research; with one of the green \l;power cells\u object\power;. +2) Activate the \l;research center\u object\research; then click on the \button 64; button. +3) Place a \l;titanium cube\u object\titan; inside the \l;bot factory\u object\factory;. +4) Step back out and activate the \l;bot factory\u object\factory;. +5) Click on the \button 138; button. +6) Power the \l;tracked grabber\u object\botgc; with a brand new \l;power cell\u object\power;. +7) Radio-control the \l;tracked grabber\u object\botgc; to the top of the mountain in the south-west. +8) Bring the \l;black box\u object\bbox; back aboard your \l;spaceship\u object\base;. +9) Radio-control both the \l;tracked\u object\botgc; and the \l;wheeled\u object\botgr; grabbers onto the platform. +10) Climb aboard the \l;spaceship\u object\base; yourself. +11) Take off! + +In order to take off, select the \l;spaceship\u object\base;, provided that it is visible, by clicking on it. If it is not visible, you need to click one of the buttons in the upper left corner of your screen. The blue triangle \button 130; allows you to alternate between symbols for bots and symbols for buildings. Click once to shift to the list. A \button 171; symbol will now appear. Click on the button to select it. + +Once the spaceship is selected, click on the larger \button 28; button in the lower center of your screen. If the objects mentioned above as well as yourself are indeed standing on deck, takeoff will take place. + +No object or bot should hinder the closing of the eight large panel doors. + +\t;See also +\l;Controls\u command; diff --git a/help/E/mstropi1.txt b/help/E/mstropi1.txt new file mode 100644 index 00000000..ca0330be --- /dev/null +++ b/help/E/mstropi1.txt @@ -0,0 +1,5 @@ +\b;Walkthrough +Follow the path shown on your mini map. The explosive device lies at the bottom of a small valley populated by giant ants. They will probably attack you and you will probably lose consciousness. There is nothing you can really do about this. + +\t;See also +\l;Controls\u command; diff --git a/help/E/mstropi2.txt b/help/E/mstropi2.txt new file mode 100644 index 00000000..23bc0024 --- /dev/null +++ b/help/E/mstropi2.txt @@ -0,0 +1,21 @@ +\b;Walkthrough +Here is a breakdown of the steps to follow to get back to the spaceship. + +1) Go round the lake, and head towards the green fluorescent globe. This globe is generated by a gravi-plant that will make flight impossible inside the globe. + +2) Follow the left flank of the valley, passing a pond on your right, and climb the small slope. On top you will be facing some giant ants: run as fast as you can towards another gravi-plant a little further on your right, your wounds will have time to heal later. + +3) Use your reactor to fly past the lake before the gravi-plant on your right. + +4) When you leave the gravi-plant, keep on the left-hand side of the lake, and follow the shore until you reach a peninsula adorned with fern-like plants. + +5) Do some island-hopping across the larger lake. Aim for the trees in order to avoid falling into the water on the other side of the island. The last island is 50 cm under water but you can still land on it without having your head submerged. + +6) The path continues to the left. A giant ant is waiting for you there, but it will not do you much harm. + +7) Give your reactor enough time to cool down, then fly across the small lake. Try to land as high on the right as you can, this is the best way not to fall into the second lake. + +8) Cross the second lake, get aboard the spaceship, and take off. + +\t;See also +\l;Controls\u command; diff --git a/help/E/mstropi3.txt b/help/E/mstropi3.txt new file mode 100644 index 00000000..852a973e --- /dev/null +++ b/help/E/mstropi3.txt @@ -0,0 +1,13 @@ +\b;Walkthrough +1) There is a \l;titanium cube\u object\titan; west of your present location, near the blue flag/blue cross on your mini map. You don't need to move the cube, just build a \l;power station\u object\station; right there on the spot. + +2) With the titanium cubes on the spaceship, build a \l;research center\u object\research; and execute the \button 67;. + +3) Build a \l;bot factory\u object\factory; and a \l;winged shooter\u object\botfj;. If this bot is destroyed by enemy fire, you will find some additional \l;titanium cubes\u object\titan; in a small foggy valley northwest of the spaceship. You can bring them back with the \l;winged grabber\u object\botgj;\n;. + +4) Build a \l;radar station\u object\radar; in order to see the location of the ants on the mini-map, and let the hunt begin. Be careful not to run out of energy and not to overheat the reactor of a bot while over water. If a bot falls into deep water, it explodes. + +5) Once you have killed all the ants, get on board and take off. + +\t;See also +\l;Controls\u command; diff --git a/help/E/mstropi4.txt b/help/E/mstropi4.txt new file mode 100644 index 00000000..6b73f89d --- /dev/null +++ b/help/E/mstropi4.txt @@ -0,0 +1,7 @@ +\b;Walkthrough +If your bot suddenly explodes, this means that you have hit the steel structures too often. Drive more slowly, so your bot will not be damaged even if you bump into an obstacle. + +If you can not take off after you completed the training, this means that you have not hit all the targets. Go round one more time, and check if any of the explosive devices or crosses in the center of the steel structures are left. + +\t;See also +\l;Controls\u command; diff --git a/help/E/mstropi5.txt b/help/E/mstropi5.txt new file mode 100644 index 00000000..06802556 --- /dev/null +++ b/help/E/mstropi5.txt @@ -0,0 +1,15 @@ +\b;Walkthrough +1) Locate the \l;black box\u object\bbox; on your own. You can try to spot it from above, using your jet engine, or dive into the water. +2) Build a \l;converter\u object\convert; near the chunks of titanium ore. You'll find them in the vicinity of the spaceship to the east. +3) Produce two \l;cubes\u object\titan;. +4) Build a \l;bot factory\u object\factory; not too far from the black box. +5) Manufacture a \l;subber\u object\botsub;. +6) Bring the black box back on board. +7) Take off. + +The black box is lying at the bottom of a small lake, northeast of the spaceship. + +You can build the bot factory right beside the lake, on the south bank. + +\t;See also +\l;Controls\u command; diff --git a/help/E/msvolca1.txt b/help/E/msvolca1.txt new file mode 100644 index 00000000..7c606a2e --- /dev/null +++ b/help/E/msvolca1.txt @@ -0,0 +1,15 @@ +\b;Walkthrough +1) Start by recharging a \l;regular power cell\u object\power; and power the \l;research center\u object\research;. Use it to research the technology for the building of a \l;nuclear plant\u object\nuclear; \button 170;. + +2) Produce a \l;wheeled grabber\u object\botgr;. + +3) Find some \l;uranium ore\u object\uranore; northwest of your position. The nuclear plant will then transform it into \l;nuclear power cells\u object\atomic; of a longer duration. + +4) Power a \l;wheeled shooter\u object\botfr; with one of your new nuclear cells. Dispatch it to kill all intruding \l;spiders\u object\spider; along the way. + +5) A \l;radar\u object\radar; is optional but could turn out useful to mark the position of the spiders on your mini map. + +6) A wheeled grabber should be part of the expedition. It will both clear the way cluttered with \l;titanium ore\u object\titanore; and bring the \l;explosive device\u object\tnt; back. + +\t;See also +\l;Controls\u command; diff --git a/help/E/msvolca2.txt b/help/E/msvolca2.txt new file mode 100644 index 00000000..319cd4db --- /dev/null +++ b/help/E/msvolca2.txt @@ -0,0 +1,19 @@ +\b;Walkthrough +1) Quickly build a \l;defense tower\u object\tower; north of your spaceship. After you \l;powered\u object\power; it, execute the program \c;ServiceTower1\n; on one of the \l;grabbers\u object\botgr; which will recharge the power cell when it is empty. Place another power cell 2 m north of the tower as a first target for the attacking wasps. + +2) Build a \l;power station\u object\station; close to the defense tower. + +3) Build a \l;converter\u object\convert; south of the spaceship and execute the program \c;CollectTitanium3\n; on the second \l;grabber\u object\botgr; in order to produce some \l;titanium\u object\titan;. + +4) Build a \l;bot factory\u object\factory; and a \l;winged shooter\u object\botfj; to eliminate the \l;ants\u object\ant;. + +5) Use a \l;winged grabber\u object\botgj; to bring back some \l;organic matter\u object\bullet; from the island in the middle of the lava lake. + +6) Build an \l;autolab\u object\labo;, drop the \l;organic matter\u object\bullet; on the platform and click the button \button 109; in order to develop the blueprints for legged bots. + +7) As soon as the organic matter has been analyzed, produce a \l;legged grabber\u object\botgs; and bring it aboard the spaceship. + +8) Take off. + +\t;See also +\l;Controls\u command; diff --git a/help/E/msvolca3.txt b/help/E/msvolca3.txt new file mode 100644 index 00000000..bcd857b8 --- /dev/null +++ b/help/E/msvolca3.txt @@ -0,0 +1,11 @@ +\b;Walkthrough +1) Power a \l;legged shooter\u object\botfs;. There is even a \l;nuclear cell\u object\atomic; left behind the \l;bot factory\u object\factory;. + +2) Climb the northern cliff and kill a few \l;ants\u object\ant;. The best access is from the east. + +3) Keep going until all ants are out of the way. + +4) Climb the northern cliff with a \l;legged grabber\u object\botgs; and retrieve the \l;black box\u object\bbox; that you will find in the derelict bot factory. + +\t;See also +\l;Controls\u command; diff --git a/help/E/msvolca4.txt b/help/E/msvolca4.txt new file mode 100644 index 00000000..4000a249 --- /dev/null +++ b/help/E/msvolca4.txt @@ -0,0 +1,13 @@ +\b;Walkthrough +A gap in the northwest mountain leads the way to a lake of boiling lava. + +Just hop from one rocky island to the next. Keep checking your reactor, let it cool off completely before taking off again. The mini map will help you to figure out where the closest island is. + +In case of an ant attack, don't worry too much. Just take the time for your reactor to cool off, without lingering longer than necessary, and your built-in shield should do its duty. However we advise you to save the game from time to time (key Esc, and "Save"), so you will not have to start from the beginning in case of a landing in the lava lake. + +The bot is at the westernmost point on your map though you'll have to take a roundabout route to reach it. A \l;nuclear power cell\u object\atomic; lies nearby. + +You don't have to radio-control the bot back to the spaceship by the same way you came because its reactor has a greater range than yours. One or two stops may still be needed and watch out for those ants. + +\t;See also +\l;Controls\u command; diff --git a/help/E/msvolca5.txt b/help/E/msvolca5.txt new file mode 100644 index 00000000..938b80b0 --- /dev/null +++ b/help/E/msvolca5.txt @@ -0,0 +1,11 @@ +\b;Walkthrough +Everything is blowing up around you. You need to leave the old basecamp as quickly as possible. Just retreat the same way you came. + +\l;Ants\u object\ant; are fairly easy to avoid. If you're badly hit, find a quiet spot and wait until your shield has regenerated. + +\l;Spiders\u object\spider; are a bit tougher but also more stupid. As soon as they see you, they burst their abdomen, dying in the process. If one fragment hits you, you'll die too. One risky but efficient method to rid yourself of a spider consists in moving dangerously close and, when the spider's abdomen starts inflating, swiftly fly backwards to safety. + +As soon as you have reached a quiet island, you can use the \l;winged orga shooter\u object\botoj; to clear your way of hostile insects. Be careful not to lose it, otherwise the whole mission would be in vain. + +\t;See also +\l;Controls\u command; diff --git a/help/E/msvolca6.txt b/help/E/msvolca6.txt new file mode 100644 index 00000000..b5b7fcb1 --- /dev/null +++ b/help/E/msvolca6.txt @@ -0,0 +1,9 @@ +\b;Walkthrough +It is safer for \l;you\u object\human; to stay on the \l;spaceship\u object\base;. You may get hit a few times but not fatally. + +Put your new \l;winged orga shooter\u object\botoj; to good use and don't waste any time. First shoot the ants on your right, then turn clockwise around the spaceship, flying at low altitude. + +If you can not do it this way, place the \l;winged orga shooter\u object\botoj; on a safe place north of the spaceship, then save yourself. You can then take your time to shoot the ants one after another; they can do no harm to the spaceship and the black box. + +\t;See also +\l;Controls\u command; diff --git a/help/E/navig.txt b/help/E/navig.txt new file mode 100644 index 00000000..63622750 --- /dev/null +++ b/help/E/navig.txt @@ -0,0 +1,22 @@ +\b;Navigation +The three buttons on the upper left-hand corner of the screen allow you to navigate in the different texts of the help file: + +\button 30; Home +Get back to the home page, i.e. the first page that was displayed, for example when you hit the \key;\key help;\norm; or \key;\key prog;\norm; key. + +\button 55; Previous +Get back to the previous page, i.e. the page that was displayed before you clicked on a link. + +\button 48; Next +Get again to the next page, after you used the "Home" or "Previous" button. + +\t;Remark +When a button is gray, this means that it can not be used at this precise moment. For example, when you are in the home page, the "Home" button is gray, because it does not make sense to use it. + +This remark is valid for all buttons in COLOBOT. + +\t;Text scrolling +If your mouse is equipped with a wheel, you can use it to scroll the text up and down. Otherwise, use the arrow keys and the scroll bar on the right-hand side of the screen. + +\t;Font size +The cursor on the upper side of the screen allows you to change the font size of the text. diff --git a/help/E/object/ant.txt b/help/E/object/ant.txt new file mode 100644 index 00000000..87b82f40 --- /dev/null +++ b/help/E/object/ant.txt @@ -0,0 +1,11 @@ +\b;Ant +\image ant 8 8; +Ants shoot tiny corrosive balls that eventually gnaw into the protective shielding of bots and buildings, causing them to explode. + +\l;You\u object\human; can resist their attack much longer than most buildings and bots, and your protective shield will be restored as your wounds heal. However, if you stay too long in their range or if there are too many of them, your life is in great danger. + +\t;Object \l;Category\u cbot\category; +\c;AlienAnt\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/atomic.txt b/help/E/object/atomic.txt new file mode 100644 index 00000000..367dff0e --- /dev/null +++ b/help/E/object/atomic.txt @@ -0,0 +1,15 @@ +\b;Nuclear Power Cell +\image atomic 4 4; +A nuclear power cell supplies the bots and some buildings with energy. +Its capacity is 100 times that of a \l;regular power cell\u object\power;. + +Nuclear power cells cannot be recharged or recycled. A \l;nuclear plant\u object\nuclear; and some \l;uranium ore\u object\uranore; is needed to produce a new and fully charged nuclear power cell. + +\t;Transport +All \l;grabbers\u object\botgr; and the \l;astronaut\u object\human;. + +\t;Object \l;Category\u cbot\category; +\c;NuclearCell\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/barrier.txt b/help/E/object/barrier.txt new file mode 100644 index 00000000..14646cb0 --- /dev/null +++ b/help/E/object/barrier.txt @@ -0,0 +1,8 @@ +\b;Barrier +The barrier is nothing more than an obstacle used in the exercises. + +\t;Object \l;Category\u cbot\category; +\c;Barrier\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/base.txt b/help/E/object/base.txt new file mode 100644 index 00000000..84577068 --- /dev/null +++ b/help/E/object/base.txt @@ -0,0 +1,11 @@ +\b;\button 171; Spaceship +\image base 8 8; +\l;Your\u object\human; means of transportation from one planet to the next, the only way to travel safely across the cosmos and accomplish your missions. + +In addition to yourself, the spaceship can carry bots and raw materials. Whenever a mission is completed, you must select the spaceship, then click on the command \button 28;. + +\t;Object \l;Category\u cbot\category; +\c;SpaceShip\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/bbox.txt b/help/E/object/bbox.txt new file mode 100644 index 00000000..4b4a8557 --- /dev/null +++ b/help/E/object/bbox.txt @@ -0,0 +1,14 @@ +\b;Black Box +\image bbox 4 4; +A black box is actually orange so as to be easier to identify and locate. Each \l;spaceship\u object\base; is equipped with a black box that records and stores information about the flight. + +A black box can also be used to leave important information. On every planet the first expedition has left a black box containing the coordinates of the planet it was heading towards next. + +\t;Transport +All \l;grabbers\u object\botgr; and the \l;astronaut\u object\human;. + +\t;Object \l;Category\u cbot\category; +\c;BlackBox\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/botfc.txt b/help/E/object/botfc.txt new file mode 100644 index 00000000..b95751e3 --- /dev/null +++ b/help/E/object/botfc.txt @@ -0,0 +1,20 @@ +\b;\button 144; Tracked Shooter +\image botfc 8 8; +Tracked bot equipped with a fireball cannon. + +The fireball cannon is an efficient weapon against most kinds of \l;enemies\u object\mother;. Use it sparingly though for it requires large amounts of energy. A \l;regular power cell\u object\power; will only allow you to shoot 4 fireball bursts. + +Tip : it is possible to move the mouse while shooting, so as to sweep a larger area. + +Tracked bots can ascend steep inclinations but they are quite slow and use a lot of energy. On flat ground for short distances, a \l;wheeled shooter\u object\botfr; is a better option. When it is possible to build \l;winged bots\u object\botfj;, these represent the best solution for long distances. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the fireball cannon, use \c;\l;fire\u cbot\fire;\n;. To raise or lower the aim, use \c;\l;aim\u cbot\aim;\n;. + +\t;Object \l;Category\u cbot\category; +\c;TrackedShooter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/botfj.txt b/help/E/object/botfj.txt new file mode 100644 index 00000000..b852517d --- /dev/null +++ b/help/E/object/botfj.txt @@ -0,0 +1,22 @@ +\b;\button 145; Winged Shooter +\image botfj 8 8; +Jet propelled flying bot equipped with a fireball cannon. + +The fireball cannon is an efficient weapon against most kinds of \l;enemies\u object\mother;. Use it sparingly though for it requires large amounts of energy. A \l;regular power cell\u object\power; will only allow you to shoot 4 fireball bursts. + +Tip : it is possible to move the mouse while shooting, so as to sweep a larger area. + +The display at the bottom of your screen indicates the temperature of the reactor. Keep an eye on it. If the reactor overheats, the engine will stop and the bot will crash. + +Winged bots can fly across natural obstacles such as mountains or lakes but their energy supply is used up quickly. They're slow on the ground. To cover a short distance that will not call for flying, it is recommended to use a \l;wheeled shooter\u object\botfr; instead. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;jet\u cbot\jet;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the fireball cannon, use \c;\l;fire\u cbot\fire;\n;. To raise or lower the aim, use \c;\l;aim\u cbot\aim;\n;. + +\t;Object \l;Category\u cbot\category; +\c;WingedShooter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/botfr.txt b/help/E/object/botfr.txt new file mode 100644 index 00000000..43cea003 --- /dev/null +++ b/help/E/object/botfr.txt @@ -0,0 +1,20 @@ +\b;\button 143; Wheeled Shooter +\image botfr 8 8; +Wheeled bot equipped with a fireball cannon. + +The fireball cannon is an efficient weapon against most kinds of \l;enemies\u object\mother;. Use it sparingly though for it requires large amounts of energy. A \l;regular power cell\u object\power; will only allow you to shoot 4 fireball bursts. + +Tip : it is possible to move the mouse while shooting, so as to sweep a larger area. + +Wheels constitute a standard, fast and energy-saving mode of propulsion, which is perfectly adapted for a relatively flat terrain. Whenever the terrain gets sloped, it is advised to use a \l;winged shooter\u object\botfj; instead, or, if this is impossible, a \l;tracked shooter\u object\botfc;. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the fireball cannon, use \c;\l;fire\u cbot\fire;\n;. To raise or lower the aim, use \c;\l;aim\u cbot\aim;\n;. + +\t;Object \l;Category\u cbot\category; +\c;WheeledShooter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/botfs.txt b/help/E/object/botfs.txt new file mode 100644 index 00000000..5a5c2728 --- /dev/null +++ b/help/E/object/botfs.txt @@ -0,0 +1,20 @@ +\b;\button 151; Legged Shooter +\image botfs 8 8; +Ant-legged creeping bot equipped with a fireball cannon. + +The fireball cannon is an efficient weapon against most kinds of \l;enemies\u object\mother;. Use it sparingly though for it requires large amounts of energy. A \l;regular power cell\u object\power; will only allow you to shoot 4 fireball bursts. + +Tip : it is possible to move the mouse while shooting, so as to sweep a larger area. + +A moving legged shooter uses up half as much energy as a \l;wheeled shooter\u object\botfr;. A legged bot is also perfectly adapted to climb the steepest slopes. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the fireball cannon, use \c;\l;fire\u cbot\fire;\n;. To raise or lower the aim, use \c;\l;aim\u cbot\aim;\n;. + +\t;Object \l;Category\u cbot\category; +\c;LeggedShooter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/botgc.txt b/help/E/object/botgc.txt new file mode 100644 index 00000000..8abb41c7 --- /dev/null +++ b/help/E/object/botgc.txt @@ -0,0 +1,33 @@ +\b;\button 138; Tracked Grabber +\image botgc 8 8; +Tracked bot equipped with an operating arm. + +\button 32; Grabs an object or lays it down again, at a position that is determined by one of the following options : +\button 33; The object is lying in front of the bot, on the ground or on the back of a second bot. +\button 35; The object is the bot's own power cell. +\button 34; The object is lying behind the bot, on the ground. + +The following objects can be transported : +o \l;Titanium ore\u object\titanore;. +o \l;Uranium ore\u object\uranore;. +o \l;Cube of titanium\u object\titan;. +o \l;Regular power cell\u object\power;. +o \l;Nuclear power cell\u object\atomic;. +o \l;Black box\u object\bbox;. +o \l;Keys A, B, C, and D\u object\key;. +o \l;Organic matter\u object\bullet;. + +Tracked bots can ascend steep inclinations but they are quite slow and use much energy. On flat ground for short distances, a \l;wheeled grabber\u object\botgr; is a better option. When it is possible to build \l;winged bots\u object\botgj;, these represent the best solution for long distances. + +A grabber won't function underwater. What you'll need instead is a \l;subber\u object\botsub;. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the operating arm, use \c;\l;grab\u cbot\grab;\n; and \c;\l;drop\u cbot\drop;\n;. + +\t;Object \l;Category\u cbot\category; +\c;TrackedGrabber\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/botgj.txt b/help/E/object/botgj.txt new file mode 100644 index 00000000..f237bfaf --- /dev/null +++ b/help/E/object/botgj.txt @@ -0,0 +1,35 @@ +\b;\button 139; Winged Grabber +\image botgj 8 8; +Jet propelled flying bot equipped with an operating arm. + +\button 32; Grabs an object or lays it down again, at a position that is determined by one of the following options : +\button 33; The object is lying in front of the bot, on the ground or on the back of a second bot. +\button 35; The object is the bot's own power cell. +\button 34; The object is lying behind the bot, on the ground. + +The following objects can be transported : +o \l;Titanium ore\u object\titanore;. +o \l;Uranium ore\u object\uranore;. +o \l;Cube of titanium\u object\titan;. +o \l;Regular power cell\u object\power;. +o \l;Nuclear power cell\u object\atomic;. +o \l;Black box\u object\bbox;. +o \l;Keys A, B, C, and D\u object\key;. +o \l;Organic matter\u object\bullet;. + +The display at the bottom of your screen indicates the temperature of the reactor. Keep an eye on it. If the reactor overheats, the engine will stop and the bot will crash. + +Winged bots can fly across natural obstacles such as mountains or lakes but their energy supply is used up quickly. They're slow on the ground. To cover a short distance that will not call for flying, it is recommended to use a \l;wheeled grabber\u object\botgr; instead. + +A grabber won't function underwater. What you'll need instead is a \l;subber\u object\botsub;. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the operating arm, use \c;\l;grab\u cbot\grab;\n; and \c;\l;drop\u cbot\drop;\n;. + +\t;Object \l;Category\u cbot\category; +\c;WingedGrabber\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/botgr.txt b/help/E/object/botgr.txt new file mode 100644 index 00000000..8dcc5991 --- /dev/null +++ b/help/E/object/botgr.txt @@ -0,0 +1,33 @@ +\b;\button 137; Wheeled Grabber +\image botgr 8 8; +Wheeled bot equipped with an operating arm. + +\button 32; Grabs an object or lays it down again, at a position that is determined by one of the following options : +\button 33; The object is lying in front of the bot, on the ground or on the back of a second bot. +\button 35; The object is the bot's own power cell. +\button 34; The object is lying behind the bot, on the ground. + +The following objects can be transported : +o \l;Titanium ore\u object\titanore;. +o \l;Uranium ore\u object\uranore;. +o \l;Converted titanium\u object\titan;. +o \l;Regular power cell\u object\power;. +o \l;Nuclear power cell\u object\atomic;. +o \l;Black box\u object\bbox;. +o \l;Keys A, B, C, and D\u object\key;. +o \l;Organic matter\u object\bullet;. + +Wheels constitute a standard, fast and energy-saving mode of propulsion, which is perfectly adapted for a relatively flat terrain. Whenever the terrain gets sloped, it is advised to use a \l;winged shooter\u object\botfj; instead, or, if this is impossible, a \l;tracked shooter\u object\botfc;. + +A grabber won't function underwater. What you'll need instead is a \l;subber\u object\botsub;. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the operating arm, use \c;\l;grab\u cbot\grab;\n; and \c;\l;drop\u cbot\drop;\n;. + +\t;Object \l;Category\u cbot\category; +\c;WheeledGrabber\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/botgs.txt b/help/E/object/botgs.txt new file mode 100644 index 00000000..b839c9fb --- /dev/null +++ b/help/E/object/botgs.txt @@ -0,0 +1,34 @@ +\b;\button 150; Legged Grabber +\image botgs 8 8; +Ant-legged creeping bot equipped with an operating arm. + +\button 32; Grabs an object or lays it down again, at a position that is determined by one of the following options : +\button 33; The object is lying in front of the bot, on the ground or on the back of a second bot. +\button 35; The object is the bot's own power cell. +\button 34; The object is lying behind the bot, on the ground. + +The following objects can be transported : +o \l;Titanium ore\u object\titanore;. +o \l;Uranium ore\u object\uranore;. +o \l;Converted titanium\u object\titan;. +o \l;Regular power cell\u object\power;. +o \l;Nuclear power cell\u object\atomic;. +o \l;Black box\u object\bbox;. +o \l;Keys A, B, C, and D\u object\key;. +o \l;Organic matter\u object\bullet;. + +A moving legged grabber uses up half as much energy as a \l;wheeled grabber\u object\botgr;. A legged bot is also perfectly adapted to climb the steepest slopes. + +A grabber won't function underwater. What you'll need instead is a \l;subber\u object\botsub;. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the operating arm, use \c;\l;grab\u cbot\grab;\n; and \c;\l;drop\u cbot\drop;\n;. + +\t;Object \l;Category\u cbot\category; +\c;LeggedGrabber\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. + diff --git a/help/E/object/botoc.txt b/help/E/object/botoc.txt new file mode 100644 index 00000000..43fecf54 --- /dev/null +++ b/help/E/object/botoc.txt @@ -0,0 +1,18 @@ +\b;\button 154; Tracked Orga Shooter +\image botoc 8 8; +Tracked bot equipped with an orgaball cannon. + +The orgaball cannon is more effective than the \l;fireball cannon\u object\botfc;. It shoots small spheres of corrosive \l;organic matter\u object\bullet;. A \l;regular power cell\u object\power; will allow you to shoot 11 orgaball bursts. + +Tracked bots can ascend steep inclinations but they are quite slow and use a lot of energy. On flat ground for short distances, a \l;wheeled orga shooter\u object\botor; is a better option. When it is possible to build \l;winged bots\u object\botoj;, these represent the best solution for long distances. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the orgaball cannon, use \c;\l;fire\u cbot\fire;\n;. To raise or lower the aim, use \c;\l;aim\u cbot\aim;\n;. + +\t;Object \l;Category\u cbot\category; +\c;TrackedOrgaShooter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/botoj.txt b/help/E/object/botoj.txt new file mode 100644 index 00000000..70f7b99d --- /dev/null +++ b/help/E/object/botoj.txt @@ -0,0 +1,20 @@ +\b;\button 155; Winged Orga Shooter +\image botoj 8 8; +Jet propelled flying bot equipped with an orgaball cannon. + +The orgaball cannon is more effective than the \l;fireball cannon\u object\botfj;. It shoots small spheres of corrosive \l;organic matter\u object\bullet;. A \l;regular power cell\u object\power; will allow you to shoot 11 orgaball bursts. + +The display at the bottom of your screen indicates the temperature of the reactor. Keep an eye on it. If the reactor overheats, the engine will stop and the bot will crash. + +Winged bots can fly across natural obstacles such as mountains or lakes but their energy supply is used up quickly. They're slow on the ground. To cover a short distance that will not call for flying, it is recommended to use a \l;wheeled orga shooter\u object\botor; instead. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;jet\u cbot\jet;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the orgaball cannon, use \c;\l;fire\u cbot\fire;\n;. To raise or lower the aim, use \c;\l;aim\u cbot\aim;\n;. + +\t;Object \l;Category\u cbot\category; +\c;WingedOrgaShooter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/botor.txt b/help/E/object/botor.txt new file mode 100644 index 00000000..8da2ce7c --- /dev/null +++ b/help/E/object/botor.txt @@ -0,0 +1,19 @@ +\b;\button 153; Wheeled Orga Shooter +\image botor 8 8; +Wheeled bot equipped with an orgaball cannon. + +The orgaball cannon is more effective than the \l;fireball cannon\u object\botfr;. It shoots small spheres of corrosive \l;organic matter\u object\bullet;. A \l;regular power cell\u object\power; will allow you to shoot 11 orgaball bursts. + +Wheels constitute a standard, fast and energy-saving mode of propulsion, which is perfectly adapted for a relatively flat terrain. Whenever the terrain gets sloped, it is advised to instead use a \l;winged orga shooter\u object\botoj;, or, if this is impossible, a \l;tracked orga shooter\u object\botoc;. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the orgaball cannon, use \c;\l;fire\u cbot\fire;\n;. To raise or lower the aim, use \c;\l;aim\u cbot\aim;\n;. + +\t;Object \l;Category\u cbot\category; +\c;WheeledOrgaShooter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. + diff --git a/help/E/object/botos.txt b/help/E/object/botos.txt new file mode 100644 index 00000000..a1ff6d09 --- /dev/null +++ b/help/E/object/botos.txt @@ -0,0 +1,18 @@ +\b;\button 156; Legged Orga Shooter +\image botos 8 8; +Ant-legged creeping bot equipped with an orgaball cannon. + +The orgaball cannon is more effective than the \l;fireball cannon\u object\botfs;. It shoots small spheres of corrosive \l;organic matter\u object\bullet;. A \l;regular power cell\u object\power; will allow you to shoot 11 orgaball bursts. + +A moving legged orga shooter uses up half as much energy as a \l;wheeled orga shooter\u object\botor;. A legged bot is also perfectly adapted to climb the steepest slopes. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the orgaball cannon, use \c;\l;fire\u cbot\fire;\n;. To raise or lower the aim, use \c;\l;aim\u cbot\aim;\n;. + +\t;Object \l;Category\u cbot\category; +\c;LeggedOrgaShooter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/botphaz.txt b/help/E/object/botphaz.txt new file mode 100644 index 00000000..232463e1 --- /dev/null +++ b/help/E/object/botphaz.txt @@ -0,0 +1,14 @@ +\b;\button 147; Phazer Shooter +\image botphaz 8 8; +Tracked bot equipped with a very powerful phazer cannon, efficient against most kinds of enemies. When you aim upward, it can shoot up to 60 meters. It is the only weapon that can kill the \l;Alien Queen\u object\mother;. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the phazer cannon, use \c;\l;fire\u cbot\fire;\n;. To raise or lower the aim, use \c;\l;aim\u cbot\aim;\n;. + +\t;Object \l;Category\u cbot\category; +\c;PhazerShooter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/botrecy.txt b/help/E/object/botrecy.txt new file mode 100644 index 00000000..68d06f26 --- /dev/null +++ b/help/E/object/botrecy.txt @@ -0,0 +1,14 @@ +\b;\button 148; Recycler +\image botrecy 8 8; +Tracked bot designed to convert a \l;derelict bot\u object\wreck; back into a reusable \l;titanium cube\u object\titan;. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the recycling of a derelict bot, use \c;\l;recycle\u cbot\recycle;\n;. + +\t;Object \l;Category\u cbot\category; +\c;RecyclerBot\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/botsc.txt b/help/E/object/botsc.txt new file mode 100644 index 00000000..5d6424ea --- /dev/null +++ b/help/E/object/botsc.txt @@ -0,0 +1,20 @@ +\b;\button 141; Tracked Sniffer +\image botsc 8 8; +Tracked bot equipped to prospect the geological structure of the subsoil. Whenever it locates something of use, the sniffer lays down the following marks: + +- a \l;red cross\u object\stonspot; -> \l;titanium ore\u object\titanore;. +- a \l;yellow circle\u object\uranspot; -> \l;uranium ore\u object\uranore;. +- a \l;green cross\u object\enerspot; -> energy deposit, useful for a \l;power station\u object\station; or a \l;power plant\u object\energy;. + +Tracked bots can ascend steep inclinations but they are quite slow and use a lot of energy. On flat ground for short distances, a \l;wheeled sniffer\u object\botsr; is a better option. When it is possible to build \l;winged bots\u object\botsj;, these represent the best solution for long distances. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the sniffing arm, use \c;\l;sniff\u cbot\sniff;\n;. + +\t;Object \l;Category\u cbot\category; +\c;TrackedSniffer\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/botshld.txt b/help/E/object/botshld.txt new file mode 100644 index 00000000..d1bcdaa8 --- /dev/null +++ b/help/E/object/botshld.txt @@ -0,0 +1,18 @@ +\b;\button 157; Shielder +\image botshld 8 8; +Tracked bot designed to protect and defend against all \l;enemy\u object\mother; attacks within a perimeter of 10 to 25 meters. The individual shields of bots and buildings are re-energized through the shielder's defensive actions. This bot is the only way to get through narrow passages adorned with poisonous green mushrooms. + +A \l;regular power cell\u object\power; allows for a 20-second activity span with a radius of 25 meters, much too short in most cases. A \l;nuclear power cell\u object\atomic; is of course more suited to this bot. + +The energy consumption is proportional to the radius of the protective sphere. With a radius of 10 meters, the bot can work 2.5 times longer than with the maximum radius of 25 meters. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the deployment of the shield, use \c;\l;shield\u cbot\shield;\n;. + +\t;Object \l;Category\u cbot\category; +\c;Shielder\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/botsj.txt b/help/E/object/botsj.txt new file mode 100644 index 00000000..9085244f --- /dev/null +++ b/help/E/object/botsj.txt @@ -0,0 +1,22 @@ +\b;\button 142; Winged Sniffer +\image botsj 8 8; +Jet propelled flying bot equipped to prospect the geological structure of the subsoil. Whenever it locates something of use, the sniffer lays down the following marks: + +- a \l;red cross\u object\stonspot; -> \l;titanium ore\u object\titanore;. +- a \l;yellow circle\u object\uranspot; -> \l;uranium ore\u object\uranore;. +- a \l;green cross\u object\enerspot; -> energy deposit, useful for a \l;power station\u object\station; or a \l;power plant\u object\energy;. + +The display at the bottom of your screen indicates the temperature of the reactor. Keep an eye on it. If the reactor overheats, the engine stops and the bot crashes. + +Winged bots can fly across natural obstacles such as mountains or lakes but their energy supply uses up quickly. They're slow on the ground. To cover a short distance that will not call for flying, it is recommended to use a \l;wheeled sniffer\u object\botsr; instead. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;jet\u cbot\jet;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the sniffing arm, use \c;\l;sniff\u cbot\sniff;\n;. + +\t;Object \l;Category\u cbot\category; +\c;WingedSniffer\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/botsr.txt b/help/E/object/botsr.txt new file mode 100644 index 00000000..9e5609c8 --- /dev/null +++ b/help/E/object/botsr.txt @@ -0,0 +1,20 @@ +\b;\button 140; Wheeled Sniffer +\image botsr 8 8; +Wheeled bot equipped to prospect the geological structure of the subsoil. Whenever it locates something of use, the sniffer lays down the following marks: + +- a \l;red cross\u object\stonspot; -> \l;titanium ore\u object\titanore;. +- a \l;yellow circle\u object\uranspot; -> \l;uranium ore\u object\uranore;. +- a \l;green cross\u object\enerspot; -> energy deposit, useful for a \l;power station\u object\station; or a \l;power plant\u object\energy;. + +Wheels constitute a standard, fast and energy-saving mode of propulsion, which is perfectly adapted for a relatively flat terrain. Whenever the terrain gets sloped, it is advised to use a \l;winged sniffer\u object\botsj; instead, or, if this is impossible, a \l;tracked sniffer\u object\botsc;. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the sniffing arm, use \c;\l;sniff\u cbot\sniff;\n;. + +\t;Object \l;Category\u cbot\category; +\c;WheeledSniffer\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/botss.txt b/help/E/object/botss.txt new file mode 100644 index 00000000..b2bb5b53 --- /dev/null +++ b/help/E/object/botss.txt @@ -0,0 +1,20 @@ +\b;\button 152; Legged Sniffer +\image botss 8 8; +Ant-legged creeping bot equipped to prospect the geological structure of the subsoil. Whenever it locates something of use, the sniffer lays down the following marks: + +- a \l;red cross\u object\stonspot; -> \l;titanium ore\u object\titanore;. +- a \l;yellow circle\u object\uranspot; -> \l;uranium ore\u object\uranore;. +- a \l;green cross\u object\enerspot; -> energy deposit, useful for a \l;power station\u object\station; or a \l;power plant\u object\energy;. + +A moving legged shooter uses up half as much energy as a \l;wheeled sniffer\u object\botsr;. A legged bot is also perfectly adapted to climb the steepest slopes. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the sniffing arm, use \c;\l;sniff\u cbot\sniff;\n;. + +\t;Object \l;Category\u cbot\category; +\c;LeggedSniffer\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/botsub.txt b/help/E/object/botsub.txt new file mode 100644 index 00000000..4b9f8959 --- /dev/null +++ b/help/E/object/botsub.txt @@ -0,0 +1,16 @@ +\b;\button 149; Subber +\image botsub 8 8; +Amphibious tracked bot equipped with an operating claw. The subber is the only bot capable of moving and running operations underwater. + +It is best to check the \l;power cell\u object\power; readings prior to immersion since replacing or recharging it underwater is impossible. The subber can only pick up objects from the ground, as opposed to, for example, a battery from the back of another bot. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the operating claw, use \c;\l;grab\u cbot\grab;\n; and \c;\l;drop\u cbot\drop;\n;. + +\t;Object \l;Category\u cbot\category; +\c;Subber\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/bottarg.txt b/help/E/object/bottarg.txt new file mode 100644 index 00000000..4807d784 --- /dev/null +++ b/help/E/object/bottarg.txt @@ -0,0 +1,11 @@ +\b;\button 173; Target Bot +\image bottarg 8 8; +Wheeled bot intended solely for target practice. It is autonomous and its trajectory is dependant upon the nature of the exercise. + +Note that target bots, loaded as they are with \l;TNT\u object\tnt;, are extremely sensitive to shocks. + +\t;Object \l;Category\u cbot\category; +\c;TargetBot\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/bottr.txt b/help/E/object/bottr.txt new file mode 100644 index 00000000..65f185c6 --- /dev/null +++ b/help/E/object/bottr.txt @@ -0,0 +1,12 @@ +\b;\button 158; Practice Bot +\image bottr 8 8; +Wheeled bot intended solely for training and practice. Its only purpose is to help you get accustomed to the programming of the bots' various ground movements. + +\t;Instructions +To program the bot's movements, use the following commands: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +\t;Object \l;Category\u cbot\category; +\c;PracticeBot\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/bottump.txt b/help/E/object/bottump.txt new file mode 100644 index 00000000..8398f770 --- /dev/null +++ b/help/E/object/bottump.txt @@ -0,0 +1,18 @@ +\b;\button 146; Thumper +\image bottump 8 8; +Tracked bot designed to hit the ground with enormous force. The purpose of the thumping is to turn \l;ants\u object\ant; and \l;spiders\u object\spider; belly up within a radius of 100 meters. An insect on its back is not dead but will struggle to get right side up again. After approximately 60 seconds of effort, it will usually succeed. + +To visualize the zone of impact, hit the button \button 41;. Little red dots outline the circular zone for 20 seconds. + +The bot uses up a large amount of power. A thump will drain 2/5ths of a \l;regular power cell\u object\power;. + +\t;Instructions +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the thumping, use \c;\l;thump\u cbot\thump;\n;. + +\t;Object \l;Category\u cbot\category; +\c;Thumper\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/bullet.txt b/help/E/object/bullet.txt new file mode 100644 index 00000000..5df1efe5 --- /dev/null +++ b/help/E/object/bullet.txt @@ -0,0 +1,12 @@ +\b;Organic Matter +\image bullet 4 4; +The organic matter is the insects' secretion. \l;Wasps\u object\wasp; often use balls of organic matter to bombard you. You should perhaps try to get hold of some since it could allow you, given the necessary \l;analysis\u object\labo;, to discover new and strange technologies that will improve the efficiency of your bots. + +\t;Transport +All \l;grabbers\u object\botgr; and the \l;astronaut\u object\human;. + +\t;Object \l;Category\u cbot\category; +\c;OrgaMatter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/captor.txt b/help/E/object/captor.txt new file mode 100644 index 00000000..d13df6f7 --- /dev/null +++ b/help/E/object/captor.txt @@ -0,0 +1,25 @@ +\b;\button 174; Power Captor +\image captor 8 8; +The power captor acts as both a lightning conductor and a power converter. +It offers protection within a radius of 50 meters against the perilous lightning bolts of magnetic storms. Additionally, when the captor is hit by lightning, all bots and \l;power cells\u object\power; placed underneath, with the exception of the \l;nuclear power cells\u object\atomic;, are recharged. + +To visualize the zone shielded by a power captor, select it then hit the button \button 41;. Red dots outline the circular zone for 20 seconds. + +In the vastness of space, few planets suffer from magnetic storms. Among the ones you'll be visiting, only Orpheon is subject to this phenomenon. + +Note that your \l;spaceship\u object\base; can also act as a lightning conductor. However it will not recharge power cells. + +\t;Requirements for building +Any flat surface of at least 10 meters wide. + +\t;Power source +Lightning bolts. + +\t;Duration of operation +1 second. + +\t;Object \l;Category\u cbot\category; +\c;PowerCaptor\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/convert.txt b/help/E/object/convert.txt new file mode 100644 index 00000000..49836688 --- /dev/null +++ b/help/E/object/convert.txt @@ -0,0 +1,24 @@ +\b;\button 162; Converter +\image convert 8 8; +This building was designed to convert chunks of \l;titanium ore\u object\titanore; into usable \l;titanium cubes\u object\titan;. All \l;you\u object\human; need to do is place a chunk at the center of the platform and step back. The converter takes care of the rest. + +\t;Requirements for building +Any flat surface of at least 6 meters wide. + +\t;Input +Titanium ore. + +\t;Output +Titanium. + +\t;Power source +None. + +\t;Duration of operation +15 seconds. + +\t;Object \l;Category\u cbot\category; +\c;Converter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/derrick.txt b/help/E/object/derrick.txt new file mode 100644 index 00000000..4eea1369 --- /dev/null +++ b/help/E/object/derrick.txt @@ -0,0 +1,29 @@ +\b;\button 161; Derrick +\image derrick 8 8; +The derrick is intended for the extraction of raw materials. + +In order to determine the best site on which to erect a derrick, a \l;sniffer\u object\botsr; should be used to prospect the subsoil. The marks it lays down provide information about the specifics of what the derrick will be able to extract: + +- a \l;red cross\u object\stonspot; -> \l;titanium ore\u object\titanore;. +- a \l;yellow circle\u object\uranspot; -> \l;uranium ore\u object\uranore;. + +\t;Requirements for building +Any flat and geologically adequate surface of at least 2.5 meters wide. + +\t;Input +Titanium or uranium ore in the subsoil. + +\t;Output +Chunks of titanium or uranium ore. + +\t;Power source +None. + +\t;Duration of operation +10 seconds for titanium and 30 for uranium. + +\t;Object \l;Category\u cbot\category; +\c;Derrick\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/egg.txt b/help/E/object/egg.txt new file mode 100644 index 00000000..d3e11e20 --- /dev/null +++ b/help/E/object/egg.txt @@ -0,0 +1,8 @@ +\b;Alien Egg +The alien eggs are laid by the \l;Alien Queen\u object\mother;. After a short time, they will hatch and an \l;ant\u object\ant;, a \l;wasp\u object\wasp;, a \l;spider\u object\spider; or a \l;worm\u object\worm; will come out. + +\t;Object \l;Category\u cbot\category; +\c;AlienEgg\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/energy.txt b/help/E/object/energy.txt new file mode 100644 index 00000000..45a695bf --- /dev/null +++ b/help/E/object/energy.txt @@ -0,0 +1,28 @@ +\b;\button 167; Power Plant +\image energy 8 8; +The power plant is a \l;power cell\u object\power; factory. It transforms a \l;titanium cube\u object\titan; into a regular power cell fully charged and ready for use. + +A power plant requires some energy in the subsoil. If the satellite report says that energy is available only at some places, you will need a \l;sniffer bot\u object\botsr; to prospect the subsoil. The marks it lays down provide information about the specifics of its findings: a \l;green cross\u object\enerspot; means that there is an energy deposit at this location beneath the surface, which is indispensable for the construction of a power plant or a \l;power station\u object\station;. + +If the large power cell at the base of the plant remains red after the construction is completed, this means that the site is not geologically adequate. + +\t;Requirements for building +Any flat and geologically adequate surface of at least 4 meters wide. + +\t;Input +Titanium. + +\t;Output +Regular power cell. + +\t;Power source +Subsoil energy. + +\t;Duration of operation +12 seconds. + +\t;Object \l;Category\u cbot\category; +\c;PowerPlant\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/enerspot.txt b/help/E/object/enerspot.txt new file mode 100644 index 00000000..44bf6235 --- /dev/null +++ b/help/E/object/enerspot.txt @@ -0,0 +1,17 @@ +\b;Underground Energy Deposit +\image enerspot 4 4; +Whenever a \l;sniffer\u object\botsr; uncovers a source of energy in the subsoil, it lays down a green cross. The following buildings can be erected nearby : + +o \l;Power station\u object\station; +o \l;Power plant\u object\energy; + +In order to prospect the subsoil you need a \l;sniffer bot\u object\botsr;, which can also discover \l;titanium ore\u object\titanore; deposits (indicated by a \l;red cross\u object\stonspot;) or \l;uranium ore\u object\uranore; deposits (indicated by a \l;yellow circle\u object\uranspot;). + +\t;Transport +Impossible. + +\t;Object \l;Category\u cbot\category; +\c;EnergySite\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/exchange.txt b/help/E/object/exchange.txt new file mode 100644 index 00000000..2cb763a7 --- /dev/null +++ b/help/E/object/exchange.txt @@ -0,0 +1,31 @@ +\b;\button 172; Information Exchange Post +\image info 8 8; +This building stores digital information. A post can contain up to 10 pieces of information, each one referenced by a name. +For example, a post can contain 3 informations¦:\c; +\tab;"Position.x" 23.45 +\tab;"Position.y" -102.70 +\tab;"Quantity" 3.00 +\n; +To put new information, you must execute the command \c;\l;send\u cbot\send;\n;. +To read information from a post, you must execute the command \c;\l;receive\u cbot\receive;\n;. + +\t;Requirements for building +Any flat surface of at least 2.5 meters wide. + +\t;Input +None. + +\t;Output +Digital information. + +\t;Power source +None. + +\t;Duration of operation +1 second. + +\t;Object \l;Category\u cbot\category; +\c;ExchangePost\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/factory.txt b/help/E/object/factory.txt new file mode 100644 index 00000000..cc86ca11 --- /dev/null +++ b/help/E/object/factory.txt @@ -0,0 +1,33 @@ +\b;\button 160; Bot Factory +\image factory 8 8; +This building is intended for the manufacturing of bots using \l;titanium\u object\titan;. + +1) Place the titanium cube inside the factory. +2) Step back out. +3) Select the factory. +4) Click on the button showing the diagram of the bot you want the factory to assemble (e.g. \button 137; for a \l;wheeled grabber\u object\botgr;). + +The finished bot does not include an onboard \l;power cell\u object\power;. You'll need to supply it with one for it to be able to leave the factory. + +The list of feasible bots will depend upon the research your \l;research center\u object\research; has completed at this time. + +\t;Requirements for building +Any flat surface of at least 7.5 meters wide. + +\t;Input +Titanium. + +\t;Output +Completed bot. + +\t;Power source +None. + +\t;Duration of operation +15 seconds. + +\t;Object \l;Category\u cbot\category; +\c;BotFactory\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/flag.txt b/help/E/object/flag.txt new file mode 100644 index 00000000..4740d2ff --- /dev/null +++ b/help/E/object/flag.txt @@ -0,0 +1,22 @@ +\b;Colored Flag +\image flag 4 4; +The colored flags are helpful to mark strategic locations or positions that \l;you\u object\human; will need to find again. Flags appear on the mini-map in the shape of a cross of the same color as the flag. + +Use the buttons \button 118; and \button 119; to plant and remove flags, the colors of which you can choose with the buttons above. + +When your mini-map is out of order, the fact that flags follow the direction of the wind can help you to find your way and not to walk around in circles. + +When programming, you can use flags to give a bot a reference to a certain position: the instruction \c;\l;radar\u cbot\radar;\n; allows bots to know the exact position of a flag of a given color. + +\t;Transport +Impossible. + +\t;Object \l;Category\u cbot\category; +\c;BlueFlag\n; +\c;RedFlag\n; +\c;GreenFlag\n; +\c;YellowFlag\n; +\c;VioletFlag\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/goal.txt b/help/E/object/goal.txt new file mode 100644 index 00000000..d59fa12f --- /dev/null +++ b/help/E/object/goal.txt @@ -0,0 +1,8 @@ +\b;Finishing Pad +The finishing pad is an objective to be reached in some exercises. + +\t;Object \l;Category\u cbot\category; +\c;GoalArea\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/human.txt b/help/E/object/human.txt new file mode 100644 index 00000000..399384af --- /dev/null +++ b/help/E/object/human.txt @@ -0,0 +1,19 @@ +\b;\button 136; Astronaut +\image human 8 8; +The astronaut is you within the game. + +If you die, the mission immediately fails. + +You can construct buildings with the help of the neutron gun holstered to your survival kit. The survival kit allows you, in most missions, to fly, thanks to the reactor placed underneath, or to swim with no time limit. You can carry most objects but the weight will slow down your movements considerably. Flying, swimming and walking underwater are also made impossible if you are carrying an object. The use of a \l;grabber\u object\botgr; or a \l;subber\u object\botsub; is advised for tasks such as these. + +You cannot carry \l;uranium ore\u object\uranore; because of the risks attached to radioactivity. + +A special button \button 111; allows you to ensure that the ground around you is flat. This is important since building is only possible on a flat surface. A flat surface is designated green while a sloping one is red. + +A button \button 118; allows you to mark a location with \l;flags\u object\flag; of various colors. This can help you not to get lost, to find important positions again, or to indicate a position to a bot. 5 flags of 5 different colors are at your disposal. You can remove a flag by using the next button \button 119; and store it for further use. + +\t;Object \l;Category\u cbot\category; +\c;Me\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/huston.txt b/help/E/object/huston.txt new file mode 100644 index 00000000..8bcaa64e --- /dev/null +++ b/help/E/object/huston.txt @@ -0,0 +1,11 @@ +\b;\button 176; Mission Control +\image huston 8 8; +Earth control center for all \l;your\u object\human; space missions. Though still named after the well-known mission control of the old days, "Houston" is actually located in the middle of the Nevada Desert, the new center for space exploration activities. + +The Mission Control Center watches over you day and night, and a whole team of scientists and engineers are working hard trying to find a solution to all the problems that you encounter. + +\t;Object \l;Category\u cbot\category; +\c;Houston\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/key.txt b/help/E/object/key.txt new file mode 100644 index 00000000..e21d292f --- /dev/null +++ b/help/E/object/key.txt @@ -0,0 +1,17 @@ +\b;Keys A, B, C and D +\image key 4 4; +The keys give \l;you\u object\human; access to the \l;vault\u object\safe;. You'll need 4 of them. + +o Key A, blue and triangle-shaped +o Key B, red and pentagon-shaped +o Key C, green and shaped like a 6-pointed star +o Key D, yellow and circular + +\t;Transport +All \l;grabbers\u object\botgr; and the \l;astronaut\u object\human;. + +\t;Objects \l;Category\u cbot\category; +\c;KeyA\n;, \c;KeyB\n;, \c;KeyC\n; and \c;KeyD\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/labo.txt b/help/E/object/labo.txt new file mode 100644 index 00000000..d6a03462 --- /dev/null +++ b/help/E/object/labo.txt @@ -0,0 +1,24 @@ +\b;\button 166; Autolab +\image labo 8 8; +The lab is intended for the analysis of \l;organic matter\u object\bullet;. It will help \l;you\u object\human; become familiar with the insects' very own technology and perhaps even use it to your advantage. Place a chunk of \l;organic matter\u object\bullet; on the platform, select the lab, and click the button corresponding to the desired research program. + +\t;Requirements for building +Any flat surface of at least 6 meters wide. + +\t;Input +Organic matter. + +\t;Output +New and improved technologies. + +\t;Power source +None. + +\t;Duration of operation +20 seconds. + +\t;Object \l;Category\u cbot\category; +\c;AutoLab\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/lrv.txt b/help/E/object/lrv.txt new file mode 100644 index 00000000..e4271afc --- /dev/null +++ b/help/E/object/lrv.txt @@ -0,0 +1,9 @@ +\b;Apollo Lunar Roving Vehicle + + + +\c;< no archive picture available >\n; + + + +The Lunar Jeep (LRV) was brought to the moon on July 30th 1971 by the astronauts David Scott and Jim Irwin from Apollo mission 15. Its batteries are still partly charged, which allows you to remote control it. But this old-fashioned technology will be of no use to you. diff --git a/help/E/object/mine.txt b/help/E/object/mine.txt new file mode 100644 index 00000000..6da1b95c --- /dev/null +++ b/help/E/object/mine.txt @@ -0,0 +1,14 @@ +\b;Mine +\image mine 8 8; +Mines were a defensive weapons system used by the first expedition. Because of the dangers this system causes for the mission itself, they are no longer used in your expedition. In some exercises mines are used to learn how to avoid obstacles. There is no way to remove them or to create new ones. + +With a \l;practice bot\u object\bottr;, don't get any closer than 2 meters to the position given by the instruction \l;radar\u cbot\radar;. + +\t;Transport +Impossible. + +\t;Object \l;Category\u cbot\category; +\c;Mine\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/mother.txt b/help/E/object/mother.txt new file mode 100644 index 00000000..bb26c86a --- /dev/null +++ b/help/E/object/mother.txt @@ -0,0 +1,15 @@ +\b;Alien Queen +\image mother 8 8; +This huge insect is the mother of them all. It lays \l;eggs\u object\egg; and from these eggs will hatch all the various kinds of insects \l;you\u object\human;'re likely to encounter. All of them are extremely hazardous to yourself and your mission. The queen's protective shell is particularly resistant to attack. + +It gives birth to the following insects : +o \l;ants\u object\ant; +o \l;spiders\u object\spider; +o \l;wasps\u object\wasp; +o \l;worms\u object\worm; + +\t;Object \l;Category\u cbot\category; +\c;AlienQueen\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/nest.txt b/help/E/object/nest.txt new file mode 100644 index 00000000..c14e16f2 --- /dev/null +++ b/help/E/object/nest.txt @@ -0,0 +1,8 @@ +\b;Nest +The alien nest is an odd structure out of which \l;organic matter\u object\bullet; erupts on a regular basis. \l;Wasps\u object\wasp; visit nests regularly to collect ammunition that they will use to bombard your bots, buildings and yourself. + +\t;Object \l;Category\u cbot\category; +\c;AlienNest\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/nuclear.txt b/help/E/object/nuclear.txt new file mode 100644 index 00000000..6d06b3f3 --- /dev/null +++ b/help/E/object/nuclear.txt @@ -0,0 +1,24 @@ +\b;\button 170; Nuclear Plant +\image nuclear 8 8; +The nuclear plant is a \l;nuclear power cell\u object\atomic; factory. It transforms a chunk of \l;uranium ore\u object\uranore; into a \l;nuclear power cell\u object\atomic; fully charged and ready for use. + +\t;Requirements for building +Any flat surface of at least 10 meters wide. + +\t;Input +Uranium ore. + +\t;Output +Nuclear power cell. + +\t;Power source +None. + +\t;Duration of operation +30 seconds. + +\t;Object \l;Category\u cbot\category; +\c;NuclearPlant\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/power.txt b/help/E/object/power.txt new file mode 100644 index 00000000..03e2bc2b --- /dev/null +++ b/help/E/object/power.txt @@ -0,0 +1,16 @@ +\b;Regular Power Cell +\image power 4 4; +A power cell supplies the bots and a few buildings with energy. + +An entirely red power cell is empty. The green section indicates the remaining capacity. A power cell can be recharged using a \l;power station\u object\station;. A \l;power plant\u object\energy; is needed to produce a new and fully charged power cell. + +The capacity of a regular power cell is 100 times smaller than that of a \l;nuclear power cell\u object\atomic; produced by a \l;nuclear plant\u object\nuclear; using \l;uranium ore\u object\uranore;. + +\t;Transport +All \l;grabbers\u object\botgr; and the \l;astronaut\u object\human;. + +\t;Object \l;Category\u cbot\category; +\c;PowerCell\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/radar.txt b/help/E/object/radar.txt new file mode 100644 index 00000000..453f2ea9 --- /dev/null +++ b/help/E/object/radar.txt @@ -0,0 +1,26 @@ +\b;\button 168; Radar +\image radar 8 8; +The radar indicates the direction of the nearest \l;enemy\u object\mother;. Moreover, the information given by the radar allows the mini-map at the bottom right corner of your screen to show the position of all bots, buildings and enemies as small squares and triangles of different colors. + +Radar stations also act as relays for communication with the Earth from distant planets. + +\t;Requirements for building +Any flat surface of at least 2.5 meters wide. + +\t;Input +None. + +\t;Output +Information for the mini-map. + +\t;Power source +None. + +\t;Duration of operation +Constant. + +\t;Object \l;Category\u cbot\category; +\c;RadarStation\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/repair.txt b/help/E/object/repair.txt new file mode 100644 index 00000000..4adac267 --- /dev/null +++ b/help/E/object/repair.txt @@ -0,0 +1,24 @@ +\b;\button 169; Repair Center +\image repair 8 8; +The repair center regenerates the shield on damaged bots. A bot's shield will absorb a certain amount of \l;enemy\u object\mother; hits. If there is no shield left, this means that the bot itself, when hit next, will be destroyed. + +\t;Requirements for building +Any flat surface of at least 6 meters wide. + +\t;Input +Damaged bot. + +\t;Output +Repaired bot with regenerated shield. + +\t;Power source +None. + +\t;Duration of operation +A few seconds depending on the repair job to be done. + +\t;Object \l;Category\u cbot\category; +\c;RepairCenter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/research.txt b/help/E/object/research.txt new file mode 100644 index 00000000..47e66333 --- /dev/null +++ b/help/E/object/research.txt @@ -0,0 +1,27 @@ +\b;\button 163; Research Center +\image research 8 8; +The research center is an enormous computer. Its most useful feature is its ability to come up with new technologies as well as improvements on existing ones regarding buildings and bots in particular. + +The 65'536 processors it contains use up a large amount of energy. +Each research program necessitates a brand new and fully charged \l;power cell\u object\power; + +\t;Requirements for building +Any flat surface of at least 5 meters wide. + +\t;Input +Request for research. + +\t;Output +New and improved technologies. + +\t;Power source +Regular or nuclear power cell. + +\t;Duration of operation +Between 9 seconds and 1 minute depending on the research. + +\t;Object \l;Category\u cbot\category; +\c;ResearchCenter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/safe.txt b/help/E/object/safe.txt new file mode 100644 index 00000000..79bc849e --- /dev/null +++ b/help/E/object/safe.txt @@ -0,0 +1,9 @@ +\b;\button 175; Vault +\image safe 8 8; +This dome-shaped building was conceived by the first expedition. Its purpose was to offer protection to a new type of advanced bot. To protect it from insect attacks, the vault was locked by 4 \l;keys\u object\key;. Only after you find the 4 keys and place each one of them on their corresponding slots will you be given access to the bot. + +\t;Object \l;Category\u cbot\category; +\c;Vault\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/spider.txt b/help/E/object/spider.txt new file mode 100644 index 00000000..7e65b27b --- /dev/null +++ b/help/E/object/spider.txt @@ -0,0 +1,9 @@ +\b;Spider +\image spider 8 8; +Spiders work like suicide commandoes: whenever a spider gets within a close enough range of its target, it inflates its abdomen and bursts into a multitude of tiny burning fragments. These fragments will set fire to everything they get in contact with. Luckily the spider won't survive. + +\t;Object \l;Category\u cbot\category; +\c;AlienSpider\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/start.txt b/help/E/object/start.txt new file mode 100644 index 00000000..a4523e12 --- /dev/null +++ b/help/E/object/start.txt @@ -0,0 +1,8 @@ +\b;Starting Pad +The starting pad is a platform used in some exercises. + +\t;Object \l;Category\u cbot\category; +\c;StartArea\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/station.txt b/help/E/object/station.txt new file mode 100644 index 00000000..17ad780d --- /dev/null +++ b/help/E/object/station.txt @@ -0,0 +1,28 @@ +\b;\button 164; Power Station +\image station 8 8; +The power station extracts energy from the underground and recharges \l;regular power cells\u object\power; through induction. To recharge a power cell loaded at the back of a bot, just move the bot to the center of the platform and wait a few seconds. A \l;power cell\u object\power; carried at arm's length can also be recharged. \l;Nuclear power cells\u object\atomic; are non-rechargeable. + +A power plant needs some energy in the subsoil. If the satellite report says that energy is available only at some places, you will need a \l;sniffer bot\u object\botsr; to prospect the subsoil. The marks it lays down provide information about the specifics of its findings: a \l;green cross\u object\enerspot; means that there is an energy deposit at this location beneath the surface, which is indispensable to the construction of a power station or a \l;power plant\u object\energy;. + +The large power cell at the top of the station remaining red after the construction is completed can only mean that the site is not geologically adequate. + +\t;Requirements for building +Any flat and geologically adequate surface at least 6 meters wide. + +\t;Input +Empty power cell. + +\t;Output +Recharged power cell. + +\t;Power source +Subsoil energy. + +\t;Duration of operation +A few seconds, depending on the capacity to be recharged. + +\t;Object \l;Category\u cbot\category; +\c;PowerStation\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/stonspot.txt b/help/E/object/stonspot.txt new file mode 100644 index 00000000..2c9f4deb --- /dev/null +++ b/help/E/object/stonspot.txt @@ -0,0 +1,14 @@ +\b;Underground Titanium Deposit +\image stonspot 4 4; +A red cross reveals the presence of a stratum of \l;titanium ore\u object\titanore; in the subsoil. It will be possible to extract it using a \l;derrick\u object\derrick;. + +A \l;sniffer\u object\botsr; will lay down a red cross each time it uncovers a deposit. \l;Sniffer bots\u object\botsr; can also detect the presence of \l;uranium ore\u object\uranore; as indicated by a \l;yellow circle\u object\uranspot; and of energy as indicated by a \l;green cross\u object\enerspot;. + +\t;Transport +Impossible. + +\t;Object \l;Category\u cbot\category; +\c;TitaniumSite\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/titan.txt b/help/E/object/titan.txt new file mode 100644 index 00000000..2e0d306d --- /dev/null +++ b/help/E/object/titan.txt @@ -0,0 +1,14 @@ +\b;Titanium +\image titan 4 4; +Titanium is indispensable for the construction of buildings, \l;bots\u object\factory; and \l;regular power cells\u object\energy;. There is usually some left on the \l;spaceship\u object\base; when you embark on a new mission. + +If more is needed, you'll have to \l;convert\u object\convert; chunks of \l;titanium ore\u object\titanore; into usable titanium cubes. + +\t;Transport +All \l;grabbers\u object\botgr; and the \l;astronaut\u object\human;. + +\t;Object \l;Category\u cbot\category; +\c;Titanium\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/titanore.txt b/help/E/object/titanore.txt new file mode 100644 index 00000000..a42551d3 --- /dev/null +++ b/help/E/object/titanore.txt @@ -0,0 +1,14 @@ +\b;Titanium Ore +\image titanore 4 4; +\l;Titanium\u object\titan; is indispensable for the construction of buildings, \l;bots\u object\factory; and \l;regular power cells\u object\energy;. The titanium \l;you\u object\human; see in its usable, cube shaped form has been \l;converted\u object\convert; from raw chunks of titanium ore. + +Titanium ore can be found either directly on the surface or in the subsoil. In the latter case, it needs to be first located and identified by a \l;sniffer\u object\botsr;, then extracted using a \l;derrick\u object\derrick;. If a sniffer identifies a titanium ore deposit, it lays down a \l;red cross\u object\stonspot;. + +\t;Transport +All \l;grabbers\u object\botgr; and the \l;astronaut\u object\human;. + +\t;Object \l;Category\u cbot\category; +\c;TitaniumOre\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/tnt.txt b/help/E/object/tnt.txt new file mode 100644 index 00000000..264d5acf --- /dev/null +++ b/help/E/object/tnt.txt @@ -0,0 +1,12 @@ +\b; Explosive (TNT) +\image tnt 4 4; +A TNT charge is extremely sensitive. You should approach it with caution so as not to hit it or give it any kind of shock. The risk is minimized once the explosive is within a \l;grabber\u object\botgr;'s grasp. + +\t;Transport +All \l;grabbers\u object\botgr; and the \l;astronaut\u object\human;. + +\t;Object \l;Category\u cbot\category; +\c;TNT\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/tower.txt b/help/E/object/tower.txt new file mode 100644 index 00000000..27443a6d --- /dev/null +++ b/help/E/object/tower.txt @@ -0,0 +1,22 @@ +\b;\button 165; Defense Tower +\image tower 8 8; +The tower constitutes the best defense against \l;enemy\u object\mother; attacks, whether they originate on the ground or from the skies. + +The tower requires either a \l;regular\u object\power; or a \l;nuclear\u object\atomic; power cell. A regular power cell provides a capacity for 8 shots. A nuclear power cell is of course preferable. The tower starts blinking when it runs out of power. + +The range is 40 meters. To visualize it, select the tower then hit the button \button 41;. Red dots outline the circular zone for 20 seconds. + +\t;Requirements for building +Any flat surface of at least 3.5 meters wide. + +\t;Power source +Regular or nuclear power cell. + +\t;Duration of operation +1 second. + +\t;Object \l;Category\u cbot\category; +\c;DefenseTower\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/uranore.txt b/help/E/object/uranore.txt new file mode 100644 index 00000000..354f2a25 --- /dev/null +++ b/help/E/object/uranore.txt @@ -0,0 +1,16 @@ +\b;Uranium Ore +\image uranore 4 4; +Uranium ore is essential to the production of \l;nuclear power cells\u object\atomic;. + +It is to be found on the surface or in the subsoil. In the latter case, it needs to be first located and identified by a \l;sniffer\u object\botsr;, then extracted using a \l;derrick\u object\derrick;. If a sniffer identifies a deposit of uranium ore, it lays down a \l;yellow circle\u object\uranspot;. + +A \l;nuclear plant\u object\nuclear; will then take care of converting the chunk into a new and fully charged \l;nuclear power cell\u object\atomic;. + +\t;Transport +All \l;grabbers\u object\botgr;. Due to its radioactivity, the \l;astronaut\u object\human; can not transport it. + +\t;Object \l;Category\u cbot\category; +\c;UraniumOre\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/uranspot.txt b/help/E/object/uranspot.txt new file mode 100644 index 00000000..2f90e070 --- /dev/null +++ b/help/E/object/uranspot.txt @@ -0,0 +1,15 @@ +\b; Underground Uranium Deposit +\image uranspot 4 4; +A yellow circle reveals the presence of a stratum of \l;uranium ore\u object\uranore; in the subsoil. It will be possible to extract it using a \l;derrick\u object\derrick;. + +A \l;sniffer\u object\botsr; will lay down a yellow circle each time it uncovers a deposit. \l;Sniffer bots\u object\botsr; can also detect the presence of \l;titanium ore\u object\titanore; as indicated by a \l;red cross\u object\stonspot; and of energy as indicated by a \l;green cross\u object\enerspot;. + + +\t;Transport +Impossible. + +\t;Object \l;Category\u cbot\category; +\c;UraniumSite\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/wasp.txt b/help/E/object/wasp.txt new file mode 100644 index 00000000..19c70649 --- /dev/null +++ b/help/E/object/wasp.txt @@ -0,0 +1,11 @@ +\b;Wasp +\image wasp 8 8; +The wasp is a formidable enemy, very hard to shoot down since its flying is particularly swift. Wasps carry balls of \l;organic matter\u object\bullet; that they will hurl at your bots and buildings and at yourself from above. + +The \l;defense tower\u object\tower; is the easiest way to get rid of them. + +\t;Object \l;Category\u cbot\category; +\c;AlienWasp\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/waypoint.txt b/help/E/object/waypoint.txt new file mode 100644 index 00000000..e3d322c0 --- /dev/null +++ b/help/E/object/waypoint.txt @@ -0,0 +1,12 @@ +\b;Checkpoint +\image waypoint 4 4; +In the exercises, blue crosses indicate positions that have to be crossed. They disappear as soon as a \l;practice bot\u object\bottr; crosses them. + +\t;Transport +Impossible. + +\t;Object \l;Category\u cbot\category; +\c;WayPoint\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/worm.txt b/help/E/object/worm.txt new file mode 100644 index 00000000..8644162b --- /dev/null +++ b/help/E/object/worm.txt @@ -0,0 +1,11 @@ +\b;Worm +\image worm 8 8; +Worms transmit viruses to programmed bots. The virus alters the programming to such an extent that the bot either functions in a very erratic way or stops functioning altogether. + +Worms live in the subsoil but sometimes emerge and crawl on the surface. When they are underground they are undetectable and indestructible. + +\t;Object \l;Category\u cbot\category; +\c;AlienWorm\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/object/wreck.txt b/help/E/object/wreck.txt new file mode 100644 index 00000000..dd0315e6 --- /dev/null +++ b/help/E/object/wreck.txt @@ -0,0 +1,10 @@ +\b;Derelict bot +A derelict bot is what's left of a bot after it has been disabled by a \l;spider\u object\spider; or by friendly fire. + +A \l;recycler\u object\botrecy; can convert a derelict bot back into a reusable \l;titanium cube\u object\titan;. + +\t;Object \l;Category\u cbot\category; +\c;Wreck\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/E/tant1.txt b/help/E/tant1.txt new file mode 100644 index 00000000..950b9bac --- /dev/null +++ b/help/E/tant1.txt @@ -0,0 +1,16 @@ +\b;Objective +As a defense against several giant ants attacking from the north, rotate the bot when shooting in order to perform barrage fire. + +\t;Program +When you are radio-guiding a bot, you can rotate the cannon during the burst in order to sweep a whole zone. You can also do this when programming the bot, but you have to turn the whole bot with the instruction \c;\l;motor\u cbot\motor;( , )\n;. This instruction asks for two numbers: the speed of the left-hand motor, and the speed of the right-hand motor. These numbers must range between -1 and +1.\c; motor(1,1);\n; moves the bot forward with maximum speed (both motors at full power).\c; motor(-1,-1);\n; moves the bot backward with maximum speed.\c; motor(1,0.9);\n; moves the bot forward with a slight turn to the right: the left-hand motor turns a little faster than the right-hand motor. And \c;motor(1,-1);\n; will turn the bot clockwise on the spot: the left-hand motor moves forward, the right-hand motor moves backward. + +After a \l;motor\u cbot\motor; instruction the motors will keep this speed until the next \c;motor\n;, \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n; or \c;\l;goto\u cbot\goto;\n; instruction. For example, if you perform a rotation on the spot with \c;motor(1,-1);\n; and afterward you shoot with \c;fire(1);\n;, the bot will continue to turn during the burst, and will sweep a whole zone. + +The ants attack from the north. In order to sweep the whole zone north of the bot, first turn 90 degrees left with \c;turn(90);\n;, then repeat always with \c;\l;while\u cbot\while; (true)\n; the following instructions: +o rotate clockwise with \c;motor(1,-1);\n; +o a 2 seconds burst with \c;fire(2);\n; +o rotate counter-clockwise with \c;motor(-1,1);\n; +o a 2 seconds burst. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/tant2.txt b/help/E/tant2.txt new file mode 100644 index 00000000..a775f77f --- /dev/null +++ b/help/E/tant2.txt @@ -0,0 +1,33 @@ +\b;Objective +As a defense against ants attacking from all sides, adapt the program \c;Spider2\n; in order to fly at a given altitude. + +\t;Program +The program necessary for this task is somewhat similar to the program \c;Spider2\n; that looks for the closest ant, turns towards it and fires: +\c; +\s;extern void object::Spider2() +\s;{ +\s; object item; +\s; +\s; while (true) +\s; { +\s; item = radar(AlienSpider); +\s; turn(direction(item.position)); +\s; fire(1); +\s; } +\s;} +\n; +You can copy-paste it to the editor, and adapt it. Replace \c;radar(AlienSpider);\n; by \c;radar(AlienAnt);\n;, and write before the \c;while\n; loop another loop that activates the jet beneath the \l;winged shooter\u object\botfj; until the bot reaches an altitude of 20 meters. + +The instruction \c;\l;jet\u cbot\jet;()\n; controls the jet beneath winged bots. The number in brackets must range between \c;-1\n; and \c;1\n;.\c; jet(1);\n; moves the bot upward with maximum speed.\c; jet(-1);\n; moves the bot downward with maximum speed, and \c;jet(0);\n; stabilizes the altitude. As the bot must reach a precise altitude, move it upward slowly with \c;jet(0.2);\n;, wait until it has reached the desired height, then stabilize the altitude with \c;jet(0);\n;. + +In order to "wait until it has reached the desired height", we need a conditional loop: the instructions inside the loop will be repeated only as long as a certain condition is true. The altitude of the bot is given by \c;position.z\n;. We already saw that \c;position\n; gives the position of the bot. And a position is given by the three coordinates x, y and z: the x-axis is the axis west-east, the y-axis is the axis south-north, and the z-axis is the vertical axis. Therefore we must wait while \c;position.z\n; is smaller than 20: +\c; +\s; while (position.z < 20) +\s; { +\s; wait(0.2); +\s; } +\n; +After waiting 0.2 seconds, the program will check if the altitude is still below 20 meters. If this is the case, it will wait a little more, if not, the program continues after the loop, i.e. after the closing brace \c;}\n;. Do not forget after the loop to stabilize the altitude with \c;jet(0);\n;. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/tant3.txt b/help/E/tant3.txt new file mode 100644 index 00000000..0798edad --- /dev/null +++ b/help/E/tant3.txt @@ -0,0 +1,40 @@ +\b;Objective +Adapt the program \c;Tower1\n; in order to avoid wasting energy when shooting at ants that are out of range. + +\t;Program +The program \c;Tower1\n; shoots in the direction of the closest ant, even if it is still out of range: +\c; +\s;extern void object::Tour1() +\s;{ +\s; object item; +\s; +\s; jet(0.2); +\s; while(position.z < 20) +\s; { +\s; wait(0.2); +\s; } +\s; jet(0); +\s; +\s; while(true) +\s; { +\s; item = radar(AlienAnt); +\s; turn(direction(item.position)); +\s; fire(1); +\s; } +\s;} +\n; +If the bot must perform the same task than before with only a \l;regular power cell\u object\power;, you can insert a loop that waits until the ant is close enough, i.e. until the ant is at less than 40 meters. Only one burst will be needed for every ant then. + +You can give the instruction \c;\l;radar\u cbot\radar();\n; more parameters (numbers) indicating where the radar should look for the ants. For example \c;radar(AlienAnt,0,360,0,40);\n; will only look for ants that are closer than 40 meters. The two first numbers tell the radar to search in all directions, the two last numbers tell the radar to detect only ants that are at a distance between 0 and 40 meters. If no ant is found that is closer than 40 meters, the instruction \c;\l;radar\u cbot\radar();\n; returns the value \c;null\n;. We can then write a conditional loop similar to the one written in the last exercise that waits as long as there is no ant closer than 40 meters: +\c; +\s; while (radar(AlienAnt, 0, 360, 0, 40) == null) +\s; { +\s; wait(0.2); +\s; } +\n; +Notice that two equal signs "==" are needed to perform a comparison of equality. + +Just insert these lines before the instruction \c;fire(0);\n;, and the bot will wait before shooting until the ant is closer than 40 meters. Like this a regular power cell is enough to kill all ants. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/tant4.txt b/help/E/tant4.txt new file mode 100644 index 00000000..7c58831f --- /dev/null +++ b/help/E/tant4.txt @@ -0,0 +1,10 @@ +\b;Objectif +Program a \l;winged shooter\u object\botfj; to hunt all ants in the region. + +\t;Program +In this swamp, a wheeled or tracked shooter is of little use. And ants, in opposition to spiders, keep moving: you can not just turn towards the closest ant, move forward and shoot. + +The easiest way to solve the problem consists in flying at a height of 10 meters, aiming downward with \c;aim(-20);\n;, and approaching the ant with a conditional loop as long as the \l;distance\u cbot\dist; is greater than 20m. In this conditional loop, you must look for the closest ant, turn towards it, set the motors at full speed with \c;motor(1,1);\n;, and wait a little, for example 0.2 seconds. All these instructions must be repeated until the ant is at less than 20 meters. Then just shoot it. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/tant5.txt b/help/E/tant5.txt new file mode 100644 index 00000000..e822f2fb --- /dev/null +++ b/help/E/tant5.txt @@ -0,0 +1,52 @@ +\b;Objective +Adapt the flying height of the \l;winged shooter\u object\botfj; to the terrain. + +\t;Program +Here is one more time the program of the previous exercise that hunts ants: +\c; +\s;extern void object::JetFighter1() +\s;{ +\s; object item; +\s; +\s; aim(-20); +\s; jet(0.2); +\s; while (position.z < 10) +\s; { +\s; wait(0.2); +\s; } +\s; jet(0); +\s; +\s; while (true) +\s; { +\s; while (radar(AlienAnt, 0, 360, 0, 20) == null) +\s; { +\s; item = radar(AlienAnt); +\s; turn(direction(item.position)); +\s; motor(1,1); +\s; wait(0.2); +\s; } +\s; fire(1); +\s; } +\s;} +\n; +The bot always stays at an altitude of 10m above sea level. This is not adapted to the mountainous terrain of the present exercise, the bot has got to adapt to the terrain. The best way to do so is to insert just before the \c;wait(0.2);\n; a test to see if the height above ground is too low or too high, and to react accordingly. + +We already saw that \c;position.z\n; gives the altitude above sea level. \c;\l;topo\u cbot\topo;(position)\n; gives the altitude of the ground at the position of the bot. If we want the bot to stay at an altitude between 6 and 9m above ground, we must treat the following cases: if \c;position.z-topo(position)\n; is smaller than 6, the bot must climb with \c;jet(1);\n;. If \c;position.z-topo(position)\n; is greater than 9, the bot must go down with \c;jet(-1);\n;. In order to program these tests, use the instruction \c;\l;if\u cbot\if;\n;, that executes the instructions in braces only once if the condition is true: +\c; +\s; jet(0); +\s; if (position.z-topo(position) < 6) +\s; { +\s; jet(1); +\s; } +\s; +\s; if (position.z-topo(position) > 9) +\s; { +\s; jet(-1); +\s; } +\n; +Before starting the testing, stabilize the altitude with \c;jet(0);\n;: in case the height above ground lies between 6 and 9m, the bot must neither climb nor go down. If afterwards either \c;jet(1);\n; or \c;jet(-1);\n; is executed, it will cancel the previous \c;jet(0);\n;. + +Just insert these lines before the \c;wait(0.2)\n;, and the bot will adapt to the terrain. You can then delete the first lines of the program that set the initial altitude at 10m. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/tcell1.txt b/help/E/tcell1.txt new file mode 100644 index 00000000..f001d85c --- /dev/null +++ b/help/E/tcell1.txt @@ -0,0 +1,38 @@ +\b;Objective +Program the \l;grabber bot\u object\botgr; to change the \l;power cell\u object\power; of the \l;winged shooter\u object\botfj;. The winged shooter can then shoot the spiders. + +\t;Procedure +1) Program the \l;grabber bot\u object\botgr;. +2) Execute the program with the arrow button \button 21;. +The \l;winged shooter\u object\botfj; is already programmed, it will do its job as soon as it has got a new power cell. + +\t;Program +You will need the following instructions: +\c; +\s;grab();\n; +\n;Takes whatever there is in front of the bot. +\c; +\s;drop();\n; +\n;Drops whatever the bot is carrying in front. +\c; +\s;turn();\n; +\n;We have seen this instruction already in the previous exercise: it performs a rotation of a certain angle, given in degrees. + +Let us see the beginning of the program: +o pick up the empty power cell with \c;grab();\n; +o turn left 90 degrees (quarter turn) with \c;turn(90)\n; +o drop the empty cell with \c;drop();\n; +o etc. + +It is up to you now to write the rest of the program! + +If you have got a problem, you can always look at the solution: select the \c;Solution\n; program, and click the braces button \button 22;. + +\t;Remarks +Be careful to write the instructions precisely, respecting lower and upper case letters. + +Always write one instruction per line, finishing each line with a semicolon. + +In case your program does not do exactly what you wanted, you can put the bot back at the starting point with the button \button 59;. You can also start over again from the beginning (hit the key "Esc", the click "Restart"). The program you have written will not be lost. + +\key;\key help;\norm; allows you to review these instructions at all times. diff --git a/help/E/tcell2.txt b/help/E/tcell2.txt new file mode 100644 index 00000000..6d989599 --- /dev/null +++ b/help/E/tcell2.txt @@ -0,0 +1,48 @@ +\b;Objective +Power the \l;winged shooters\u object\botfj; with \l;power cells\u object\power;, so that they can kill the ants in the ant nest located in a hole north of your position. + +\t;Program +The \l;wheeled grabber\u object\botgr; must go to a \l;power cell\u object\power;, grab it, go to a \l;winged shooter\u object\botfj;, and drop the cell. This task is very similar to the task performed in the previous exercise. Here is this program again: +\c; +\s;extern void object::Titanium2() +\s;{ +\s; object item; +\s; +\s; item = radar(TitaniumOre); +\s; goto(item.position); +\s; grab(); +\s; +\s; item = radar(Converter); +\s; goto(item.position); +\s; drop(); +\s;} +\n; +The best way to solve the present exercise is to copy \button 61; the program above into the clipboard (from \c;object\n; to \c;drop();\n;), and paste \button 62; it into the program editor. Then you just have to make the necessary changes in order to adapt it to the new task. + +Instead of looking for titanium ore (\c;TitaniumOre\n;), look for a power cell (\c;PowerCell\n;). Instead of going to a converter (\c;Converter\n;), go to a winged shooter (\c;WingedShooter\n;). As soon as the winged shooter has got a new power cell, it will get down to work. + +If you want to know more about the "names" of the different objects in the programming language, please refer to the \l;text about categories\u cbot\category;. + +\t;Further improvement: loops +Once the program explained above works properly, you can improve it in order to repeat the task over and over again. Like this you will not have to execute the program several times in order to power several bots. + +All programs written until now execute all instructions only once, one after another, from the beginning to the end of the program. You can also tell the bot to repeat some instructions: just write \c;while (true)\n;, an open brace, the instructions to be repeated, and a closing brace. Repeating some instructions several times in this way is called a loop. Here is an example of a program that repeats over and over the instructions that look for a power cell, grab it, and drop it on a winged shooter: +\c; +\s; while (true) +\s; { +\s; item = radar(PowerCell); +\s; goto(item.position); +\s; grab(); +\s; +\s; item = radar(WingedShooter); +\s; goto(item.position); +\s; drop(); +\s; } +\n; +Of course the variable declaration \c;object item;\n; must not be inside the loop, but just before: declare a variable only once. + +\t;Remark +A bot can execute a program perfectly well on his own. Meantime you can for example select the astronaut and take a look at what is happening at the nest, the show is worth it. But be careful not to get shot by your own bots... + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/tchasse.txt b/help/E/tchasse.txt new file mode 100644 index 00000000..eb807f5a --- /dev/null +++ b/help/E/tchasse.txt @@ -0,0 +1,18 @@ +\b;Exercise +You must find a way to destroy the four moving \l;target bots\u object\bottarg; without wasting one shot. Notice that after every move, the targets will stay motionless during one second. + +\b;General principle +1) Detect a target with the instruction \c;\l;radar\u cbot\radar;(TargetBot);\n;. +2) Turn towards the target with \c;\l;turn\u cbot\turn;(direction());\n;. +3) After the rotation, check if the target did not move. +4) If it did not, wait 0.2 seconds with \c;\l;wait\u cbot\wait;(0.2);\n;. +5) Re-check if the target did not move. +6) If it did not, shoot with \c;\l;fire\u cbot\fire;(2);\n; and wait 2 seconds for the target to be hit by the bullets and destroyed. + +There are of course other ways to achieve the goal. + +\b;Remark +In order to increase the efficiency of your shots, aim a little downward with \c;\l;aim\u cbot\aim;(-3);\n;. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/tdragst.txt b/help/E/tdragst.txt new file mode 100644 index 00000000..38b62d30 --- /dev/null +++ b/help/E/tdragst.txt @@ -0,0 +1,64 @@ +\b;Exercise +Reach the finishing pad (25m in front of you) as fast as possible, using the instruction \c;motor( , )\n;. You will have to slow down progressively at the end of the move, otherwise the bot will get blown up on the \l;mines\u object\mine;. + +You could very well write no more than \c;\l;move\u cbot\move;(25);\n;, this would work perfectly well. However, the aim of this exercise is to learn how to use the instruction \c;\l;motor\u cbot\motor;\n;. + +This instruction asks for two values: +1) The speed of the left-hand motor. +2) The speed of the right-hand motor. + +\s;\c; motor( left, right ); +\n; +The values must range between -1 and 1: +-1 = full throttle backward + 0 = stop + 1 = full throttle forward + +For example, \c;motor(0.5, 0.5);\n; will move the motor forward with half-speed, until new instructions are given to the motors. + +With the instruction \c;motor(0.5, 0.6);\n;, the bot will move forward with half-speed, turning at the same time slightly to the left: the right-hand motor moves a little faster (\c;0.6\n;) than the left-hand motor (\c;0.5\n;). + +\b;General principle +In order to move forward for exactly 25 meters and not more, you must move full speed during the first 23 meters, then reduce the speed of the motors progressively during the last two meters. +The \l;variable\u cbot\var; \l;position\u cbot\object; gives you at any moment the current position of the bot, and the instruction \c;\l;distance\u cbot\dist;( , );\n; returns the distance between two points. The best way to know where you are consists in saving the current position before the start into a \l;variable\u cbot\var;, for example a variable called \c;start\n;. Then you can calculate the distance between the starting position and your current position with \c;distance(position, start)\n;. + +\b;The program +1) declare the variables +\s;\c; point start; +\s; float len; +\n; +2) save the starting position +\s;\c; start = position; +\n; +3) start full throttle : +\s;\c; motor(1, 1); +\n; +4) Perform an infinite \c;\l;while\u cbot\while;\n; loop: +\s;\c; while ( true ) +\s; { +\s; len = distance(position, start); +\s; if ( len > 25-2 ) +\s; { +\s; motor( less than before ! ); +\s; } +\s; } +\n; +As long as the distance between the start and the current position is smaller than 23m, the instruction in braces after the \c;\l;if\u cbot\if;\n; instruction will not be executed, so the motors keep their maximum speed as they were told by the \c;\l;motor\u cbot\motor;(1,1);\n; instruction. + +In order to slow down progressively, the speed of the motors must be proportional to the remaining distance: +o \c;2.0\n; meters left -> speed = \c;1.00\n; (maximum) +o \c;1.5\n; meters left -> speed = \c;0.75\n; +o \c;1.0\n; meter left -> speed = \c;0.50\n; +o \c;0.5\n; meter left -> speed = \c;0.25\n; +o \c;0.0\n; meter left -> speed = \c;0.00\n; (stop) + +\image tdragst1 12 6; +You can use the following \l;expression\u cbot\expr; \c;(25-len)/2\n; in order to calculate the value for the speed instruction that must be given to the motors. + +It is now up to you to put everything together and to test the program. + +\b;Remark +You can use values greater than 1 for the instruction \c;\l;motor\u cbot\motor;();\n;, but the bot will not move any faster. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/texch1.txt b/help/E/texch1.txt new file mode 100644 index 00000000..914ba70f --- /dev/null +++ b/help/E/texch1.txt @@ -0,0 +1,31 @@ +\b;Exercise +Several \l;information exchange posts\u object\exchange; stand in the middle of a \l;mine\u object\mine; field. When the bot is close enough to an exchange post, it can read the information that it contains. Every exchange post contains the angle of the rotation that must be performed in order to reach the next exchange post, without touching a \l;mine\u object\mine;. +The exchange posts are distant 20m from each other. + +\b;General principe +Repeat 5 times : + o Move 20m forward. + o Read the direction of the next \l;information exchange post\u object\exchange;. + o Execute the necessary rotation. + +\image tinfo1 8 8; +In order to repeat the steps above, use a \c;\l;for\u cbot\for;\n; loop, as we saw it before. +\s;\c; for ( int i=0 ; i<5 ; i=i+1 ) +\n; +Move forward with the instruction \c;move(20);\n;. + +Use the instruction \c;\l;receive\u cbot\receive;("Direction");\n; in order to read the information contained in the \l;exchange post\u object\exchange;. This is of course possible only when the bot is close enough to the exchange post. +You will need a \l;variable\u cbot\var; to contain the value retrieved from the exchange post. Let us call it \c;dir\n;; you must declare it with the following line: +\s;\c; float dir; +\n; +Then retrieve the rotation angle from the exchange post, and put it into the variable: +\s;\c; dir = receive(...); +\n; +Then you can execute the rotation: +\s;\c; turn(dir); +\n; +\b;Remark +You can click on an \l;information exchange post\u object\exchange; in order to read what information it contains. In this exercise, every exchange post contains only one value called \c;"Direction"\n;, but it can contain up to 10 different values, as you will see in some of the following exercises. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/texch2.txt b/help/E/texch2.txt new file mode 100644 index 00000000..842770cf --- /dev/null +++ b/help/E/texch2.txt @@ -0,0 +1,36 @@ +\b;Exercise +In this exercise, the \l;information exchange posts\u object\exchange; along the way contain the direction of the next post and the distance. And you do not know how many exchange posts you must get in touch with before arriving at your goal. + +\b;General principle + Repeat forever: + o Retrieve the direction from the \l;exchange post\u object\exchange;. + o Retrieve the distance from the \l;exchange post\u object\exchange;. + o If no information could be retrieved, stop the program. + o Execute the rotation. + o Move forward to the next post. + +In order to repeat always, use a \c;\l;while\u cbot\while; (true)\n; loop. The instructions between the braces \c;{ }\n; will be repeated over and over, or until a \c;\l;break\u cbot\break;\n; instruction is executed. +\s;\c; while ( true ) +\n; +This time you need 2 \l;variables\u cbot\var;, one for the rotation angle, one for the distance, for example \c;dir\n; and \c;len\n; : +\s;\c; float dir, len; +\n; +Then you can retrieve the information: +\s;\c; dir = receive("Direction"); +\s;\c; len = receive("Length"); +\n; +A variable of the \l;type\u cbot\type; \c;\l;float\u cbot\float;\n; can take a special value called \c;\l;nan\u cbot\nan;\n;. This value means that the variable contains no number (Not A Number). +When there is no \l;exchange post\u object\exchange; nearby, either because the bot has reached the goal, or because it took the wrong way, the two variables \c;dir\n; and \c;len\n; contain this value. You can test this with the instruction \c;\l;if\u cbot\if;\n;, and stop the program if necessary with the instruction \c;\l;break\u cbot\break;\n;: +\s;\c; if ( dir == nan ) break; +\n; +If the information retrieval from the \l;exchange post\u object\exchange; has been performed successfully, execute the rotation: +\s;\c; turn(dir); +\n; +And move forward: +\s;\c; move(len); +\n; +\b;Remark +You can click on an \l;information exchange post\u object\exchange; in order to read what information it contains. In this exercise, every exchange post contains two values called \c;"Direction"\n; and \c;"Length"\n;. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/tfollow1.txt b/help/E/tfollow1.txt new file mode 100644 index 00000000..25f6fb93 --- /dev/null +++ b/help/E/tfollow1.txt @@ -0,0 +1,62 @@ +\b;Exercise +You must follow the \l;target bot\u object\bottr; with the explosive device, but without touching it, otherwise it will blow up. Every time the target bot stops, you must be close to it (less than 10m). After you managed to stay close to the target bot at 10 successive stops, it will lead you to the finishing pad, and the exercise is over. At every stop, the target bot checks that you are there. If you are not there, you must start over again. + +\b;General principle +Repeat forever : +o Look for the target bot. +o Calculate the distance to the bot. +o if the distance to the target bot is less than 5m, move backward. +o Otherwise, calculate the direction of the target bot, and move towards it. + +As many times before, use \c;\l;while\u cbot\while; (true)\n; in order to perform the infinite loop: +\s;\c;while (true) +\s;{ +\s; \n;instructions to be repeated ...\c; +\s;} +\n; +Look for the target bot with the instruction \c;\l;radar\u cbot\radar;\n;: +\s;\c; target = radar(TargetBot); +\n; +You do not have to test if the radar found a target bot: there must be one. + +Use the instruction \c;\l;distance\u cbot\dist;( , )\n; to calculate the distance between two points. The first point will be the position of your own bot, given by \c;position\n;. The second point is the position of the target bot, given by \c;target.position\n;. +\s;\c;len = distance(position, target.position); +\n; +If the distance to the target bot is smaller than 5m, move backward with a speed inversely proportional to the distance: the closer you are to the bot, the faster you must move backward. + Distance = 5.0 meters -> speed = 0.0 + Distance = 2.5 meters -> speed = -0.5 + Distance = 0.0 meters -> speed = -1.0 +You can use the \l;expression\u cbot\expr; \c;distance/5-1\n; in order to achieve this, together with the \c;\l;if\u cbot\if;\n; to test if the target is closer than 5m: +\s;\c;if ( len < 5 ) // too close ? +\s;{ +\s; motor(len/5-1, len/5-1); // moves backward +\s;} +\n; +If the distance to the target is greater than 5m, move towards the target. First calculate the angle necessary to face the target with the instruction \c;\l;direction\u cbot\direct;\n;. You can then adjust the speed of the right-hand and left-hand motor in order to follow the target: +\s;\c;else +\s;{ +\s; dir = direction(target.position); +\s; if ( dir >= 0 ) // target on the left side? +\s; { +\s; motor(1-dir/90, 1); +\s; } +\s; else // target on the right side? +\s; { +\s; \n;it is up to you to fill in\c; +\s; } +\s;} +\n; +When the target is on your left, \c;dir\n; takes a positive value, ranging between 0 and 180. The \l;expression\u cbot\expr; \c;1-dir/90\n; returns a speed ranging between 1 and -1, according to the direction: + direction = 0 -> speed = 1.0 + direction = 45 -> speed = 0.5 + direction = 90 -> speed = 0.0 + direction = 135 -> speed = -0.5 + direction = 180 -> speed = -1.0 + +\image radar2 14 10; +When the target is on the right side, \c;dir\n; is negative, ranging between 0 and -180. + +The only task left for you now is to declare the \l;variables\u cbot\var; that you use in the program. \c;target\n; is of type \c;object\n;, whereas \c;dir\n; and \c;len\n; are of type \c;float\n;. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/tfor.txt b/help/E/tfor.txt new file mode 100644 index 00000000..07285d69 --- /dev/null +++ b/help/E/tfor.txt @@ -0,0 +1,57 @@ +\b;Exercise +Destroy the six \l;targets\u object\bottarg; with a program using a loop. The bot must move 5m forward to get from one target to the next. + +\b;General principle +The program must execute the following scheme: +Repeat 6 times : + o move 5m forward + o turn 90 degrees left + o shoot + o turn 90 degrees right + +\image tfor1 14 5; +\b;Instruction \c;for ( )\n; +The instruction \c;\l;for\u cbot\for;\n; asks for 3 expressions: +1) Initialize the counting variable. +2) The end \l;condition\u cbot\cond;. +3) The counting \l;expression\u cbot\expr;. + +Here is the loop once it is integrated into the program frame: +\s;\c;extern void object::Massacre( ) +\s;{ +\s; for ( int i=0 ; i<6 ; i=i+1 ) +\s; { +\s; \n;instructions repeated 6 times ...\c; +\s; } +\s;} +\n; +ATTENTION: The line \c;for ( )\n; must not be followed by a \l;semicolon\u cbot\term; ! + +\b;Explanation of the instruction \c;for ( )\n; +1) \c;int i=0\n; + The \l;variable\u cbot\var; i is set to zero before the beginning of the loop. + +2) \c;i<6\n; + The loop will be executed as long as i is smaller than 6. + +3) \c;i=i+1\n; + At the end of every loop, add 1 to the variable i. + +\b;Blocks +Use braces \c;{ }\n; in order to create a \l;block\u cbot\bloc;. All the instructions that must be executed in the \c;for\n; loop are held together by a block. The whole program itself is made up of a block: +\c; +\s;extern void object::massacre( ) +\s;{ +\s; \n;fill in here ...\c; +\s;} +\n; +Never change these characters. Just add the instructions of the program between the braces. +You can fit several blocks one into the other. For example the \c;for\n; block is fitted into the block of the whole program. In order to improve readability, the editor lines up the braces belonging to the different blocks. + +\b;Remember +The instruction used to move forward is \c;\l;move\u cbot\move;();\n;. +The instruction used to turn the bot is \c;\l;turn\u cbot\turn;();\n;. A positive angle turns left. +The instruction used to fire the cannon is \c;\l;fire\u cbot\fire;(1);\n;. A one-second burst allows to destroy all six \l;targets\u object\bottarg;. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/tlaby1.txt b/help/E/tlaby1.txt new file mode 100644 index 00000000..c5deb7c6 --- /dev/null +++ b/help/E/tlaby1.txt @@ -0,0 +1,62 @@ +\b;Exercise +Program the bot so that it will find its way without hitting the walls of the labyrinth. We suppose that you do not know the configuration of the labyrinth, but there are no bifurcations, and no dead-ends. The labyrinth is made of squares measuring 5m each. + +\b;The instruction \c;radar\n; +The instruction \c;\l;radar\u cbot\radar;(Barrier, 0, 45, 0, 5);\n; will find any \l;barrier\u object\barrier; in front of the radar that is closer than 5m. Let us take a closer look at the five parameters used: + +\s;\c;Barrier\n; +\l;Category\u cbot\category; of the object that the radar must look for, i.e. a barrier. + +\s;\c;0\n; +Direction of the radar. \c;0\n; means that the radar must search straight forward. + +\s;\c;45\n; +Opening angle in degrees. With an opening angle of 45 degrees, barriers situated between 22.5 degrees to the left and 22.5 degrees to the right will be detected. + +\s;\c;0\n; +Minimum detection distance. \c;0\n; means that even object that are very close to the bot will be detected. + +\s;\c;5\n; +Maximum detection range. Any barrier situated beyond \c;5\n; meters will not be detected. + +To take another example, \c;\l;radar\u cbot\radar;(Barrier, 90, 45, 0, 5);\n; will direct the radar 90 degrees to the left, in order to test if the way to the left is free. + +\image tlaby1 10 10; +\b;General principle +The program must only take care of one square portion of the labyrinth. You will have to execute it several times in order to arrive at the finishing pad. +o If there is nothing in front, move forward. +o If there is nothing on the left side, quarter turn left, move forward. +o If there is nothing on the right side, quarter turn right, move forward. + +1) First of all declare three \l;variables\u cbot\var; of type \c;\l;object\u cbot\object;\n;, that we call \c;front\n;, \c;left\n; and \c;right\n;. Variables of this type can contain the description of any object, for example of a barrier found by the radar. +\s;\c; object front, left, right;\n; + +2) Look for barriers in all three directions, and put the result of the \c;radar\n; instruction into the three variables defined at point 1). If the radar finds nothing, the variable will contain the value \c;\l;null\u cbot\null;\n;. +\s;\c; front = radar(Barrier, 0, 45, 0, 5); +\s; left = radar(Barrier, 90, 45, 0, 5); +\s; right = radar(Barrier, -90, 45, 0, 5); +\n; +3) Test if the way is free in front of the bot with the instruction \c;\l;if\u cbot\if;\n;. If the test is true, the instructions in braces \c;{ }\n; will be executed, otherwise the execution will resume after the closing brace \c;}\n;. +The instruction \c;return\n; leaves the program: the job is done. +\s;\c;if ( front == null ) +\s;{ +\s; move(5); +\s; return; +\s;} +\n; +4) Test if it is possible to turn left; if so, turn left with the instruction \c;\l;turn\u cbot\turn;\n; and move 5m forward. +\s;\c;if ( left == null ) +\s;{ +\s; turn(90); +\s; move(5); +\s; return; +\s;} +\n; +5) Test if it is possible to turn right. + ... + +\b;Attention +The instruction \c;if ( )\n; must never be followed by a \l;semicolon\u cbot\term;. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/tlaby2.txt b/help/E/tlaby2.txt new file mode 100644 index 00000000..b09ec7f2 --- /dev/null +++ b/help/E/tlaby2.txt @@ -0,0 +1,55 @@ +\b;Exercise +This exercise is very similar to the previous one. This time the bot should find its way alone from the start to the goal; you will have to execute the program only once. + +\b;Remark +The labyrinth is not exactly the same, but this should be of no importance, as the program adapts to what it "sees". + +\image tlaby1 10 10; +\b;General principle +Use an infinite \c;\l;while\u cbot\while;\n; loop in order to execute the previous program several times: +\s;\c;while ( true ) +\s;{ +\s; \n;If there is nothing in front, move forward\c; +\s; \n;If there is nothing on your left hand, turn left\c; +\s; \n;If there is nothing on your right hand, turn right\c; +\s;} +\n; +Inside this \c;while\n; loop, replace the \c;return\n; instructions by \c;\l;continue\u cbot\continue;\n; instructions. \c;return\n; would quit the program, which is not what we want here. \c;continue\n; will just resume the execution at the beginning of the \c;\l;while\u cbot\while;\n; loop: +\s;\c;if ( front == null ) +\s;{ +\s; move(5); +\s; continue; +\s;} +\n; +\b;Remember +Here is again the program of the previous exercise : +\c; +\s;object front, left, right; +\s; +\s;front = radar(Barrier, 0, 45, 0, 5); +\s;left = radar(Barrier, 90, 45, 0, 5); +\s;right = radar(Barrier, -90, 45, 0, 5); +\s; +\s;if ( front == null ) +\s;{ +\s; move(5); +\s; return; +\s;} +\s;if ( left == null ) +\s;{ +\s; turn(90); +\s; move(5); +\s; return; +\s;} +\s;if ( right == null ) +\s;{ +\s; turn(-90); +\s; move(5); +\s; return; +\s;} +\n; +\b;Help +If you need some help, just click on the hyperlinks of the instructions \c;\l;radar\u cbot\radar;\n;, \c;\l;if\u cbot\if;\n;, \c;\l;move\u cbot\move;\n; or \c;\l;turn\u cbot\turn;\n;. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/tmove1.txt b/help/E/tmove1.txt new file mode 100644 index 00000000..24604c1f --- /dev/null +++ b/help/E/tmove1.txt @@ -0,0 +1,33 @@ +\b;Exercise +Program the robot in such a way that it arrives on the finishing pad, after having passed by the three blue crosses. + +\b;Procedure +1) Take the power cell and put it on the rear of the bot. +2) Walk around on reconnaissance to understand what the bot must do. +3) Program the bot. To do so, you must select it, and then click on the braces button \button 22;; you will get into the program editor. +4) Once you finished writing the program, click "OK", and execute the program with the arrow key \button 21;. + +\b;Program +The pads are at a distance of 20 meters from each other. +The instruction \c;move(20);\n; moves 20 meters forward. +The instruction \c;turn(90);\n; turns left with an angle of 90 degrees. +The instruction \c;turn(-90);\n; turns right with an angle of 90 degrees. + +The frame of the program consists in: +\c; +\s; extern void object::MoveBot( ) +\s; { +\s; \n;\\write the necessary instructions here ...\c; +\s; } +\n; +For now, you must not change the frame of the program. Just insert the instructions you need to move the bot around between the braces \c;{ }\n;. + +\b;Attention +Be very careful about upper case and lower case letters! +Every instruction must be terminated with a semicolon. + +\b;Helpful trick +When you write the program, you can watch the scene by clicking on the button \button 51;, and by moving the mouse to the edges of the window to turn the camera. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/tmove2.txt b/help/E/tmove2.txt new file mode 100644 index 00000000..14e873f5 --- /dev/null +++ b/help/E/tmove2.txt @@ -0,0 +1,66 @@ +\b;Exercise +This exercise is very similar to the previous one. The bot must move exactly in the same way, but when writing the program, you must use a new concept that is extremely important in programming: \l;variables\u cbot\var;. +We saw that all the pads are at a distance form each other of 20 meters. And all the rotations performed consist in 90 degree angles. Instead of rewriting the same values over and over again in the program, we can store them in a variable: + +Instead of: +\c;\s; move(20); +\s; turn(90); +\s; move(20); +\s; turn(-90); +\s; ... +\n; +We write : +\c;\s; dist = 20; +\s; dir = 90; +\s; move(dist); +\s; turn(dir); +\s; move(dist); +\s; turn(-dir); +\s; ... +\n; +\b;Variables +A \l;variable\u cbot\var; is composed of three elements: +1) The name +2) The type of the content +3) The content + +\t;The name +Use the name to refer to a variable. For example, instead of writing \c;move(20);\n;, write \c;move(dist);\n;: "dist" is the name of the variable. You can choose almost any name for a variable, for example \c;dist\n;, \c;dir\n;, \c;p2\n;, \c;a\n;, \c;x\n;, \c;nothing_2_grab\n;, etc. + +\t;The type +The type of a variable determines what kind of information the variable can contain. According to the type, a variable can contain a whole number, a real number, a character string, the coordinates of a point, etc. Here is a list with the most common variable types: + o \c;\l;int\u cbot\int;\n; for a whole number (12, -500, etc.) + o \c;\l;float\u cbot\float;\n; for a real number (3.14, 0.2, -99.98, etc.) + o \c;\l;string\u cbot\string;\n; for a character string ("Hello!", "Nothing to grab", etc.) + o \c;\l;point\u cbot\point;\n; for the x,y,z-coordinates of a point in space + o \c;\l;object\u cbot\object;\n; for the information about an object (bot, building, etc.) + +\t;The content +The content of a variable can be a number, a string, coordinates, etc., according to the type of the variable. The content of a variable can change many times during the execution of a program. + +Before you can use a variable, you have to declare it. For example, before you can use the two variables \c;dist\n; and \c;dir\n;, you must declare them with the following lines: +\c; +\s; float dist; +\s; float dir; +\n; +Now you can use the two variables. To put the value 20 into \c;dist\n; and 90 into \c;dir\n;, write: +\c; +\s; dist = 20; +\s; dir = 90; +\n; +Now you can move and turn the bot with the instructions \c;\l;move\u cbot\move;\n; and \c;\l;turn\n;\u cbot\turn;: +\c; +\s; move(dist); +\s; turn(dir); +\n; +You can also use a whole \l;mathematical expression\u cbot\expr; instead of just the variable: +\c; +\s; move(dist+100); +\s; turn(-dir); +\n; +The latter instruction will be needed to turn the bot right. + +Now, rewrite the program of the previous exercise, but use a variable for the distance and another variable for the angle of the rotation. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/tproc1.txt b/help/E/tproc1.txt new file mode 100644 index 00000000..484d7897 --- /dev/null +++ b/help/E/tproc1.txt @@ -0,0 +1,59 @@ +\b;Exercise +The \l;bot\u object\bottr; must pass over all the \l;blue crosses\u object\waypoint; on the ground. The way that must be covered is made of two squares. The first one measures 15 meters, the second 25 meters. + +\image tproc1a 8 8; +\b;General principle +In order to solve this problem, the most efficient solution consists in creating a \l;function\u cbot\function; that instructs the bot to move on a square shape of a certain size. The main program becomes then very simple:\c; +\s;extern void object::Function1( ) +\s;{ +\s; Square(15); +\s; Square(25); +\s;} +\n; +You still have to define the function called \c;Square\n;. In order to do this, you will have to write some instructions outside the \l;block\u cbot\bloc; that until now was the frame of each one of your programs. At the very end of the program, after the last closing brace, we will define the function \c;Square\n;. The program will take the following shape: +\c; +\s;extern void object::Function1( ) +\s;{ +\s; \n;main function ...\c; +\s;} +\s; +\s;void object::Square(float length) +\s;{ +\s; \n;new function ...\c; +\s;} +\n; +Let us look in detail at the different elements of the declaration of the function \c;Square\n;: + +\c;\l;void\u cbot\void;\n; +This means that this function will return no value. + +\c;\l;object\u cbot\object;::\n; +When you write this in front of the function name, you can have access in the function to all the characteristics of the bot, such as \c;position\n;, \c;orientation\n;, etc. In this exercise, this element is not compulsory, as we will not need the characteristics of the bot in the function. + +\c;Square ( )\n; +This is the name of the function. You can call it Square, or any other name. + +\c;\l;float\u cbot\float; length\n; +Here you define the parameters that the function will get when it is called. The first time the function is actually called with \c;Square(15)\n;, the variable \c;length\n; will contain the value \c;15\n;. The second time, \c;length\n; will contain \c;25\n;. + +Here is in detail what will happen when the program is executed: +- First the main function \c;Function\n; will be executed. +- At the line \c;Square(15)\n;, the program will follow the red arrow and enter the function \c;Square\n; a first time, \c;length\n; containing \c;15\n;. +- At the end of the function \c;Square\n;, the program follows the orange arrow and comes back to the main function. +- At the line \c;Square(25)\n;, the program will follow the blue arrow and enter the function \c;Square\n; a second time. +- At the end of the function \c;Square\n;, the program follows the light blue arrow and comes back to the main function. + +\image tproc1b 17 12; +In the function \c;Square\n;, use the instructions \c;\l;move\u cbot\move;\n; and \c;\l;turn\u cbot\turn;\n;. In order to make it shorter, you can use a \c;\l;for\u cbot\for;\n; loop, that will repeat the instructions \c;\l;move\u cbot\move;\n; and \c;\l;turn\u cbot\turn;\n; 4 times; however, this is not compulsory. +\c; +\s;void object::Square(float length) +\s;{ +\s; for ( int i=0 ; i<4 ; i=i+1 ) +\s; { +\s; move(length); +\s; turn(90); +\s; } +\s;} +\n; +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/tproc2.txt b/help/E/tproc2.txt new file mode 100644 index 00000000..6be8e7b2 --- /dev/null +++ b/help/E/tproc2.txt @@ -0,0 +1,34 @@ +\b;Exercise +Follow the way in form of a spiral. The bot must move 2 times 25m forward and turn, then move 2 times 20m forward and turn, and so on. +\image tproc2 8 8; +\b;Function +You will have noticed that the way is made of "L"-shaped parts that are fit one into another. The first one (dark blue) measures two times 25 meters. The second one (light blue) measures 5 meters less. Let us start with writing the \l;function\u cbot\function; that will move the bot on a "L"-shaped part whose length will be given as a parameter: +\c; +\s;void object::Part(float length) +\s;{ +\s; for ( int i=0 ; i<2 ; i=i+1 ) +\s; { +\s; move(length); +\s; turn(90); +\s; } +\s;} +\n; +Now you just need to write the main function, that will call the function \c;Part\n;. At the beginning the variable \c;rest\n; will be set to 25m. The \c;while\n; loop will then repeat the instructions inside the block as long as \c;rest\n; is greater than zero. Inside the loop, first call the function \c;Part\n; (see above), then subtract 5m to the length of the L. +\c; +\s;extern void object::Function2( ) +\s;{ +\s; float rest = 25; +\s; while ( rest > 0 ) +\s; { +\s; Part(rest); +\s; rest = rest-5; +\s; } +\s;} +\n; +The function \c;Part\n; will be called a last time with the value \c;5\n;. Then the expression \c;rest-5\n; will set the value of the variable \c;rest\n; to zero, and the \c;while\n; loop will stop. + +\b;Remark +You will have noticed that in the previous exercise, the main function was at the beginning of the program, whereas in this exercise, it is at the end of the program, after the function \c;Part\n;. The rank order of the functions in the program does not matter, you can write a program either way. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/tradar1.txt b/help/E/tradar1.txt new file mode 100644 index 00000000..d55a31c6 --- /dev/null +++ b/help/E/tradar1.txt @@ -0,0 +1,57 @@ +\b;Exercise +Let the bot find all the \l;blue crosses\u object\waypoint; on the ground. As soon as the bot passed over one of the crosses, it will disappear. Here is the general principle that you will apply: + +Repeat forever: + o Look for a cross + o If there is none, stop the program. + o Calculate the direction of the cross. + o Set the speed of the motors in such a way that they will find their way to the cross. + +\b;The program +Use a \c;\l;while\u cbot\while;\n; loop in order to repeat several instructions over and over: +\s;\c;while ( true ) +\s;{ +\s; \n;instructions...\c; +\s;} +\n; +The instruction \c;\l;radar\u cbot\radar;\n; will detect the blue crosses and put their description into a variable, for example \c;spot\n;. In this case, \c;\l;radar\u cbot\radar;()\n; needs only one parameter, i.e. the category of the object that it must look for: +\s;\c;spot = radar(WayPoint); +\n; +Once all the crosses have been found, \c;radar\n; will return the value \c;\l;null\u cbot\null;\n;. You will have to test this case and react accordingly with the instruction \c;\l;if\u cbot\if;\n;: +\s;\c;if ( spot == null ) // no more ? +\s;{ +\s; motor(0, 0); // stops the motors +\s; break; // stops the loop +\s;} +\n;The instruction \c;\l;break\u cbot\break;\n; will stop the infinite loop \c;while (true)\n;. + +Use the instruction \c;\l;direction\u cbot\direct;()\n; to calculate the angle of the rotation that the bot must perform in order to turn towards the blue cross. The coordinates of the object are given by \c;spot.position\n;. The following line will put the angle of the necessary rotation into the \l;variable\u cbot\var; \c;dir\n;: +\s;\c;dir = direction(spot.position); +\n; +The value of the angle is positive if the blue cross is on your left hand, and negative if it is on your right hand. If the cross to be reached is on your left hand, you must set the right-hand motor to full speed, and set the left-hand motor to a lower speed, according to the angle: + + direction = \c; 0\n; -> speed = \c; 1.0\n; + direction = \c; 45\n; -> speed = \c; 0.5\n; + direction = \c; 90\n; -> speed = \c; 0.0\n; + direction = \c;135\n; -> speed = \c;-0.5\n; + direction = \c;180\n; -> speed = \c;-1.0\n; + +The graphic below shows the speed of the left-hand and right-hand motor as set by the instruction \c;\l;motor\u cbot\motor;\n;, according to the angle: + +\image radar2 14 10; +If the cross is straight ahead, the angle is 0 degrees. The motors will get the speeds 1 and 1, which means full speed ahead. If the cross is behind, the right motor will be set to speed -1: it will turn around. You can use the \l;expression\u cbot\expr; \c;1+dir/90\n; in order to calculate the necessary speed of the motors: +\s;\c;if ( dir < 0 ) // on the right side? +\s;{ +\s; motor(1, 1+dir/90); // turns more or less +\s;} +\n; +Use the same principle if the angle has got a positive value, ranging between 0 and 180 degrees. It is up to you to work out the exact instructions to be performed: +\s;\c;else // on the left side? +\s;{ +\s; \n;up to you to fill in here...\c; +\s;} +\n; +At the beginning of the program, you must still declare all the variables. \c;spot\n; is of type \c;\l;object\u cbot\object;\n;, whereas \c;dir\n; is of type \c;\l;float\u cbot\float;\n;. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/tradar2.txt b/help/E/tradar2.txt new file mode 100644 index 00000000..8ad15fce --- /dev/null +++ b/help/E/tradar2.txt @@ -0,0 +1,8 @@ +\b;Exercise +In this exercise, a "crazy bot" places many \l;blue crosses\u object\waypoint; on the ground. In order to find them, you can reuse the program written in the previous exercise. This can show you the flexibility of such a program: it adapts to whatever environment it encounters. + +\t;Remark +Do not wait too long, because the crazy bot gets down to work immediately. Fortunately, as long as you are in the program editor, the game will pause. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/tremote1.txt b/help/E/tremote1.txt new file mode 100644 index 00000000..70c55aa0 --- /dev/null +++ b/help/E/tremote1.txt @@ -0,0 +1,39 @@ +\b;Exercise +Remote control a robot using an \l;information exchange post\u object\exchange;, so it will transport \l;uranium ore\u object\uranore;. +The main actors of this exercise are¦: + +1) A \l;sniffer\u object\botsr; (can't carry anything). +2) An \l;information exchange post\u object\exchange; that receives information from a sender and then transmits it to a receiver. +3) A \l;grabber\u object\botgr; which waits for orders from the exchange post. You have no way control this robot directly. + +\image tremot1a 16 8; +An information exchange post stores "name/value" couples. To control the "slave" robot we use just one couple¦: + + name="order", valuer=order number + +The slace robot understands following orders¦: +\c; + 1 -> grab(); // take an object + 2 -> drop(); // drop an object + 3 -> move(10); // move 10 meters forward + 4 -> move(-10); // move 10 meters backwards +\n; +To instruct the slave to move forward 10 meters all you have to do is¦: +\c;\s; \l;send\u cbot\send;("order", 3, 100); // order 3 -> "move(10)" +\n; +After the send instruction we wait for 5 seconds to be sure the move is done. +\c;\s; \l;wait\u cbot\wait;(5); +\n; +Remark: There is a better way for waiting the order has been executed, but we'll see this later in exercise "Remote Control #2". + +To finish the exercise you must¦: + +1) Take the uranium ore +2) Move forward by 10 meters +3) Drop the uranium ore +4) Move backwards by 10 meters + +It's up to you to write the program. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/tremote2.txt b/help/E/tremote2.txt new file mode 100644 index 00000000..58083be3 --- /dev/null +++ b/help/E/tremote2.txt @@ -0,0 +1,50 @@ +\b;Exercise +Remote control a robot using an \l;information exchange post\u object\exchange;, so it will pass over the 6 blue waypoints. +The main actors of this exercise are¦: + +1) A \l;wheeled grabber\u object\botgr; robot without an energy cell. This is the master you have to program. +2) An \l;information exchange post\u object\exchange; that receives information from the master and then transmits it to the slave. +3) A \l;practice bot\u object\bottr; which waits for orders from the exchange post. This robot has already been programmed. + +\image tremot2a 16 8; +An information exchange post stores "name/value" couples. To control the "slave" robot we use two couples¦: + +1) name="order", value=order number +2) nom="param", valuer=parameter for the operation + +Order #1 means "move" and order #2 means "turn". The parameter is the distance to move or the turning angle. For example to make the slave move 20 meters write¦: +\c;\s; \l;send\u cbot\send;("order", 1, 100); // order "move" +\s; \l;send\u cbot\send;("param", 20, 100); // distance 20 meters +\n; +These two instruction send following 2 pieces of information to the exchange post¦: +\c; order=1 + param=20 +\n; +The slave robot waits for an order and executes it. Once the order has been executed by the slave, it removes the order from the exchange post. Once an order has been sent, the master must wait for the slave finishing the order before sending the next order. This is done by testing if the order is still inside the exchange post. Just write¦: +\c;\s; while ( \l;testinfo\u cbot\testinfo;("order", 100) ) // wait for end of work +\s; { +\s; wait(1); +\s; } +\n; +As we must give more than one order its most convenient to write a \l;function\u cbot\function; \c;SendToPost\n;, that sends the order and wait for its completion¦: +\c;\s;void object::SendToPost(float order, float param) +\s;{ +\s; send("param", param, 100); // send the parameter +\s; send("order", order, 100); // send the order +\s; +\s; while ( testinfo("order", 100) ) // wait for end of work +\s; { +\s; wait(1); +\s; } +\s;} +\n; +To move forward by 20 meters, you must write in the main program¦: +\c;\s; SendToPost(1, 20); // move(20); +\n; +This is the route the robot must travel through¦: + +\image tremot2b 8 8; +It's up to you to finish the programming. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/tremote3.txt b/help/E/tremote3.txt new file mode 100644 index 00000000..b8875f05 --- /dev/null +++ b/help/E/tremote3.txt @@ -0,0 +1,103 @@ +\b;Exercice +Remote control a slave robot without using an \l;information exchange post\u object\exchange;. The robot should pass over the 6 blue crosses. You must use a \l;string\u cbot\string; to pass the orders to the slave bot. This string contains the order the slave shoud execute, for exemple \c;"move(20)"\n;. You can see that this is the same syntax as used in the CBOT language but we could have chosen any other syntax for exemple something like \c;"advance=20"\n;. The string will be a \c;\l;static\u cbot\static;\n; class member that will be used to communicate from the master to the slave. + +The two main actors of this exercise are: +1) The \l;wheeled grabber\u object\botgr; without an energy pack and therefore immobile. This is the master you should program so it will transmit orders to the slave. +2) The slave \l;practice bot\u object\bottr; which is already programmed and just waits for orders from the master. + +\b;The slave +First of all we must understand how the program of the slave works. The \l;class\u cbot\class; \c;exchange\n; contains the mechanism for exchaning the orders. We declare a \c;\l;static\u cbot\static;\n; class member \c;m_order\n; which will contain the order to be executed. The word \c;static\n; insures that the member \c;m_order\n; is shared between all instances of the \l;class\u cbot\class; exchange. + +\c;\s;\l;public\u cbot\public; \l;class\u cbot\class; exchange +\s;{ +\s; \l;static\u cbot\static; \l;private\u cbot\private; \l;string\u cbot\string; m_order = ""; + +\n;The \c;put\n; method will be used by the master robot for transmitting an order. As long as the string \c;m_order\n; is not empty, the slave has not finished the order and the \c;put\n; method will return \c;false\n; and will do nothing. + +\c;\s; \l;synchronized\u cbot\synchro; \l;bool\u cbot\bool; put(string order) +\s; { +\s; if ( m_order == "" ) +\s; { +\s; m_order = order; +\s; return true; +\s; } +\s; else +\s; { +\s; return false; +\s; } +\s; } +\n; +Another method \c;get\n; will be used by the slave to retrieve the orders. This method returns the string contained in \c;m_order\n; and empties it, so a new order can be accepted: + +\c;\s; \l;synchronized\u cbot\synchro; string get() +\s; { +\s; string ret = m_order; +\s; m_order = ""; +\s; return ret; +\s; } +\s;} +\n; +The main program of the slave contains an instance of the class \c;exchange\n; called \c;list\n;. + +\c;\s;\l;extern\u cbot\extern; void object::Slave3( ) +\s;{ +\s; exchange list(); +\s; string todo; +\n; +The outer \c;while\n; loop lasts for ever. The inner \c;while\n; loop waits for an order by using the \c;get\n; method of the \c;exchange\n; class. As soon as \c;get\n; returns a non empty string, the while loop stops. + +\c;\s; \l;while\u cbot\while; ( true ) +\s; { +\s; \l;while\u cbot\while; ( true ) +\s; { +\s; todo = list.get(); +\s; if ( todo != "" ) break; +\s; wait(1); +\s; } +\n; +Now we have received the order in the \c;todo\n; variable. All we have to do is execute it: + +\c;\s; if ( \l;strfind\u cbot\strfind;(todo, "move") == 0 ) +\s; { +\s; move(\l;strval\u cbot\strval;(\l;strmid\u cbot\strmid;(todo,5))); +\s; } +\s; if ( strfind(todo, "turn") == 0 ) +\s; { +\s; turn(strval(strmid(todo,5))); +\s; } +\s; } +\s;} +\n; +\b;The master +In the master we write an function called \c;SendOrder\n; which will send an order to the slave: + +\c;\s;void object::SendOrder(string order) +\s;{ +\s; exchange list(); +\s; +\s; while ( list.put(order) == false ) +\s; { +\s; wait(1); +\s; } +\s;} +\n; +The \c;while\n; loop waits until a pending order has been terminated, that is the slaved has exited from the \c;get\n; method. +Now the main program of the master is very simple: + +\c;\s;extern void object::Remote3( ) +\s;{ +\s; SendOrder("move(20)"); +\s; SendOrder("turn(90)"); +\s; SendOrder("move(20)"); +\s; SendOrder("turn(90)"); +\s; SendOrder("move(10)"); +\s; SendOrder("turn(90)"); +\s; SendOrder("move(10)"); +\s; SendOrder("turn(-90)"); +\s; SendOrder("move(10)"); +\s;} +\n; +\key;\key help;\norm; show these instruction at any time. + +\t;See also +\l;Controls\u command; and \l;programming\u cbot;. diff --git a/help/E/tremote4.txt b/help/E/tremote4.txt new file mode 100644 index 00000000..876a00f3 --- /dev/null +++ b/help/E/tremote4.txt @@ -0,0 +1,129 @@ +\b;Exercise +Remote control a slave robot without using an \l;information exchange post\u object\exchange;. The robot should pass over the 6 blue crosses. You must use a \c;\l;static\u cbot\static;\n; variable to pass the orders to the slave bot. + +The two main actors of this exercise are: +1) The \l;wheeled grabber\u object\botgr; without an energy pack and therefore immobile. This is the master you should program so it will transmit orders to the slave. +2) The slave \l;practice bot\u object\bottr; which is already programmed and just waits for orders from the master. + +\b;The slave +First of all we must understand how the program of the slave works. The \l;class\u cbot\class; \c;order\n; contains two members: \c;m_type\n; is the order to execute (move or turn) and \c;m_param\n; is the distance to move or the rotation angle¦: + +\c;\s;\l;public\u cbot\public; \l;class\u cbot\class; order +\s;{ +\s; \l;int\u cbot\int; m_type = \l;nan\u cbot\nan;; +\s; \l;float\u cbot\float; m_param; +\s;} +\n; +A second \l;class\u cbot\class; \c;exchange\n; contains the mechanism for exchanging the orders. We declare a \c;\l;static\u cbot\static;\n; class member \c;m_order\n; which will contain the order to be executed. The word \c;static\n; insures that the member \c;m_order\n; is shared between all instances of the \l;class\u cbot\class; exchange. + +\c;\s;\l;public\u cbot\public; \l;class\u cbot\class; exchange +\s;{ +\s; \l;static\u cbot\static; \l;private\u cbot\private; order m_order = new order; +\n; +\n;The \c;put\n; method will be used by the master robot for transmitting an order. As long as \c;m_order\n; is different from \c;\l;nan\u cbot\nan;\n;, the slave has not finished the order and the \c;put\n; method will return \c;false\n; and will do nothing¦: + +\c;\s; \l;synchronized\u cbot\synchro; \l;bool\u cbot\bool; put(order a) +\s; { +\s; if ( m_order.m_type == nan ) +\s; { +\s; m_order = a; +\s; return true; +\s; } +\s; else +\s; { +\s; return false; +\s; } +\s; } +\n; +Another method \c;get\n; will be used by the slave to retrieve the orders. This method returns the order to be executed: + +\c;\s; \l;synchronized\u cbot\synchro; order get() +\s; { +\s; return m_order; +\s; } +\n; +A third method \c;delete\n; will be used by the slave to indicate that the order has been executed: + +\c;\s; \l;synchronized\u cbot\synchro; void delete() +\s; { +\s; m_order.m_type = nan; +\s; } +\s;} +\n; +The main program of the slave contains an instance of the class \c;exchange\n; called \c;list\n;. We put () after the word \c;list\n; in order to create an instance of the class \c;exchange\n;. + +\c;\s;\l;extern\u cbot\extern; void object::Slave3( ) +\s;{ +\s; exchange list(); +\s; order todo; +\n; +The outer \c;while\n; loop lasts for ever. The inner \c;while\n; loop waits for an order by using the \c;get\n; method of the \c;exchange\n; class. As soon as \c;get\n; returns a value different from \c;nan\n;, the while loop stops. + +\c;\s; \l;while\u cbot\while; ( true ) +\s; { +\s; \l;while\u cbot\while; ( true ) +\s; { +\s; todo = list.get(); +\s; if ( todo.m_type != nan ) break; +\s; wait(1); +\s; } +\n; +Now we have received the order in the \c;todo\n; variable. All we have to do is execute it: + +\c;\s; if ( todo.m_type == 1 ) +\s; { +\s; move(todo.m_param); +\s; } +\s; else if ( todo.m_type == 2 ) +\s; { +\s; turn(todo.m_param); +\s; } +\s; else +\s; { +\s; message("Unknown order"); +\s; } +\n; +As soon as the execution of the order is finished, we must call the \c;delete\n; method so the master knows that another order can be sent¦: + +\c;\s; list.delete(); +\s; } +\s;} +\n; +\b;The master +In the master we write an function called \c;SendOrder\n; which will send an order to the slave: + +\c;\s;void object::SendOrder(float order, float param) +\s;{ +\s; exchange list(); +\s; order todo(); +\s; +\s; todo.m_type = order; +\s; todo.m_param = param; +\s; +\s; while ( list.put(todo) == false ) +\s; { +\s; wait(1); +\s; } +\s;} +\n; +The \c;while\n; loop waits until a pending order has been terminated, that is the slaved has exited from the \c;get\n; method and the \c;delete\n; method has been called. +Now the main program of the master is very simple: + +\c;\s;extern void object::Remote4( ) +\s;{ +\s; SendOrder(1, 20); // move(20); +\s; SendOrder(2, 90); // turn(90); +\s; SendOrder(1, 20); // move(20); +\s; SendOrder(2, 90); // turn(90); +\s; SendOrder(1, 10); // move(10); +\s; SendOrder(2, 90); // turn(90); +\s; SendOrder(1, 10); // move(10); +\s; SendOrder(2,-90); // turn(-90); +\s; SendOrder(1, 10); // move(10); +\s;} +\n; +\key;\key help;\norm; show these instruction at any time. + + +\t;See also +\l;Controls\u command; and \l;programming\u cbot;. diff --git a/help/E/tremote5.txt b/help/E/tremote5.txt new file mode 100644 index 00000000..f2313946 --- /dev/null +++ b/help/E/tremote5.txt @@ -0,0 +1,113 @@ +\b;Exercise +Remote control a slave robot without using an \l;information exchange post\u object\exchange;. The robot should pass over the 6 blue crosses. + +The two main actors of this exercise are: +1) The \l;wheeled grabber\u object\botgr; without an energy pack and therefore immobile. This is the master you should program so it will transmit orders to the slave. +2) The slave \l;practice bot\u object\bottr; which is already programmed and just waits for orders from the master. + +The orders shall be stored, so the master will be able to transmit several orders without waiting for each order being processed. We use an \l;array\u cbot\array; for this purpose. + +\b;The slave +First of all we must understand how the program of the slave works. The \l;class\u cbot\class; \c;order\n; contains two members: \c;m_type\n; is the order to execute (move or turn) and \c;m_param\n; is the distance to move or the rotation angle¦: + +\c;\s;\l;public\u cbot\public; \l;class\u cbot\class; order +\s;{ +\s; \l;int\u cbot\int; m_type; +\s; \l;float\u cbot\float; m_param; +\s;} +\n; +A second \l;class\u cbot\class; \c;exchange\n; contains the mechanism for exchanging the orders. We declare a \c;\l;static\u cbot\static;\n; class member \c;m_fifo\n; which will contain the list of orders to be executed. The word \c;static\n; insures that the member \c;m_fifo\n; is shared between all instances of the \l;class\u cbot\class; exchange. + +\c;\s;{ +\s; \l;static\u cbot\static; \l;private\u cbot\private; order m_fifo[] = null; +\n; +The \c;put\n; method will be used by the master robot for transmitting an order. The order will simply be added at the end of the \c;m_fifo\n; array: + +\c;\s; \l;synchronized\u cbot\synchro; void put(order a) +\s; { +\s; m_fifo[sizeof(m_fifo)] = a; +\s; } +\n; +Another method \c;get\n; will be used by the slave to retrieve the orders. This method returns the order to be executed. If the list is empty, \c;null\n; will be returned and the robot must wait for more orders. Otherwise the first order in the list must be returned and the remaining orders must be "scrolled up". As an array can not be "shortened" we use a temporary array \c;copy\n;¦: + +\c;\s; \l;synchronized\u cbot\synchro; order get() +\s; { +\s; if ( sizeof(m_fifo) == 0 ) return null; +\s; +\s; order a = m_fifo[0]; +\s; order copy[] = null; +\s; for ( int i=1 ; i 9) +\s; { +\s; \l;jet\u cbot\jet;(-1); +\s; } +\s; \l;wait\u cbot\wait;(0.2); +\s; } +\s; \l;fire\u cbot\fire;(1); +\s; } +\s;} +\n; +In order to adapt the program to shooting wasps, you need to make a few changes. Replace all \c;radar(AlienAnt)\n; with \c;radar(AlienWasp)\n;. The cannon must aim straight forward and not downward, replace \c;aim(-20);\n; with \c;aim(0);\n;. And the bot must fly at the same height as the wasp. For this, you must compare the altitude of the bot given by \c;position.z\n; with the altitude of the wasp given by \c;item.position.z\n;: if \c;position.z > item.position.z\n;, go down slowly with \c;jet(-0.3);\n;. If \c;position.z < item.position.z-1\n;, climb slowly with \c;jet(0.3);\n;. A winged shooter is higher than a wasp, therefore it is better if the altitude of the bot is a little lower than the altitude of the wasp. In this case, we admit that the altitude of the bot ranges between the altitude of the wasp and the altitude of the wasp minus 1. + +\t;Further improvement +Wasps move very fast. In order to increase your chances to get them, better to repeat just before the \c;fire(1);\n; a \c;radar\n; and a \c;turn\n; in order to perform a last readjustment of the direction before the shot. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/twasp2.txt b/help/E/twasp2.txt new file mode 100644 index 00000000..fcec44ab --- /dev/null +++ b/help/E/twasp2.txt @@ -0,0 +1,84 @@ +\b;Objective +Bring down the flying wasps in a more efficient way than with the previous program. + +\b;Program +Here is again the program of the previous exercise that shoots down all the wasps after many, many unsuccessful attempts: +\c; +\s;extern void object::Wasp1() +\s;{ +\s; \l;object\u cbot\type; item; +\s; +\s; \l;aim\u cbot\aim;(0); +\s; +\s; \l;while\u cbot\while; (true) +\s; { +\s; \l;while\u cbot\while; (\l;radar\u cbot\radar;(AlienWasp, 0, 360, 0, 20) == null) +\s; { +\s; item = \l;radar\u cbot\radar;(AlienWasp); +\s; \l;turn\u cbot\turn;(\l;direction\u cbot\direct;(item.position)); +\s; \l;motor\u cbot\motor;(1,1); +\s; +\s; \l;jet\u cbot\jet;(0); +\s; \l;if\u cbot\if; (position.z > item.position.z) +\s; { +\s; \l;jet\u cbot\jet;(-0.3); +\s; } +\s; +\s; \l;if\u cbot\if; (position.z < item.position.z - 1) +\s; { +\s; \l;jet\u cbot\jet;(0.3); +\s; } +\s; +\s; \l;wait\u cbot\wait;(0.2); +\s; } +\s; item = \l;radar\u cbot\radar;(AlienWasp); +\s; \l;turn\u cbot\turn;(\l;direction\u cbot\direct;(item.position)); +\s; \l;fire\u cbot\fire;(1); +\s; } +\s;} +\n; +The many failures are due to the fact that the wasp is already gone before the bullets can reach it. The only way to improve the program consists in setting the power of the two motors and of the jet in such a way that the bot follows the movement of the target during the burst. + +Just before the shot, the program adjusts a last time the direction with \c;turn(direction(item.position));\n;. In order to follow the wasp during the burst, you have to "remember" the angle of this last rotation: if the angle was positive (rotation to the left), the bot must continue to turn left during the burst; if the angle was negative, the bot must continue to turn right. + +In order to "remember" the angle of the last rotation, we need a variable that can contain just one number. If we choose to call it \c;angle\n;, we must define the variable with the following line at the beginning of the program: +\c; +\s; \l;float\u cbot\type; angle; +\n; +The variable type \l;float\u cbot\type; is the variable type that can contain any number, i.e. whole numbers or real numbers. Please refer to the \l;text about variable types\u cbot\type; if you want to know more about the different types of variables and what they can contain. + +Just before the instruction \c;fire(1);\n;, instead of writing \c;\l;turn\u cbot\turn;(\l;direction\u cbot\direct;(item.position));\n;, we will put the rotation angle into the variable \c;angle\n;: +\c; +\s; angle = direction(item.position); +\n; +Then we perform the rotation, and we set the power of the motors so that the bot continues the movement: +\c; +\s; turn(angle); +\s; if (angle < 0) +\s; { +\s; motor(1,0.5); +\s; } +\s; else +\s; { +\s; motor(0.5,1); +\s; } +\n; +The instruction \c;else\n; determines what instructions the program should execute if the condition stated in the \c;if\n; instruction is false. + +Then we must set the power of the jet so that the bot follows the wasp also in the vertical direction: +\c; +\s; jet(0); +\s; if(position.z > item.position.z) +\s; { +\s; jet(-0.3); +\s; } +\s; +\s; if(position.z < item.position.z - 1) +\s; { +\s; jet(0.3); +\s; } +\n; +As you will see, this program is much more efficient than the previous one! + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/E/win.txt b/help/E/win.txt new file mode 100644 index 00000000..88e55a42 --- /dev/null +++ b/help/E/win.txt @@ -0,0 +1,3 @@ + +Houston congratulates you in the name of mankind for the success of your missin. +The Great Migration to Terra Nova will start very soon. diff --git a/help/F/authors.txt b/help/F/authors.txt new file mode 100644 index 00000000..392b4ee5 --- /dev/null +++ b/help/F/authors.txt @@ -0,0 +1,7 @@ +Development team: Beta tester core team: + +- Daniel Roux - Adrien Roux - Michael Jubin +- Denis Dumoulin - Didier Raboud - Daniel Sauthier +- Otto Kölbl - Nicolas Beuchat - Nicolas Stubi +- Michael Walz - Joël Roux - Patrick Thévoz +- Didier Gertsch diff --git a/help/F/cbot.txt b/help/F/cbot.txt new file mode 100644 index 00000000..87b2a004 --- /dev/null +++ b/help/F/cbot.txt @@ -0,0 +1,91 @@ +\b;Programming - the CBOT language +The CBOT language is very close in structure and syntax to C++ and Java. It has been adapted for the specific purposes of COLOBOT, and for an efficient pedagogical approach. +This language is made up of instructions (see below), \l;blocks\u cbot\bloc;, \l;functions\u cbot\function;, \l;classes\u cbot\class;, \l;variables\u cbot\var;, \l;arrays\u cbot\array;, \l;expressions\u cbot\expr; and \l;conditions\u cbot\cond;. + +o \c;\token;Instructions\norm;\n; +In the program editor, an instruction in the CBOT language is always displayed on an orange background. If an instruction hasn't got an orange background, this means that it has been misspelled. Instruction names are always written in lower case. + +o \c;\type;Type\norm;\n; +The \l;type\u cbot\type; of a variable appears with a green background. + +o \c;\const;Constants\norm;\n; +Constants like \l;categories\u cbot\category; are displayed with a red background. + +\t;Instructions in the CBOT language: +\c;\l;extern\u cbot\extern; \n;Indicate the main function +\c;\l;if\u cbot\if; \n;Choice structure +\c;\l;else\u cbot\if; \n;Alternative choice structure +\c;\l;for\u cbot\for; \n;Loop structure +\c;\l;while\u cbot\while; \n;Control structure +\c;\l;do\u cbot\do; \n;Control structure +\c;\l;break\u cbot\break; \n;Exit from a loop +\c;\l;continue\u cbot\continue; \n;Continues the loop +\c;\l;return\u cbot\return; \n;Exit from a function +\c;\l;sizeof\u cbot\sizeof; \n;Size of an array + +\t;Specific instructions for bots: +\c;\l;radar\u cbot\radar; \n;Object detection +\c;\l;direction\u cbot\direct; \n;Calculates a rotation angle +\c;\l;distance\u cbot\dist; \n;Calculates a distance +\c;\l;distance2d\u cbot\dist2d; \n;Calculates a distance +\c;\l;wait\u cbot\wait; \n;Waits +\c;\l;move\u cbot\move; \n;Moves forward or backward +\c;\l;turn\u cbot\turn; \n;Turns +\c;\l;goto\u cbot\goto; \n;Goes to a given position +\c;\l;motor\u cbot\motor; \n;Direct motor control +\c;\l;jet\u cbot\jet; \n;Direct jet engine control +\c;\l;message\u cbot\message; \n;Displays a message +\c;\l;retobject\u cbot\retobj; \n;Returns an object from a function +\c;\l;errmode\u cbot\errmode; \n;Error treatement control +\c;\l;abstime\u cbot\abstime; \n;Returns the absolute time + +\t;Instructions about topology: +\c;\l;space\u cbot\space; \n;Calculates a free space +\c;\l;topo\u cbot\topo; \n;Returns the altitude of a point +\c;\l;flatground\u cbot\flatgrnd; \n;Returns radius of a flat area + +\t;Instructions specific to some bots: +\c;\l;grab\u cbot\grab; \n;Picks up an object +\c;\l;drop\u cbot\drop; \n;Puts down an object +\c;\l;sniff\u cbot\sniff; \n;Sounds the subsoil +\c;\l;thump\u cbot\thump; \n;Overturns alien insects +\c;\l;recycle\u cbot\recycle; \n;Recycles a derelict bot +\c;\l;shield\u cbot\shield; \n;Extends or withdraws the shield +\c;\l;fire\u cbot\fire; \n;Fires the cannon +\c;\l;aim\u cbot\aim; \n;Vertical angle of the cannon + +\t;Specific instructions for exchange posts: +\c;\l;receive\u cbot\receive; \n;Receives an information +\c;\l;send\u cbot\send; \n;Sends a new information +\c;\l;testinfo\u cbot\testinfo; \n;Tests if an information exists +\c;\l;deleteinfo\u cbot\delinfo; \n;Deletes an existing information + +\t;Specific instructions for classes: +\c;\l;class\u cbot\class; \n;Class declararion +\c;\l;public\u cbot\public; \n;Declares a public function +\c;\l;private\u cbot\private; \n;Declares a private class member +\c;\l;static\u cbot\static; \n;Declares a static class member +\c;\l;synchronized\u cbot\synchro; \n;Prevents simultaneous execution +\c;\l;new\u cbot\new; \n;Creates a new instance +\c;\l;this\u cbot\this; \n;Reference to the current instance + +\t;Specific instructions for strings: +\c;\l;strlen\u cbot\strlen; \n;Gets string length +\c;\l;strleft\u cbot\strleft; \n;Extracts left part +\c;\l;strright\u cbot\strright; \n;Extracts right part +\c;\l;strmid\u cbot\strmid; \n;Extracts center part +\c;\l;strfind\u cbot\strfind; \n;Finds a substring. +\c;\l;strval\u cbot\strval; \n;Converts string to number +\c;\l;strupper\u cbot\strupper; \n;Converts to upper case +\c;\l;strlower\u cbot\strlower; \n;Converts to lower case + +\t;Specific instructions for files: +\c;\l;open\u cbot\open; \n;Opens a file +\c;\l;close\u cbot\close; \n;Closes a file +\c;\l;writeln\u cbot\writeln; \n;Writes line to a file +\c;\l;readln\u cbot\readln; \n;Reads line from a file +\c;\l;eof\u cbot\eof; \n;Tests if end of file +\c;\l;deletefile\u cbot\deletef; \n;Deletes a file + +\t;See also +\l;Types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/abstime.txt b/help/F/cbot/abstime.txt new file mode 100644 index 00000000..bdfe4c90 --- /dev/null +++ b/help/F/cbot/abstime.txt @@ -0,0 +1,11 @@ +\b;Instruction \c;abstime\n; +Syntax¦: +\s;\c;abstime ( );\n; + +Return the time in seconds elapsed since the beginning of the mission. + +\t;Return: \c;\l;float\u cbot\float;\n; +Time in seconds. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/aim.txt b/help/F/cbot/aim.txt new file mode 100644 index 00000000..8d1e460f --- /dev/null +++ b/help/F/cbot/aim.txt @@ -0,0 +1,21 @@ +\b;Instruction \c;aim\n; +Syntax : +\s;\c;aim ( angle );\n; + +This instruction sets the vertical angle of the cannon. The following robots are equipped with a cannon: +o \l;Shooter\u object\botfr; +o \l;Orga shooter\u object\botor; +o \l;Phazer shooter\u object\botphaz; + +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 \c;\l;turn\u cbot\turn;\n;. + +\t;angle: \c;\l;float\u cbot\float;\n; +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 \c;-20\n; to \c;+20\n; degrees. For phazer shooters, the angle must range from \c;-20\n; to \c;45\n; degrees. + +\t;Return value: \c;\l;int\u cbot\int;\n; +Zero if everything is OK, a value different from zero if the rotation could not be performed: +\c;== 0 \n;The gun has now got the desired orientation +\c;!= 0 \n;rotation impossible + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/array.txt b/help/F/cbot/array.txt new file mode 100644 index 00000000..152bed55 --- /dev/null +++ b/help/F/cbot/array.txt @@ -0,0 +1,31 @@ +\b;Arrays +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 \c;[]\n; after the type name or the variable name to declare an array. +\c; +\s;int [ ] a; // an array of int +\s;int a [12]; // an array of int limited to 12 elements +\s;string s[3]; // an array of 3 strings +\s;float xy[][]; // an 2 dimensionnal array of floats +\n; +Actually when the CBOT interpreter encounters an array declaration, it just creates a \c;\l;null\u cbot\null;\n; \l;reference\u cbot\pointer;: +\c; +\s;int a[5]; // a is now a null reference +\n; +As soon as you put values into the array, the elements are created and the reference is initialized: +\c; +\s;a[2] = 213; // a points to +\s; // 3 élements [0], [1] et [2] +\n; +After this operation, \c;a\n; contains a reference to the elements of the array. Elements \c;[0]\n; and \c;[1]\n; are created but not initialized because an array cannot contain empty elements. The \c;\l;sizeof\u cbot\sizeof;\n; instruction allows you to obtain the number of elements contained in an array. + +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: +\c; +\s;{ +\s; int a[5]; +\s; a[7] = 123; // no error at compile time +\s; // but error at run time +\s;} +\n; +If you pass an array as parameter to a \l;function\u cbot\function;, the function only receives a \l;reference\u cbot\pointer; 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. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/bloc.txt b/help/F/cbot/bloc.txt new file mode 100644 index 00000000..287536ea --- /dev/null +++ b/help/F/cbot/bloc.txt @@ -0,0 +1,49 @@ +\b;Blocks +You can use braces \c;{ }\n; to group a number of instructions together in order to make one single block out of them, for example: +\c; +\s; { +\s; float t; +\s; t = a; +\s; a = b; +\s; b = t; // switches round a and b +\s; } +\n; +Every instruction in the block is followed by a \l;semicolon\u cbot\term;, but the block itself is not. +Let us take the following example with the instruction \c;\l;if\u cbot\if;\n; to illustrate the use of blocks in a program: +\c; +\s; if ( a < b ) +\s; \n;instruction 1\c;; +\s; \n;instruction 2\c;; +\s; \n;instruction 3\c;; +\n; +If the \l;condition\u cbot\cond; 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: +\c; +\s; if ( a < b ) +\s; { +\s; \n;instruction 1\c;; +\s; \n;instruction 2\c;; +\s; } +\s; \n;instruction 3\c;; +\n; +Blocks may be needed with instructions \c;\l;if\u cbot\if;\n;, \c;\l;while\u cbot\while;\n; and \c;\l;for\u cbot\for;\n;, 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 : +\c; +\s; if ( a > b ) +\s; { +\s; int i = 0; +\s; while ( i < 18 ) +\s; { +\s; move(10); +\s; turn(5); +\s; i = i+1; +\s; } +\s; } +\n; +You had better line up the open brace \c;{\n; with the closing brace \c;}\n; 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 : +\c; +\s; if(a>b) { int i=0; while(i<18) { +\s; move(10);turn(5);i=i+1; }} +\n; +\t;See also +\l;Instructions\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/bool.txt b/help/F/cbot/bool.txt new file mode 100644 index 00000000..b97ab9d4 --- /dev/null +++ b/help/F/cbot/bool.txt @@ -0,0 +1,5 @@ +\b;Type \c;bool\n; +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. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/break.txt b/help/F/cbot/break.txt new file mode 100644 index 00000000..2833e6c2 --- /dev/null +++ b/help/F/cbot/break.txt @@ -0,0 +1,25 @@ +\b;Instruction \c;break\n; +Syntax : +\s;\c;while ( condition ) +\s;{ +\s; break; +\s;} +\n; +With this instruction, you can get out immediately of a \c;\l;while\u cbot\while;\n; or \c;\l;for\u cbot\for;\n; loop. + +Here is an example: +\s;\c;int i = 0; +\s;while ( true ) +\s;{ +\s; \n;Instructions ...\c; +\s; i = i+1; +\s; if ( i >= 10 ) +\s; { +\s; break; +\s; } +\s; \n;more instructions ...\c; +\s;} +\n; + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/category.txt b/help/F/cbot/category.txt new file mode 100644 index 00000000..6dd7f3c2 --- /dev/null +++ b/help/F/cbot/category.txt @@ -0,0 +1,108 @@ +\b;Value \c;Categories\n; +Categories represent the names of objects in the CBOT language. Everything in COLOBOT is an object: robots, buildings, raw materials, etc., even yourself. + +In a program, categories are always displayed on a \const;red background\norm;. If a category isn't highlighted in red, it is misspelled. Caps and lower cases should be kept as is. + +Below are the different categories available : + +\t;Buildings : + +\button 176; \c;\l;Houston\u object\Huston; \n;Mission Control +\button 171; \c;\l;SpaceShip\u object\base; \n;Spaceship +\button 160; \c;\l;BotFactory\u object\factory; \n;Robot Factory +\button 163; \c;\l;ResearchCenter\u object\research; \n;Research Center +\button 168; \c;\l;RadarStation\u object\radar; \n;Radar +\button 172; \c;\l;ExchangePost\u object\exchange; \n;Information Exchange Post +\button 169; \c;\l;RepairCenter\u object\repair; \n;Repair Center +\button 165; \c;\l;DefenseTower\u object\tower; \n;Defense Tower +\button 166; \c;\l;AutoLab\u object\labo; \n;Organic Matter Analyzer +\button 164; \c;\l;PowerStation\u object\station; \n;Power Station +\button 167; \c;\l;PowerPlant\u object\energy; \n;Power Cell Factory +\button 170; \c;\l;NuclearPlant\u object\nuclear; \n;Nuclear Plant +\button 162; \c;\l;Converter\u object\convert; \n;Titanium Converter +\button 161; \c;\l;Derrick\u object\derrick; \n;Derrick +\button 174; \c;\l;PowerCaptor\u object\captor; \n;Parabolic Lightning Conductor +\button 175; \c;\l;Vault\u object\safe; \n;Vault + \c;\l;StartArea\u object\start; \n;Starting Pad + \c;\l;GoalArea\u object\goal; \n;Finishing Pad + \c;\l;AlienNest\u object\nest; \n;Alien Nest + + +\t;Portable Objects : + + \c;\l;TitaniumOre\u object\titanore; \n;Titanium Ore + \c;\l;UraniumOre\u object\uranore; \n;Uranium Ore + \c;\l;Titanium\u object\titan; \n;Cube of converted Titanium + \c;\l;PowerCell\u object\power; \n;Regular Power Cell + \c;\l;NuclearCell\u object\atomic; \n;Nuclear Power Cell + \c;\l;OrgaMatter\u object\bullet; \n;Organic Matter + \c;\l;BlackBox\u object\bbox; \n;Black Box + \c;\l;TNT\u object\tnt; \n;Explosive device + \c;\l;KeyA..D\u object\key; \n;Keys A, B, C and D + + +\t;Robots : + +\button 158; \c;\l;PracticeBot\u object\bottr; \n;Practice Bot +\button 173; \c;\l;TargetBot\u object\bottarg; \n;Target Bot + +\button 137; \c;\l;WheeledGrabber\u object\botgr; \n;Wheeled Grabber +\button 138; \c;\l;TrackedGrabber\u object\botgc; \n;Tracked Grabber +\button 139; \c;\l;WingedGrabber\u object\botgj; \n;Winged Grabber +\button 150; \c;\l;LeggedGrabber\u object\botgs; \n;Legged Grabber + +\button 140; \c;\l;WheeledSniffer\u object\botsr; \n;Wheeled Sniffer +\button 141; \c;\l;TrackedSniffer\u object\botsc; \n;Tracked Sniffer +\button 142; \c;\l;WingedSniffer\u object\botsj; \n;Winged Sniffer +\button 152; \c;\l;LeggedSniffer\u object\botss; \n;Legged Sniffer + +\button 143; \c;\l;WheeledShooter\u object\botfr; \n;Wheeled Shooter +\button 144; \c;\l;TrackedShooter\u object\botfc; \n;Tracked Shooter +\button 145; \c;\l;WingedShooter\u object\botfj; \n;Winged Shooter +\button 151; \c;\l;LeggedShooter\u object\botfs; \n;Legged Shooter + +\button 153; \c;\l;WheeledOrgaShooter\u object\botor; \n;Wheeled Orga Shooter +\button 154; \c;\l;TrackedOrgaShooter\u object\botoc; \n;Tracked Orga Shooter +\button 155; \c;\l;WingedOrgaShooter\u object\botoj; \n;Winged Orga Shooter +\button 156; \c;\l;LeggedOrgaShooter\u object\botos; \n;Legged Orga Shooter + +\button 149; \c;\l;Subber\u object\botsub; \n;Subber +\button 148; \c;\l;Recycler\u object\botrecy; \n;Recycler +\button 157; \c;\l;Shielder\u object\botshld; \n;Shielder +\button 146; \c;\l;Thumper\u object\bottump; \n;Thumper +\button 147; \c;\l;PhazerShooter\u object\botphaz; \n;Phazer Shooter + + +\t;Enemies : + + \c;\l;AlienQueen\u object\mother; \n;Alien Queen + \c;\l;AlienEgg\u object\egg; \n;Alien Egg + \c;\l;AlienAnt\u object\ant; \n;Ant + \c;\l;AlienSpider\u object\spider; \n;Spider + \c;\l;AlienWasp\u object\wasp; \n;Wasp + \c;\l;AlienWorm\u object\worm; \n;Worm + + +\t;Miscellaneous : + +\button 136; \c;\l;Me\u object\human; \n;You! + \c;\l;Mine\u object\mine; \n;Mine + \c;\l;Barrier\u object\barrier; \n;Barrier + \c;\l;Wreck\u object\wreck; \n;Derelict bot + \c;\l;Ruin\u object\ruin; \n;Derelict building + + +\t;Flags and Other Indicators : + + \c;\l;BlueFlag\u object\flag; \n;Blue Flag + \c;\l;RedFlag\u object\flag; \n;Red Flag + \c;\l;GreenFlag\u object\flag; \n;Green Flag + \c;\l;YellowFlag\u object\flag; \n;Yellow Flag + \c;\l;VioletFlag\u object\flag; \n;Violet Flag + \c;\l;WayPoint\u object\waypoint; \n;Checkpoint + \c;\l;EnergySite\u object\enerspot; \n;Underground Energy Deposit + \c;\l;TitaniumSite\u object\stonspot; \n;Underground Titanium Deposit + \c;\l;UraniumSite\u object\uranspot; \n;Underground Uranium Deposit + +\t;See also +\l;CBOT Language\u cbot; and \l;Variables\u cbot\type;. diff --git a/help/F/cbot/class.txt b/help/F/cbot/class.txt new file mode 100644 index 00000000..942d7b0e --- /dev/null +++ b/help/F/cbot/class.txt @@ -0,0 +1,72 @@ +\b;Instruction \c;class\n; +This allows you to declare a class definition using following syntax: +\c; +\s;public class ClassName +\s;{ +\s; declarations; +\s;} +\n; +Classes can only be \l;public\u cbot\public;, that is they can be used from all bots in a mission. Class members are also public, that is they are accessible from outside the class. Class members can be fields or functions (also called methods), for example the followin class \c;MyClass\n; contains 4 fields (a, b, x and s) and one method (MyFunction). +\c; +\s;public class MyClass +\s;{ +\s; int a, b; +\s; float x = 3.33; +\s; string s = "hello"; +\s; float MyFunction( float value ) +\s; { +\s; return (value*x)-1; +\s; } +\s;} +\n; +As shown in this exemple the class members can be initialized (\c;x=3.33\n;). You can also define a constructor which is a special method having the same name as the class name. This method will be called automatically at creation time of a class instance. You can also declare more than one method with the same name but different parameters. +\c; +\s;public class MyClass +\s;{ +\s; int a, b; +\s; void MyClass( ) +\s; { +\s; a = 2; b = 3; +\s; } +\s; void MyClass( int a, int b ) +\s; { +\s; this.a = a; this.b = b; +\s; } +\s;} +\n; +In this example two constructors are declared for \c;MyClass\n;, one without parameters and the other one with two parameters. As the names of the parameters of the second constructor are the same as the names of the two members \c;a\n; et \c;b\n; we must use the \c;\l;this\u cbot\this;.a\n; and \c;\l;this\u cbot\this;.b\n; to avoid confusion with the parameters. Another more simpler solution would be to give different names to the parameters. +\c; +\s;void Test( ) +\s;{ +\s; MyClass item1(); // constr. w/o parameters +\s; MyClass item2(4, 5); // constr. with 2 parameters +\s; MyClass item3; // no constructor called, +\s; // therefore item3 == null +\s;} +\n; +You can also define a destructor. This must be a \c;void\n; fonction without parameters that has the same name as the class name but prefixed by the ~ character. The destructor is called automatically as soon as the class instance is no more referenced by anyone. +\c; +\s;public class MyClass +\s;{ +\s; static private int counter = 0; // instance counter +\s; void MyClass( ) +\s; { +\s; counter ++; // one instance more +\s; } +\s; void ~MyClass( ) +\s; { +\s; counter --; // one instance less +\s; } +\s;} +\s;void Test() +\s;{ +\s; MyClass item1( ); // counter = 1 +\s; MyClass item2( ); // counter = 2 +\s; item1 = null; // counter = 1 +\s;} // counter = 0 +\n; +If you pass a class instance as parameter to a \l;function\u cbot\function;, the function only receives a \l;reference\u cbot\pointer; to the instance. That means if you modify the instance in the function, the instance that has been passed to the function will be actuallay modified. + +\t;See also +\c;\l;public\u cbot\public;\n;, \c;\l;private\u cbot\private;\n;, \c;\l;static\u cbot\static;\n;, \c;\l;synchronized\u cbot\synchro;\n;, \c;\l;new\u cbot\new;\n;, \c;\l;reference\u cbot\pointer;\n;, \c;\l;this\u cbot\this;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/close.txt b/help/F/cbot/close.txt new file mode 100644 index 00000000..bca89ae3 --- /dev/null +++ b/help/F/cbot/close.txt @@ -0,0 +1,8 @@ +\b;Instruction \c;close\n; +Close a file opened previously with \c;\l;open\u cbot\open;\n;. This is a method of the \c;\l;file\u cbot\file;\n; class; therefore you cannot write \c;close()\n; but only \c;handle.close()\n;¦: +\c; +\s; handle.close(); +\n; +\t;See also +\c;\l;file\u cbot\file;\n;, \c;\l;open\u cbot\open;\n;, \c;\l;readln\u cbot\readln;\n;, \c;\l;writeln\u cbot\writeln;\n; and \c;\l;eof\u cbot\eof;\n;. +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/cond.txt b/help/F/cbot/cond.txt new file mode 100644 index 00000000..f6f41794 --- /dev/null +++ b/help/F/cbot/cond.txt @@ -0,0 +1,29 @@ +\b;Conditions +A condition is a special \l;expression\u cbot\expr; that returns a \l;boolean\u cbot\bool; value, that can only be either \c;\l;true\u cbot\true;\n; or \c;\l;false\u cbot\false;\n;. With a condition, you can choose f. ex. if the instructions in a \c;\l;while\u cbot\while;\n; loop must be repeated again, or if the instruction in a \c;\l;if\u cbot\if;\n; bloc must be executed. +Here are some operators that you can use in conditions to compare two values : + +\c;a == b \n;\c;a\n; equals \c;b\n; +\c;a != b \n;\c;a\n; is different from \c;b\n; +\c;a < b \n;\c;a\n; smaller than \c;b\n; +\c;a <= b \n;\c;a\n; smaller than or equal to \c;b\n; +\c;a > b \n;\c;a\n; greater than \c;b\n; +\c;a >= b \n;\c;a\n; greater than or equal to \c;b\n; + +For example : + +\c;12 == 12 \n;returns true +\c;45 != 47 \n;returns true +\c;99 == 98 \n;returns false +\c;12 < -1 \n;returns false +\c;12 >= 10 \n;returns true +\c;12 >= 12 \n;returns true + +\t;Remarque +Be careful not to confuse the equality comparison \c;==\n; with the assignment of a \l;variable\u cbot\var; \c;=\n;. + +\c;a == b\n; is an expression that compares \c;a\n; with \c;b\n;. +\c;a = b\n; is an expression that copies the value of \c;b\n; into \c;a\n;. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/F/cbot/continue.txt b/help/F/cbot/continue.txt new file mode 100644 index 00000000..d516aa78 --- /dev/null +++ b/help/F/cbot/continue.txt @@ -0,0 +1,25 @@ +\b;Instruction \c;continue\n; +Syntax : +\s;\c;while ( condition ) +\s;{ +\s; continue; +\s;} +\n; +With this instruction, you can jump over the rest of instructions in the \c;\l;bloc\u cbot\bloc;\n; of a \c;\l;while\u cbot\while;\n; or \c;\l;for\u cbot\for;\n; loop: The execution will resume at the beginning of the bloc, the next time the loop is repeated. + +Here is an example: +\s;\c;int i = 0; +\s;while ( i < 5 ) +\s;{ +\s; i = i+1; +\s; if ( i == 3 ) +\s; { +\s; continue; +\s; } +\s; \n;Instructions ...\c; +\s;} +\n; +The instructions will only be executed for the values of \c;i\n; 1, 2, 4 and 5. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/deletef.txt b/help/F/cbot/deletef.txt new file mode 100644 index 00000000..dc6e93f9 --- /dev/null +++ b/help/F/cbot/deletef.txt @@ -0,0 +1,10 @@ +\b;Instruction \c;deletefile\n; +The deletefile instruction deletes an existing file in the files/ folder. + +Files can only be deleted in the files/ folder which is located in the folder where Colobot has been installed. You cannot not delete files that are located elsewhere than in the files/ folder. + +Syntax¦: +\s;\c;deletefile ( filename );\n; + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/delinfo.txt b/help/F/cbot/delinfo.txt new file mode 100644 index 00000000..6d93b26b --- /dev/null +++ b/help/F/cbot/delinfo.txt @@ -0,0 +1,15 @@ +\b;Instruction \c;deleteinfo\n; +Syntax¦: +\s;\c;deleteinfo ( name, power );\n; + +Delete an existing information in the closest \l;information exchange post\u object\exchange;. + +\t;name: \c;string\n; +Name of the information to be deleted. This name is a string: it must be written in quotation marks "¦". + +\t;power: \c;float\n; +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. + +\t;See also +\c;\l;receive\u cbot\receive;\n;, \c;\l;send\u cbot\send;\n; and \c;\l;testinfo\u cbot\testinfo;\n;. +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/direct.txt b/help/F/cbot/direct.txt new file mode 100644 index 00000000..d400e805 --- /dev/null +++ b/help/F/cbot/direct.txt @@ -0,0 +1,15 @@ +\b;Instruction \c;direction\n; +Syntax : +\s;\c;direction ( pos );\n; + +Calculates the rotation that a robot must perform in order to point towards a given position. + +\t;pos: \c;\l;point\u cbot\point;\n; +Position towards which the robot must point. + +\t;Return value: \c;\l;float\u cbot\float;\n; +Angle of the rotation that must be performed. -90 means f. ex. a rotation of 90 degrees to the right. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/F/cbot/dist.txt b/help/F/cbot/dist.txt new file mode 100644 index 00000000..a4183d44 --- /dev/null +++ b/help/F/cbot/dist.txt @@ -0,0 +1,30 @@ +\b;Instruction \c;distance\n; +With the instruction \c;distance( , )\n; you can calculate the distance between two positions. + +\b;Basic use +If you write \c;position\n; alone, this gives you the position of the bot that executes the program. If you write the name of a variable followed by \c;.position\n;, this gives you the position of the object described in the variable. + +Here is a program that moves forward, covering exactly the distance between the bot and the closest ant: +\c; +\s; item = \l;radar\u cbot\radar;(AlienAnt); +\s; \l;move\u cbot\move;(distance(position, item.position)); +\n; +This is of course pure suicide. Better to stop 40 meters before, in order to be at shooting range: +\c; +\s; item = radar(AlienAnt); +\s; move(distance(position, item.position) - 40); +\n; +\b;For specialists +Syntax: +\s;\c;distance ( pos1, pos2 );\n; + +Calculates the distance between two positions. + +\t;pos1, pos2: \c;\l;point\u cbot\point;\n; +Coordinates of the two positions. + +\t;Return value: \c;\l;float\u cbot\float;\n; +Distance between the two positions. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/dist2d.txt b/help/F/cbot/dist2d.txt new file mode 100644 index 00000000..89ea1cb2 --- /dev/null +++ b/help/F/cbot/dist2d.txt @@ -0,0 +1,14 @@ +\b;Instruction \c;distance2d\n; +Syntax: +\s;\c;distance2d ( pos1, pos2 );\n; + +Calculates the distance between two positions (ignores the z coordinate). + +\t;pos1, pos2: \c;\l;point\u cbot\point;\n; +Coordinates of the two positions. + +\t;Return value: \c;\l;float\u cbot\float;\n; +Distance between the two positions. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/do.txt b/help/F/cbot/do.txt new file mode 100644 index 00000000..391745c6 --- /dev/null +++ b/help/F/cbot/do.txt @@ -0,0 +1,28 @@ +\b;Instruction \c;do - while\n; +Syntax: +\s;\c;do +\s;{ +\s; \n;Instructions ...\c; +\s;} +\s;while ( condition ); +\n; +This instruction allows you to perform several times the instructions inside the \l;block\u cbot\bloc;. 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 \c;\l;while\u cbot\while; ( ) { }\n;; the latter tests the condition before the instructions in the block are executed. + +\t;\c;condition\n; +The instructions in the block are performed over and over again, as long as the \l;condition\u cbot\cond; is true. + +Here is an example : +\s;\c;do +\s;{ +\s; p = radar(TitaniumOre); +\s;} +\s;while ( p == null ); +\n; +\t;Attention +Always put a \l;semicolon\u cbot\term; at the end of the line \c;while ( )\n;. + +The instructions \c;\l;break\u cbot\break;\n; and \c;\l;continue\u cbot\continue;\n; can be useful inside a block following the instruction \c;do { }\n;. + +\t;See also +\l;Instructions\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/drop.txt b/help/F/cbot/drop.txt new file mode 100644 index 00000000..9b383dd1 --- /dev/null +++ b/help/F/cbot/drop.txt @@ -0,0 +1,29 @@ +\b;Instruction \c;drop\n; +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. + +\b;Basic use +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: +\c; +\s; \l;grab\u cbot\grab;(); +\s; \l;move\u cbot\move;(5); +\s; drop(); +\n; +\b;For specialists +Syntax: +\s;\c;drop ( oper );\n; + +This instruction appeals to the operating arm of a \l;grabber bot\u object\botgr;, in order to drop what it is holding. + +\t;oper: \c;\l;int\u cbot\int;\n; (default value\c;InFront\n;) +Oper indicates where the robot should drop the object. If no indication is given, the object is dropped in front of the bot. +\c;InFront \n; Drops in front (default value). +\c;Behind \n; Drops behind. +\c;EnergyCell\n; Drops on the bot's own power cell location. + +\t;Return value: \c;\l;int\u cbot\int;\n; +Normally an error stops the program. You can prevent the program from stopping on errors by using the \c;\l;errmode\u cbot\errmode;(0)\n; instruction. A value different from zero if an error occurred is then returned by \c;drop();\n;. +\c;== 0 \n;object was dropped +\c;!= 0 \n;error, no object was dropped + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/eof.txt b/help/F/cbot/eof.txt new file mode 100644 index 00000000..30c2f4c3 --- /dev/null +++ b/help/F/cbot/eof.txt @@ -0,0 +1,15 @@ +\b;Instruction \c;eof\n; +Test the end of file condition of an open file. This is a method of the \c;\l;file\u cbot\file;\n; class; therefore you cannot write \c;eof()\n; but only \c;handle.eof()\n;¦: +\c; +\s; if ( handle.eof() ) +\n; +Example¦: +\c; +\s; while ( not handle.eof() ) +\s; { +\s; s = handle.readln(); +\s; } +\n; +\t;See also +\c;\l;file\u cbot\file;\n;, \c;\l;open\u cbot\open;\n;, \c;\l;close\u cbot\close;\n;, \c;\l;readln\u cbot\readln;\n; and \c;\l;writeln\u cbot\writeln;\n;. +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/errmode.txt b/help/F/cbot/errmode.txt new file mode 100644 index 00000000..8b4286ab --- /dev/null +++ b/help/F/cbot/errmode.txt @@ -0,0 +1,33 @@ +\b;Instruction \c;errmode\n; +The \c;errmode();\n; instruction allows you to chose if the program should stop when an error occurs in one of the following instructions: \c;\l;goto\u cbot\goto;\n;, \c;\l;move\u cbot\move;\n;, \c;\l;grab\u cbot\grab;\n;, \c;\l;drop\u cbot\drop;\n;, etc. + +\b;For specialists +Syntax¦: +\s;\c;errmode ( mode );\n; + +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. + +\t;mode: \c;\l;float\u cbot\float;\n; (\c;1\n; per default) +Error treatment mode. +\c;0\n; -> continues program execution and returns a non zero value +\c;1\n; -> stops the program (default behavior) + +Exemple 1¦: +\s;\c;errmode(0); +\s;while ( goto(pos) != 0 ) +\s;{ +\s; wait(2); +\s;} +\n; +Exemple 2¦: +\s;\c;errmode(0); +\s;int err; +\s;err = goto(pos); +\s;if ( err != 0 ) +\s;{ +\s; \n;goto did not perform correctly ...\c; +\s; \n;take some appropriate action ...\c; +\s;} +\n; +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/expr.txt b/help/F/cbot/expr.txt new file mode 100644 index 00000000..1ff8bc73 --- /dev/null +++ b/help/F/cbot/expr.txt @@ -0,0 +1,88 @@ +\b;Expressions +Expressions can include the following operators: + +\c;+\n; addition +\c;-\n; subtraction +\c;*\n; multiplication +\c;/\n; division +\c;%\n; remainder of the division (only for the type \c;\l;int\u cbot\int;\n;) + +With the addition operator \c;+\n;, you can not only add numbers, you can also append \l;strings\u cbot\string;. +\c; +\s; int i = 12+3; // returns 15 +\s; string s = "a"+"bc"; // returns "abc" +\s; int i = 2-5; // returns -3 +\s; float f = 3.01*10; // returns 30.1 +\s; int i = 5/3; // returns 1 +\s; float f = 5/3; // returns 1.67 +\s; float f = 5/0; // returns an error +\s; int i = 13%5; // returns 3 +\s; int i = -8%3; // returns -2 +\n; +An expression can include constants or \l;variables\u cbot\var;. For example: + +\s;\c; 12+dist\n; + +Multiplications and divisions are performed before additions and subtractions. In order to be sure that the operations are performed in the right order, use brackets: +\c; +\s; 12*a+b/c \n;is equivalent to\c; (12*a)+(b/c) +\s; 2.5*(dist+range) +\n; +In order to improve readability, you can put as many spaces as you want: +\c; +\s; 12*a + b/c +\s; 2.5 * (dist+range) +\n; +Here is a list of mathematical functions: + +\c;sin(angle) \n;sinus +\c;cos(angle) \n;cosinus +\c;tan(angle) \n;tangent +\c;asin(value) \n;arc-sinus +\c;acos(value) \n;arc-cosinus +\c;atan(value) \n;arc-tangente +\c;sqrt(value) \n;square root +\c;pow(x, y) \n;x power y +\c;rand() \n;random value ranging between 0 and 1 + +Angles are in degrees. + +\t;Compound assignment operators (for specialists) +Besides the \c;=\n; operators for variable assignment there are several compound-assignment operators. + +The compound-assignment operators combine the \c;=\n; assignment operator with another binary operator such as \c;+\n; or \c;-\n;. 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 + +\c;\s;expression1 += expression2 + +is equivalent to + +\c;\s;expression1 = expression1 + expression2 + +\c;+=\n; addition +\c;-=\n; subtraction +\c;*=\n; multiplication +\c;/=\n; division +\c;%=\n; remainder of the division (only for the type \c;\l;int\u cbot\int;\n;) + +\t;Prefix and posfix increment- and decrement operators (for specialists) +The operators \c;++\n; and \c;--\n; allow you to increment (++) or to decrement (--) a variable in very compact and efficient manner. + +For example to increment the variable \c;a\n; you can write +\c;\s; a++ ; +\n;instead of +\c;\s; a = a + 1 ; +\n; +The value of the expression \c;a++\n; is the value of the variable \c;a\n; before the increment. If you use the prefix operator \c;++a\n; the value of the expression is the value of the variable \c;a\n; after the increment. The same holds for the \c;--\n; decrement operator. + +Exemples: +\c;\s; a = 2 ; +\s; b = a++ ; +\s; // now b contains 2 and a contains 3 + +\c;\s; a = 2 ; +\s; b = ++a ; +\s; // now b contains 3 and a contains 3 +\n; + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/extern.txt b/help/F/cbot/extern.txt new file mode 100644 index 00000000..08d2cba1 --- /dev/null +++ b/help/F/cbot/extern.txt @@ -0,0 +1,30 @@ +\b;Instruction \c;extern\n; +The \c;extern\n; instruction determines the \l;function\u cbot\function; that acts as main program of a robot. The name of the function declared with \c;extern\n; will apear in the program list in the lower left corner of the screen. +\c; +\s;extern void object::MowDown( ) +\s;{ +\s; while ( true ) +\s; { +\s; fire(1); +\s; turn(10); +\s; } +\s;} +\n; +If the program contains other functions, only the main function must be preceded by \c;extern\n;. +\c; +\s;extern void object::Square( ) +\s;{ +\s; for ( int i=0 ; i<4 ; i++ ) +\s; { +\s; Line(10); +\s; } +\s;} +\s; +\s;void object::Line(float dist) +\s;{ +\s; move(dist); +\s; turn(90); +\s;} +\n; +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/false.txt b/help/F/cbot/false.txt new file mode 100644 index 00000000..e5b1ffa9 --- /dev/null +++ b/help/F/cbot/false.txt @@ -0,0 +1,6 @@ +\b;Type \c;false\n; +This value means that a condition is not true; it is one of the two values that a \l;boolean\u cbot\bool; \l;variable\u cbot\var; can take. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/F/cbot/file.txt b/help/F/cbot/file.txt new file mode 100644 index 00000000..44bac38f --- /dev/null +++ b/help/F/cbot/file.txt @@ -0,0 +1,18 @@ +\b;Type \c;file\n; +This type is used for accessing files in the files/ folder. +\c; +\s; file handle(); +\n; +Use the syntax above for declaring a file handle. You must use () to create an instance of the \c;file\n; class. Without the () the handle would have the value \c;\l;null\u cbot\null;\n;. + +Files can only be created and opened in the files/ folder which is located in the folder where Colobot has been installed. You cannot not create or open files elsewhere than in the files/ folder. + +\b;For specialists +\c;file\n; is actually not a simple type but a class. \c;open\n;, \c;close\n;, \c;writeln\n; etc. are methods of the \c;file\n; class. This is the reason why we always write \c;handle.method()\n;¦: +\c; +\s; handle.open("test.txt", "w"); +\s; handle.close(); +\n; +\t;See also +\c;\l;open\u cbot\open;\n;, \c;\l;close\u cbot\close;\n;, \c;\l;readln\u cbot\readln;\n;, \c;\l;writeln\u cbot\writeln;\n; and \c;\l;eof\u cbot\eof;\n;. +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/fire.txt b/help/F/cbot/fire.txt new file mode 100644 index 00000000..fad947a6 --- /dev/null +++ b/help/F/cbot/fire.txt @@ -0,0 +1,31 @@ +\b;Instruction \c;fire\n; +The instruction \c;fire();\n; fires the bot's onboard cannon. + +\b;Basic use +Generally this instruction is used to shoot one-second bursts: +\c; +\s; fire(1); +\n; +\b;For specialists +Syntax: +\s;\c;fire ( time );\n; + +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: +o \l;Shooter\u object\botfr; +o \l;Orga shooter\u object\botor; +o \l;Phazer shooter\u object\botphaz; + +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 \c;\l;turn\u cbot\turn;\n;. + +In order to move the gun upward or downward, use the instruction \c;\l;aim\u cbot\aim;\n;. + +\t;time: \c;\l;float\u cbot\float;\n; +Duration of the burst. Generally, the value given is 1. Shorter bursts can also be performed in order to spare time and energy. + +\t;Return value: \c;\l;int\u cbot\int;\n; +Zero if OK, or a value different from zero if an error occurred. +\c;== 0 \n;the cannon has been fired +\c;!= 0 \n;error, the cannon could not be fired + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/flatgrnd.txt b/help/F/cbot/flatgrnd.txt new file mode 100644 index 00000000..ae821eb4 --- /dev/null +++ b/help/F/cbot/flatgrnd.txt @@ -0,0 +1,17 @@ +\b;Instruction \c;flatground\n; +Syntax¦: +\s;\c;flatground ( center, rmax );\n; + +Calculates the maximal radius of a flat zone on which a building ca be built. + +\t;center: \c;\l;point\u cbot\point;\n; +Center of the circlular zone. + +\t;rmax: \c;\l;float\u cbot\float;\n; +Maximal radius. + +\t;Return value: \c;\l;float\u cbot\float;\n; +Radius of the flat zone (always between 0 and rmax). + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/float.txt b/help/F/cbot/float.txt new file mode 100644 index 00000000..77876058 --- /dev/null +++ b/help/F/cbot/float.txt @@ -0,0 +1,25 @@ +\b;Type \c;float\n; +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: +\c; +\s; 12.9 +\s; 1.125 +\s; 0.002 +\s; -4.1 +\n; +If you need only whole numbers (f. ex. 12 or -5000), you should rather use the type \c;\l;int\u cbot\int;\n;. + +\t;Attention +Do not insert space or colon characters into a number. To separate the whole part from the fractional part, use a dot. +\c; +\s; Write and not +\s; 12.56 12 . 56 +\s; -54.34 -54,34 +\s;12895.69 12,895.69 +\n; +\t;For specialists +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. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/for.txt b/help/F/cbot/for.txt new file mode 100644 index 00000000..2465dd72 --- /dev/null +++ b/help/F/cbot/for.txt @@ -0,0 +1,40 @@ +\b;Instruction \c;for\n; +Syntax: +\s;\c;for ( before ; condition ; end ) +\s;{ +\s; \n;Instructions ...\c; +\s;} +\n; +This instruction allows you to execute a certain number of times the instructions contained in the \l;block\u cbot\bloc;. + +\t;\c;before\n; +This instruction is executed before the first loop instance. + +\t;\c;condition\n; +This \l;condition\u cbot\cond; determines if another instance of the loop must be executed. It is tested before every instance of the loop. + +\t;\c;end\n; +This instruction is executed at the end of every instance of the loop. + +Example: count from 1 to 4 +\c;\s;\c;for ( i = 0 ; i <= 4 ; i++ ) +\s;{ +\s; message(i) ; +\s;} +\n; +The following example is strictly equivalent to a \c;for\n;-loop, but it uses the instruction \c;\l;while\u cbot\while;\n;: +\s;\c;before; +\s;while ( condition ) +\s;{ +\s; \n;Instructions ...\c; +\s; end; +\s;} +\n; +\t;Attention +Do not put a \l;semicolon\u cbot\term; at the end of the line \c;for ( )\n;. + +The instructions \c;\l;break\u cbot\break;\n; and \c;\l;continue\u cbot\continue;\n; can be useful inside a block following the instruction \c;for \n;. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/F/cbot/function.txt b/help/F/cbot/function.txt new file mode 100644 index 00000000..9b403896 --- /dev/null +++ b/help/F/cbot/function.txt @@ -0,0 +1,85 @@ +\b;Functions +With functions you can divide your program into several parts, each of them will execute a specific task. +Let's imagine following program¦: +\c; +\s;extern void object::Remote( ) +\s;{ +\s; send("order", 1, 100); +\s; wait(5); +\s; send("order", 3, 100); +\s; wait(5); +\s; send("order", 2, 100); +\s; wait(5); +\s; send("order", 4, 100); +\s; wait(5); +\s;} +\n; +\c;send\n; and \c;wait\n; are repeated several times. So it would be a good thing if we created a function that executes these two instructions: +\c; +\s;void object::SendToPost( float op ) +\s;{ +\s; send("order", op, 100); +\s; wait(5); +\s;} +\s;extern void object::Remote( ) +\s;{ +\s; SendToPost(1); +\s; SendToPost(3); +\s; SendToPost(2); +\s; SendToPost(4); +\s;} +\n; +A function can have paramteters¦: +\c; +\s;void Example( int a, float x, string s ) +\n; +The \c;Exemple\n; function will reveive un integer \c;a\n;, a floating point number \c;x\n; and a string \c;s\n;. 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 \c;int\n; to a function, its parameter is a copy of whatever value was being passed as argument, and the function can change its parameter value without affecting values in the code that invoked the function. + +If you pass a \l;class\u cbot\class; instance or an \l;array\u cbot\array; as parameter to a function, the function only receives a \l;reference\u cbot\pointer; 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 actuallay modified. + +A function can also return a result with the \c;\l;return\u cbot\return;\n; instruction. Therefore the function must be declared no longer as void but as a type: +\c; +\s;float Mean( float a, float b ) +\s;{ +\s; return (a+b)/2; +\s;} +\s; +\s;extern void object::Test( ) +\s;{ +\s; float value; +\s; value = Mean(2, 6); +\s; message( value ); // will display 4 +\s;} +\n; +Some other examples¦: +\c; +\s;float Pi( ) +\s;{ +\s; return 3.1415; +\s;} +\s; +\s;string Sign( float a ) +\s;{ +\s; if ( a > 0 ) return "positive"; +\s; if ( a < 0 ) return "négative"; +\s; return "null"; +\s;} +\n; +You can declare several functions with the same name but different parameters¦: +\c; +\s;float Pythagoras( float a, float b ) +\s;{ +\s; return sqrt((a*a)+(b*b)); +\s;} +\s; +\s;float Pythagoras( float a, float b, float c ) +\s;{ +\s; return sqrt((a*a)+(b*b)+(c*c)); +\s;} +\n; +CBOT will call either the one or the other function depending on the paramteres passed. + +You can also declare a function \l;public\u cbot\public; so it can be used by other bots. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/goto.txt b/help/F/cbot/goto.txt new file mode 100644 index 00000000..7657012c --- /dev/null +++ b/help/F/cbot/goto.txt @@ -0,0 +1,35 @@ +\b;Instruction \c;goto\n; +The instruction \c;goto();\n; instructs the bot to reach a given position. + +\b;Basic use +The most current use consists in moving the bot to an object located with the instruction \c;\l;radar\u cbot\radar;();\n;. If the information returned by the \c;\l;radar\u cbot\radar;();\n; has been stored in a certain variable, write the name of the variable followed by \c;.position\n; in order to get the position of the object. Here is an example of a program that looks for a \l;titanium cube\u object\titan;, goes to the position and grabs it: +\c; +\s; item = \l;radar\u cbot\radar;(Titanium); +\s; goto(item.position); +\s; \l;grab\u cbot\grab;(); +\n; +\b;For specialists +Syntax: +\s;\c;goto ( position, altitude, goal, crash );\n; + +Tells the robot to go to the given position, avoiding all the obstacles if this is possible. + +\t;pos: \c;\l;point\u cbot\point;\n; +Coordinates of the goal position. + +\t;altitude: \c;\l;float\u cbot\float;\n; +Flight altitude for \l;winged bots\u object\botgj;. The altitude is useful only for \l;winged bots\u object\botgj;. 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. + +\t;goal: \c;\l;int\u cbot\int;\n; (default value \c;0\n;) +This parameter tells the bot how it must reach the goal: +\c;0\n; stops exactly at the goal position +\c;1\n; goes close to the goal position, without stopping. +If no value is given, \c;1\n; (precision) is the default value. + +\t;Return value: \c;\l;int\u cbot\int;\n; +Normally an error stops the program. You can prevent the program from stopping on errors by using the \c;\l;errmode\u cbot\errmode;(0)\n; instruction. A value different from zero if an error occurred is then returned by \c;goto()\n;. +\c;== 0 \n;Goal position reached +\c;!= 0 \n;Goal position impossible to reach + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/grab.txt b/help/F/cbot/grab.txt new file mode 100644 index 00000000..5cc81374 --- /dev/null +++ b/help/F/cbot/grab.txt @@ -0,0 +1,29 @@ +\b;Instruction \c;grab\n; +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. + +\b;Basic use +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: +\c; +\s; grab(); +\s; \l;move\u cbot\move;(5); +\s; \l;drop\u cbot\drop;(); +\n; +\b;For specialists +Syntax: +\s;\c;grab ( oper );\n; + +This instruction appeals to the operating arm of a \l;grabber bot\u object\botgr;, in order to grab the closest object. + +\t;oper: \c;\l;int\u cbot\int;\n; (default value\c;InFront\n;) +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. +\c;InFront \n; Grabs in front (default value). +\c;Behind \n; Grabs behind. +\c;EnergyCell\n; Grabs the bot's own power cell. + +\t;Return value: \c;\l;int\u cbot\int;\n; +Normally an error stops the program. You can prevent the program from stopping on errors by using the \c;\l;errmode\u cbot\errmode;(0)\n; instruction. A value different from zero if an error occurred is then returned by \c;grab();\n;. +\c;== 0 \n;an object was grabbed +\c;!= 0 \n;error, no object was grabbed + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/if.txt b/help/F/cbot/if.txt new file mode 100644 index 00000000..ad2ed990 --- /dev/null +++ b/help/F/cbot/if.txt @@ -0,0 +1,40 @@ +\b;Instructions \c;if\n; and \c;else\n; +With the instruction \c;if() {}\n; you can execute a set of instructions only if a certain condition is true. Write the condition in brackets \c;()\n;, and the instructions in braces \c;{}\n;. + +\b;Basic use +Here is a concrete example: The bot will shoot only if the target is closer than 40 meters: +\c; +\s; item = \l;radar\u cbot\radar;(AlienAnt); +\s; if (\l;distance\u cbot\dist;(position, item.position) < 40) +\s; { +\s; fire(1); +\s; } +\n; +You can also test if an object exists at all. If the instruction \c;\l;radar\u cbot\radar;();\n; does not find the requested object, it returns the value \c;null\n;. So you can test if an object does not exists with the condition \c;(item == null)\n;, or test if it exists with \c;(item != null)\n;. Two equal signs \c;==\n; test equality, an exclamation mark followed by an equal sign \c;!=\n; test inequality. Here is a test that will go to rechage the \l;power cell\u object\power; only if there is a \l;power station\u object\station;: +\c; +\s; item = \l;radar\u cbot\radar;(PowerStation); +\s; if (item != null) +\s; { +\s; \l;goto\u cbot\goto;(item.position); +\s; \l;wait\u cbot\wait;(5); +\s; } +\n; +\b;For specialists +Syntax: +\s;\c;if ( condition ) +\s;{ +\s; \n;Instructions A ...\c; +\s;} +\s;else +\s;{ +\s; \n;Instructions B ...\c; +\s;} +\n; +With this conditional structure you can execute a \l;bloc\u cbot\bloc; A or a \l;bloc\u cbot\bloc; B depending on a \l;condition\u cbot\cond;. If the condition is true, bloc A is executed. If the condition is false, bloc B is executed. +Part \c;else { }\n; is not compulsory. + +\t;Attention +Do not put a \l;semicolon\u cbot\term; at the end of the line \c;if ( )\n;. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/int.txt b/help/F/cbot/int.txt new file mode 100644 index 00000000..deb86d9e --- /dev/null +++ b/help/F/cbot/int.txt @@ -0,0 +1,20 @@ +\b;Type \c;int\n; +Use this type for variables that contain only whole numbers, negative or positive. For example: +\c; +\s; 12 +\s; 1000 +\s; -4 +\n; +To represent real numbers like 12.05 or -0.005, use the type \c;\l;float\u cbot\float;\n;. + +\t;Attention +Do not put space or colon signs inside a number. + +\t;For specialists +Numbers of the type \c;int\n; 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. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/F/cbot/jet.txt b/help/F/cbot/jet.txt new file mode 100644 index 00000000..71e8da2d --- /dev/null +++ b/help/F/cbot/jet.txt @@ -0,0 +1,16 @@ +\b;Instruction \c;jet\n; +Syntax: +\s;\c;jet ( power );\n; + +Direct control of the jet of a \l;winged bot\u object\botgj;. The jet is what makes the bot fly. Use this instruction in order to take off, climb, descend or land. + +\t;power: \c;\l;float\u cbot\float;\n; +Power of the jet, ranges between \c;-1\n; and \c;+1\n;. \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;. + + +\t;Return value: \c;\l;void\u cbot\void;\n; +None. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/F/cbot/message.txt b/help/F/cbot/message.txt new file mode 100644 index 00000000..01d0f706 --- /dev/null +++ b/help/F/cbot/message.txt @@ -0,0 +1,25 @@ +\b;Instruction \c;message\n; +Syntax: +\s;\c;message ( text, type );\n; + +Prints a message on top of the screen. After a few seconds, the message disappears automatically. + +\t;text: \c;\l;string\u cbot\string;\n; +Text that is to be displayed. It is possible to append several texts and/or values with the operator \c;+\n;: +\c;message("Not found");\n; +\c;message(angle);\n; +\c;message(n + " object(s) found");\n; +\c;message("Distance = " + dist + " meters");\n; + +\t;type: \c;\l;int\u cbot\int;\n; (default value \c;DisplayMessage\n;) +Type of the message, that determines the background color. +o \c;DisplayMessage\n; Standard message on yellow background. +o \c;DisplayInfo \n; Information on green background. +o \c;DisplayWarning\n; Warning on blue background. +o \c;DisplayError \n; Error on red background. + +\t;Return value: \c;\l;void\u cbot\void;\n; +None. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/motor.txt b/help/F/cbot/motor.txt new file mode 100644 index 00000000..712a1ff3 --- /dev/null +++ b/help/F/cbot/motor.txt @@ -0,0 +1,39 @@ +\b;Instruction \c;motor\n; +The instruction \c;motor( , );\n; sets the speed for the left-hand and the right-hand motor of the bot. + +\b;Basic use +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;\l;fire\u cbot\fire;();\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: +\c; +\s; \l;turn\u cbot\turn;(45); // turns 45 degrees left +\s; motor(0.5, -0.5); // slow rotation to the right +\s; \l;fire\u cbot\fire;(2); // fire +\s; motor(0,0); // stops the rotation +\n; +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. + +\b;For specialists +Syntax : +\s;\c;motor ( left, right );\n; + +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 \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n; or \c;\l;goto\u cbot\goto;\n; instruction is performed. + +\t;left: \c;\l;float\u cbot\float;\n; +Speed instruction for the left motor; the value must range between -1 and 1. + +\t;right: \c;\l;float\u cbot\float;\n; +Speed instruction for the right motor; the value must range between -1 and 1. + +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. + +Note : +\c;motor(2, 2);\n; will not move forward any faster than \c;motor(1, 1)\n; +\c;motor(-2, -2);\n; will not move backward any faster than \c;motor(-1, -1)\n; + +\t;Return value: \c;\l;void\u cbot\void;\n; +None. + +\t;See also +\l;Instructions\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/move.txt b/help/F/cbot/move.txt new file mode 100644 index 00000000..74177b22 --- /dev/null +++ b/help/F/cbot/move.txt @@ -0,0 +1,22 @@ +\b;Instruction \c;move\n; +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. + +\b;Basic use +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 \l;titanium ore\u object\titanore; on the \l;converter\u object\convert;, write \c;move(-2.5);\n;. + +\b;For specialists +Syntax: +\s;\c;move ( length );\n; + +Moves forward or backward of a given distance, always keeping the current orientation of the bot. + +\t;length: \c;\l;float\u cbot\float;\n; +Length of the move, in meters. A negative value makes the bot move backward. + +\t;Return value: \c;\l;int\u cbot\int;\n; +Normally an error stops the program. You can prevent the program from stopping on errors by using the \c;\l;errmode\u cbot\errmode;(0)\n; instruction. A value different from zero if an error occurred is then returned by \c;move()\n;. +\c;== 0 \n;Move executed +\c;!= 0 \n;error, the instruction was not performed correctly + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/nan.txt b/help/F/cbot/nan.txt new file mode 100644 index 00000000..f4732189 --- /dev/null +++ b/help/F/cbot/nan.txt @@ -0,0 +1,16 @@ +\b;Type \c;nan\n; +This special value indicates that a \l;variable\u cbot\var; of type \c;\l;int\u cbot\int;\n; or \c;\l;float\u cbot\float;\n; contains no number, but "nothing". +For example, if the instruction \c;\l;receive\u cbot\receive;\n; can not get the requested information, it returns \c;nan\n; : +\c; +\s; value = receive("Length"); +\s; if ( value == nan ) // not found ? +\s; { +\s; +\s; } +\n; +\t;Dictionnary +\c;nan\n; = Not A Number + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/F/cbot/new.txt b/help/F/cbot/new.txt new file mode 100644 index 00000000..97261784 --- /dev/null +++ b/help/F/cbot/new.txt @@ -0,0 +1,21 @@ +\b;Instruction \c;new\n; (for specialists) +The \c;new\n; operator creates a \l;class\u cbot\class; instance: +\c;\s; MyClass item; // now item is a null reference +\s; item = new MyClass(); // now item is a reference +\s; // to a new class instance +\n; +If you want to create a new instance at declaration time you can ommit the new \c;new\n; operator by putting () after the declaration: + +Instead of: +\c;\s; MyClass item = new MyClass(); +\n;you can write: +\c;\s; MyClass item(); +\n; +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); +\n; +\t;See also +\c;\l;class\u cbot\class;\n;, \c;\l;reference\u cbot\pointer;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/null.txt b/help/F/cbot/null.txt new file mode 100644 index 00000000..6e5219da --- /dev/null +++ b/help/F/cbot/null.txt @@ -0,0 +1,7 @@ +\b;Type \c;null\n; +This special value indicates that the variable containing it does not reference an instance. + +\t;See also +\l;References\u cbot\pointer; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/F/cbot/object.txt b/help/F/cbot/object.txt new file mode 100644 index 00000000..242de885 --- /dev/null +++ b/help/F/cbot/object.txt @@ -0,0 +1,70 @@ +\b;Type \c;object\n; +Use this type for variables that contain the characteristics of an object, be it a bot, a building, some raw material, an enemy, etc. + +\c;\l;int\u cbot\int; object.category \n;\l;Category\u cbot\category; of the object +\c;\l;point\u cbot\point; object.position \n;Position of the object (x,y,z) +\c;\l;float\u cbot\float; object.orientation \n;Orientation of the object (0..360) +\c;\l;float\u cbot\float; object.pitch \n;Forward/backward angle of the object +\c;\l;float\u cbot\float; object.roll \n;Right/left angle of the object +\c;\l;float\u cbot\float; object.energyLevel \n;Energy level (0..1) +\c;\l;float\u cbot\float; object.shieldLevel \n;Shield level (0..1) +\c;\l;float\u cbot\float; object.temperature \n;Jet temperature (0..1) +\c;\l;float\u cbot\float; object.altitude \n;Altitude above ground +\c;\l;float\u cbot\float; object.lifeTime \n;Lifetime of the object +\c;object object.energyCell \n;Power cell on the bot +\c;object object.load \n;Object carried by the bot + +\s;\c;category\n; +The \n;\l;category\u cbot\category; of an object allows you to know what it is, f. ex. what kind of bot, building, enemy, etc. + +\s;\c;position\n; +Position of the object on the planet, in meters. The coordinates \c;x\n; and \c;y\n; correspond to the location on a map, the \c;z\n; coordinate corresponds to the altitude above (respectively below) sea level. + +\s;\c;orientation\n; +Orientation of the object, in degrees. The orientation tells you what direction the object is facing. An orientation of \c;0\n; corresponds to an object facing eastwards, thus following the positive \c;x\n; axis. The orientation is measured counterclockwise. + +\s;\c;pitch\n; +Forward/backward angle of the robot. A pitch of \c;0\n; 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. + +\s;\c;roll\n; +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. + +\s;\c;energyLevel\n; +Energy level, between 0 and 1. A normal \l;power cell\u object\power; that is fully charged returns the value \c;1\n;. A \l;nuclear power cell\u object\atomic; 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 \c;energyCell.energyLevel\n;. + +\s;\c;shieldLevel\n; +Shield level of a robot or building. A level \c;1\n; 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 \c;0\n;, the next bullet or collision will destroy the bot or building. +Bots can re-energize their shield on a \l;repair center\u object\repair;. The shield of a building is repaired if it lays inside the protection sphere of a \l;shielder\u object\botshld;. + +\s;\c;temperature\n; +Temperature of the jet of \l;winged bots\u object\botgj;. \c;0\n; corresponds to a cold jet. When used, the temperature increases progressively. When it reaches the value \c;1\n;, the jet is overheated and stops working, until it cooled down a little. + +\s;\c;altitude\n; +The \c;z\n; coordinate of the position indicates the altitude above sea level, whereas the \c;altitude\n; indicates the height above ground. This value is meaningful only for \l;winged bots\u object\botgj; and for \l;wasps\u object\wasp;. For all other objects, this value is zero. + +\s;\c;lifeTime\n; +The age of the object in seconds since it's creation. + +\s;\c;energyCell\n; +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 \c;category\n; (PowerCell or NuclearCell), \c;position\n; (the position of the cell), etc. +If you want to know the energy level of a robot, you must not check \c;energyLevel\n;, but \c;energyCell.energyLevel\n;. +If the bot has bot no power cell, \c;energyCell\n; returns \c;null\n;. + +\s;\c;load\n; +This information also returns the description of a whole object: the description of the object carried by a \l;grabber\u object\botgr;. If it carries nothing, \c;load\n; returns \c;null\n;. + +\b;Examples +The type \c;object\n; returns the special value \c;\l;null\u cbot\null;\n; when the object does not exist. For example: +\c; +\s; object a; +\s; a = radar(BotGrabberRoller); +\s; if ( a == null ) // object does not exist ? +\s; { +\s; } +\s; if ( a.position.z > 50 ) // is it on a mountain ? +\s; { +\s; } +\n; +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/F/cbot/open.txt b/help/F/cbot/open.txt new file mode 100644 index 00000000..8af2abd4 --- /dev/null +++ b/help/F/cbot/open.txt @@ -0,0 +1,20 @@ +\b;Instruction \c;open\n; +Open a text file in the files/ folder. This is a method of the \c;\l;file\u cbot\file;\n; class. This is the reason why we always write \c;handle.open()\n;¦: +\c; +\s; handle.open("test.txt", "w"); +\n; +To open a file, proceed as follows¦: +\c; +\s; file handle(); +\s; handle.open("filename", "w"); +\s; handle.writeln("abc"); +\s; handle.close(); +\n; +\c;"r"\n; mode: open for reading. +\c;"w"\n; mode: open for writing. + +Files can only be created and opened in the files/ folder which is located in the folder where Colobot has been installed. You cannot not create or open files that are located elsewhere than in the files/ folder. + +\t;See also +\c;\l;file\u cbot\file;\n;, \c;\l;close\u cbot\close;\n;, \c;\l;readln\u cbot\readln;\n;, \c;\l;writeln\u cbot\writeln;\n; and \c;\l;eof\u cbot\eof;\n;. +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/openfile.txt b/help/F/cbot/openfile.txt new file mode 100644 index 00000000..6e8d59e1 --- /dev/null +++ b/help/F/cbot/openfile.txt @@ -0,0 +1,11 @@ +\b;Instruction \c;openfile\n; +\c;openfile();\n; opens an text file in the files/ folder. This is not a method of the \c;\l;file\u cbot\file;\n; class but openfile returne a \l;reference\u cbot\pointer; to a new instance of the file class. You must supply two parameters, the filename and the opening mode. +\c; +\s;file handle = openfile("filename", "r"); +\n; +\c;"r"\n; mode: open for reading. +\c;"w"\n; mode: open for writing. + + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/point.txt b/help/F/cbot/point.txt new file mode 100644 index 00000000..916be40f --- /dev/null +++ b/help/F/cbot/point.txt @@ -0,0 +1,36 @@ +\b;Type \c;point\n; +Variables of this type contain the coordinates of a point in space. This type is made of three values that represent the \c;x\n;, \c;y\n; and \c;z\n; coordinates. +\c;x\n; and \c;y\n; correspond to the place on the ground. The positive \c;x\n; axis faces towards east, the positive \c;y\n; axis faces towards north. +The \c;z\n; value corresponds to the altitude above sea level. + +If you want to declare a variable of type point, you can write: +\c; +\s; point a (10, 20, 30); +\n; +You can also set the variable taking one value after another: +\c; +\s; point b; +\s; b.x = 10; +\s; b.y = 20; +\s; b.z = 30; +\n; +With these examples, the following \l;condition\u cbot\cond; is true: +\c; +\s; if ( a == b ) +\s; { +\s; } +\n; +The following declaration : +\c; +\s; point c (4, 7); +\n; +Is equivalent to : +\c; +\s; point c; +\s; c.x = 4; +\s; c.y = 7; +\s; c.z = 0; +\n; + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/pointer.txt b/help/F/cbot/pointer.txt new file mode 100644 index 00000000..3d7b348c --- /dev/null +++ b/help/F/cbot/pointer.txt @@ -0,0 +1,53 @@ +\b;References (for specialists) +CBOT uses references for \l;classes\u cbot\class; and \l;arrays\u cbot\array;. 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 \c;\l;null\u cbot\null;\n; 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 \c;\l;null\u cbot\null;\n; reference. + +Example: +\c;\s;{ +\s; MyClass item1(); // create a new instance +\s; // referenced by item1 +\s; MyClass item2; // create a null reference +\s; item2 = item1; // copy the reference, +\s; // item2 and item1 now reference +\s; // the same instance +\s; item1.a = 12; // modifies the instance +\s; // referenced by item1 (and item2) +\s; message(item2.a);// displays 12 +\s;} +\n; +If you pass a \l;class\u cbot\class; 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. + +\c;\s;void Test( MyClass item ) +\s;{ +\s; item.a = 12; // modify the original instance +\s; item = new MyClass(); // new local instance +\s; item.a = 33; // modifie the local instance +\s;} +\n; +Calling the fucntion \c;Test()\n;¦: +\c;\s;{ +\s; MyClass toto(); +\s; Test(toto); +\s; message(toto.a); // displays 12 +\s;} +\n; +The instance containing the field \c;a = 33\n; is referenced only by the newly created instance \c;item\n; inside the fucntion \c;Test\n;. At the end of \c;Test\n; this newly created instance referenced by \c;item\n; is automatically deleted. + +A function can return an instance¦: +\c;\s;MyClass Test2( ) +\s;{ +\s; MyClass item = new MyClass(); +\s; item.x = 33; +\s; return item; +\s;} +\n; +Call the function like this: +\c;\s;{ +\s; MyClass toto; +\s; toto = Test2(); // toto will contain a reference to +\s; // the instance created by Test2() +\s; message(toto.a); // displays 33 +\s;} +\n; +\t;See also +\c;\l;class\u cbot\class;\n;, \c;\l;new\u cbot\new;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/private.txt b/help/F/cbot/private.txt new file mode 100644 index 00000000..5a2921a2 --- /dev/null +++ b/help/F/cbot/private.txt @@ -0,0 +1,19 @@ +\b;Instruction \c;private\n; (for specialists) +\l;Class\u cbot\class; members can be \l;public\u cbot\public; (by default) or private. A member can be declared privat by putting \c;private\n; before the type declaration of the member. Private members are not accessible from outside the class definition. +\c; +\s;public class MyClass +\s;{ +\s; int b; // public by défault +\s; public int a; // als public +\s; private point position; // privat +\s;} +\s;void Test() +\s;{ +\s; MyClass item; +\s; item.a = item.b = 12; // ok +\s; message( item.position ); // this is an error +\s;} +\n; +\t;See also +\c;\l;class\u cbot\class;\n;, \c;\l;public\u cbot\public;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/public.txt b/help/F/cbot/public.txt new file mode 100644 index 00000000..d7e8d920 --- /dev/null +++ b/help/F/cbot/public.txt @@ -0,0 +1,51 @@ +\b;Instruction \c;public\n; (for specialists) +This instruction has two distinct purposes¦: + +1) Make a function available to other bots. +2) Make a class member accessible from outside the class definition. + +\b;Instruction \c;public\n; for functions +If you put \c;public\n; before a \l;function\u cbot\function; definition, you can make the function available to programs in other bots in the same mission. + +For example in the first bot we would have¦: +\c; +\s;public void object::Segment(float dist, float angle) +\s;{ +\s; move(dist); +\s; turn(angle); +\s;} +\n; +And in another bot we would have¦: +\c; +\s;extern void object::Square( ) +\s;{ +\s; for ( int i=0 ; i<4 ; i++ ) +\s; { +\s; Segment(10, 90); +\s; fire(1); +\s; } +\s;} +\n; +If you have declared a function \c;public\n;, you cannot define a function with the same name and arguments in another bot of the same mission. + +If a bot containing a \c;public\n; function is destroyed, the other bots that make use of this function will be stopped with an error. + +\b;Instruction \c;public\n; for classes +\l;Class\u cbot\class; members can be public (by default) or \l;privat\u cbot\private;. A member can be declared private by putting \c;private\n; before the member type. Private members are not accessible from outside the class definition. +\c; +\s;public class MyClass +\s;{ +\s; int b; // public by default +\s; public int a; // also public +\s; private point position; // privat +\s;} +\s;void Test() +\s;{ +\s; MyClass item; +\s; item.a = item.b = 12; // ok +\s; message( item.position ); // this is an error +\s;} +\n; +\t;See also +\c;\l;class\u cbot\class;\n;, \c;\l;private\u cbot\private;\n;, \c;\l;functions\u cbot\function;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/radar.txt b/help/F/cbot/radar.txt new file mode 100644 index 00000000..d16fa639 --- /dev/null +++ b/help/F/cbot/radar.txt @@ -0,0 +1,60 @@ +\b;Instruction \c;radar\n; +With the instruction \c;radar()\n;, you can look for objects like \l;enemies\u object\mother;, bots, buildings or raw materials. + +\b;Basic use +Write in brackets the \l;name of the object\u cbot\category; that you look for. Put the result in a variable of the \l;type\u cbot\type; \c;object\n;. Here is an example that looks for the closest ant: +\c; +\s;// At the beginning of the program: +\s;object item; // variable declaration +\s; +\s;// Look for the closest ant +\s;item = radar(AlienAnt); +\n; +\b;For specialists +Syntax: +\s;\c;radar ( category, angle, focus, min, max, way );\n; + +Detects an object according to several parameters. + +\image radar1 8 8; +Seen from above, the purple zone corresponds to the zone where objects will be detected. + +\t;category: \c;\l;int\u cbot\int;\n; +\l;Category\u cbot\category; of the objects that should be detected. For example, when you are looking for an ant, write \c;radar (AlienAnt)\n;. + +\t;angle: \c;\l;float\u cbot\float;\n; (default value\c;0\n;) +Direction that the radar is facing, in degrees. +\c; 0\n; -> radar is facing straight ahead +\c;-90\n; -> radar is facing a quarter turn right +\c; 90\n; -> radar is facing a quarter turn left + +\t;focus: \c;\l;float\u cbot\float;\n; (default value\c;360\n;) +Opening angle of the radar, in degrees. + +\t;min: \c;\l;float\u cbot\float;\n; (default value \c;0\n;) +Minimum detection distance, in meters. Objects that are closer than the minimum distance will not be detected. + +\t;max: \c;\l;float\u cbot\float;\n; (Default value\c;1000\n;) +Maximum detection distance, in meters. Objects that are farther away than the maximum distance will not be detected. + +\t;way: \c;\l;float\u cbot\float;\n; (default value\c;1\n;) +Determines which way the objects are detected. With value \c;1\n;, returns the closest object found in the specified zone. With value \c;-1\n;, the farthest object in the zone will be returned. + +\t;Return value: \c;\l;object\u cbot\object;\n; +Returns the first object found that corresponds to the specified category in the specified zone. If no object was found, returns the value \c;\l;null\u cbot\null;\n;. + +\t;Remark +You do not have to give all the parameters. Here are two examples of instructions that are equivalent: +\c; +\s; radar(Titanium, 0, 360, 0, 1000); +\s; radar(Titanium); // equivalent + +\s; radar(Titanium, 0, 90, 0, 1000); +\s; radar(Titanium, 0, 90); // equivalent +\n; +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. \c;radar (AlienAnt)\n; detects the closest ant, wherever it may be. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/F/cbot/readln.txt b/help/F/cbot/readln.txt new file mode 100644 index 00000000..4889c0c5 --- /dev/null +++ b/help/F/cbot/readln.txt @@ -0,0 +1,20 @@ +\b;Instruction \c;readln\n; +Read one line from an open file in the files/ folder. This is a method of the \c;\l;file\u cbot\file;\n; class. This is the reason why we always write \c;handle.readln()\n;¦: +\c; +\s; s = handle.readln(); +\n; +The file must have been opened for reading (\c;"r"\n;) with the \c;\l;open\u cbot\open;\n; instruction. \c;readln\n; returns the string containing the whole line but without the end of line characters 0x0D (CR) and 0x0A (LF). + +Syntax¦: +\s;\c;string = handle.readln ( );\n; + +Example¦: +\c; +\s; string s; +\s; s = handle.readln(); +\s; if ( s == "abc" ) +\s; ... +\n; +\t;See also +\c;\l;file\u cbot\file;\n;, \c;\l;open\u cbot\open;\n;, \c;\l;close\u cbot\close;\n;, \c;\l;writeln\u cbot\writeln;\n; and \c;\l;eof\u cbot\eof;\n;. +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/receive.txt b/help/F/cbot/receive.txt new file mode 100644 index 00000000..68b140f5 --- /dev/null +++ b/help/F/cbot/receive.txt @@ -0,0 +1,18 @@ +\b;Instruction \c;receive\n; +Syntax: +\s;\c;receive ( name, power );\n; + +Retrieves an information from the closest \l;information exchange post\u object\exchange;. + +\t;name: \c;string\n; +Name of the information required from the exchange post. This name is a string: it must be written in quotation marks "¦". + +\t;power: \c;float\n; +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. + +\t;Return value: \c;\l;float\u cbot\float;\n; +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 \c;nan\n; is returned. + +\t;See also +\c;\l;send\u cbot\send;\n;, \c;\l;testinfo\u cbot\testinfo;\n; and \c;\l;deleteinfo\u cbot\delinfo;\n;. +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/recycle.txt b/help/F/cbot/recycle.txt new file mode 100644 index 00000000..10d9979d --- /dev/null +++ b/help/F/cbot/recycle.txt @@ -0,0 +1,14 @@ +\b;Instruction \c;recycle\n; +Syntax: +\s;\c;recycle ( );\n; + +Recycles the derelict bot in front of the \l;recycler\u object\botrecy; into a \l;titanium cube\u object\titan;. + +\t;Return value: \c;\l;int\u cbot\int;\n; +Zero if OK, or a value different from zero if an error occurred. +\c;== 0 \n;the derelict bot has been recycled +\c;!= 0 \n;error, no derelict bot could be recycled + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/F/cbot/retobj.txt b/help/F/cbot/retobj.txt new file mode 100644 index 00000000..3cfd3ca7 --- /dev/null +++ b/help/F/cbot/retobj.txt @@ -0,0 +1,15 @@ +\b;Instruction \c;retobject\n; +Syntax: +\s;\c;retobject ( number );\n; + +Returns the object corresponding to the given number. + +\t;number: \c;\l;int\u cbot\int;\n; +Number of the object, between 0 and n. "n" represents the total number of objects in the scene. + +\t;Return value: \c;\l;object\u cbot\object;\n; +Object corresponding to the number. The return value \c;\l;null\u cbot\null;\n; means that no object corresponds to this number, because the number was too high, and there are not so many objects in the scene. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/F/cbot/return.txt b/help/F/cbot/return.txt new file mode 100644 index 00000000..5c74e3e1 --- /dev/null +++ b/help/F/cbot/return.txt @@ -0,0 +1,31 @@ +\b;Instruction \c;return\n; +Returns from a function. Syntax: +\c; +\s;void function ( ) +\s;{ +\s; return; +\s;} +\n; +\b;For specialists +If the \l;function\u cbot\function; has a return type, the \c;return\n; instruction must be followed by the value to be returned: +\c; +\s;float Pi ( ) +\s;{ +\s; return 3.1415; +\s;} + +\s;float Mean (float a, float b) +\s;{ +\s; return (a+b)/2; +\s;} + +\s;string Sign (float a) +\s;{ +\s; if ( a > 0 ) return "positive"; +\s; if ( a < 0 ) return "négative"; +\s; return "null"; +\s;} +\n; +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/F/cbot/search.txt b/help/F/cbot/search.txt new file mode 100644 index 00000000..e63e6c4b --- /dev/null +++ b/help/F/cbot/search.txt @@ -0,0 +1,18 @@ +\b;Instruction \c;search\n; +Syntax: +\s;\c;search ( category, position );\n; + +Detects the object of the given category that is closest to the given position. + +\t;category: \c;\l;int\u cbot\int;\n; +\l;Category\u cbot\category; of the requested object. + +\t;position: \c;\l;point\u cbot\point;\n; +\c;search\n; returns the object of the given category that is closest to the position indicated here. + +\t;Return value: \c;\l;object\u cbot\object;\n; +Characteristics of the object that has been found. The value \c;\l;null\u cbot\null;\n; means that no object of this category has been found. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. + diff --git a/help/F/cbot/send.txt b/help/F/cbot/send.txt new file mode 100644 index 00000000..10aa0606 --- /dev/null +++ b/help/F/cbot/send.txt @@ -0,0 +1,19 @@ +\b;Instruction \c;send\n; +Syntax¦: +\s;\c;send ( name, value, power );\n; + +Sends an information to the closest \l;information exchange post\u object\exchange;. + +\t;name: \c;string\n; +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. + +\t;value: \c;float\n; +Value of the information to be sent. + +\t;power: \c;float\n; +Power of the transmitter, which corresponds to the maximal distance to where information can be the sent. Default value is 10 metres. + +\t;See also +\c;\l;receive\u cbot\receive;\n;, \c;\l;testinfo\u cbot\testinfo;\n; and \c;\l;deleteinfo\u cbot\delinfo;\n;. +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/shield.txt b/help/F/cbot/shield.txt new file mode 100644 index 00000000..d9aff476 --- /dev/null +++ b/help/F/cbot/shield.txt @@ -0,0 +1,19 @@ +\b;Instruction \c;shield\n; +Syntax: +\s;\c;shield ( oper );\n; + +Activates or deactivates the shield of the \l;ahielder\u object\botshld;. 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. + +\t;oper: \c;\l;float\u cbot\float;\n; +\c;1\n; activates the shield. +\c;0\n; deactivates the shield +A normal \l;power cell\u object\power; fully charged can maintain the shield active during 20 seconds. When the cell is empty, the shield deactivates. + +\t;radius: \c;\l;float\u cbot\float;\n; +Radius of the shield, ranging between 10 and 25 meters. + +\t;Return value: \c;\l;void\u cbot\void;\n; +None. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/sizeof.txt b/help/F/cbot/sizeof.txt new file mode 100644 index 00000000..c0722c15 --- /dev/null +++ b/help/F/cbot/sizeof.txt @@ -0,0 +1,22 @@ +\b;Instruction \c;sizeof\n; +The sizeof function lets you know the number of elements contained in an \l;array\u cbot\array;. +That is the index of the last element plus one ("empty" elements are counted). +\c; +\s;{ +\s; int a[12]; +\s; a[5] = 345; +\s; message( sizeof(a) ); // will display 6 +\s;} +\n; +In this example we have 6 elements in the array after \c;a[5]=345\n;. The non initialized elements \c;[0]\n;, \c;[1]\n;, \c;[2]\n;, \c;[3]\n; and \c;[4]\n; will be counted. + +With multidimensionnal arrays you can get the size of a sub array: +\c; +\s;float xy[][]; // 2 dimensionnal array +\s;xy[5][10] = 67; +\s;message( sizeof(xy) ); // will display 6 +\s;message( sizeof(xy[5]) ); // will display 11 +\s; +\n; +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/sniff.txt b/help/F/cbot/sniff.txt new file mode 100644 index 00000000..27872224 --- /dev/null +++ b/help/F/cbot/sniff.txt @@ -0,0 +1,17 @@ +\b;Instruction \c;sniff\n; +Syntax: +\s;\c;sniff ( );\n; + +Sounds the underground in front of the \l;sniffer\u object\botsr;. According to what raw materials were detected, the following objects will be created: + +\c;TitaniumSpot\n; -> \l;Red cross\u object\stonspot; +\c;UraniumSpot \n; -> \l;Yellow circle\u object\uranspot; +\c;PowerSpot \n; -> \l;Green cross\u object\enerspot; + +\t;Return value: \c;\l;int\u cbot\int;\n; +Zero if everything is OK, or a value different from zero if an error occurred. +\c;== 0 \n;sounding performed +\c;!= 0 \n;sounding impossible + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/space.txt b/help/F/cbot/space.txt new file mode 100644 index 00000000..baa660a9 --- /dev/null +++ b/help/F/cbot/space.txt @@ -0,0 +1,23 @@ +\b;Instruction \c;space\n; +Syntax : +\s;\c;space ( center, rmin, rmax, dist );\n; + +Determines the position of the nearest free space around a given position. + +\t;center: \c;\l;point\u cbot\point;\n; (default: bot position) +Desired position of the free space. + +\t;rmin: \c;\l;float\u cbot\float;\n; (default value: \c;8\n;) +Minimum distance from the desired position. + +\t;rmax: \c;\l;float\u cbot\float;\n; (default value: \c;50\n;) +Maximum distance from the desired position. + +\t;dist: \c;\l;float\u cbot\float;\n; (default value: \c;4\n;) +Required distance between two free spaces. + +\t;Return: \c;\l;point\u cbot\point;\n; +Position of the free space. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/static.txt b/help/F/cbot/static.txt new file mode 100644 index 00000000..7d5e6032 --- /dev/null +++ b/help/F/cbot/static.txt @@ -0,0 +1,22 @@ +\b;Instruction \c;static\n; (for specialists) +\l;Class\u cbot\class; members declared with \c;static\n; are shared between all instances of the class. +\c; +\s;public class MyClass +\s;{ +\s; static int nb = 1; +\s; static string [ ] list = null; +\s;} +\s;void Test () +\s;{ +\s; MyClasse item1(); +\s; MyClasse item2(); +\s; item1.nb = 3; +\s; item1.list[item1.nb] = "Hello"; +\s; message( item2.list[item2.nb] ); // display "Hello" +\s;} +\n; +\c;Static\n; members can be declared \c;\l;private\u cbot\private;\n; so they will be only acessible from within class members (including constructors and destructors). + +\t;See also +\c;\l;class\u cbot\class;\n;, \c;\l;synchronized\u cbot\synchro;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/strfind.txt b/help/F/cbot/strfind.txt new file mode 100644 index 00000000..3d42b0d5 --- /dev/null +++ b/help/F/cbot/strfind.txt @@ -0,0 +1,20 @@ +\b;Instruction \c;strfind\n; +Find a substring in a string and returns the position of the first substring found or \l;nan\u cbot\nan; if the substring has not been found. + +Syntax¦: +\s;\c;strfind ( string, sub );\n; + +\t;string: \c;\l;string\u cbot\string;\n; +String we are searching in. + +\t;sub: \c;\l;string\u cbot\string;\n; +Substring we are searching for. + +Examples¦: +\s;\c; int pos = strfind("abcdef", "ab"); // pos will be 0 +\s; int pos = strfind("abcdef", "de"); // pos will be 3 +\s; int pos = strfind("abcdef", "xy"); // pos will be \l;nan\u cbot\nan; +\n; +\t;See also +\c;\l;strlen\u cbot\strlen;\n;, \c;\l;strleft\u cbot\strleft;\n;, \c;\l;strright\u cbot\strright;\n;, \c;\l;strmid\u cbot\strmid;\n;, \c;\l;strval\u cbot\strval;\n;, \c;\l;strupper\u cbot\strupper;\n;, \c;\l;strlower\u cbot\strlower;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/string.txt b/help/F/cbot/string.txt new file mode 100644 index 00000000..cc7b1a17 --- /dev/null +++ b/help/F/cbot/string.txt @@ -0,0 +1,33 @@ +\b;Type \c;string\n; +Use a variable of this type for storing characters or strings. + +For example: +\s;\c; "Hello!" +\s; "This is a string" +\s; "x" +\s; "" // empty string +\n; +You can append two strings with the \c;+\n; operator : +\s;\c; "Good morning," + " " + "Sir" +\n; +Returns the string: +\s;\c; "Good morning, Sir" +\n; +If you want to put a quotation mark (") or a backslash (\) in a string you must write¦: +\s;\c;"This is \"very\" important" +\n;which will result in the string \c; This is "very" important. +\s;\c;"%user%\\ant.txt" +\n;will result in \c;%user%\ant.txt +\n; +Following instructions can be used with strings¦: +\c;\l;strlen\u cbot\strlen; \n;Get string length +\c;\l;strleft\u cbot\strleft; \n;Extract left part +\c;\l;strright\u cbot\strright; \n;Extract right part +\c;\l;strmid\u cbot\strmid; \n;Extract center part +\c;\l;strfind\u cbot\strfind; \n;Find a substring. +\c;\l;strval\u cbot\strval; \n;Convert string to number +\c;\l;strupper\u cbot\strupper; \n;Convert to upper case +\c;\l;strlower\u cbot\strlower; \n;Convert to lower case + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/strleft.txt b/help/F/cbot/strleft.txt new file mode 100644 index 00000000..fa80fdeb --- /dev/null +++ b/help/F/cbot/strleft.txt @@ -0,0 +1,16 @@ +\b;Instruction \c;strleft\n; +Extracts the first (that is, leftmost) characters from a string. + +Syntax¦: +\s;\c;strleft ( string, len );\n; + +\t;len: \c;\l;int\u cbot\int;\n; +Number of characters to be extracted. + +Examples¦: +\s;\c; string s = strleft("abcdef", 2); // s is "ab" +\s; string s = strleft("abc", 10); // s is "abc" +\n; +\t;See also +\c;\l;strlen\u cbot\strlen;\n;, \c;\l;strright\u cbot\strright;\n;, \c;\l;strmid\u cbot\strmid;\n;, \c;\l;strfind\u cbot\strfind;\n;, \c;\l;strval\u cbot\strval;\n;, \c;\l;strupper\u cbot\strupper;\n;, \c;\l;strlower\u cbot\strlower;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/strlen.txt b/help/F/cbot/strlen.txt new file mode 100644 index 00000000..1cc384a7 --- /dev/null +++ b/help/F/cbot/strlen.txt @@ -0,0 +1,14 @@ +\b;Instruction \c;strlen\n; +Get the length of a string. + +Syntax¦: +\s;\c;strlen ( string );\n; + +Examples¦: +\s;\c; int len = strlen("abc"); // len is 3 +\s; int len = strlen(""); // len is 0 +\s; if ( strlen(s) == 0 ) // is string empty ? +\n; +\t;See also +\c;\l;strleft\u cbot\strleft;\n;, \c;\l;strright\u cbot\strright;\n;, \c;\l;strmid\u cbot\strmid;\n;, \c;\l;strfind\u cbot\strfind;\n;, \c;\l;strval\u cbot\strval;\n;, \c;\l;strupper\u cbot\strupper;\n;, \c;\l;strlower\u cbot\strlower;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/strlower.txt b/help/F/cbot/strlower.txt new file mode 100644 index 00000000..b4b7e50b --- /dev/null +++ b/help/F/cbot/strlower.txt @@ -0,0 +1,12 @@ +\b;Instruction \c;strlower\n; +Convert all characters in a string to lowercase. + +Syntax¦: +\s;\c;strlower ( string );\n; + +Examples¦: +\s;\c; string s = strlower("Abc"); // s is "abc" +\n; +\t;See also +\c;\l;strlen\u cbot\strlen;\n;, \c;\l;strleft\u cbot\strleft;\n;, \c;\l;strright\u cbot\strright;\n;, \c;\l;strmid\u cbot\strmid;\n;, \c;\l;strfind\u cbot\strfind;\n;, \c;\l;strval\u cbot\strval;\n;, \c;\l;strupper\u cbot\strupper;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/strmid.txt b/help/F/cbot/strmid.txt new file mode 100644 index 00000000..cf90bd3b --- /dev/null +++ b/help/F/cbot/strmid.txt @@ -0,0 +1,20 @@ +\b;Instruction \c;strmid\n; +Extracts a substring of a given length starting at a given position from a string. + +Syntax¦: +\s;\c;strmid ( string, pos, len );\n; + +\t;pos: \c;\l;int\u cbot\int;\n; +The index of the first character that is to be included in the extracted substring. + +\t;len: \c;\l;int\u cbot\int;\n; +Number of characters to be extracted. + +Examples¦: +\s;\c; string s = strmid("abcdef", 1, 2); // s is "bc" +\s; string s = strmid("abcdef", 4, 5); // s is "ef" +\s; string s = strmid("abcdef", 9, 2); // s is "" +\n; +\t;See also +\c;\l;strlen\u cbot\strlen;\n;, \c;\l;strleft\u cbot\strleft;\n;, \c;\l;strright\u cbot\strright;\n;, \c;\l;strfind\u cbot\strfind;\n;, \c;\l;strval\u cbot\strval;\n;, \c;\l;strupper\u cbot\strupper;\n;, \c;\l;strlower\u cbot\strlower;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/strright.txt b/help/F/cbot/strright.txt new file mode 100644 index 00000000..18824e65 --- /dev/null +++ b/help/F/cbot/strright.txt @@ -0,0 +1,16 @@ +\b;Instruction \c;strright\n; +Extracts the last (that is, rightmost) characters from a string. + +Syntax¦: +\s;\c;strright ( string, len );\n; + +\t;len: \c;\l;int\u cbot\int;\n; +Number of characters to be extracted. + +Examples¦: +\s;\c; string s = strright("abcdef", 2); // s is "ef" +\s; string s = strright("abc", 10); // s is "abc" +\n; +\t;See also +\c;\l;strlen\u cbot\strlen;\n;, \c;\l;strleft\u cbot\strleft;\n;, \c;\l;strmid\u cbot\strmid;\n;, \c;\l;strfind\u cbot\strfind;\n;, \c;\l;strval\u cbot\strval;\n;, \c;\l;strupper\u cbot\strupper;\n;, \c;\l;strlower\u cbot\strlower;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/strupper.txt b/help/F/cbot/strupper.txt new file mode 100644 index 00000000..7091f0ce --- /dev/null +++ b/help/F/cbot/strupper.txt @@ -0,0 +1,12 @@ +\b;Instruction \c;strupper\n; +Convert all characters in a string to uppercase. + +Syntax¦: +\s;\c;strupper ( string );\n; + +Examples¦: +\s;\c; string s = strupper("Abc"); // s is "ABC" +\n; +\t;See also +\c;\l;strlen\u cbot\strlen;\n;, \c;\l;strleft\u cbot\strleft;\n;, \c;\l;strright\u cbot\strright;\n;, \c;\l;strmid\u cbot\strmid;\n;, \c;\l;strfind\u cbot\strfind;\n;, \c;\l;strval\u cbot\strval;\n;, \c;\l;strlower\u cbot\strlower;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/strval.txt b/help/F/cbot/strval.txt new file mode 100644 index 00000000..491fc185 --- /dev/null +++ b/help/F/cbot/strval.txt @@ -0,0 +1,19 @@ +\b;Instruction \c;strval\n; +Convert a string to a number. Don't confuse the string \c;"45"\n; that contains actually the two characters \c;4\n; and \c;5\n; and the number \c;45\n;. + +Examples¦: +\s;\c; string s = "45"+"12"; // s contains "4512" +\s; float n = 45 + 12; // n contains 67 +\n; +Syntax¦: +\s;\c;strval ( string );\n; +\n; +Examples¦: +\s;\c; float n = strval("1.23"); // n is 1.23 +\s; float n = strval("12abc45"); // n is 12 +\s; float n = strval("abc"); // n is 0 +\s; float n = strval("100")+2; // n is 102 +\n; +\t;See also +\c;\l;strlen\u cbot\strlen;\n;, \c;\l;strleft\u cbot\strleft;\n;, \c;\l;strright\u cbot\strright;\n;, \c;\l;strmid\u cbot\strmid;\n;, \c;\l;strfind\u cbot\strfind;\n;, \c;\l;strupper\u cbot\strupper;\n;, \c;\l;strlower\u cbot\strlower;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/synchro.txt b/help/F/cbot/synchro.txt new file mode 100644 index 00000000..8817c38a --- /dev/null +++ b/help/F/cbot/synchro.txt @@ -0,0 +1,25 @@ +\b;Instruction \c;synchronized\n; (for specialists) +A \l;class\u cbot\class; method can be declared \c;synchronized\n;. This is to make sure that the method is never being executed by more than one bot at the same time. + +The following example illustrates the problem: +\c; +\s;class blocking +\s;{ +\s; static int nb = 33; +\s; synchronized int inc( ) +\s; { +\s; int val = nb; +\s; wait ( 2 ); // wait 2 sec. +\s; nb = nb + 1; +\s; return val; +\s; } +\s;} +\n; +What happens if two bots execute the \c;inc\n; method at the same time¦? +Both of them will execute \c;val=nb\n; and wait 2 seconds so both of them will have \c;val=33\n;. With \c;synchronized\n; the first bot starts execution with \c;val=33\n; and then waits 2 seconds and returns. Only once the first bot has returned from the \c;inc\n; method, the second bot will be allowed to enter the \c;inc\n; method and therefore the second bot will always have \c;val=34\n;. + +You can have more than one synchronized method in your \l;class\u cbot\class; 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. + +\t;See also +\c;\l;class\u cbot\class;\n;, \c;\l;static\u cbot\static;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/term.txt b/help/F/cbot/term.txt new file mode 100644 index 00000000..c53d552d --- /dev/null +++ b/help/F/cbot/term.txt @@ -0,0 +1,31 @@ +\b;Semicolon +Always use a semicolon \c;;\n; after a simple expression. For example: +\c; +\s; int counter = 0; +\n; +However, after a \l;bloc\u cbot\bloc;, never put a semicolon: +\c; +\s; { +\s; float dist; +\s; dist = distance(p1, p2); +\s; } \n;// no semicolon here!\c; +\n; +Do not use a semicolon either immediately after the instructions \c;\l;while\u cbot\while;\n;, \c;\l;if\u cbot\if;\n; or \c;\l;for\u cbot\for;\n;: +\c; +\s; if ( a < b ) \n;// no semicolon here!\c; +\s; { +\s; b = 100-a; +\s; } +\n; +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: +\c; +\s; int d=20; +\s; move(d); +\s; turn(90); +\n; +Is equivalent to: +\c; +\s; int d=20; move(d); turn(90); +\n; +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/testinfo.txt b/help/F/cbot/testinfo.txt new file mode 100644 index 00000000..634063af --- /dev/null +++ b/help/F/cbot/testinfo.txt @@ -0,0 +1,18 @@ +\b;Instruction \c;testinfo\n; +Syntax¦: +\s;\c;testinfo ( name, power );\n; + +Tests if an information exists in the closest \l;information exchange post\u object\exchange;. + +\t;name: \c;string\n; +Name of the information to be tested in the exchange post. This name is a string: it must be written in quotation marks "¦". + +\t;power: \c;float\n; +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 \c;false\n;. Default value is 10 metres. + +\t;Return: \c;\l;bool\u cbot\bool;\n; +Return \c;true\n; if the information exists. Return and \c;false\n; if the information does not exist or if the receiver is too far away from the exchange post. + +\t;See also +\c;\l;receive\u cbot\receive;\n;, \c;\l;send\u cbot\send;\n; and \c;\l;deleteinfo\u cbot\delinfo;\n;. +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/this.txt b/help/F/cbot/this.txt new file mode 100644 index 00000000..81516bc3 --- /dev/null +++ b/help/F/cbot/this.txt @@ -0,0 +1,54 @@ +\b;Instruction \c;this\n; +Occasionally, a \l;class\u cbot\class; 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 \c;this\n; is available to methods and \c;this\n; is a reference to the current instance. +\c; +\s;public class MyClass +\s;{ +\s; int m_int; +\s; string m_str; +\s; void MyFunction() +\s; { +\s; OtherFunction(this); +\s; m_int = 2; +\s; } +\s;} +\s; +\s;void OtherFunction(MyClass obj) +\s;{ +\s; message(obj.m_str); +\s;} +\s; +\s;extern void object::Test() +\s;{ +\s; MyClass item(); +\s; item.m_str = "Hello"; +\s; item.MyFunction(); // display "Hello" +\s;} +\n; +You can also put \c;this\n; before a field name in a method but this is not necessary. In the example above in the method \c;MyFunction()\n; following two lines have strictly the same meaning: +\c; +\s; m_int = 2; +\s; this.m_int = 2; // identical +\n; +In a method of the \c;\l;object\u cbot\object;\n; class, you can also use \c;this.\n; before a fieldname. +\c; +\s;extern void object::Display() +\s;{ +\s; message(orientation); +\s; message(this.orientation); // same thing but +\s; // more explicit +\s;} +\n; +However if a field name is hidden by a parameter declaration or a variable declaration you must use \c;this\n;. In the following example the name \c;value\n; of the parameter is the same as the name of the field \c;value\n; of the \l;class\u cbot\class; \c;MyClass\n;, we must therefore write \c;this.value\n; in order to distinguish the field from the parameter. +\c; +\s;public class MyClass +\s;{ +\s; int value; +\s; void Put( int value ) +\s; { +\s; this.value = value; +\s; } +\s;} +\n; +\t;See also +\c;\l;class\u cbot\class;\n; +\l;Programming\u cbot;, \l;types\u cbot\type; et \l;catégories\u cbot\category;. diff --git a/help/F/cbot/thump.txt b/help/F/cbot/thump.txt new file mode 100644 index 00000000..8ce7f161 --- /dev/null +++ b/help/F/cbot/thump.txt @@ -0,0 +1,13 @@ +\b;Instruction \c;thump\n; +Syntax: +\s;\c;thump ( );\n; + +Activates the weapon system of the \l;thumper\u object\bottump;, that turns ants and spiders belly up and makes them completely harmless for a while. + +\t;Return value: \c;\l;int\u cbot\int;\n; +Zero if everything is OK, a value different from zero if an error occurred. +\c;== 0 \n;Thumping performed +\c;!= 0 \n;Operation impossible + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/topo.txt b/help/F/cbot/topo.txt new file mode 100644 index 00000000..e8fef09a --- /dev/null +++ b/help/F/cbot/topo.txt @@ -0,0 +1,14 @@ +\b;Instruction \c;topo\n; +Syntax: +\s;\c;topo ( position );\n; + +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. + +\t;position: \c;\l;point\u cbot\point;\n; +Coordinates of the position whose altitude you want to know. + +\t;Return value: \c;\l;float\u cbot\float;\n; +Altitude of the ground at the given position. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/true.txt b/help/F/cbot/true.txt new file mode 100644 index 00000000..2d29fa1d --- /dev/null +++ b/help/F/cbot/true.txt @@ -0,0 +1,5 @@ +\b;Type \c;true\n; +This value means that a condition is true; it is one of the two values that a \l;boolean\u cbot\bool; \l;variable\u cbot\var; can take. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/turn.txt b/help/F/cbot/turn.txt new file mode 100644 index 00000000..a163dcb5 --- /dev/null +++ b/help/F/cbot/turn.txt @@ -0,0 +1,33 @@ +\b;Instruction \c;turn\n; +Use the instruction \c;turn();\n; to instruct the bot to perform a rotation on itself of a certain number of degrees. + +\b;Basic use +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;: + +\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 + +In order to turn the bot towards an object found with the instruction \c;\l;radar\u cbot\radar;();\n;, you must calculate the rotation angle with the instruction \c;\l;direction\u cbot\direct;()\n;: +\c; +\s; item = \l;radar\u cbot\radar;(AlienSpider); +\s; turn(\l;direction\u cbot\direct;(item.position)); +\n; +After these lines, just fire the cannon, and there is one hostile element less. + +\b;For specialists +Syntax: +\s;\c;turn ( angle );\n; + +Turns the bot with a given angle, right or left, without moving either forward or backward. + +\t;angle: \c;\l;float\u cbot\float;\n; +Angle of the required rotation, in degrees. A positive value turns left, a negative value turns right. \c;turn(180)\n; turns round completely. + +\t;Return value: \c;\l;int\u cbot\int;\n; +Zero if everything is OK, or a value different from zero if an error occurred. +\c;== 0 \n;rotation performed +\c;!= 0 \n;rotation impossible + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/type.txt b/help/F/cbot/type.txt new file mode 100644 index 00000000..16662081 --- /dev/null +++ b/help/F/cbot/type.txt @@ -0,0 +1,33 @@ +\b;Variable types +When you define a \l;variable\u cbot\var;, you must give two elements: + +1) a name +2) a type + +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 \l;float\u cbot\float; can not contain a string, etc. + +In a program, the name of a type is always written on \type;green background\norm;. If the name of a type is not colored, this means that the name is misspelled. Type names are always written with lower case characters. Here is a list of the different types: + +\s;\c;\l;int\u cbot\int;\n; +For a whole number (12, -500, etc.). + +\s;\c;\l;float\u cbot\float;\n; +For a real number (12, 3.14, 0.2, -99.98, etc.). + +\s;\c;\l;bool\u cbot\bool;\n; +For a boolean variable, that can only take the values \c;true\n; or \c;false\n;. + +\s;\c;\l;string\u cbot\string;\n; +For texts ("Hello!", "No object found", etc.) + +\s;\c;\l;point\u cbot\point;\n; +For the coordinates of a point in space; a variable of this type consists of three parts named x, y and z. + +\s;\c;\l;object\u cbot\object;\n; +A variable of this type contains the information about an object (bot, building, enemy, etc.). + +\s;\c;\l;void\u cbot\void;\n; +This type is an "empty type", that you use when you do not want to specify a type. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/var.txt b/help/F/cbot/var.txt new file mode 100644 index 00000000..8c8f95be --- /dev/null +++ b/help/F/cbot/var.txt @@ -0,0 +1,67 @@ +\b;Variables +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. + +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 \c;countTit\n;. This variable must contain only whole numbers, so choose the type \c;int\n;. At the beginning of the program, you must declare the variable. Then you put the value \c;0\n; into the variable, and every time you grab a titanium ore, you increase the variable by \c;1\n;. At every moment, the variable contains the number of titanium ore units that the grabber collected. + +For the declaration of the variable, write the following line: +\c;\s; int countTit;\n; + +To put \c;0\n; into the variable, write: +\c;\s; countTit = 0;\n; + +At every titanium ore grabbed, write: +\c;\s; countTit = countTit + 1\n; + +You have much freedom in the choice of the name for a variable, you can call them by any name, f. ex.: \c;dist\n;, \c;direct\n;, \c;p2\n;, \c;a\n;, \c;x\n;, \c;nothing_2_shoot_at\n;, etc. +A variable name must always begin with a letter. It can be followed by any combination of letters, digits or the underscore character \c;_\n;. You can of course not use the keywords of the CBOT language like \c;\l;for\u cbot\for;\n;, \c;\l;while\u cbot\while;\n;, \c;\l;break\u cbot\break;\n;, \c;\l;continue\u cbot\continue;\n;, \c;do\n;, 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 \c;Bmo45\n;, \c;a\n; or \c;tgBinX\n;. + +In the example above, the keyword \c;int\n; 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 \c;float\n;. + +In fact, a variable is made up of three parts: +1) the name +2) the type of the information stored inside +3) the content, i.e. the information itself + +\t;the name +You need the name to be able to distinguish the different variables from each other. + +\t;the type +The \l;type\u cbot\type; 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: + o \c;\l;int\u cbot\int;\n; for a whole number (12, -500, etc.) + o \c;\l;float\u cbot\float;\n; for a real number (3.14, 0.2, -99.98, etc.) + o \c;\l;string\u cbot\string;\n; for a character string ("Hello!", "No object found", etc.) + o \c;\l;point\u cbot\point;\n; for a x,y,z-coordinate in space + o \c;\l;object\u cbot\object;\n; for information about an object (bot, building, etc.) + +\t;The content +The content of a variable is an information of the kind specified in the type. It can change during the execution of the program. + +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; +\s; j = 25; // j takes the value 25 +\s; j = i; // can not write this, because i has got no content yet. +\n; +You can also declare a variable and put a value inside in the same line, writing: +\c;\s; int countTit = 0; +\n; +When you assign a value to a variable with the equals sign \c;=\n;, the value on the right side is copied into the value on the left side. Consider the following example: +\c;\s; int i, j; +\s; i = 5+2; // i takes the value 7 +\s; j = i+6; // j takes the value of i plus 6, this is 13 +\s; i = j; // i takes the value of j, this is 13 +\n; +At the end of this example, both variables \c;i\n; and \c;j\n; contain the value \c;13\n;. + +The following assignment is not correct, because on the left side of the equals sign \c;=\n;, there can be only a variable name: +\c;\s; i+2 = j; // impossible +\n; +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 \c;a\n; and \c;b\n; : +\c;\s; int temp; +\s; temp = a; // temp takes the value of a +\s; a = b; // the content of b is copied into a +\s; b = temp; // the content of temp is copied into b +\n; +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/void.txt b/help/F/cbot/void.txt new file mode 100644 index 00000000..11509d2b --- /dev/null +++ b/help/F/cbot/void.txt @@ -0,0 +1,11 @@ +\b;Type \c;void\n; +Use this type when you want to declare a function that returns nothing. + +Example: +\c;\s;void MyFunction(int a) +\s;{ +\s; ... +\s;} +\n; +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/wait.txt b/help/F/cbot/wait.txt new file mode 100644 index 00000000..88e6ed64 --- /dev/null +++ b/help/F/cbot/wait.txt @@ -0,0 +1,22 @@ +\b;Instruction \c;wait\n; +The instruction \c;wait();\n; instructs the bot to wait for some seconds, according to the value written in brackets. + +\b;Basic use +In order to wait until the \l;power cell\u object\power; is recharged on a power station, wait 5 seconds with \c;wait(5);\n;. + +In order to wait until the \l;converter\u object\convert; finished transforming some \l;titanium ore\u object\titanore; in a \l;titanium cube\u object\titan;, wait 15 seconds with \c;wait(15);\n;. + +\b;For specialists +Syntax: +\s;\c;wait ( time );\n; + +Waits for a moment. + +\t;time: \c;\l;float\u cbot\float;\n; +Specifies the time that the bot must wait. + +\t;Return value: \c;\l;void\u cbot\void;\n; +None. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/while.txt b/help/F/cbot/while.txt new file mode 100644 index 00000000..5e793c88 --- /dev/null +++ b/help/F/cbot/while.txt @@ -0,0 +1,47 @@ +\b;Instruction \c;while\n; +The instruction \c;while () {}\n; is used to repeat a set of instructions several times. + +\b;Basic use +The most frequent use of \c;while\n; consists in repeating a set of instructions again and again. In order to achieve this, write \c;while (true) {}\n; and put the instructions to be repeated in braces \c;{}\n;. As an example, here is a program that repeats again and again the following actions: +o look for a spider, +o turn towards it, +o shoot. +\c; +\s; while (true) +\s; { +\s; item = \l;radar\u cbot\radar;(AlienSpider); +\s; \l;turn\u cbot\turn;(direction(item.position)); +\s; \l;fire\u cbot\fire;(1); +\s; } +\n; +Just execute this program once, and it will kill all spiders around it. + +\b;For specialists +Syntax : +\s;\c;while ( condition ) +\s;{ +\s; \n;Instructions ...\c; +\s;} +\n; +This instruction allows you to perform the instructions inside the \l;block\u cbot\bloc; several times. + +Be careful not to confuse the instruction \c;while( ) { }\n; with the instruction \c;\l;do\u cbot\do; { } while( );\n;; the latter tests the condition only after the instructions in the block have been performed a first time. + +\t;\c;condition\n; +The instructions in the block are performed over and over again, as long as the \l;condition\u cbot\cond; is true. + +Here is an example : +\s;\c;int i = 0; +\s;while ( i < 10 ) +\s;{ +\s; \n;Instructions ...\c; +\s; i = i+1; +\s;} +\n; +\t;Attention +Do not put a \l;semicolon\u cbot\term; at the end of the line \c;while ( )\n;. + +The instructions \c;\l;break\u cbot\break;\n; and \c;\l;continue\u cbot\continue;\n; can be useful inside a block following the instruction \c;while { }\n;. + +\t;See also +\l;Instructions\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/cbot/writeln.txt b/help/F/cbot/writeln.txt new file mode 100644 index 00000000..260f4507 --- /dev/null +++ b/help/F/cbot/writeln.txt @@ -0,0 +1,21 @@ +\b;Instruction \c;writeln\n; +Write one line of text to an open file in the files/ folder. This is a method of the \c;\l;file\u cbot\file;\n; class. This is the reason why we always write \c;handle.writeln()\n;¦: +\c; +\s; handle.writeln("abc"); +\n; +The file must have been opened for writing (\c;"w"\n;) with the \c;\l;open\u cbot\open;\n; instruction. The line will automatically be terminated by the end of line characters 0x0D (CR) and 0x0A (LF). + +Syntax¦: +\s;\c;handle.writeln ( string );\n; + +Examples¦: +\c; +\s; writeln("Line of text"); + +\s; string s1 = "abc"; +\s; string s2 = "def"; +\s; writeln(s1 + " " + s2); +\n; +\t;See also +\c;\l;file\u cbot\file;\n;, \c;\l;open\u cbot\open;\n;, \c;\l;close\u cbot\close;\n;, \c;\l;readln\u cbot\readln;\n; and \c;\l;eof\u cbot\eof;\n;. +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/command.txt b/help/F/command.txt new file mode 100644 index 00000000..43126082 --- /dev/null +++ b/help/F/command.txt @@ -0,0 +1,45 @@ +\b;Controls +You are advised to play with one hand on the arrow keys and the other hand on the mouse. + +\t;Bots +\key;\key left;\norm; = turn left +\key;\key right;\norm; = turn right +\key;\key up;\norm; = move forward +\key;\key down;\norm; = move back +These controls are unavailable when working with the \l;practice bots\u object\bottr;. + +\key;\key gup;\norm; = take off and climb \button 28; +\key;\key gdown;\norm; = descend and land \button 29; +These controls are of course restricted to the \l;astronaut\u object\human; as well as the various \l;winged bots\u object\botgj; and in selected missions only. + +mouse forward = higher aim +mouse backward = lower aim +mouse right = aim right +mouse left = aim left +These controls are only available to the \l;shooters\u object\botfr;, the \l;orga shooters\u object\botor; and the \l;phazer shooter\u object\botphaz;. + +\key;\key action;\norm; = main action for a given selection (human or bot) +This control will for example operate the arm of a \l;grabber\u object\botgr; or fire a \l;shooter\u object\botfr; \button 42;. + +\t;Selections +\key;\key next;\norm; = selects next object +\key;\key human;\norm; = selects astronaut +\key;\key desel;\norm; = previous selection \button 10; + +\t;Camera +\key;\key camera;\norm; = shifts between onboard and following cameras \button 13; +\key;\key near;\norm; = zoom in +\key;\key away;\norm; = zoom out +\key;\key visit;\norm; = pauses the game and shows where the latest message originated. Press again to show origin of previous message. + +\t;Help +\key;\key help;\norm; = mission instructions +\key;\key prog;\norm; = programming help + +\t;Game +\key;\key speed10;\norm; = normal speed x1 +\key;\key speed15;\norm; = medium speed x1.5 +\key;\key speed20;\norm; = faster speed x2 +\key;\key quit;\norm; = exits mission \button 11; + +All these commands can be redefined in the options/controls menu. diff --git a/help/F/dexch1.txt b/help/F/dexch1.txt new file mode 100644 index 00000000..cf330c6a --- /dev/null +++ b/help/F/dexch1.txt @@ -0,0 +1,19 @@ +\b;Exercice +Several \l;information exchange posts\u object\exchange; are standing along the way. When the bot is close enough to a post, it can read the instructions it contains. The \l;information exchange posts\u object\exchange; along the way contain the direction of the next post and the distance. And you do not know how many exchange posts you must get in touch with before arriving at your goal. + +\b;General principle + Always repeat: + o Retrieve the direction from the \l;exchange post\u object\exchange;. + o Retrieve the distance from the \l;exchange post\u object\exchange;. + o If no information could be retrieved, stop the program. + o Execute the rotation. + o Move forward to the next post. + +\b;Useful instructions +\c;\l;while\u cbot\while;\n; to repeat the instructions +\c;\l;receive\u cbot\receive;\n; to get the information from a post +\c;\l;move\u cbot\move;\n; to move the bot +\c;\l;turn\u cbot\turn;\n; to turn the bot + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/dfollow1.txt b/help/F/dfollow1.txt new file mode 100644 index 00000000..2be46365 --- /dev/null +++ b/help/F/dfollow1.txt @@ -0,0 +1,20 @@ +\b;Exercise +You must follow the \l;target bot\u object\bottr; with the explosive device, but without touching it, otherwise it will blow up. Every time the target bot stops, you must be close to it (less than 10m). After you managed to stay close to the target bot at 10 successive stops, it will lead you to the finishing pad, and the exercise is over. At every stop, the target bot checks that you are there. If you are not there, you must start over again. + +\b;General principle +Repeat forever: +o Look for the target bot. +o Calculate the distance to the bot. +o if the distance to the target bot is less than 5m, move backward. +o Otherwise, calculate the direction of the target bot, and move towards it. + +\b;Useful instructions +\c;\l;radar\u cbot\radar;\n; to look for the bot (category \c;\l;TargetBot\u object\bottarg;\n;) +\c;\l;radar\u cbot\radar;\n; to detect obstacles +\c;\l;distance\u cbot\dist;\n; to calculate a distance +\c;\l;direction\u cbot\direct;\n; to calculate a direction +\c;\l;if\u cbot\if;\n; to test a condition +\c;\l;motor\u cbot\motor;\n; to set the motor speeds + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/dfor.txt b/help/F/dfor.txt new file mode 100644 index 00000000..116be043 --- /dev/null +++ b/help/F/dfor.txt @@ -0,0 +1,11 @@ +\b;Exercise +Destroy all four \l;targets\u object\bottarg; with a program using a \c;for\n; loop. You must move 10m to get from one target to another. + +\b;Useful instructions +\c;\l;for\u cbot\for;\n; loop to repeat the instructions +\c;\l;move\u cbot\move;\n; to move the bot +\c;\l;turn\u cbot\turn;\n; to turn the bot +\c;\l;fire\u cbot\fire;\n; to fire the cannon + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/dhelp1.txt b/help/F/dhelp1.txt new file mode 100644 index 00000000..718907d0 --- /dev/null +++ b/help/F/dhelp1.txt @@ -0,0 +1,15 @@ +\b;Exercise +Defend against all enemy attacks + +\b;General idea +The range of your cannon is about 40m. The category of the enemies is \c;AlienAnt\n;. Turn towards the closest ant, even if it is still more than 40m away. But shoot only when it is closer than 40m, in order not to waste your energy. + +\b;Useful instructions +\c;\l;radar\u cbot\radar;\n; to detect your enemies (category \c;\l;AlienAnt\u object\ant;\n;) +\c;\l;direction\u cbot\direct;\n; to calculate a direction +\c;\l;distance\u cbot\dist;\n; to calculate a distance +\c;\l;fire\u cbot\fire;\n; to fire your cannon +\c;\l;wait\u cbot\wait;\n; to wait + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/dlaby1.txt b/help/F/dlaby1.txt new file mode 100644 index 00000000..75e3e368 --- /dev/null +++ b/help/F/dlaby1.txt @@ -0,0 +1,11 @@ +\b;Exercise +Program the bot so that it will find its way without hitting the walls of the labyrinth. We suppose that you do not know the configuration of the labyrinth, but there are no bifurcations, and no dead-ends. The labyrinth is made of squares measuring 5m each. + +\b;Useful instructions +\c;\l;radar\u cbot\radar;\n; to detect obstacles +\c;\l;if\u cbot\if;\n; to test a condition +\c;\l;move\u cbot\move;\n; to move the bot +\c;\l;turn\u cbot\turn;\n; to turn the bot + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/dmove1.txt b/help/F/dmove1.txt new file mode 100644 index 00000000..1f207bd0 --- /dev/null +++ b/help/F/dmove1.txt @@ -0,0 +1,10 @@ +\b;Exercise +Program the robot in such a way that it arrives on the finishing pad, after having passed by the three blue crosses. +The platforms and the crosses are all distant of 20m from each other. + +\b;Useful instructions +\c;\l;move\u cbot\move;\n; to move the bot +\c;\l;turn\u cbot\turn;\n; to turn the bot + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/dproc1.txt b/help/F/dproc1.txt new file mode 100644 index 00000000..e1cda96b --- /dev/null +++ b/help/F/dproc1.txt @@ -0,0 +1,21 @@ +\b;Exercice +\b;Exercise +The \l;bot\u object\bottr; must pass over all the \l;blue crosses\u object\waypoint; on the ground. The way that must be covered is made of two squares. The first one measures 15 meters, the second 25 meters. + +\image tproc1a 8 8; +\b;General principle +In order to solve this problem, the most efficient solution consists in creating a \l;function\u cbot\function; that instructs the bot to move on a square shape of a certain size. The main program becomes then very simple:\c; +\c; +\s; extern void object::Function3( ) +\s; { +\s; Square(15); +\s; Square(25); +\s; } +\n; +\b;Useful instructions +\c;\l;for\u cbot\for;\n; loop to repeat some instructions +\c;\l;move\u cbot\move;\n; to move the bot +\c;\l;turn\u cbot\turn;\n; to turn the bot + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/dproc2.txt b/help/F/dproc2.txt new file mode 100644 index 00000000..6424eb36 --- /dev/null +++ b/help/F/dproc2.txt @@ -0,0 +1,14 @@ +\b;Exercise +Follow the way in form of a spiral. The bot must move 2 times 25m forward and turn, then move 2 times 20m forward and turn, and so on. +\image tproc2 8 8; + +\b;Function +You will have noticed that the way is made of "L"-shaped parts that are fit one into another. The first one (dark blue) measures two times 25 meters. The second one (light blue) measures 5 meters less. Let us start with writing the \l;function\u cbot\function; that will move the bot on a "L"-shaped part whose length will be given as a parameter. + +\b;Useful instructions +\c;\l;for\u cbot\for;\n; loop to repeat some instructions +\c;\l;move\u cbot\move;\n; to move the bot +\c;\l;turn\u cbot\turn;\n; to turn the bot + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/dradar1.txt b/help/F/dradar1.txt new file mode 100644 index 00000000..2b97def6 --- /dev/null +++ b/help/F/dradar1.txt @@ -0,0 +1,14 @@ +\b;Exercise +In this exercise, a "crazy bot" places many \l;blue crosses\u object\waypoint; on the ground. Just try to find them all. + +\b;Useful instructions +\c;\l;radar\u cbot\radar;\n; to detect the blue crosses (category \c;\l;WayPoint\u object\waypoint;\n;) +\c;\l;direction\u cbot\direct;\n; to calculate a direction +\c;\l;if\u cbot\if;\n; to test a condition +\c;\l;motor\u cbot\motor;\n; to set the motor speeds + +\t;Remark +Do not wait too long, because the crazy bot gets down to work immediately. Fortunately, as long as you are in the program editor, the game will pause. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/dremova1.txt b/help/F/dremova1.txt new file mode 100644 index 00000000..d3175a1d --- /dev/null +++ b/help/F/dremova1.txt @@ -0,0 +1,35 @@ +\b;Exercise +Convert some \l;titanium ore\u object\titanore; to \l;titanium cubes\u object\titan;, then drop 2 titanium cubes on the pads whose coordinates are: +\c; + x=10, y=-60 + x=10, y=-65 +\n; +\image derrick 8 8; +The \l;derrick\u object\derrick; extracts titanium ore from the subsoil; you just have to pick it up. + +\image convert 8 8; +The \l;converter\u object\convert; converts titanium ore to titanium cubes. Just drop the titanium ore on the platform, move backward, and wait until it has been converted. + +\b;General principle +Repeat two times : +o Wait until there is some titanium ore. +o Go to the titanium ore. +o Pick it up. +o Go to the converter. +o Drop the titanium ore. +o Move back 2.5 meters. +o Wait until there is a titanium cube. +o Pick up the titanium cube. +o Go to the platform. +o Drop the titanium cube. + +\b;Useful instructions +\c;\l;for\u cbot\for;\n; to repeat some instructions +\c;\l;do - while\u cbot\do;\n; to repeat some instructions +\c;\l;radar\u cbot\radar;\n; to look for different objects +\c;\l;goto\u cbot\goto;\n; to move the bot +\c;\l;grab\u cbot\grab;\n; to grab an object +\c;\l;drop\u cbot\drop;\n; to drop an object + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/dremova2.txt b/help/F/dremova2.txt new file mode 100644 index 00000000..ec6549c7 --- /dev/null +++ b/help/F/dremova2.txt @@ -0,0 +1,11 @@ +\b;Exercise +Move the \l;titanium cube\u object\titan; on the finishing pad. You do not know the position of the titanium, but we can tell you the position of the finishing pad x=10 and y=-60. + +\b;Useful instructions +\c;\l;radar\u cbot\radar;\n; to find the titanium cube (category \c;\l;Titanium\u object\titan;\n;) +\c;\l;goto\u cbot\goto;\n; to move the bot +\c;\l;grab\u cbot\grab;\n; to grab an object +\c;\l;drop\u cbot\drop;\n; to drop an object + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/dtrap1.txt b/help/F/dtrap1.txt new file mode 100644 index 00000000..8cf7bd08 --- /dev/null +++ b/help/F/dtrap1.txt @@ -0,0 +1,26 @@ +\b;Exercise +Instruct the bot to find all the \l;blue crosses\u object\waypoint; on the ground, but do not get too close to the \l;mines\u object\mine;. When the bot passes over a cross, it disappears. Here is the general principle: + + Repeat forever: + o Look for a mine + o If a mine has been found, calculate the opposite direction + o Look for a cross + o If nothing has been found, stop the program + o Calculate the direction of the cross + o Calculate the mean value of the two directions + o Set the motor speeds in order to head towards the mean direction + +\b;The instruction \c;radar\n; +In order to detect a mine with the \c;\l;radar\u cbot\radar;\n;, we recommend the following parameters: +\c;\s; radar(Mine, 0, 180, 0, 5);\n; +With the opening angle of 180 degrees, mines that are behind the bot will not be found. Mines that are at more than 5 meters are also ignored. + +In order to find a blue cross, simply write: +\c;\s; radar(WayPoint);\n; +Blue crosses will be found everywhere. + +In order to calculate a direction, use \c;\l;direction\u cbot\direct;\n;. +In order to set the motor speeds, use \c;\l;motor\u cbot\motor;\n;. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/dtrap2.txt b/help/F/dtrap2.txt new file mode 100644 index 00000000..85acba71 --- /dev/null +++ b/help/F/dtrap2.txt @@ -0,0 +1,7 @@ +\b;Exercise +Instruct your \l;bot\u object\bottr; to find all the \l;blue crosses\u object\waypoint; on the ground, but do not get too close to the \l;mines\u object\mine;. + +If a bot gets within less than 2m of the center of a mine (which is the position returned by the radar instruction), il will blow up. However, you must take into account the inertia of the bot. Probably a safety distance of 3 to 3.5m would be more appropriate. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/fglobal.txt b/help/F/fglobal.txt new file mode 100644 index 00000000..f7c4caf2 --- /dev/null +++ b/help/F/fglobal.txt @@ -0,0 +1,5 @@ +\b;Objective +Here you can play around without any definite objective. You can do whatever you want, explore the region, build a base camp and several bots, run various research programs, kill the insects if you find some, etc. + +\t;See also +\l;Controls\u command;. diff --git a/help/F/licences.txt b/help/F/licences.txt new file mode 100644 index 00000000..f892ed07 --- /dev/null +++ b/help/F/licences.txt @@ -0,0 +1,3 @@ +The photograph of the nebula NGC3606 illuminating the sky on Orpheon and the installation program was taken with the Hubble space telescope. It is used with the permission of the authors Wolfgang Brandner (JPL/IPAC), Eva K. Grebel (Washington University), You-Hua Chu (Illinois Urbana-Champaign University) and NASA. + +The thunder sound on Orpheon is used by limited permission from CREATIVE. diff --git a/help/F/mhcent1.txt b/help/F/mhcent1.txt new file mode 100644 index 00000000..0bdecf07 --- /dev/null +++ b/help/F/mhcent1.txt @@ -0,0 +1,11 @@ +\b;From Mission Control +Find some more \l;organic matter\u object\bullet; and, given an appropriate research program performed by your \l;autolab\u object\labo;, \l;you\u object\human; should be able to manufacture orga shooters yourself. + +Produce a \l;legged orga shooter\u object\botos; and bring it back aboard your \l;spaceship\u object\base;. + +Please keep in mind that low energy resources are a major concern on this planet. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/F/mhcent2.txt b/help/F/mhcent2.txt new file mode 100644 index 00000000..99de1d4f --- /dev/null +++ b/help/F/mhcent2.txt @@ -0,0 +1,7 @@ +\b;From Mission Control +It is time for \l;you\u object\human; to improve your shooting skills again. In the following drill, hit all the \l;explosive devices\u object\tnt; but watch out: your \l;orga shooter\u object\botoj; has very little power left in it, barely enough to complete the drill. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/F/mhcent3.txt b/help/F/mhcent3.txt new file mode 100644 index 00000000..48067c8f --- /dev/null +++ b/help/F/mhcent3.txt @@ -0,0 +1,9 @@ +\b;From Mission Control +Build a \l;radar\u object\radar; on one of the highest accessible spots and make sure that no organism can destroy it after \l;you\u object\human;'re gone. + +The destruction of a previous radar set up by the first expedition was probably the cause of a communication breakdown, which led to complete loss of contact. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/F/mhcent4.txt b/help/F/mhcent4.txt new file mode 100644 index 00000000..72284c2a --- /dev/null +++ b/help/F/mhcent4.txt @@ -0,0 +1,19 @@ +\b;A Word on New Policies +We are sorry to have to bring this to your attention but this seems like a good a time to let you in on a little concern we're having at the moment. There has been a strong reaction in the public opinion and in Congress concerning your systematic termination of the "indigenous inhabitants" of the planets you've been visiting. Congress has chosen to demonstrate its sensitivity to the concerns of the general population. + +We hereby relay their new directives and these directives intimate for you to limit the casualties as much as humanly possible. In other words, do your very best to spare the life-forms you encounter from now on. Your mission should of course in no way find itself jeopardized by this new course of action. + +\b;From Mission Control +Your energy resources appear dangerously limited at this time and so is your arsenal but you need to locate and retrieve the previous expedition's \l;black box\u object\bbox; so you can proceed to the next planet. + +We received a piece of information from your predecessors, via the observation satellite, regarding a new type of weaponry they have developed precisely for a predicament such as this one. + +This weapon will offer you an opportunity to demonstrate your newfound compassion towards \l;indigenous species\u object\ant; for it is not a weapon of mass destruction. What it offers instead, to the best of our knowledge, is an option to incapacitate them, rendering them, if only temporarily, harmless. If this is indeed the case, you'll need to act quickly before they are given a chance to become hostile to you again. + +\b;Procedure +Perform the \l;research program\u object\research; and experiment for yourself but don't forget to bring this new weapon back on board. We are very curious to study its workings. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/F/mhcent5.txt b/help/F/mhcent5.txt new file mode 100644 index 00000000..c4c0e0a1 --- /dev/null +++ b/help/F/mhcent5.txt @@ -0,0 +1,9 @@ +\b;From Mission Control +You're under attack and this is no time for compassion... + +Your new \l;thumper\u object\bottump; might come in very handy. However, we emphasize that you should not risk a takeoff if there are any ants still alive in the vicinity of the spaceship. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/F/mhcrys1.txt b/help/F/mhcrys1.txt new file mode 100644 index 00000000..6b4c840b --- /dev/null +++ b/help/F/mhcrys1.txt @@ -0,0 +1,13 @@ +\b;From Mission Control +Build a \l;radar\u object\radar; on the highest point in the area. Make sure that the radar will work safely even after your departure to other planets. Your \l;research center\u object\research; should be able to provide a solution. + +It is possible that the organisms detected are in fact the \l;worms\u object\worm; alluded to by the first expedition. If this is indeed the case, don't be excessively alarmed: they seem fairly harmless to living organisms but could cause the programs of bots and buildings to malfunction through the emission of viruses. + +Radars not only give you precious information about objects and organisms present in the region, they also relay information to and from the Earth once you have taken off to other planets. It is highly probable that problems with the radar stations built by the first expedition caused the transmission problems that we are aware of. + +In order to help you with the boring task of gathering the necessary raw material, we have developed a program that instructs the \l;wheeled grabber\u object\botgr; to look for \l;titanium ore\u object\titanore; on its own (see the programming page \button 53;). + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/F/mhcrys2.txt b/help/F/mhcrys2.txt new file mode 100644 index 00000000..b0ceb067 --- /dev/null +++ b/help/F/mhcrys2.txt @@ -0,0 +1,11 @@ +\b;From Mission Control +Cleanse the area of all hostile organisms. The way you accomplish this (\l;defense tower\u object\tower; or \l;winged shooter\u object\botfj;) is up to you. + +The radar seems to be perfectly suited to the detection of worms. Keep in mind though that they only appear when they are on the surface. + +We relayed a transmission to your \l;bot factory\u object\factory;. It concerns a bot designed to detect raw materials in the subsoil: energy sources, ore. We call it a \l;sniffer\u object\botsr; for short. Preliminary analysis leads us to believe that the presence of titanium ore on Crystalium is closely linked to the growth of large blue crystals. If this is indeed the case, this information should allow you to save some precious time. A \l;derrick\u object\derrick; is of course required for the extraction. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/F/mhcrys3.txt b/help/F/mhcrys3.txt new file mode 100644 index 00000000..029ced15 --- /dev/null +++ b/help/F/mhcrys3.txt @@ -0,0 +1,9 @@ +\b;From Mission Control +We have just received this warning from the observation satellite: a rogue bot from the previous expedition has seized the black box from your spaceship. + +We are going to investigate this incident further but it is of vital importance that you retrieve your black box at once. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/F/mhcrys4.txt b/help/F/mhcrys4.txt new file mode 100644 index 00000000..a1db90ef --- /dev/null +++ b/help/F/mhcrys4.txt @@ -0,0 +1,11 @@ +\b;From Mission Control +This planet has turned out to be a very unlikely candidate for colonization. Better to leave it for good. Retrieve the \l;black box\u object\bbox; from the previous expedition and head towards the next planet. + +The observation satellite has indicated that its present location is at the bottom of a valley. However the pervasive stratum of electromagnetic smog could make all satellite information rather undependable. + +Stay alert. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/F/mhlune1.txt b/help/F/mhlune1.txt new file mode 100644 index 00000000..8bc9c193 --- /dev/null +++ b/help/F/mhlune1.txt @@ -0,0 +1,22 @@ +\b;From Mission Control +Collect 4 chunks of \l;titanium ore\u object\titanore; and bring them back aboard your \l;spaceship\u object\base;. Build the equipment necessary for this task (\l;flying bots\u object\botgj;). + +Before you venture any further, you should always take a look at the satellite report \button 186;. + +We have transmitted to your \l;spaceship\u object\base; a program that might help you in this task; please refer to the corresponding page of your SatCom with the button \button 53;. + +\b;Procedure +1) A new \l;research program\u object\research; is required for winged bots to be added to the list of bots that can be produced by the factory. This research program will also make the propulsion reactor in your personal survival kit operational. + +2) Produce a \l;winged grabber\u object\botgj; and collect the 4 chunks of \l;titanium ore\u object\titanore;. + +3) Take the \l;winged grabber\u object\botgj; and the \l;wheeled grabber\u object\botgr; along with you and take off. + +Be careful that your winged bot does not run out of power when you are far from base. If necessary, replace the \l;power cell\u object\power; before leaving the spaceship. You can either do this manually or you can execute the enclosed program provided by Houston \button 53;. + +In order not to lose your way among the numerous craters on the Moon's surface, use the mini map on the lower right-hand corner of your screen. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom. + +\t;See also +\l;Controls\u command; diff --git a/help/F/mhlune2.txt b/help/F/mhlune2.txt new file mode 100644 index 00000000..5d6cfbd9 --- /dev/null +++ b/help/F/mhlune2.txt @@ -0,0 +1,17 @@ +\b;From Mission Control +This apparatus was set up by the previous expedition to test and train the flying capacity of winged bots. + +\b;Objective +Use these drills to your advantage. Your ability to survive future critical situations may depend upon the dexterity they will have helped you develop. + +\b;Procedure +Fly as quickly as possible through each target. Try to accomplish this without causing the engine to overheat. If this appears too difficult, just touch down and let the engine cool off. + +You should use the arrow keys on the keyboard to pilot the bot, but keep one hand on the mouse. The mouse is useless in this exercise, but will be essential in later missions. + +It may be useful to come back to these drills once in a while if you wish to improve your reflexes further. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/F/mhlune3.txt b/help/F/mhlune3.txt new file mode 100644 index 00000000..a11586b5 --- /dev/null +++ b/help/F/mhlune3.txt @@ -0,0 +1,7 @@ +\b;From Mission Control +Similar drill as before, only this time viewed through the camera placed on board. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/F/mhlune4.txt b/help/F/mhlune4.txt new file mode 100644 index 00000000..cc87d088 --- /dev/null +++ b/help/F/mhlune4.txt @@ -0,0 +1,20 @@ +\b;From Mission Control +We have no way of being sure where the previous expedition was headed when it left the Moon surface nor why it chose to go wherever it was going. + +Locate the \l;black box\u object\bbox; they must have left behind and bring it back aboard your ship. The black box should contain the coordinates of the next planet the expedition was planning to visit. + +Your bot's \l;power cells\u object\power; are almost entirely empty. Recharging them should be your priority. The observation satellite in orbit indicates that the subsoil in this particular area is loaded with energy. You should therefore be able to build a functional \l;power station\u object\station; on any flat surface. + +We have developed a program that will recharge the \l;power cell\u object\power; of a bot. Refer to the program page of your SatCom \button 53;. + +\b;Procedure +1) You first need to build a \l;converter\u object\convert; that converts the chunks of titanium ore already in your possession into usable \l;titanium cubes\u object\titan;. + +2) You should then build both a \l;power station\u object\station; and a \l;radar\u object\radar; which will indicate the location of the black box on your mini map. + +3) With your power cells fully charged, retrieve the black box. It needs to be placed on the \l;spaceship\u object\base; platform for you to be able to take off. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/F/mhorph1.txt b/help/F/mhorph1.txt new file mode 100644 index 00000000..7154f14a --- /dev/null +++ b/help/F/mhorph1.txt @@ -0,0 +1,13 @@ +\b;From Mission Control +It seems obvious enough that this planet will be no haven for humanity. + +Build a radar to relay future transmissions. + +Also... we're very sorry to inform you that you may need to exterminate all hostile organisms. + +The first expedition located \l;titanium ore\u object\titanore; under the surface of Orpheon. The spot is marked with a blue \l;flag\u object\flag;. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/F/mhorph2.txt b/help/F/mhorph2.txt new file mode 100644 index 00000000..7391a1fc --- /dev/null +++ b/help/F/mhorph2.txt @@ -0,0 +1,11 @@ +\b;From Mission Control +Retrieve the black box. + +Electromagnetic lightning bolts appear to strike even more frequently now than they did previously. You need to protect your equipment. + +Please note that your spaceship also naturally acts as a lightning conductor, and our engineers assure us that your space suit does not attract lightning. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/F/mhsaari1.txt b/help/F/mhsaari1.txt new file mode 100644 index 00000000..065eb931 --- /dev/null +++ b/help/F/mhsaari1.txt @@ -0,0 +1,7 @@ +\b;From Mission Control +The observation satellite has detected a chunk of \l;uranium ore\u object\uranore; on the summit of the main mountain. You need to bring it back to your spaceship. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/F/mhsaari2.txt b/help/F/mhsaari2.txt new file mode 100644 index 00000000..ae22711a --- /dev/null +++ b/help/F/mhsaari2.txt @@ -0,0 +1,11 @@ +\b;From Mission Control +Eliminate all hostile presence from the region. + +Your current situation is of utmost concern to us. The satellite has detected an extremely strong enemy presence approaching your spaceship from all directions. Use your best judgment and the quickest, most efficient defense: either \l;towers\u object\tower; or \l;shooters\u object\botfr;. + +In order to increase your survival chances, we have developed a program that will protect your west flank if you execute it on your \l;wheeled shooter\u object\botfr;; see the program page \button 53;. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/F/mhsaari3.txt b/help/F/mhsaari3.txt new file mode 100644 index 00000000..2a6b8587 --- /dev/null +++ b/help/F/mhsaari3.txt @@ -0,0 +1,9 @@ +\b;From Mission Control +Your satellite has located the remains of the previous expedition. You should come across a \l;black box\u object\bbox; not too far from there. It will give you the coordinates of your next destination. + +Exterminate the few remaining ants. We've been notified that your neutron gun is currently out of order so you will not be able to build new bots. We're convinced that you're resourceful enough at this point to come up with a solution. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/F/mhterra1.txt b/help/F/mhterra1.txt new file mode 100644 index 00000000..0b1fb5f9 --- /dev/null +++ b/help/F/mhterra1.txt @@ -0,0 +1,15 @@ +\b;From Mission Control +We've just received information that the first expedition designed a brand new weapon to be used on Terranova. It was safely stored away from possible enemy reach, inside a \l;vault\u object\safe; which can be accessed only by using four \l;keys\u object\key;. The keys are scattered on or under the planet surface. + +The observation satellite has located one of these keys (A) north of your present position. + +In compliance with Congress directives, our engineers have developed yet another strictly "defensive" bot : it is called a \l;shielder\u object\botshld; and it will offer adequate protection within a given perimeter. The data have been transmitted to your \l;research center\u object\research; along with a couple of relevant programs. + +As you may know, uranium ore in the subsoil is a powerful fertilizer, furthering the growth of a variety of mushrooms. Please also note that \l;titanium ore\u object\titanore; is often located at the bottom of lakes on this planet. + +When your mission is completed and before taking off, bring both a \l;shielder\u object\botshld; and a \l;subber\u object\botsub; aboard your spaceship. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/F/mhterra2.txt b/help/F/mhterra2.txt new file mode 100644 index 00000000..530285a9 --- /dev/null +++ b/help/F/mhterra2.txt @@ -0,0 +1,9 @@ +\b;From Mission Control +Retrieve the second \l;key\u object\key; (B). It should be located near your current position. + +When your mission is completed and before taking off, bring both \l;shielder\u object\botshld; and \l;subber\u object\botsub; aboard your spaceship. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/F/mhterra3.txt b/help/F/mhterra3.txt new file mode 100644 index 00000000..f3ca9465 --- /dev/null +++ b/help/F/mhterra3.txt @@ -0,0 +1,9 @@ +\b;From Mission Control +The third \l;key\u object\key; (C) is buried in a mushroom-infested area. A \l;sniffer\u object\botss; should be able to locate it and a \l;derrick\u object\derrick; should be able to extract it. + +When your mission is completed and before taking off, bring both \l;shielder\u object\botshld; and \l;subber\u object\botsub; aboard your spaceship. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/F/mhterra4.txt b/help/F/mhterra4.txt new file mode 100644 index 00000000..cf29413f --- /dev/null +++ b/help/F/mhterra4.txt @@ -0,0 +1,13 @@ +\b;From Mission Control +With the help of the fourth \l;key\u object\key; (D) located nearby, you will finally gain access to the \l;vault\u object\safe;. The groundbreaking bot you'll find inside was named a "\l;phazer\u object\botphaz;". + +A program allowing for a collaboration between a \l;phazer\u object\botphaz; and a \l;shielder\u object\botshld; has been attached. + +You should soon find yourself in a position to test your new weapon. Your last mission is to dispose of the \l;Alien Queen\u object\mother;, the egglayer responsible for the growing number of insects on Terranova. The phazer might very well be the only bot capable of getting the job done. + +There will then be no further obstacle to the human colonization of this magnificent planet and you'll soon be able to notify Earth of the success of your mission. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/F/mhterre1.txt b/help/F/mhterre1.txt new file mode 100644 index 00000000..7c758945 --- /dev/null +++ b/help/F/mhterre1.txt @@ -0,0 +1,27 @@ +\b;From the NASA Training Center +We are pleased to inform you that you have been selected for the space exploration mission Colobot. + +Your psychological profile has been established as more than 98.84% favorable, and your aptitude during the extensive testing period was undeniable. The detailed results are at your disposal in the central computer under the registration number that was assigned to you. + +Please report to the \l;Houston Mission Control\u object\Huston; for further directives about your forthcoming mission. + +\b;From Houston Mission Control +As you know, Earth is heading towards imminent disaster, due to increasing atmospheric pollution. + +\l;Your\u object\human; mission consists of exploring neighboring galaxies with the hopes of finding a planet that will be suitable to human needs and possibly serve as a shelter for mankind. You will be on your own for the entire mission but your spaceship will be carrying a few bots along. + +Eight months ago an expedition composed entirely of robots was sent across the cosmos with the same objective. It encountered a fair share of obstacles along the way, apparently landing on planets that were unsuitable for colonization, even possibly outright hostile. Very recently all communications were terminated. + +The reasons for the mission's failure are unclear at this date, mainly because of recurrent transmission problems. It is our hope that you will be able to use some of the data it gathered to your advantage. + +\b;Immediate Objective +The Nevada desert is already bustling with activity. Bots are setting up a space station catered to your specific needs. + +In order to let you familiarize with your spacesuit and equipment, we have set up a few training drills. + +In the first drill, you need to find your survival kit that contains all the tools necessary to brave the cold of outer space. It is easy to spot since it contains both an orange and a blue tank. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; diff --git a/help/F/mhterre2.txt b/help/F/mhterre2.txt new file mode 100644 index 00000000..14de04fe --- /dev/null +++ b/help/F/mhterre2.txt @@ -0,0 +1,14 @@ +\b;From Mission Control +This is your second drill. \l;You\u object\human; should now familiarize yourself with the handling of basic equipment. This could turn out to be your best ally during the course of this expedition. + +The construction of buildings and the manufacturing of bots all require the use of \l;titanium\u object\titan;. Titanium is a mineral found in most solar systems in the universe. + +\b;Procedure +1) Position yourself close to the first \l;titanium cube\u object\titan;. +2) Build a \l;research center\u object\research; \button 163;. Note that only \l;you\u object\human; can accomplish the task of building; no bot can be substituted. +3) With a second \l;titanium cube\u object\titan;, build a \l;bot factory\u object\factory; \button 160;. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; diff --git a/help/F/mhterre3.txt b/help/F/mhterre3.txt new file mode 100644 index 00000000..ca679582 --- /dev/null +++ b/help/F/mhterre3.txt @@ -0,0 +1,24 @@ +\b;From Mission Control +Your \l;spaceship\u object\base; is now standing on the launching pad, ready for takeoff. + +The last drill left for \l;you\u object\human; to perform before embarking on your journey is to equip your spaceship with its \l;black box\u object\bbox;. The only way to reach the \l;black box\u object\bbox; is by a steep path that can only be climbed by a \l;tracked grabber\u object\botgc; which you need to build. + +Unfortunately your \l;bot factory\u object\factory; hasn't yet got the capacity to assemble this type of bot. You need to request your \l;research center\u object\research; to come up with a blueprint for this particular propeller. + +\b;Procedure +1) Power the research center with one of the green \l;power cells\u object\power;. +2) Click on the button \button 64;. +3) Drop a \l;titanium cube\u object\titan; in the center of the \l;bot factory\u object\factory; and build a \l;tracked grabber\u object\botgc;. +4) Power and radio-control the \l;tracked grabber\u object\botgc; to the top of the southwest-oriented mountain. +5) Bring the black box back aboard your spaceship. +6) Don't forget to take the \l;wheeled grabber\u object\botgr; along. These bots may prove very useful in the future. +7) Climb aboard the \l;spaceship\u object\base;. +11) Select the \l;spaceship\u object\base; and take off \button 28;. + + +Please note: To work more efficiently, you can use the \l;wheeled grabber\u object\botgr;. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; diff --git a/help/F/mhtropi1.txt b/help/F/mhtropi1.txt new file mode 100644 index 00000000..8b4e5110 --- /dev/null +++ b/help/F/mhtropi1.txt @@ -0,0 +1,10 @@ +\b;From Mission Control +The observation satellite has detected a new kind of explosive apparently designed by the previous expedition. You must locate it and bring it back to your \l;spaceship\u object\base;. + +\b;Procedure +The location of the explosive is marked by a red cross on your mini map. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; diff --git a/help/F/mhtropi2.txt b/help/F/mhtropi2.txt new file mode 100644 index 00000000..a6f8603a --- /dev/null +++ b/help/F/mhtropi2.txt @@ -0,0 +1,18 @@ +\b;From Mission Control +It is our hope that this message will reach you. + +A transmission from the observation satellite a few hours ago informed us that you seemed to be wandering in a frighteningly uncoordinated manner. Your SatCom has ceased broadcasting. Your reactor seems to have suffered some sort of damage and your helmet was spotted at the bottom of a lake. If this is indeed the case, do not try to retrieve it, do not go into the water! Water on Tropica is highly toxic. You would not survive it. + +Get back to your ship as quickly as possible and try to transmit information about the possible causes of this disaster. The satellite's information remains undecipherable. We have been speculating about an X-factor ever since the first expedition got lost. It appears you have just encountered it. + +There is nothing we can really do to guide you but don't forget that you're following in the footsteps of a previous expedition. If what happened to you is what happened to them, chances are they may have left some clues along the way back to their own spaceship which landed in roughly the same area as yours. Use those clues. + +You may also want to consider planting flags. They indicate the direction of the wind so you can use them to orient yourself. + +This is all we can say for now... +Good Luck... + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; diff --git a/help/F/mhtropi3.txt b/help/F/mhtropi3.txt new file mode 100644 index 00000000..02ae2348 --- /dev/null +++ b/help/F/mhtropi3.txt @@ -0,0 +1,16 @@ +\b;From Mission Control +Terminate all hostile life-form. +Perform the necessary \l;research program\u object\research; in order to develop an offensive weapon system. + +The satellite has detected an energy source, on a spot marked by the previous expedition with a blue flag (blue cross on the mini-map). + +Do not forget to take a look at the satellite report \button 186; before you venture any further in a mission; we suspect that you have not always done this. + +We have improved the recharge program. Please refer to the page \button 53;. + +A note of warning: bots cannot be submerged. If in doubt, test the water yourself if you plan to radio-control a non-winged bot across - water shouldn't be deeper than knee-level. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/F/mhtropi4.txt b/help/F/mhtropi4.txt new file mode 100644 index 00000000..657e0da1 --- /dev/null +++ b/help/F/mhtropi4.txt @@ -0,0 +1,13 @@ +\b;From Mission Control +This is another training course set up by your predecessors and intended this time to test and train the firing capacity of \l;winged bots\u object\botfj;. Use it to familiarize yourself with the two simultaneous actions of shooting while flying. + +Fly quickly through all targets and shoot all 10 explosive devices scattered along the way. Try to complete the drill without touching down. Watch your reactor though: if it overheats, just settle the bot and let it cool off. + +Use one hand on the keyboard to pilot the bot, and the other hand on the mouse to aim and to shoot (left button). + +It may be useful to come back to these drills once in a while if you wish to improve your reflexes further. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/F/mhtropi5.txt b/help/F/mhtropi5.txt new file mode 100644 index 00000000..d8f30ee6 --- /dev/null +++ b/help/F/mhtropi5.txt @@ -0,0 +1,9 @@ +\b;From Mission Control +Locate and retrieve another \l;black box\u object\bbox; from the previous expedition. + +The observation satellite seems to have spotted it underwater. Water is harmless to you as long as you wear your helmet but keep in mind that you can't carry objects underwater. A \l;subber\u object\botsub; may come in handy. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/F/mhvolca1.txt b/help/F/mhvolca1.txt new file mode 100644 index 00000000..0344a8ab --- /dev/null +++ b/help/F/mhvolca1.txt @@ -0,0 +1,13 @@ +\b;From Mission Control +You need to retrieve an \l;explosive device\u object\tnt; that has been spotted in a deep valley next to a lake of boiling lava. + +Because of the high temperatures, reactors no longer function, i.e. flying is impossible. It is a long way there and you should equip your bots with \l;nuclear power cells\u object\atomic;. Nuclear power cells are manufactured from \l;uranium ore\u object\uranore;. + +A more efficient program for the gathering of raw materials is attached to this message. + +A note of warning: the explosive device is extremely volatile. Use extreme caution. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/F/mhvolca2.txt b/help/F/mhvolca2.txt new file mode 100644 index 00000000..41dccc38 --- /dev/null +++ b/help/F/mhvolca2.txt @@ -0,0 +1,17 @@ +\b;From Mission Control +The previous expedition provided us with a piece of information about some \l;organic matter\u object\bullet;, which seems to be produced by the \l;ants\u object\ant;, and which opened startling new possibilities. It apparently allows the creation of a new type of mutant bot with enhanced performance through the use of insect parts. + +Your mission is to experiment with the first practical application of this "green gold". Build a \l;legged grabber bot\u object\botgs;, load it on the spaceship and take off. + +\b;Procedure +Take a sample of organic matter from a nest of giant ants. The analysis of it will be performed by an \l;autolab\u object\labo;, which will also perform the necessary research to allow a practical application. + +In order to improve your defense capacity, we have transmitted a program to your \l;grabber bots\u object\botgr; that takes care of recharging the power cell of a \l;defense tower\u object\tower; (see \button 53; ). + +\b;Note +The temperature has dropped significantly, it should therefore be possible to fly. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/F/mhvolca3.txt b/help/F/mhvolca3.txt new file mode 100644 index 00000000..ba33482c --- /dev/null +++ b/help/F/mhvolca3.txt @@ -0,0 +1,7 @@ +\b;From Mission Control +This planet is obviously unsuited to a long-lasting colonization. Retrieve the \l;black box\u object\bbox; from the previous expedition then take off. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/F/mhvolca4.txt b/help/F/mhvolca4.txt new file mode 100644 index 00000000..2a3876a0 --- /dev/null +++ b/help/F/mhvolca4.txt @@ -0,0 +1,9 @@ +\b;An urgent notification from Mission Control +As you were about to take off, we received from the satellite the following piece of information: a bot of a type yet unknown has been spotted on Volcano. Try to bring it back onto your spaceship for further study. + +Our engineers on Earth have very recently come up with a formula that should allow reactors to function properly, at least for a short while, despite the high temperatures. The data have been transmitted to you. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/F/mhvolca5.txt b/help/F/mhvolca5.txt new file mode 100644 index 00000000..a83bb143 --- /dev/null +++ b/help/F/mhvolca5.txt @@ -0,0 +1,11 @@ +\b;From Mission Control +Congratulations on a fine job as usual. + +This new weapon appears to be yet another practical application of what we've come to refer to as "green gold", the \l;organic matter\u object\bullet; produced by the insects. We've named this bot the \l;orga shooter\u object\botoj; or bot equipped with an orgaball cannon. + +It will most certainly come in handy as you make your way back to your \l;spaceship\u object\base;. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/F/mhvolca6.txt b/help/F/mhvolca6.txt new file mode 100644 index 00000000..35225cc4 --- /dev/null +++ b/help/F/mhvolca6.txt @@ -0,0 +1,7 @@ +\b;From Mission Control +You need to repel a last minute ant attack before taking off. + +\key;\key help;\norm; allows you to review these instructions at all times on your personal SatCom \button 63;. + +\t;See also +\l;Controls\u command; and \l;CBOT Language\u cbot; diff --git a/help/F/micent1.txt b/help/F/micent1.txt new file mode 100644 index 00000000..57f72f1d --- /dev/null +++ b/help/F/micent1.txt @@ -0,0 +1,20 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Centaury. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 23.4C +\tab;Atmosphere: oxygen, nitrogen, ammonia +\tab;Wind: 1.2 mps +\tab;Titanium ore: some +\tab;Uranium ore: some + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: not immediate +\tab;Detected: reusable derelicts +\n; diff --git a/help/F/micent2.txt b/help/F/micent2.txt new file mode 100644 index 00000000..46c3e658 --- /dev/null +++ b/help/F/micent2.txt @@ -0,0 +1,15 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Centaury. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 25.4C +\tab;Atmosphere: oxygen, nitrogen, ammonia +\tab;Wind: 1.2 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none +\n; diff --git a/help/F/micent3.txt b/help/F/micent3.txt new file mode 100644 index 00000000..cff00288 --- /dev/null +++ b/help/F/micent3.txt @@ -0,0 +1,22 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Centaury. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 25.4C +\tab;Atmosphere: oxygen, nitrogen, ammonia +\tab;Wind: 0.7 mps +\tab;Titanium ore: some +\tab;Uranium ore: some + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: not immediate +\tab;Detected: spiders +\tab; - Danger: not immediate +\tab;Detected: reusable derelicts +\n; diff --git a/help/F/micent4.txt b/help/F/micent4.txt new file mode 100644 index 00000000..d76f7316 --- /dev/null +++ b/help/F/micent4.txt @@ -0,0 +1,20 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Centaury. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 21.3C +\tab;Atmosphere: oxygen, nitrogen, ammonia +\tab;Wind: 1.9 mps +\tab;Titanium ore: some +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: not immediate +\tab;Detected: derelicts of no particular use +\n; diff --git a/help/F/micent5.txt b/help/F/micent5.txt new file mode 100644 index 00000000..c979dbb9 --- /dev/null +++ b/help/F/micent5.txt @@ -0,0 +1,19 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Centaury. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 21.3C +\tab;Atmosphere: oxygen, nitrogen, ammonia +\tab;Wind: 1.9 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: immediate +\n; diff --git a/help/F/micrys1.txt b/help/F/micrys1.txt new file mode 100644 index 00000000..9458bf1d --- /dev/null +++ b/help/F/micrys1.txt @@ -0,0 +1,19 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Crystalium. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 5.4C +\tab;Atmosphere: nitrogen +\tab;Wind: 0.0 mps +\tab;Titanium ore: some +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: data not available +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: unidentified organisms +\tab; - Danger: ? +\n; diff --git a/help/F/micrys2.txt b/help/F/micrys2.txt new file mode 100644 index 00000000..2a4c1d8a --- /dev/null +++ b/help/F/micrys2.txt @@ -0,0 +1,19 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Crystalium. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 3.2C +\tab;Atmosphere: nitrogen +\tab;Wind: 0.0 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: isolated (close to the spaceship) +\tab;Titanium ore: scattered +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: worms +\tab; - Danger: no +\n; diff --git a/help/F/micrys3.txt b/help/F/micrys3.txt new file mode 100644 index 00000000..6e76e8a8 --- /dev/null +++ b/help/F/micrys3.txt @@ -0,0 +1,21 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Crystalium. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 4.3C +\tab;Atmosphere: nitrogen +\tab;Wind: 0.0 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: not immediate +\tab;Detected: unknown organisms +\tab; - Danger: ? +\n; diff --git a/help/F/micrys4.txt b/help/F/micrys4.txt new file mode 100644 index 00000000..2873cb70 --- /dev/null +++ b/help/F/micrys4.txt @@ -0,0 +1,19 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Crystalium. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 1.2C +\tab;Atmosphere: nitrogen +\tab;Wind: 0.0 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: electromagnetic smog +\tab;Detected: reusable derelicts +\n; diff --git a/help/F/milune1.txt b/help/F/milune1.txt new file mode 100644 index 00000000..775c0506 --- /dev/null +++ b/help/F/milune1.txt @@ -0,0 +1,18 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of the Moon. +\c; +\s;-> SURFACE\c; +\tab;Temperature: -53.1C +\tab;Atmosphere: none +\tab;Wind: 0.0 mps +\tab;Titanium ore: some +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Terrain in places too uneven for wheeled bots. +\n; diff --git a/help/F/milune2.txt b/help/F/milune2.txt new file mode 100644 index 00000000..dd7ea770 --- /dev/null +++ b/help/F/milune2.txt @@ -0,0 +1,15 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of the Moon. +\c; +\s;-> SURFACE\c; +\tab;Temperature: -51.0C +\tab;Atmosphere: none +\tab;Wind: 0.0 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none +\n; diff --git a/help/F/milune3.txt b/help/F/milune3.txt new file mode 100644 index 00000000..d50b3109 --- /dev/null +++ b/help/F/milune3.txt @@ -0,0 +1,15 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of the Moon. +\c; +\s;-> SURFACE\c; +\tab;Temperature: -58.9C +\tab;Atmosphere: none +\tab;Wind: 0.0 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none +\n; diff --git a/help/F/milune4.txt b/help/F/milune4.txt new file mode 100644 index 00000000..a57ce4b3 --- /dev/null +++ b/help/F/milune4.txt @@ -0,0 +1,15 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of the Moon. +\c; +\s;-> SURFACE\c; +\tab;Temperature: -38.2C +\tab;Atmosphere: none +\tab;Wind: 0.0 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: everywhere +\tab;Titanium ore: none +\tab;Uranium ore: none +\n; diff --git a/help/F/miorph1.txt b/help/F/miorph1.txt new file mode 100644 index 00000000..6414f2d0 --- /dev/null +++ b/help/F/miorph1.txt @@ -0,0 +1,20 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Orpheon. +\c; +\s;-> SURFACE\c; +\tab;Temperature: -72.8C +\tab;Atmosphere: none +\tab;Wind: 0.0 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: some (blue flag) +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: not immediate +\tab;Detected: fierce electromagnetic storms +\n; diff --git a/help/F/miorph2.txt b/help/F/miorph2.txt new file mode 100644 index 00000000..5db18a70 --- /dev/null +++ b/help/F/miorph2.txt @@ -0,0 +1,20 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Orpheon. +\c; +\s;-> SURFACE\c; +\tab;Temperature: -64.7C +\tab;Atmosphere: none +\tab;Wind: 0.0 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: not immediate +\tab;Detected: fierce electromagnetic storms +\n; diff --git a/help/F/misaari1.txt b/help/F/misaari1.txt new file mode 100644 index 00000000..957227a7 --- /dev/null +++ b/help/F/misaari1.txt @@ -0,0 +1,20 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Saari. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 41.3C +\tab;Atmosphere: CO2, oxygen, nitrogen +\tab;Wind: 2.3 mps +\tab;Titanium ore: none +\tab;Uranium ore: some (mountain summit) + +\s;-> SUBSOIL\c; +\tab;Energy source: everywhere +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: reusable derelicts +\tab;Detected: giant ants +\tab; - Danger: not immediate +\n; diff --git a/help/F/misaari2.txt b/help/F/misaari2.txt new file mode 100644 index 00000000..6eddf002 --- /dev/null +++ b/help/F/misaari2.txt @@ -0,0 +1,19 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Saari. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 38.4C +\tab;Atmosphere: CO2, oxygen, nitrogen +\tab;Wind: 1.4 mps +\tab;Titanium ore: some +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: everywhere +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants approaching +\tab; - Danger: yes, immediate +\n; diff --git a/help/F/misaari3.txt b/help/F/misaari3.txt new file mode 100644 index 00000000..8822ca92 --- /dev/null +++ b/help/F/misaari3.txt @@ -0,0 +1,20 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Saari. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 44.3C +\tab;Atmosphere: CO2, oxygen, nitrogen +\tab;Wind: 2.3 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: reusable derelicts +\tab;Detected: giant ants +\tab; - Danger: ? +\n; diff --git a/help/F/miterra1.txt b/help/F/miterra1.txt new file mode 100644 index 00000000..683cffe2 --- /dev/null +++ b/help/F/miterra1.txt @@ -0,0 +1,22 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Terranova. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 24.8C +\tab;Atmosphere: oxygen +\tab;Wind: 0.7 mps +\tab;Titanium ore: underwater +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: at some places +\tab;Titanium ore: none +\tab;Uranium ore: some + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: immediate +\tab;Detected: giant wasps +\tab; - Danger: not immediate +\tab;Detected: reusable derelicts +\n; diff --git a/help/F/miterra2.txt b/help/F/miterra2.txt new file mode 100644 index 00000000..ae7e7705 --- /dev/null +++ b/help/F/miterra2.txt @@ -0,0 +1,19 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Terranova. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 24.3C +\tab;Atmosphere: oxygen +\tab;Wind: 0.8 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: immediate +\n; diff --git a/help/F/miterra3.txt b/help/F/miterra3.txt new file mode 100644 index 00000000..73697df5 --- /dev/null +++ b/help/F/miterra3.txt @@ -0,0 +1,21 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Terranova. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 26.1C +\tab;Atmosphere: oxygen +\tab;Wind: 0.4 mps +\tab;Titanium ore: some +\tab;Uranium ore: some + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: immediate +\tab;Detected: giant wasps +\tab; - Danger: immediate +\n; diff --git a/help/F/miterra4.txt b/help/F/miterra4.txt new file mode 100644 index 00000000..779d59c0 --- /dev/null +++ b/help/F/miterra4.txt @@ -0,0 +1,21 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Terranova. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 23.7C +\tab;Atmosphere: oxygen +\tab;Wind: 0.5 mps +\tab;Titanium ore: some +\tab;Uranium ore: some + +\s;-> SUBSOIL\c; +\tab;Energy source: in some places (spaceship) +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: immediate +\tab;Detected: giant egglayer +\tab; - Danger: ? +\n; diff --git a/help/F/mitropi1.txt b/help/F/mitropi1.txt new file mode 100644 index 00000000..abb2258b --- /dev/null +++ b/help/F/mitropi1.txt @@ -0,0 +1,21 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Tropica. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 32.4C +\tab;Atmosphere: helium, oxygen +\tab;Wind: 1.2 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: explosive +\tab; - Type: unknown +\tab;Detected: unidentified organisms +\tab; - Danger: ? +\n; diff --git a/help/F/mitropi3.txt b/help/F/mitropi3.txt new file mode 100644 index 00000000..eed21844 --- /dev/null +++ b/help/F/mitropi3.txt @@ -0,0 +1,20 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Tropica. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 29.6C +\tab;Atmosphere: helium, oxygen +\tab;Wind: 1.5 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: isolated (blue flag) +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: not immediate +\tab;Detected: reusable derelicts +\n; diff --git a/help/F/mitropi4.txt b/help/F/mitropi4.txt new file mode 100644 index 00000000..8717928b --- /dev/null +++ b/help/F/mitropi4.txt @@ -0,0 +1,15 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Tropica. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 32.2C +\tab;Atmosphere: helium, oxygen +\tab;Wind: 0.7 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none +\n; diff --git a/help/F/mitropi5.txt b/help/F/mitropi5.txt new file mode 100644 index 00000000..0f9cce87 --- /dev/null +++ b/help/F/mitropi5.txt @@ -0,0 +1,21 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Tropica. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 29.4C +\tab;Atmosphere: helium, oxygen +\tab;Wind: 0.3 mps +\tab;Titanium ore: some +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: titanium ore +\tab; - Requires: converter +\tab;Detected: scattered derelicts +\tab;Detected: black box (underwater) +\n; diff --git a/help/F/mivolca1.txt b/help/F/mivolca1.txt new file mode 100644 index 00000000..8c071e9b --- /dev/null +++ b/help/F/mivolca1.txt @@ -0,0 +1,20 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Volcano. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 84.6C +\tab;Atmosphere: CO2, SO2, HCN, HS, CH4, NH3 +\tab;Wind: 2.2 mps +\tab;Titanium ore: everywhere +\tab;Uranium ore: some + +\s;-> SUBSOIL\c; +\tab;Energy source: everywhere +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: reusable derelicts +\tab;Detected: unknown organisms +\tab; - Danger: ? +\n; diff --git a/help/F/mivolca2.txt b/help/F/mivolca2.txt new file mode 100644 index 00000000..eae66bbb --- /dev/null +++ b/help/F/mivolca2.txt @@ -0,0 +1,21 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Volcano. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 53.1C +\tab;Atmosphere: CO2, SO2, HCN, HS, CH4, NH3 +\tab;Wind: 0.3 mps +\tab;Titanium ore: some +\tab;Uranium ore: little + +\s;-> SUBSOIL\c; +\tab;Energy source: everywhere +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: yes, not immediate +\tab;Detected: unknown flying organisms +\tab; - Danger: yes, immediate +\n; diff --git a/help/F/mivolca3.txt b/help/F/mivolca3.txt new file mode 100644 index 00000000..0d314f33 --- /dev/null +++ b/help/F/mivolca3.txt @@ -0,0 +1,19 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Volcano. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 83.5C +\tab;Atmosphere: CO2, SO2, HCN, HS, CH4, NH3 +\tab;Wind: 3.4 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: everywhere +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: not immediate +\n; diff --git a/help/F/mivolca4.txt b/help/F/mivolca4.txt new file mode 100644 index 00000000..46046659 --- /dev/null +++ b/help/F/mivolca4.txt @@ -0,0 +1,21 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Volcano. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 96.7C +\tab;Atmosphere: CO2, SO2, HCN, HS, CH4, NH3 +\tab;Wind: 2.8 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: bot +\tab; - Type: unknown +\tab;Detected: giant ants +\tab; - Danger: not immediate +\n; diff --git a/help/F/mivolca5.txt b/help/F/mivolca5.txt new file mode 100644 index 00000000..1a8aceeb --- /dev/null +++ b/help/F/mivolca5.txt @@ -0,0 +1,21 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Volcano. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 96.6C +\tab;Atmosphere: CO2, SO2, HCN, HS, CH4, NH3 +\tab;Wind: 2.7 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: immediate +\tab;Detected: giant spiders +\tab; - Danger: not immediate +\n; diff --git a/help/F/mivolca6.txt b/help/F/mivolca6.txt new file mode 100644 index 00000000..19e3556b --- /dev/null +++ b/help/F/mivolca6.txt @@ -0,0 +1,19 @@ +\b;Satellite Report +Currently in a geo-stationary orbit of Volcano. +\c; +\s;-> SURFACE\c; +\tab;Temperature: 96.6C +\tab;Atmosphere: CO2, SO2, HCN, HS, CH4, NH3 +\tab;Wind: 2.7 mps +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> SUBSOIL\c; +\tab;Energy source: none +\tab;Titanium ore: none +\tab;Uranium ore: none + +\s;-> ADDITIONAL INFORMATION\c; +\tab;Detected: giant ants +\tab; - Danger: immediate +\n; diff --git a/help/F/mlcent1.txt b/help/F/mlcent1.txt new file mode 100644 index 00000000..01b6c330 --- /dev/null +++ b/help/F/mlcent1.txt @@ -0,0 +1,15 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/F/mlcent2.txt b/help/F/mlcent2.txt new file mode 100644 index 00000000..01b6c330 --- /dev/null +++ b/help/F/mlcent2.txt @@ -0,0 +1,15 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/F/mlcent3.txt b/help/F/mlcent3.txt new file mode 100644 index 00000000..01b6c330 --- /dev/null +++ b/help/F/mlcent3.txt @@ -0,0 +1,15 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/F/mlcent4.txt b/help/F/mlcent4.txt new file mode 100644 index 00000000..01b6c330 --- /dev/null +++ b/help/F/mlcent4.txt @@ -0,0 +1,15 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/F/mlcent5.txt b/help/F/mlcent5.txt new file mode 100644 index 00000000..01b6c330 --- /dev/null +++ b/help/F/mlcent5.txt @@ -0,0 +1,15 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/F/mlcrys1.txt b/help/F/mlcrys1.txt new file mode 100644 index 00000000..99fa7fde --- /dev/null +++ b/help/F/mlcrys1.txt @@ -0,0 +1,29 @@ +\b;Programs dispatched by Houston +Below is one of the programs that has been developed by our engineers. +It instructs a \l;grabber\u object\botgr; to retrieve the nearest chunk of \l;titanium ore\u object\titanore; and place it on the \l;converter\u object\convert;. + +In order to execute this program, select the program \c;CollectTitanium1\n; in the list of the programs available on the bot (on the lower left-hand corner of your screen), and click on the arrow symbol \button 21;. At any moment you can stop the program and take over at the controls with the stop button \button 8;. +\c; +\s;extern void object::CollectTitanium1() +\s;{ +\s; // 1) Variable definition. +\s; \l;object\u cbot\type; item; // info. about objects +\s; +\s; // 2) Go to the titanium ore and grab it. +\s; item = \l;radar\u cbot\radar;(\l;TitaniumOre\u cbot\category;);// look for titanium ore +\s; \l;goto\u cbot\goto;(item.position); // go to the position +\s; \l;grab\u cbot\grab;(); // grab the titanium +\s; +\s; // 3) Go to the converter and drop it. +\s; item = \l;radar\u cbot\radar;(\l;Converter\u cbot\category;); // look for converter +\s; \l;goto\u cbot\goto;(item.position); // go to the position +\s; \l;drop\u cbot\drop;(); // drop the titanium +\s; \l;move\u cbot\move;(-2.5); // step back 2.5 m +\s;} +\n; +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/F/mlcrys2.txt b/help/F/mlcrys2.txt new file mode 100644 index 00000000..5e1a7ec3 --- /dev/null +++ b/help/F/mlcrys2.txt @@ -0,0 +1,38 @@ +\b;Programs dispatched by Houston +Below is one of the programs that has been developed by our engineers. +An upgrade on the previous program: the \l;grabber\u object\botgr;, on its way back from the converter, makes a stop, if necessary, at the \l;power station\u object\station; to recharge its power cell. + +This program also works on \l;winged grabbers\u object\botgj;, if the \l;derrick\u object\derrick; is on another island than the \l;converter\u object\convert;. +\c; +\s;extern void object::CollectTitanium2() +\s;{ +\s; // 1) Variable definition. +\s; \l;object\u cbot\type; item; // info. about objects +\s; +\s; // 2) Go to the titanium ore and grab it. +\s; item = \l;radar\u cbot\radar;(\l;TitaniumOre\u cbot\category;);// look for titanium ore +\s; \l;goto\u cbot\goto;(item.position); // go to the position +\s; \l;grab\u cbot\grab;(); // grab the titanium +\s; +\s; // 3) Go to the converter and drop it. +\s; item = \l;radar\u cbot\radar;(\l;Converter\u cbot\category;); // look for converter +\s; \l;goto\u cbot\goto;(item.position); // go to the position +\s; \l;drop\u cbot\drop;(); // drop the titanium +\s; \l;move\u cbot\move;(-2.5); // step back 2.5 m +\s; +\s; // 4) If power cell half empty, recharges. +\s; if ( energyCell.energyLevel < 0.5 ) +\s; { // if so: +\s; item = \l;radar\u cbot\radar;(\l;PowerStation\u cbot\category;); // look for station +\s; \l;goto\u cbot\goto;(item.position); // go there +\s; \l;wait\u cbot\wait;(5); // wait +\s; } +\s;} +\n; +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/F/mlcrys3.txt b/help/F/mlcrys3.txt new file mode 100644 index 00000000..1357500d --- /dev/null +++ b/help/F/mlcrys3.txt @@ -0,0 +1,11 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/F/mlcrys4.txt b/help/F/mlcrys4.txt new file mode 100644 index 00000000..1357500d --- /dev/null +++ b/help/F/mlcrys4.txt @@ -0,0 +1,11 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/F/mllune1.txt b/help/F/mllune1.txt new file mode 100644 index 00000000..1850e907 --- /dev/null +++ b/help/F/mllune1.txt @@ -0,0 +1,17 @@ +\b;Programs dispatched by Houston +Following is a program that has been developed by our engineers. It allows you to switch \l;power cells\u object\power;. A charged cell needs to be placed on the ground in front of the bot. + +In order to execute this program, select the program \c;SwitchCell1\n; in the list of the programs available on the bot (on the lower left-hand corner of your screen), and click on the arrow symbol \button 21;. +\c; +\s;extern void object::SwitchCell1() +\s;{ +\s; \l;grab\u cbot\grab;(InFront); // take the new cell in front +\s; \l;drop\u cbot\drop;(Behind); // and drop it behind +\s; +\s; \l;grab\u cbot\grab;(EnergyCell); // take the cell from the bot +\s; \l;drop\u cbot\drop;(InFront); // and drop it in front +\s; +\s; \l;grab\u cbot\grab;(Behind); // take the new cell +\s; \l;drop\u cbot\drop;(EnergyCell); // and drop it on the bot +\s;} +\n; diff --git a/help/F/mllune2.txt b/help/F/mllune2.txt new file mode 100644 index 00000000..15fe0f0f --- /dev/null +++ b/help/F/mllune2.txt @@ -0,0 +1,7 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/F/mllune3.txt b/help/F/mllune3.txt new file mode 100644 index 00000000..5e7e6787 --- /dev/null +++ b/help/F/mllune3.txt @@ -0,0 +1,7 @@ +\b;Program(s) dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/F/mllune4.txt b/help/F/mllune4.txt new file mode 100644 index 00000000..fbc672cd --- /dev/null +++ b/help/F/mllune4.txt @@ -0,0 +1,23 @@ +\b;Programs dispatched by Houston +Below is a program that has been developed by our engineers. It allows you to recharge the \l;power cell\u object\power; of a bot: it goes to the closest \l;power station\u object\station;, waits 5 seconds, and comes back to the initial position. + +Remark: If you click on an element of the program underlined in blue, your SatCom will display a text that explains this element. The texts that follow a double slash \c;//\n; are not part of the program, but are comments that help you to understand the program. +\c; +\s;extern void object::Recharge1() +\s;{ +\s; \l;point\u cbot\type; start; // variable for initial pos. +\s; \l;object\u cbot\type; item; // info. about power station +\s; +\s; start = position; // store initial position +\s; +\s; item = \l;radar\u cbot\radar;(\l;PowerStation\u cbot\category;); // look for station +\s; \l;goto\u cbot\goto;(item.position); // go to the power station +\s; \l;wait\u cbot\wait;(5); // wait 5 seconds +\s; +\s; \l;goto\u cbot\goto;(start); // go back to initial pos. +\s;} +\n; +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/F/mlnull.txt b/help/F/mlnull.txt new file mode 100644 index 00000000..9fe96daa --- /dev/null +++ b/help/F/mlnull.txt @@ -0,0 +1,3 @@ +\b;Program(s) dispatched by Houston +No program was transmitted. +If you feel like developing one that can be of use to the completion of this mission, be our guest but you are on your own. diff --git a/help/F/mlorph1.txt b/help/F/mlorph1.txt new file mode 100644 index 00000000..01b6c330 --- /dev/null +++ b/help/F/mlorph1.txt @@ -0,0 +1,15 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/F/mlorph2.txt b/help/F/mlorph2.txt new file mode 100644 index 00000000..f856d805 --- /dev/null +++ b/help/F/mlorph2.txt @@ -0,0 +1,14 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/F/mlsaari1.txt b/help/F/mlsaari1.txt new file mode 100644 index 00000000..1357500d --- /dev/null +++ b/help/F/mlsaari1.txt @@ -0,0 +1,11 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/F/mlsaari2.txt b/help/F/mlsaari2.txt new file mode 100644 index 00000000..805dca34 --- /dev/null +++ b/help/F/mlsaari2.txt @@ -0,0 +1,31 @@ +\b;Programs dispatched by Houston +Execute the program \c;KillAnt1\n; immediately on your \l;wheeled shooter\u object\botfr;, it will protect your west flank. Meantime you can elaborate your defense strategy. +\c; +\s;extern void object::KillAnt1() +\s;{ +\s; \l;object\u cbot\type; item; // info. about object +\s; +\s; \l;goto\u cbot\goto;(-30, 0); // go west +\s; \l;aim\u cbot\aim;(0); // aim straight +\s; +\s; \l;while\u cbot\while; ( true ) // repeat forever: +\s; { +\s; item = \l;radar\u cbot\radar;(\l;AlienAnt\u cbot\category;, 0, 360, 0, 40); +\s; \l;if\u cbot\if; ( item != null ) // ant detected ? +\s; { +\s; \l;turn\u cbot\turn;(\l;direction\u cbot\direct;(item.position)); +\s; \l;fire\u cbot\fire;(0.5); // shoot 0.5 s +\s; } +\s; \l;wait\u cbot\wait;(1); // wait 1 second +\s; } +\s;} +\n; +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/F/mlsaari3.txt b/help/F/mlsaari3.txt new file mode 100644 index 00000000..13f3cec8 --- /dev/null +++ b/help/F/mlsaari3.txt @@ -0,0 +1,12 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/F/mlterra1.txt b/help/F/mlterra1.txt new file mode 100644 index 00000000..5ac691d0 --- /dev/null +++ b/help/F/mlterra1.txt @@ -0,0 +1,30 @@ +\b;Programs dispatched by Houston +According to the data transmitted by the satellite, our engineers have developed two programs. The first one guides the \l;shielder bot\u object\botshld; through the narrow valley north close to the place where the key has been located. You can follow it without fearing any attack: +\c; +\s;extern void object::Outward() +\s;{ +\s; \l;shield\u cbot\shield;(1,15); // activate the shield +\s; \l;goto\u cbot\goto;(6,160); // go close to the key +\s; \l;shield\u cbot\shield;(0,15); // deactivate the shield +\s;} +\n; +The second program guides the \l;shielder bot\u object\botshld; back to the \l;spaceship\u object\base;: +\c; +\s;extern void object::Return() +\s;{ +\s; \l;shield\u cbot\shield;(1,15); // activate the shield +\s; \l;goto\u cbot\goto;(8,60); // go to the spaceship +\s; \l;shield\u cbot\shield;(0,15); // deactivate the shield +\s;} +\n; +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/F/mlterra2.txt b/help/F/mlterra2.txt new file mode 100644 index 00000000..f856d805 --- /dev/null +++ b/help/F/mlterra2.txt @@ -0,0 +1,14 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/F/mlterra3.txt b/help/F/mlterra3.txt new file mode 100644 index 00000000..f856d805 --- /dev/null +++ b/help/F/mlterra3.txt @@ -0,0 +1,14 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/F/mlterra4.txt b/help/F/mlterra4.txt new file mode 100644 index 00000000..73e1d1ab --- /dev/null +++ b/help/F/mlterra4.txt @@ -0,0 +1,50 @@ +\b;Programs dispatched by Houston +Below is a program that has been developed by our engineers. + +It instructs the \l;shielder\u object\botshld; to follow and protect the \l;phazer\u object\botphaz;. +\c; +\s;extern void object::FollowPhazer() +\s;{ +\s; \l;object\u cbot\type; item; // info. about phazer +\s; \l;point\u cbot\type; dest; // position where to go +\s; \l;float\u cbot\type; dist; // distance to phazer +\s; +\s; item = \l;radar\u cbot\radar;(\l;PhazerShooter\u cbot\category;); +\s; \l;if\u cbot\if; ( item == null ) +\s; { +\s; \l;message\u cbot\message;("No phazer found"); +\s; \l;return\u cbot\return;; // stop the program +\s; } +\s; \l;shield\u cbot\shield;(1, 25); // activate the shield +\s; +\s; \l;while\u cbot\while; ( true ) // repeat forever +\s; { +\s; item = \l;radar\u cbot\radar;(PhazerShooter);// look for phazer +\s; \l;if\u cbot\if; ( item == null ) break; +\s; +\s; dist = \l;distance\u cbot\dist;(item.position, position); +\s; \l;if\u cbot\if; ( dist < 5 ) +\s; { // if closer than 5 m: +\s; \l;wait\u cbot\wait;(1); // wait +\s; } +\s; \l;else\u cbot\if; // otherwise: +\s; { // Calculate a position 5 m before the phazer +\s; dest.x = (item.position.x-position.x)*((dist-5)/dist)+position.x; +\s; dest.y = (item.position.y-position.y)*((dist-5)/dist)+position.y; +\s; dest.z = (item.position.z-position.z)*((dist-5)/dist)+position.z; +\s; \l;goto\u cbot\goto;(dest, 0, 1, 1); // and go there +\s; } +\s; } +\s;} +\n; +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/F/mltropi1.txt b/help/F/mltropi1.txt new file mode 100644 index 00000000..6d775e52 --- /dev/null +++ b/help/F/mltropi1.txt @@ -0,0 +1,8 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/F/mltropi3.txt b/help/F/mltropi3.txt new file mode 100644 index 00000000..40d4b187 --- /dev/null +++ b/help/F/mltropi3.txt @@ -0,0 +1,27 @@ +\b;Programs dispatched by Houston +We have improved the recharge program. When it arrives at the \l;power station\u object\station;, the bot does not wait exactly 5 seconds, but only until the \l;power cell\u object\power; is fully charged. After the bot is back at the initial position, it displays a message on the screen. +\c; +\s;extern void object::Recharge2() +\s;{ +\s; \l;point\u cbot\type; start; // variable for initial pos. +\s; \l;object\u cbot\type; item; // info. about power station +\s; +\s; start = position; // store initial position +\s; +\s; item = \l;radar\u cbot\radar;(\l;PowerStation\u cbot\category;); // look for station +\s; \l;goto\u cbot\goto;(item.position); // go to the power station +\s; +\s; \l;while\u cbot\while; ( \l;energyCell.energyLevel\u cbot\object; < 1 ) +\s; { +\s; \l;wait\u cbot\wait;(1); // wait until recharged +\s; } +\s; +\s; \l;goto\u cbot\goto;(start); // go back to initial pos. +\s; \l;message\u cbot\message;("Recharge completed"); +\s;} +\n; +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;SwitchCell1\u mllune1;\n; +o \c;\l;Recharge1\u mllune4;\n; diff --git a/help/F/mltropi4.txt b/help/F/mltropi4.txt new file mode 100644 index 00000000..3b138af2 --- /dev/null +++ b/help/F/mltropi4.txt @@ -0,0 +1,9 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/F/mltropi5.txt b/help/F/mltropi5.txt new file mode 100644 index 00000000..3b138af2 --- /dev/null +++ b/help/F/mltropi5.txt @@ -0,0 +1,9 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/F/mlvolca1.txt b/help/F/mlvolca1.txt new file mode 100644 index 00000000..f1e12cea --- /dev/null +++ b/help/F/mlvolca1.txt @@ -0,0 +1,61 @@ +\b;Programs dispatched by Houston +As you will need lots of titanium for this mission, we have made the program \c;CollectTitanium\n; still more efficient. It gathers a whole series of titanium cubes on a free surface, so you can let it work on its own. It also recharges itself at the \l;power station\u object\station; if necessary. +\c; +\s;extern void object::CollectTitanium3() +\s;{ +\s; // 1) Variable definition. +\s; \l;object\u cbot\type; item; // info. about objects +\s; +\s; \l;while\u cbot\while; (true) // repeat forever +\s; { +\s; +\s; // 2) Go to the titanium ore and grab it. +\s; item = \l;radar\u cbot\radar;(\l;TitaniumOre\u cbot\category;);// look for titanium +\s; \l;goto\u cbot\goto;(item.position); // go to the position +\s; \l;grab\u cbot\grab;(); // grab the titanium +\s; +\s; // 3) Go to the converter and drop it. +\s; item = \l;radar\u cbot\radar;(\l;Converter\u cbot\category;); // look for converter +\s; \l;goto\u cbot\goto;(item.position); // go to the position +\s; \l;drop\u cbot\drop;(); // drop the titanium +\s; \l;move\u cbot\move;(-2.5); // step back 2.5 m +\s; +\s; // 4) Wait until titanium converted and grab it +\s; \l;do\u cbot\do; +\s; { +\s; \l;wait\u cbot\wait;(1); // wait for cube +\s; item = \l;radar\u cbot\radar;(\l;Titanium\u cbot\category;, 0, 45, 0, 5); +\s; } +\s; \l;while\u cbot\while; ( item == null ); +\s; \l;goto\u cbot\goto;(item.position); +\s; \l;grab\u cbot\grab;(); // grab it +\s; +\s; // 5) Drop on a free space +\s; \l;goto\u cbot\goto;(\l;space\u cbot\space;(position)); // go to free space +\s; \l;drop\u cbot\drop;(); // drop titanium +\s; +\s; // 6) If power cell half empty, recharges. +\s; \l;if\u cbot\if; ( energyCell.energyLevel < 0.5 ) +\s; { // if so: +\s; item = \l;radar\u cbot\radar;(\l;PowerStation\u cbot\category;); +\s; \l;if\u cbot\if; ( item != null ) // station found ? +\s; { +\s; \l;goto\u cbot\goto;(item.position); // go there +\s; \l;while\u cbot\while; ( energyCell.energyLevel < 1 ) +\s; { // until recharged: +\s; \l;wait\u cbot\wait;(1); // wait +\s; } +\s; } +\s; } +\s; } +\s;} +\n; +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/F/mlvolca2.txt b/help/F/mlvolca2.txt new file mode 100644 index 00000000..ad0537da --- /dev/null +++ b/help/F/mlvolca2.txt @@ -0,0 +1,53 @@ +\b;Programs dispatched by Houston +We have developed a program that takes care of recharging the power cell of a \l;defense tower\u object\tower;: + +1) Go to a \l;defense tower\u object\tower;. +2) Wait until the \l;power cell\u object\power; is 80% empty. +3) Grab the \l;power cell\u object\power; and recharge it on a \l;power station\u object\station;. +4) Put it back on the \l;defense tower\u object\tower;. + +Build the \l;power station\u object\station; as close as possible to the tower in order to reduce the time when the tower has got no power cell. A good trick is to place a power cell on the ground in front of the tower. The wasp will attack the power cell, and if the first shoot misses or a wasp arrives when the defense tower has got no energy, only the power cell is destroyed and not the defense tower. +\c; +\s;extern void object::ServiceTower1() +\s;{ +\s; \l;object\u cbot\object; tower; // info. about tower +\s; \l;object\u cbot\object; station; // info. about station +\s; +\s; // 1) go to the defense tower +\s; tower = \l;radar\u cbot\radar;(DefenseTower); // look for tower +\s; \l;goto\u cbot\goto;(tower.position); // go there +\s; +\s; \l;while\u cbot\while; ( true ) // repeat forever +\s; { +\s; // 2) wait until power cell is empty +\s; \l;while\u cbot\while; ( tower.energyCell.energyLevel > 0.2 ) +\s; { +\s; \l;wait\u cbot\wait;(2); +\s; } +\s; \l;grab\u cbot\grab;(); // grab the power cell +\s; +\s; // 3) go to the power station to recharge +\s; station = \l;radar\u cbot\radar;(PowerStation); +\s; \l;goto\u cbot\goto;(station.position); // go there +\s; \l;while\u cbot\while; ( load.energyLevel < 1 ) +\s; { +\s; \l;wait\u cbot\wait;(1); // wait until recharged +\s; } +\s; +\s; // 4) go back to defense tower +\s; \l;goto\u cbot\goto;(tower.position); // go to tower +\s; \l;drop\u cbot\drop;(); // drop the power cell +\s; } +\s;} +\n; +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/F/mlvolca3.txt b/help/F/mlvolca3.txt new file mode 100644 index 00000000..01b6c330 --- /dev/null +++ b/help/F/mlvolca3.txt @@ -0,0 +1,15 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/F/mlvolca4.txt b/help/F/mlvolca4.txt new file mode 100644 index 00000000..01b6c330 --- /dev/null +++ b/help/F/mlvolca4.txt @@ -0,0 +1,15 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/F/mlvolca5.txt b/help/F/mlvolca5.txt new file mode 100644 index 00000000..01b6c330 --- /dev/null +++ b/help/F/mlvolca5.txt @@ -0,0 +1,15 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/F/mlvolca6.txt b/help/F/mlvolca6.txt new file mode 100644 index 00000000..01b6c330 --- /dev/null +++ b/help/F/mlvolca6.txt @@ -0,0 +1,15 @@ +\b;Programs dispatched by Houston +We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful. + +\b;Archives +Index of the programs dispatched in former missions: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/F/mscent1.txt b/help/F/mscent1.txt new file mode 100644 index 00000000..befd97f5 --- /dev/null +++ b/help/F/mscent1.txt @@ -0,0 +1,20 @@ +\b;Walkthrough +You'll find some useful items in a small valley northeast. +o A \l;recycler\u object\botrecy; that will allow you to make your first \l;titanium cube\u object\titan;. +o A \l;legged grabber\u object\botgs; that is very good at climbing steep slopes. +o A nearly charged \l;nuclear power cell\u object\atomic;. + +1) Power the \l;legged grabber\u object\botgs; with the \l;nuclear power cell\u object\atomic;, and use it to carry a \l;titanium cube\u object\titan; to the \l;spaceship\u object\base;. Choose the direct way over the mountains. + +2) Use the titanium to build a \l;converter\u object\convert;. Execute the program \c;CollectTitanium3\n; on the \l;legged grabber\u object\botgs; and you will have plenty of titanium. + +3) Stop the program, and use the grabber to collect some \l;uranium ore\u object\uranore; in a second small valley to the east. Again, do not take the way of the valley which is crawling with ants, but take the direct way over the mountains. + +4) Build a \l;winged shooter\u object\botfj; and power it with a \l;nuclear power cell\u object\atomic;. If you take the pass south-east, you will arrive immediately at the ant nest. Kill all the ants, and bring back a ball of \l;organic matter\u object\bullet; to the \l;spaceship\u object\base;. + +5) Build an \l;auto-lab\u object\labo;, drop the \l;organic matter\u object\bullet; on the platform and click the \button 110; button in order to develop the blueprints for the orgaShooter cannon. + +6) Build a \l;legged orga shooter\u object\botos;, bring it aboard and take off. + +\t;See also +\l;Controls\u command; diff --git a/help/F/mscent2.txt b/help/F/mscent2.txt new file mode 100644 index 00000000..417c8f0b --- /dev/null +++ b/help/F/mscent2.txt @@ -0,0 +1,5 @@ +\b;Walkthrough +Drive the \l;legged orga shooter\u object\botos; to each of the pads in front of the targets, and hit all targets that you see with only one burst, moving the mouse during the burst. With 4 bursts, you must be able to hit all the targets. + +\t;See also +\l;Controls\u command; diff --git a/help/F/mscent3.txt b/help/F/mscent3.txt new file mode 100644 index 00000000..d14266fa --- /dev/null +++ b/help/F/mscent3.txt @@ -0,0 +1,11 @@ +\b;Walkthrough +In order to kill all ants and spiders in this large and mountainous region, you will need a \l;winged orga shooter\u object\botfj; powered with \l;nuclear power cells\u object\atomic;. In a small valley to the southeast you will find everything you need: \l;titanium cubes\u object\titanium;, \l;power cells\u object\power; and even a \l;winged grabber\u object\botgj; in working condition. + +1) Build a \l;radar\u object\radar; and a \l;winged shooter\u object\botfj; and power it. Kill the ant that is watching over the \l;uranium ore\u object\uranore; further north. + +2) Use the abandoned \l;nuclear plant\u object\nuclear; on the hill above and the \l;winged grabber\u object\botgj; to produce several \l;nuclear power cells\u object\atomic;, and use one to power the \l;winged shooter\u object\botfj;. + +3) Wipe out all insects from the region. There is one isolated ant in the northwest hidden in a hole: an approach from the west thorough the deep valley will make it easier to hit. + +\t;See also +\l;Controls\u command; diff --git a/help/F/mscent4.txt b/help/F/mscent4.txt new file mode 100644 index 00000000..ceb46949 --- /dev/null +++ b/help/F/mscent4.txt @@ -0,0 +1,12 @@ +\b;Walkthrough +1) Search the area for \l;titanium\u object\titan;. +2) Build a \l;converter\u object\convert;. +3) Build a \l;research center\u object\research;. +4) Run the \button 66;. +5) Manufacture a \l;thumper\u object\bottump;. +6) Position the thumper close to the derelict spaceship and "thump" the ground. +7) Quickly retrieve the \l;black box\u object\bbox; and bring it back aboard your \l;spaceship\u object\base;. +8) Bring the thumper along and take off. + +\t;See also +\l;Controls\u command; diff --git a/help/F/mscent5.txt b/help/F/mscent5.txt new file mode 100644 index 00000000..a631c9d5 --- /dev/null +++ b/help/F/mscent5.txt @@ -0,0 +1,8 @@ +\b;Walkthrough +1) Thump the deck of the \l;spaceship\u object\base;. You don't need to move the \l;thumper\u object\bottump; anywhere. +2) Locate the \l;orga shooter\u object\botoj; approximately 70 meters to the east. +3) Terminate the \l;ants\u object\ant; while they are still on their backs. +4) Take off. + +\t;See also +\l;Controls\u command; diff --git a/help/F/mscrys1.txt b/help/F/mscrys1.txt new file mode 100644 index 00000000..e7e5c03e --- /dev/null +++ b/help/F/mscrys1.txt @@ -0,0 +1,12 @@ +\b;Walkthrough +1) Build a \l;bot factory\u object\factory;. +2) Produce a \l;winged grabber\u object\botgj;. +3) Carry a \l;titanium cube\u object\titan; to the highest point. +4) Build a \l;radar\u object\radar; on the spot. +5) Build a \l;research center\u object\research; next to the spaceship. +6) Initiate the \button 68;. +7) Build the \l;defense tower\u object\tower; next to the radar. +8) When all the worms are destroyed, you can go back to your ship and take off. + +\t;See also +\l;Controls\u command; diff --git a/help/F/mscrys2.txt b/help/F/mscrys2.txt new file mode 100644 index 00000000..d64057d1 --- /dev/null +++ b/help/F/mscrys2.txt @@ -0,0 +1,17 @@ +\b;Walkthrough +1) Build a \l;bot factory\u object\factory;. +2) Produce a \l;winged sniffer\u object\botsj;. +3) Sniff the ground near the large crystals until you get a \l;red cross\u object\stonspot;. +4) Build a \l;derrick\u object\derrick; near the red cross. +5) Build a \l;converter\u object\convert;. + +The pairing of a derrick and a converter allows for an unlimited supply of \l;titanium\u object\titan;. In order to leave this task to a bot, execute the program \c;CollectTitanium2\n;. + +6) Sniff the area at the foot of the spaceship. A \l;green cross\u object\enerspot; means you can build a \l;power station\u object\station; on the spot. +7) Build a \l;radar\u object\radar;. +8) Produce a \l;winged shooter\u object\botfj;. +9) Eliminate all worms. +10) Go back to your ship and take off. + +\t;See also +\l;Controls\u command; diff --git a/help/F/mscrys3.txt b/help/F/mscrys3.txt new file mode 100644 index 00000000..b015bb5a --- /dev/null +++ b/help/F/mscrys3.txt @@ -0,0 +1,7 @@ +\b;Walkthrough +If you lose the bot, it will drop the black box somewhere southwest of your spaceship on a region surrounded by crystals. + +In case your power runs out before you can bring the black box back, use the second grabber left on the spaceship. + +\t;See also +\l;Controls\u command; diff --git a/help/F/mscrys4.txt b/help/F/mscrys4.txt new file mode 100644 index 00000000..cf8c5f7c --- /dev/null +++ b/help/F/mscrys4.txt @@ -0,0 +1,7 @@ +\b;Walkthrough +Somewhere northeast in the valley itself you should come across a fully functional \l;power station\u object\station;. Northwest you will find several \l;power cells\u object\power;. + +A few shooters in working condition have been abandoned in and around the same area in the valley; use them to shoot all the ants. With the \l;winged grabber\u object\botgj;, you can then retrieve the \l;black box\u object\bbox; that is located behind the derelict spaceship and take off. + +\t;See also +\l;Controls\u command; diff --git a/help/F/mslune1.txt b/help/F/mslune1.txt new file mode 100644 index 00000000..b97ffbec --- /dev/null +++ b/help/F/mslune1.txt @@ -0,0 +1,15 @@ +\b;Walkthrough +In order to build the \l;research center\u object\research;, drop a \l;titanium cube\u object\titan; on a flat surface not too far from the spaceship. \l;You\u object\human; can carry the cube yourself, or use the available \l;grabber\u object\botgr;. + +If you used the bot, move it away from the cube in order not to interfere with the construction. To shift the selection from the bot to yourself (remember that only you can build), use \key;\key human;\norm;. + +Position yourself close to the \l;titanium cube\u object\titan; and build a \l;research center\u object\research; \button 163;. Drop a \l;power cell\u object\power; on the \l;research center\u object\research;, select the building and click the \button 65; symbol in order to perform the . + +Build a \l;bot factory\u object\factory; in the same way, and drop a \l;titanium cube\u object\titan; in the center. Build a \l;winged grabber\u object\botgj; with the \button 139; symbol, and power it with a \l;power cell\u object\power;. + +It may be preferable to scout the area yourself in order to save power. You'll find the chunks of titanium ore at the bottom of a few craters located north of the spaceship. A \l;flag\u object\flag; may help you pin down the spot faster on subsequent trips. + +Collect 4 chunks of \l;titanium ore\u object\titanore; and bring them back aboard your \l;spaceship\u object\base;. Take the \l;winged grabber\u object\botgj; and the \l;wheeled grabber\u object\botgr; along with you and take off \button 28;. + +\t;See also +\l;Controls\u command; diff --git a/help/F/mslune2.txt b/help/F/mslune2.txt new file mode 100644 index 00000000..e46a8501 --- /dev/null +++ b/help/F/mslune2.txt @@ -0,0 +1,7 @@ +\b;Walkthrough +If your bot suddenly explodes, this means that you have hit the steel structures too often. Drive more slowly, so your bot will not be damaged even if you bump into an obstacle. + +If you can not take off after you have completed the training, this means that you did not pass through all the targets. Go round one more time, and pass through the targets where the cross is left in the center. + +\t;See also +\l;Controls\u command; diff --git a/help/F/mslune3.txt b/help/F/mslune3.txt new file mode 100644 index 00000000..e46a8501 --- /dev/null +++ b/help/F/mslune3.txt @@ -0,0 +1,7 @@ +\b;Walkthrough +If your bot suddenly explodes, this means that you have hit the steel structures too often. Drive more slowly, so your bot will not be damaged even if you bump into an obstacle. + +If you can not take off after you have completed the training, this means that you did not pass through all the targets. Go round one more time, and pass through the targets where the cross is left in the center. + +\t;See also +\l;Controls\u command; diff --git a/help/F/mslune4.txt b/help/F/mslune4.txt new file mode 100644 index 00000000..7535c4d7 --- /dev/null +++ b/help/F/mslune4.txt @@ -0,0 +1,19 @@ +\b;Walkthrough +1) Build a converter \button 162; with the only titanium cube available. + +2) Deposit one chunk of titanium ore at a time at the center of the platform and let the converter do the rest. + +3) Build a power station \button 164; with one of the newly converted titanium cubes. + +4) If you don't feel like looking for the black box yourself, build a radar \button 168; and the box will appear on your mini map somewhere north of your present location, at the bottom of a crater, next to a few derelict spacecraft and debris from the previous expedition. + +5) Place the grabbers at the center of the power station platform to recharge them. The cells should still have a little power left in them, just enough to radio-control the bots onto the platform. + +6) Radio-control the winged grabber to the black box and back. + +7) Gather both grabbers and the black box onto the spaceship platform and climb on board yourself. + +8) Take off. + +\t;See also +\l;Controls\u command; diff --git a/help/F/msorph1.txt b/help/F/msorph1.txt new file mode 100644 index 00000000..28c154db --- /dev/null +++ b/help/F/msorph1.txt @@ -0,0 +1,15 @@ +\b;Walkthrough +1) Quickly build a \l;power captor\u object\captor; near the blue flag. +All subsequent buildings should be erected within the \button 41; covered by the power captor. +2) Carry some empty \l;power cells\u object\power; under the power captor. When lightning strikes, they will be recharged. +3) Build a \l;derrick\u object\derrick;. +4) Build a \l;converter\u object\convert;. +5) Execute the program \c;CollectTitanium3\n; in order to produce \l;titanium\u object\titan;. +6) Build a \l;bot factory\u object\factory;. +7) Manufacture a \l;winged orga shooter\u object\botoj;. +8) Build a \l;radar\u object\radar;. +9) Locate and terminate all \l;ants\u object\ant;. +10) Return to your \l;spaceship\u object\base; and take off. + +\t;See also +\l;Controls\u command; diff --git a/help/F/msorph2.txt b/help/F/msorph2.txt new file mode 100644 index 00000000..486d4475 --- /dev/null +++ b/help/F/msorph2.txt @@ -0,0 +1,9 @@ +\b;Walkthrough +You will find a \l;radar\u object\radar;, a \l;power captor\u object\captor;, a \l;power cell\u object\power; and a \l;winged orga shooter\u object\botoj; in the valley south of the spaceship. This will allow you to kill the ants close to the spaceship and to locate the \l;black box\u object\bbox; in the north next to the remains of the first expedition spaceship. + +Build a succession of \l;power captors\u object\captor; along the natural path offered by the northern mountain peaks. 5 or 6 captors should offer sufficient protection against lightning. + +Bring the black box back aboard your \l;spaceship\u object\base; and take off. + +\t;See also +\l;Controls\u command; diff --git a/help/F/mssaari1.txt b/help/F/mssaari1.txt new file mode 100644 index 00000000..6bfb8087 --- /dev/null +++ b/help/F/mssaari1.txt @@ -0,0 +1,22 @@ +\b;Walkthrough +1) You'll find a \l;titanium cube\u object\titan; left in a smashed up bot factory. Use it to build a \l;power station\u object\station;. + +2) The \l;recycler\u object\botrecy; is designed to convert derelicts back into usable titanium cubes. + +3) Build both a \l;repair center\u object\repair; and a \l;radar\u object\radar;. + +4) Recharge one of the \l;power cells\u object\power; available and power a \l;winged shooter\u object\botfj;. + +5) Eliminate all \l;ants\u object\ant;. Note that you should recharge and repair the shooter regularly. Check your levels. + +6) Fully charge the \l;grabber\u object\botgr;'s power cell, then radio-control it to the summit... + a) Access the first level by ramp on west; + b) On first level travel east to find second ramp; + c) On second level travel south to find third ramp; + d) On third level travel west for access to summit; +...then, with the chunk, straight back to the spaceship by the most direct route so as to save the remaining power. + +7) Climb aboard the ship yourself and take off. + +\t;See also +\l;Controls\u command; diff --git a/help/F/mssaari2.txt b/help/F/mssaari2.txt new file mode 100644 index 00000000..22371a78 --- /dev/null +++ b/help/F/mssaari2.txt @@ -0,0 +1,9 @@ +\b;Walkthrough +Execute immediately the program \c;KillAnt1\n; on the \l;wheeled shooter\u object\botfr;; it will take care of the first wave of attack coming from west. + +Then build two \l;defense towers\u object\tower; one in the north of the \l;spaceship\u object\base;, the other one in the south (you have to do this VERY quickly). While \l;you\u object\human; are building, use the \l;grabber\u object\botgr; to get a \l;power cell\u object\power;. + +As soon as the successive waves of attack, made up of about fifteen \l;ants\u object\ant;, are gone, you have time to take care of the ants that did not attack. Build a \l;radar\u object\radar; in order to spot them, and a \l;converter\u object\convert;, a \l;bot factory\u object\factory;, a \l;power station\u object\station; and a \l;winged shooter\u object\botfj; in order to get rid of them... + +\t;See also +\l;Controls\u command; diff --git a/help/F/mssaari3.txt b/help/F/mssaari3.txt new file mode 100644 index 00000000..84f2fa66 --- /dev/null +++ b/help/F/mssaari3.txt @@ -0,0 +1,9 @@ +\b;Walkthrough +You should build a \l;radar\u object\radar; first. + +The \l;ants\u object\ant; appear to be running away from you. Try to circle around each one of them until they find themselves trapped between you and a \l;mine\u object\mine;. They'll opt for the mine and blow themselves up. + +Then bring the \l;black box\u object\bbox; aboard your ship. It is next to the derelict spaceship. + +\t;See also +\l;Controls\u command; diff --git a/help/F/msterra1.txt b/help/F/msterra1.txt new file mode 100644 index 00000000..a7487ad7 --- /dev/null +++ b/help/F/msterra1.txt @@ -0,0 +1,6 @@ +\b;Walkthrough +Unfortunately no walkthrough has been provided for this mission. +You are on your own... + +\t;See also +\l;Controls\u command; diff --git a/help/F/msterra2.txt b/help/F/msterra2.txt new file mode 100644 index 00000000..a7487ad7 --- /dev/null +++ b/help/F/msterra2.txt @@ -0,0 +1,6 @@ +\b;Walkthrough +Unfortunately no walkthrough has been provided for this mission. +You are on your own... + +\t;See also +\l;Controls\u command; diff --git a/help/F/msterra3.txt b/help/F/msterra3.txt new file mode 100644 index 00000000..a7487ad7 --- /dev/null +++ b/help/F/msterra3.txt @@ -0,0 +1,6 @@ +\b;Walkthrough +Unfortunately no walkthrough has been provided for this mission. +You are on your own... + +\t;See also +\l;Controls\u command; diff --git a/help/F/msterra4.txt b/help/F/msterra4.txt new file mode 100644 index 00000000..a7487ad7 --- /dev/null +++ b/help/F/msterra4.txt @@ -0,0 +1,6 @@ +\b;Walkthrough +Unfortunately no walkthrough has been provided for this mission. +You are on your own... + +\t;See also +\l;Controls\u command; diff --git a/help/F/msterre1.txt b/help/F/msterre1.txt new file mode 100644 index 00000000..3e7e0cc2 --- /dev/null +++ b/help/F/msterre1.txt @@ -0,0 +1,11 @@ +\b;Walkthrough +To find the survival kit from your starting point : + +1) Follow the road heading south. +2) Turn east (left) at the first crossroad. +3) The survival kit is lying between the northern wall of Mission Control and the first tree on the right hand side of the road. + +Just position yourself close to it to successfully complete the drill. + +\t;See also +\l;Controls\u command; diff --git a/help/F/msterre2.txt b/help/F/msterre2.txt new file mode 100644 index 00000000..a97023d8 --- /dev/null +++ b/help/F/msterre2.txt @@ -0,0 +1,11 @@ +\b;Walkthrough +Walk down the street that runs beside \l;Mission Control\u object\Huston;. You will find a \l;titanium cube\u object\titan; on the left hand side of the road, right after the \l;grabber bot\u object\botgr;. + +1) Face the cube. Click on the first button at the bottom left of your screen: \button 163; . +2) Walk further down the road. The second cube is on the right past the four green \l;power cells\u object\power;. +3) Repeat 1) but click on the second button: \button 160; . + +As soon as both buildings are completed, the mission is at an end. + +\t;See also +\l;Controls\u command; diff --git a/help/F/msterre3.txt b/help/F/msterre3.txt new file mode 100644 index 00000000..509ae869 --- /dev/null +++ b/help/F/msterre3.txt @@ -0,0 +1,28 @@ +\b;Walkthrough +Before taking off, you need to bring the following aboard your spaceship: + +1) \l;Black box\u object\bbox;. +2) \l;Wheeled\u object\botgr; and \l;tracked\u object\botgc; grabbers. +3) \l;Yourself\u object\human;. + +Here is a detailed breakdown of the operations: +1) Power the \l;research center\u object\research; with one of the green \l;power cells\u object\power;. +2) Activate the \l;research center\u object\research; then click on the \button 64; button. +3) Place a \l;titanium cube\u object\titan; inside the \l;bot factory\u object\factory;. +4) Step back out and activate the \l;bot factory\u object\factory;. +5) Click on the \button 138; button. +6) Power the \l;tracked grabber\u object\botgc; with a brand new \l;power cell\u object\power;. +7) Radio-control the \l;tracked grabber\u object\botgc; to the top of the mountain in the south-west. +8) Bring the \l;black box\u object\bbox; back aboard your \l;spaceship\u object\base;. +9) Radio-control both the \l;tracked\u object\botgc; and the \l;wheeled\u object\botgr; grabbers onto the platform. +10) Climb aboard the \l;spaceship\u object\base; yourself. +11) Take off! + +In order to take off, select the \l;spaceship\u object\base;, provided that it is visible, by clicking on it. If it is not visible, you need to click one of the buttons in the upper left corner of your screen. The blue triangle \button 130; allows you to alternate between symbols for bots and symbols for buildings. Click once to shift to the list. A \button 171; symbol will now appear. Click on the button to select it. + +Once the spaceship is selected, click on the larger \button 28; button in the lower center of your screen. If the objects mentioned above as well as yourself are indeed standing on deck, takeoff will take place. + +No object or bot should hinder the closing of the eight large panel doors. + +\t;See also +\l;Controls\u command; diff --git a/help/F/mstropi1.txt b/help/F/mstropi1.txt new file mode 100644 index 00000000..ca0330be --- /dev/null +++ b/help/F/mstropi1.txt @@ -0,0 +1,5 @@ +\b;Walkthrough +Follow the path shown on your mini map. The explosive device lies at the bottom of a small valley populated by giant ants. They will probably attack you and you will probably lose consciousness. There is nothing you can really do about this. + +\t;See also +\l;Controls\u command; diff --git a/help/F/mstropi2.txt b/help/F/mstropi2.txt new file mode 100644 index 00000000..23bc0024 --- /dev/null +++ b/help/F/mstropi2.txt @@ -0,0 +1,21 @@ +\b;Walkthrough +Here is a breakdown of the steps to follow to get back to the spaceship. + +1) Go round the lake, and head towards the green fluorescent globe. This globe is generated by a gravi-plant that will make flight impossible inside the globe. + +2) Follow the left flank of the valley, passing a pond on your right, and climb the small slope. On top you will be facing some giant ants: run as fast as you can towards another gravi-plant a little further on your right, your wounds will have time to heal later. + +3) Use your reactor to fly past the lake before the gravi-plant on your right. + +4) When you leave the gravi-plant, keep on the left-hand side of the lake, and follow the shore until you reach a peninsula adorned with fern-like plants. + +5) Do some island-hopping across the larger lake. Aim for the trees in order to avoid falling into the water on the other side of the island. The last island is 50 cm under water but you can still land on it without having your head submerged. + +6) The path continues to the left. A giant ant is waiting for you there, but it will not do you much harm. + +7) Give your reactor enough time to cool down, then fly across the small lake. Try to land as high on the right as you can, this is the best way not to fall into the second lake. + +8) Cross the second lake, get aboard the spaceship, and take off. + +\t;See also +\l;Controls\u command; diff --git a/help/F/mstropi3.txt b/help/F/mstropi3.txt new file mode 100644 index 00000000..852a973e --- /dev/null +++ b/help/F/mstropi3.txt @@ -0,0 +1,13 @@ +\b;Walkthrough +1) There is a \l;titanium cube\u object\titan; west of your present location, near the blue flag/blue cross on your mini map. You don't need to move the cube, just build a \l;power station\u object\station; right there on the spot. + +2) With the titanium cubes on the spaceship, build a \l;research center\u object\research; and execute the \button 67;. + +3) Build a \l;bot factory\u object\factory; and a \l;winged shooter\u object\botfj;. If this bot is destroyed by enemy fire, you will find some additional \l;titanium cubes\u object\titan; in a small foggy valley northwest of the spaceship. You can bring them back with the \l;winged grabber\u object\botgj;\n;. + +4) Build a \l;radar station\u object\radar; in order to see the location of the ants on the mini-map, and let the hunt begin. Be careful not to run out of energy and not to overheat the reactor of a bot while over water. If a bot falls into deep water, it explodes. + +5) Once you have killed all the ants, get on board and take off. + +\t;See also +\l;Controls\u command; diff --git a/help/F/mstropi4.txt b/help/F/mstropi4.txt new file mode 100644 index 00000000..6b73f89d --- /dev/null +++ b/help/F/mstropi4.txt @@ -0,0 +1,7 @@ +\b;Walkthrough +If your bot suddenly explodes, this means that you have hit the steel structures too often. Drive more slowly, so your bot will not be damaged even if you bump into an obstacle. + +If you can not take off after you completed the training, this means that you have not hit all the targets. Go round one more time, and check if any of the explosive devices or crosses in the center of the steel structures are left. + +\t;See also +\l;Controls\u command; diff --git a/help/F/mstropi5.txt b/help/F/mstropi5.txt new file mode 100644 index 00000000..06802556 --- /dev/null +++ b/help/F/mstropi5.txt @@ -0,0 +1,15 @@ +\b;Walkthrough +1) Locate the \l;black box\u object\bbox; on your own. You can try to spot it from above, using your jet engine, or dive into the water. +2) Build a \l;converter\u object\convert; near the chunks of titanium ore. You'll find them in the vicinity of the spaceship to the east. +3) Produce two \l;cubes\u object\titan;. +4) Build a \l;bot factory\u object\factory; not too far from the black box. +5) Manufacture a \l;subber\u object\botsub;. +6) Bring the black box back on board. +7) Take off. + +The black box is lying at the bottom of a small lake, northeast of the spaceship. + +You can build the bot factory right beside the lake, on the south bank. + +\t;See also +\l;Controls\u command; diff --git a/help/F/msvolca1.txt b/help/F/msvolca1.txt new file mode 100644 index 00000000..7c606a2e --- /dev/null +++ b/help/F/msvolca1.txt @@ -0,0 +1,15 @@ +\b;Walkthrough +1) Start by recharging a \l;regular power cell\u object\power; and power the \l;research center\u object\research;. Use it to research the technology for the building of a \l;nuclear plant\u object\nuclear; \button 170;. + +2) Produce a \l;wheeled grabber\u object\botgr;. + +3) Find some \l;uranium ore\u object\uranore; northwest of your position. The nuclear plant will then transform it into \l;nuclear power cells\u object\atomic; of a longer duration. + +4) Power a \l;wheeled shooter\u object\botfr; with one of your new nuclear cells. Dispatch it to kill all intruding \l;spiders\u object\spider; along the way. + +5) A \l;radar\u object\radar; is optional but could turn out useful to mark the position of the spiders on your mini map. + +6) A wheeled grabber should be part of the expedition. It will both clear the way cluttered with \l;titanium ore\u object\titanore; and bring the \l;explosive device\u object\tnt; back. + +\t;See also +\l;Controls\u command; diff --git a/help/F/msvolca2.txt b/help/F/msvolca2.txt new file mode 100644 index 00000000..319cd4db --- /dev/null +++ b/help/F/msvolca2.txt @@ -0,0 +1,19 @@ +\b;Walkthrough +1) Quickly build a \l;defense tower\u object\tower; north of your spaceship. After you \l;powered\u object\power; it, execute the program \c;ServiceTower1\n; on one of the \l;grabbers\u object\botgr; which will recharge the power cell when it is empty. Place another power cell 2 m north of the tower as a first target for the attacking wasps. + +2) Build a \l;power station\u object\station; close to the defense tower. + +3) Build a \l;converter\u object\convert; south of the spaceship and execute the program \c;CollectTitanium3\n; on the second \l;grabber\u object\botgr; in order to produce some \l;titanium\u object\titan;. + +4) Build a \l;bot factory\u object\factory; and a \l;winged shooter\u object\botfj; to eliminate the \l;ants\u object\ant;. + +5) Use a \l;winged grabber\u object\botgj; to bring back some \l;organic matter\u object\bullet; from the island in the middle of the lava lake. + +6) Build an \l;autolab\u object\labo;, drop the \l;organic matter\u object\bullet; on the platform and click the button \button 109; in order to develop the blueprints for legged bots. + +7) As soon as the organic matter has been analyzed, produce a \l;legged grabber\u object\botgs; and bring it aboard the spaceship. + +8) Take off. + +\t;See also +\l;Controls\u command; diff --git a/help/F/msvolca3.txt b/help/F/msvolca3.txt new file mode 100644 index 00000000..bcd857b8 --- /dev/null +++ b/help/F/msvolca3.txt @@ -0,0 +1,11 @@ +\b;Walkthrough +1) Power a \l;legged shooter\u object\botfs;. There is even a \l;nuclear cell\u object\atomic; left behind the \l;bot factory\u object\factory;. + +2) Climb the northern cliff and kill a few \l;ants\u object\ant;. The best access is from the east. + +3) Keep going until all ants are out of the way. + +4) Climb the northern cliff with a \l;legged grabber\u object\botgs; and retrieve the \l;black box\u object\bbox; that you will find in the derelict bot factory. + +\t;See also +\l;Controls\u command; diff --git a/help/F/msvolca4.txt b/help/F/msvolca4.txt new file mode 100644 index 00000000..4000a249 --- /dev/null +++ b/help/F/msvolca4.txt @@ -0,0 +1,13 @@ +\b;Walkthrough +A gap in the northwest mountain leads the way to a lake of boiling lava. + +Just hop from one rocky island to the next. Keep checking your reactor, let it cool off completely before taking off again. The mini map will help you to figure out where the closest island is. + +In case of an ant attack, don't worry too much. Just take the time for your reactor to cool off, without lingering longer than necessary, and your built-in shield should do its duty. However we advise you to save the game from time to time (key Esc, and "Save"), so you will not have to start from the beginning in case of a landing in the lava lake. + +The bot is at the westernmost point on your map though you'll have to take a roundabout route to reach it. A \l;nuclear power cell\u object\atomic; lies nearby. + +You don't have to radio-control the bot back to the spaceship by the same way you came because its reactor has a greater range than yours. One or two stops may still be needed and watch out for those ants. + +\t;See also +\l;Controls\u command; diff --git a/help/F/msvolca5.txt b/help/F/msvolca5.txt new file mode 100644 index 00000000..938b80b0 --- /dev/null +++ b/help/F/msvolca5.txt @@ -0,0 +1,11 @@ +\b;Walkthrough +Everything is blowing up around you. You need to leave the old basecamp as quickly as possible. Just retreat the same way you came. + +\l;Ants\u object\ant; are fairly easy to avoid. If you're badly hit, find a quiet spot and wait until your shield has regenerated. + +\l;Spiders\u object\spider; are a bit tougher but also more stupid. As soon as they see you, they burst their abdomen, dying in the process. If one fragment hits you, you'll die too. One risky but efficient method to rid yourself of a spider consists in moving dangerously close and, when the spider's abdomen starts inflating, swiftly fly backwards to safety. + +As soon as you have reached a quiet island, you can use the \l;winged orga shooter\u object\botoj; to clear your way of hostile insects. Be careful not to lose it, otherwise the whole mission would be in vain. + +\t;See also +\l;Controls\u command; diff --git a/help/F/msvolca6.txt b/help/F/msvolca6.txt new file mode 100644 index 00000000..b5b7fcb1 --- /dev/null +++ b/help/F/msvolca6.txt @@ -0,0 +1,9 @@ +\b;Walkthrough +It is safer for \l;you\u object\human; to stay on the \l;spaceship\u object\base;. You may get hit a few times but not fatally. + +Put your new \l;winged orga shooter\u object\botoj; to good use and don't waste any time. First shoot the ants on your right, then turn clockwise around the spaceship, flying at low altitude. + +If you can not do it this way, place the \l;winged orga shooter\u object\botoj; on a safe place north of the spaceship, then save yourself. You can then take your time to shoot the ants one after another; they can do no harm to the spaceship and the black box. + +\t;See also +\l;Controls\u command; diff --git a/help/F/navig.txt b/help/F/navig.txt new file mode 100644 index 00000000..63622750 --- /dev/null +++ b/help/F/navig.txt @@ -0,0 +1,22 @@ +\b;Navigation +The three buttons on the upper left-hand corner of the screen allow you to navigate in the different texts of the help file: + +\button 30; Home +Get back to the home page, i.e. the first page that was displayed, for example when you hit the \key;\key help;\norm; or \key;\key prog;\norm; key. + +\button 55; Previous +Get back to the previous page, i.e. the page that was displayed before you clicked on a link. + +\button 48; Next +Get again to the next page, after you used the "Home" or "Previous" button. + +\t;Remark +When a button is gray, this means that it can not be used at this precise moment. For example, when you are in the home page, the "Home" button is gray, because it does not make sense to use it. + +This remark is valid for all buttons in COLOBOT. + +\t;Text scrolling +If your mouse is equipped with a wheel, you can use it to scroll the text up and down. Otherwise, use the arrow keys and the scroll bar on the right-hand side of the screen. + +\t;Font size +The cursor on the upper side of the screen allows you to change the font size of the text. diff --git a/help/F/object/ant.txt b/help/F/object/ant.txt new file mode 100644 index 00000000..87b82f40 --- /dev/null +++ b/help/F/object/ant.txt @@ -0,0 +1,11 @@ +\b;Ant +\image ant 8 8; +Ants shoot tiny corrosive balls that eventually gnaw into the protective shielding of bots and buildings, causing them to explode. + +\l;You\u object\human; can resist their attack much longer than most buildings and bots, and your protective shield will be restored as your wounds heal. However, if you stay too long in their range or if there are too many of them, your life is in great danger. + +\t;Object \l;Category\u cbot\category; +\c;AlienAnt\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/atomic.txt b/help/F/object/atomic.txt new file mode 100644 index 00000000..367dff0e --- /dev/null +++ b/help/F/object/atomic.txt @@ -0,0 +1,15 @@ +\b;Nuclear Power Cell +\image atomic 4 4; +A nuclear power cell supplies the bots and some buildings with energy. +Its capacity is 100 times that of a \l;regular power cell\u object\power;. + +Nuclear power cells cannot be recharged or recycled. A \l;nuclear plant\u object\nuclear; and some \l;uranium ore\u object\uranore; is needed to produce a new and fully charged nuclear power cell. + +\t;Transport +All \l;grabbers\u object\botgr; and the \l;astronaut\u object\human;. + +\t;Object \l;Category\u cbot\category; +\c;NuclearCell\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/barrier.txt b/help/F/object/barrier.txt new file mode 100644 index 00000000..14646cb0 --- /dev/null +++ b/help/F/object/barrier.txt @@ -0,0 +1,8 @@ +\b;Barrier +The barrier is nothing more than an obstacle used in the exercises. + +\t;Object \l;Category\u cbot\category; +\c;Barrier\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/base.txt b/help/F/object/base.txt new file mode 100644 index 00000000..84577068 --- /dev/null +++ b/help/F/object/base.txt @@ -0,0 +1,11 @@ +\b;\button 171; Spaceship +\image base 8 8; +\l;Your\u object\human; means of transportation from one planet to the next, the only way to travel safely across the cosmos and accomplish your missions. + +In addition to yourself, the spaceship can carry bots and raw materials. Whenever a mission is completed, you must select the spaceship, then click on the command \button 28;. + +\t;Object \l;Category\u cbot\category; +\c;SpaceShip\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/bbox.txt b/help/F/object/bbox.txt new file mode 100644 index 00000000..4b4a8557 --- /dev/null +++ b/help/F/object/bbox.txt @@ -0,0 +1,14 @@ +\b;Black Box +\image bbox 4 4; +A black box is actually orange so as to be easier to identify and locate. Each \l;spaceship\u object\base; is equipped with a black box that records and stores information about the flight. + +A black box can also be used to leave important information. On every planet the first expedition has left a black box containing the coordinates of the planet it was heading towards next. + +\t;Transport +All \l;grabbers\u object\botgr; and the \l;astronaut\u object\human;. + +\t;Object \l;Category\u cbot\category; +\c;BlackBox\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/botfc.txt b/help/F/object/botfc.txt new file mode 100644 index 00000000..b95751e3 --- /dev/null +++ b/help/F/object/botfc.txt @@ -0,0 +1,20 @@ +\b;\button 144; Tracked Shooter +\image botfc 8 8; +Tracked bot equipped with a fireball cannon. + +The fireball cannon is an efficient weapon against most kinds of \l;enemies\u object\mother;. Use it sparingly though for it requires large amounts of energy. A \l;regular power cell\u object\power; will only allow you to shoot 4 fireball bursts. + +Tip : it is possible to move the mouse while shooting, so as to sweep a larger area. + +Tracked bots can ascend steep inclinations but they are quite slow and use a lot of energy. On flat ground for short distances, a \l;wheeled shooter\u object\botfr; is a better option. When it is possible to build \l;winged bots\u object\botfj;, these represent the best solution for long distances. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the fireball cannon, use \c;\l;fire\u cbot\fire;\n;. To raise or lower the aim, use \c;\l;aim\u cbot\aim;\n;. + +\t;Object \l;Category\u cbot\category; +\c;TrackedShooter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/botfj.txt b/help/F/object/botfj.txt new file mode 100644 index 00000000..b852517d --- /dev/null +++ b/help/F/object/botfj.txt @@ -0,0 +1,22 @@ +\b;\button 145; Winged Shooter +\image botfj 8 8; +Jet propelled flying bot equipped with a fireball cannon. + +The fireball cannon is an efficient weapon against most kinds of \l;enemies\u object\mother;. Use it sparingly though for it requires large amounts of energy. A \l;regular power cell\u object\power; will only allow you to shoot 4 fireball bursts. + +Tip : it is possible to move the mouse while shooting, so as to sweep a larger area. + +The display at the bottom of your screen indicates the temperature of the reactor. Keep an eye on it. If the reactor overheats, the engine will stop and the bot will crash. + +Winged bots can fly across natural obstacles such as mountains or lakes but their energy supply is used up quickly. They're slow on the ground. To cover a short distance that will not call for flying, it is recommended to use a \l;wheeled shooter\u object\botfr; instead. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;jet\u cbot\jet;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the fireball cannon, use \c;\l;fire\u cbot\fire;\n;. To raise or lower the aim, use \c;\l;aim\u cbot\aim;\n;. + +\t;Object \l;Category\u cbot\category; +\c;WingedShooter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/botfr.txt b/help/F/object/botfr.txt new file mode 100644 index 00000000..43cea003 --- /dev/null +++ b/help/F/object/botfr.txt @@ -0,0 +1,20 @@ +\b;\button 143; Wheeled Shooter +\image botfr 8 8; +Wheeled bot equipped with a fireball cannon. + +The fireball cannon is an efficient weapon against most kinds of \l;enemies\u object\mother;. Use it sparingly though for it requires large amounts of energy. A \l;regular power cell\u object\power; will only allow you to shoot 4 fireball bursts. + +Tip : it is possible to move the mouse while shooting, so as to sweep a larger area. + +Wheels constitute a standard, fast and energy-saving mode of propulsion, which is perfectly adapted for a relatively flat terrain. Whenever the terrain gets sloped, it is advised to use a \l;winged shooter\u object\botfj; instead, or, if this is impossible, a \l;tracked shooter\u object\botfc;. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the fireball cannon, use \c;\l;fire\u cbot\fire;\n;. To raise or lower the aim, use \c;\l;aim\u cbot\aim;\n;. + +\t;Object \l;Category\u cbot\category; +\c;WheeledShooter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/botfs.txt b/help/F/object/botfs.txt new file mode 100644 index 00000000..5a5c2728 --- /dev/null +++ b/help/F/object/botfs.txt @@ -0,0 +1,20 @@ +\b;\button 151; Legged Shooter +\image botfs 8 8; +Ant-legged creeping bot equipped with a fireball cannon. + +The fireball cannon is an efficient weapon against most kinds of \l;enemies\u object\mother;. Use it sparingly though for it requires large amounts of energy. A \l;regular power cell\u object\power; will only allow you to shoot 4 fireball bursts. + +Tip : it is possible to move the mouse while shooting, so as to sweep a larger area. + +A moving legged shooter uses up half as much energy as a \l;wheeled shooter\u object\botfr;. A legged bot is also perfectly adapted to climb the steepest slopes. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the fireball cannon, use \c;\l;fire\u cbot\fire;\n;. To raise or lower the aim, use \c;\l;aim\u cbot\aim;\n;. + +\t;Object \l;Category\u cbot\category; +\c;LeggedShooter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/botgc.txt b/help/F/object/botgc.txt new file mode 100644 index 00000000..8abb41c7 --- /dev/null +++ b/help/F/object/botgc.txt @@ -0,0 +1,33 @@ +\b;\button 138; Tracked Grabber +\image botgc 8 8; +Tracked bot equipped with an operating arm. + +\button 32; Grabs an object or lays it down again, at a position that is determined by one of the following options : +\button 33; The object is lying in front of the bot, on the ground or on the back of a second bot. +\button 35; The object is the bot's own power cell. +\button 34; The object is lying behind the bot, on the ground. + +The following objects can be transported : +o \l;Titanium ore\u object\titanore;. +o \l;Uranium ore\u object\uranore;. +o \l;Cube of titanium\u object\titan;. +o \l;Regular power cell\u object\power;. +o \l;Nuclear power cell\u object\atomic;. +o \l;Black box\u object\bbox;. +o \l;Keys A, B, C, and D\u object\key;. +o \l;Organic matter\u object\bullet;. + +Tracked bots can ascend steep inclinations but they are quite slow and use much energy. On flat ground for short distances, a \l;wheeled grabber\u object\botgr; is a better option. When it is possible to build \l;winged bots\u object\botgj;, these represent the best solution for long distances. + +A grabber won't function underwater. What you'll need instead is a \l;subber\u object\botsub;. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the operating arm, use \c;\l;grab\u cbot\grab;\n; and \c;\l;drop\u cbot\drop;\n;. + +\t;Object \l;Category\u cbot\category; +\c;TrackedGrabber\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/botgj.txt b/help/F/object/botgj.txt new file mode 100644 index 00000000..f237bfaf --- /dev/null +++ b/help/F/object/botgj.txt @@ -0,0 +1,35 @@ +\b;\button 139; Winged Grabber +\image botgj 8 8; +Jet propelled flying bot equipped with an operating arm. + +\button 32; Grabs an object or lays it down again, at a position that is determined by one of the following options : +\button 33; The object is lying in front of the bot, on the ground or on the back of a second bot. +\button 35; The object is the bot's own power cell. +\button 34; The object is lying behind the bot, on the ground. + +The following objects can be transported : +o \l;Titanium ore\u object\titanore;. +o \l;Uranium ore\u object\uranore;. +o \l;Cube of titanium\u object\titan;. +o \l;Regular power cell\u object\power;. +o \l;Nuclear power cell\u object\atomic;. +o \l;Black box\u object\bbox;. +o \l;Keys A, B, C, and D\u object\key;. +o \l;Organic matter\u object\bullet;. + +The display at the bottom of your screen indicates the temperature of the reactor. Keep an eye on it. If the reactor overheats, the engine will stop and the bot will crash. + +Winged bots can fly across natural obstacles such as mountains or lakes but their energy supply is used up quickly. They're slow on the ground. To cover a short distance that will not call for flying, it is recommended to use a \l;wheeled grabber\u object\botgr; instead. + +A grabber won't function underwater. What you'll need instead is a \l;subber\u object\botsub;. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the operating arm, use \c;\l;grab\u cbot\grab;\n; and \c;\l;drop\u cbot\drop;\n;. + +\t;Object \l;Category\u cbot\category; +\c;WingedGrabber\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/botgr.txt b/help/F/object/botgr.txt new file mode 100644 index 00000000..8dcc5991 --- /dev/null +++ b/help/F/object/botgr.txt @@ -0,0 +1,33 @@ +\b;\button 137; Wheeled Grabber +\image botgr 8 8; +Wheeled bot equipped with an operating arm. + +\button 32; Grabs an object or lays it down again, at a position that is determined by one of the following options : +\button 33; The object is lying in front of the bot, on the ground or on the back of a second bot. +\button 35; The object is the bot's own power cell. +\button 34; The object is lying behind the bot, on the ground. + +The following objects can be transported : +o \l;Titanium ore\u object\titanore;. +o \l;Uranium ore\u object\uranore;. +o \l;Converted titanium\u object\titan;. +o \l;Regular power cell\u object\power;. +o \l;Nuclear power cell\u object\atomic;. +o \l;Black box\u object\bbox;. +o \l;Keys A, B, C, and D\u object\key;. +o \l;Organic matter\u object\bullet;. + +Wheels constitute a standard, fast and energy-saving mode of propulsion, which is perfectly adapted for a relatively flat terrain. Whenever the terrain gets sloped, it is advised to use a \l;winged shooter\u object\botfj; instead, or, if this is impossible, a \l;tracked shooter\u object\botfc;. + +A grabber won't function underwater. What you'll need instead is a \l;subber\u object\botsub;. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the operating arm, use \c;\l;grab\u cbot\grab;\n; and \c;\l;drop\u cbot\drop;\n;. + +\t;Object \l;Category\u cbot\category; +\c;WheeledGrabber\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/botgs.txt b/help/F/object/botgs.txt new file mode 100644 index 00000000..b839c9fb --- /dev/null +++ b/help/F/object/botgs.txt @@ -0,0 +1,34 @@ +\b;\button 150; Legged Grabber +\image botgs 8 8; +Ant-legged creeping bot equipped with an operating arm. + +\button 32; Grabs an object or lays it down again, at a position that is determined by one of the following options : +\button 33; The object is lying in front of the bot, on the ground or on the back of a second bot. +\button 35; The object is the bot's own power cell. +\button 34; The object is lying behind the bot, on the ground. + +The following objects can be transported : +o \l;Titanium ore\u object\titanore;. +o \l;Uranium ore\u object\uranore;. +o \l;Converted titanium\u object\titan;. +o \l;Regular power cell\u object\power;. +o \l;Nuclear power cell\u object\atomic;. +o \l;Black box\u object\bbox;. +o \l;Keys A, B, C, and D\u object\key;. +o \l;Organic matter\u object\bullet;. + +A moving legged grabber uses up half as much energy as a \l;wheeled grabber\u object\botgr;. A legged bot is also perfectly adapted to climb the steepest slopes. + +A grabber won't function underwater. What you'll need instead is a \l;subber\u object\botsub;. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the operating arm, use \c;\l;grab\u cbot\grab;\n; and \c;\l;drop\u cbot\drop;\n;. + +\t;Object \l;Category\u cbot\category; +\c;LeggedGrabber\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. + diff --git a/help/F/object/botoc.txt b/help/F/object/botoc.txt new file mode 100644 index 00000000..43fecf54 --- /dev/null +++ b/help/F/object/botoc.txt @@ -0,0 +1,18 @@ +\b;\button 154; Tracked Orga Shooter +\image botoc 8 8; +Tracked bot equipped with an orgaball cannon. + +The orgaball cannon is more effective than the \l;fireball cannon\u object\botfc;. It shoots small spheres of corrosive \l;organic matter\u object\bullet;. A \l;regular power cell\u object\power; will allow you to shoot 11 orgaball bursts. + +Tracked bots can ascend steep inclinations but they are quite slow and use a lot of energy. On flat ground for short distances, a \l;wheeled orga shooter\u object\botor; is a better option. When it is possible to build \l;winged bots\u object\botoj;, these represent the best solution for long distances. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the orgaball cannon, use \c;\l;fire\u cbot\fire;\n;. To raise or lower the aim, use \c;\l;aim\u cbot\aim;\n;. + +\t;Object \l;Category\u cbot\category; +\c;TrackedOrgaShooter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/botoj.txt b/help/F/object/botoj.txt new file mode 100644 index 00000000..70f7b99d --- /dev/null +++ b/help/F/object/botoj.txt @@ -0,0 +1,20 @@ +\b;\button 155; Winged Orga Shooter +\image botoj 8 8; +Jet propelled flying bot equipped with an orgaball cannon. + +The orgaball cannon is more effective than the \l;fireball cannon\u object\botfj;. It shoots small spheres of corrosive \l;organic matter\u object\bullet;. A \l;regular power cell\u object\power; will allow you to shoot 11 orgaball bursts. + +The display at the bottom of your screen indicates the temperature of the reactor. Keep an eye on it. If the reactor overheats, the engine will stop and the bot will crash. + +Winged bots can fly across natural obstacles such as mountains or lakes but their energy supply is used up quickly. They're slow on the ground. To cover a short distance that will not call for flying, it is recommended to use a \l;wheeled orga shooter\u object\botor; instead. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;jet\u cbot\jet;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the orgaball cannon, use \c;\l;fire\u cbot\fire;\n;. To raise or lower the aim, use \c;\l;aim\u cbot\aim;\n;. + +\t;Object \l;Category\u cbot\category; +\c;WingedOrgaShooter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/botor.txt b/help/F/object/botor.txt new file mode 100644 index 00000000..8da2ce7c --- /dev/null +++ b/help/F/object/botor.txt @@ -0,0 +1,19 @@ +\b;\button 153; Wheeled Orga Shooter +\image botor 8 8; +Wheeled bot equipped with an orgaball cannon. + +The orgaball cannon is more effective than the \l;fireball cannon\u object\botfr;. It shoots small spheres of corrosive \l;organic matter\u object\bullet;. A \l;regular power cell\u object\power; will allow you to shoot 11 orgaball bursts. + +Wheels constitute a standard, fast and energy-saving mode of propulsion, which is perfectly adapted for a relatively flat terrain. Whenever the terrain gets sloped, it is advised to instead use a \l;winged orga shooter\u object\botoj;, or, if this is impossible, a \l;tracked orga shooter\u object\botoc;. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the orgaball cannon, use \c;\l;fire\u cbot\fire;\n;. To raise or lower the aim, use \c;\l;aim\u cbot\aim;\n;. + +\t;Object \l;Category\u cbot\category; +\c;WheeledOrgaShooter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. + diff --git a/help/F/object/botos.txt b/help/F/object/botos.txt new file mode 100644 index 00000000..a1ff6d09 --- /dev/null +++ b/help/F/object/botos.txt @@ -0,0 +1,18 @@ +\b;\button 156; Legged Orga Shooter +\image botos 8 8; +Ant-legged creeping bot equipped with an orgaball cannon. + +The orgaball cannon is more effective than the \l;fireball cannon\u object\botfs;. It shoots small spheres of corrosive \l;organic matter\u object\bullet;. A \l;regular power cell\u object\power; will allow you to shoot 11 orgaball bursts. + +A moving legged orga shooter uses up half as much energy as a \l;wheeled orga shooter\u object\botor;. A legged bot is also perfectly adapted to climb the steepest slopes. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the orgaball cannon, use \c;\l;fire\u cbot\fire;\n;. To raise or lower the aim, use \c;\l;aim\u cbot\aim;\n;. + +\t;Object \l;Category\u cbot\category; +\c;LeggedOrgaShooter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/botphaz.txt b/help/F/object/botphaz.txt new file mode 100644 index 00000000..232463e1 --- /dev/null +++ b/help/F/object/botphaz.txt @@ -0,0 +1,14 @@ +\b;\button 147; Phazer Shooter +\image botphaz 8 8; +Tracked bot equipped with a very powerful phazer cannon, efficient against most kinds of enemies. When you aim upward, it can shoot up to 60 meters. It is the only weapon that can kill the \l;Alien Queen\u object\mother;. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the phazer cannon, use \c;\l;fire\u cbot\fire;\n;. To raise or lower the aim, use \c;\l;aim\u cbot\aim;\n;. + +\t;Object \l;Category\u cbot\category; +\c;PhazerShooter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/botrecy.txt b/help/F/object/botrecy.txt new file mode 100644 index 00000000..68d06f26 --- /dev/null +++ b/help/F/object/botrecy.txt @@ -0,0 +1,14 @@ +\b;\button 148; Recycler +\image botrecy 8 8; +Tracked bot designed to convert a \l;derelict bot\u object\wreck; back into a reusable \l;titanium cube\u object\titan;. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the recycling of a derelict bot, use \c;\l;recycle\u cbot\recycle;\n;. + +\t;Object \l;Category\u cbot\category; +\c;RecyclerBot\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/botsc.txt b/help/F/object/botsc.txt new file mode 100644 index 00000000..5d6424ea --- /dev/null +++ b/help/F/object/botsc.txt @@ -0,0 +1,20 @@ +\b;\button 141; Tracked Sniffer +\image botsc 8 8; +Tracked bot equipped to prospect the geological structure of the subsoil. Whenever it locates something of use, the sniffer lays down the following marks: + +- a \l;red cross\u object\stonspot; -> \l;titanium ore\u object\titanore;. +- a \l;yellow circle\u object\uranspot; -> \l;uranium ore\u object\uranore;. +- a \l;green cross\u object\enerspot; -> energy deposit, useful for a \l;power station\u object\station; or a \l;power plant\u object\energy;. + +Tracked bots can ascend steep inclinations but they are quite slow and use a lot of energy. On flat ground for short distances, a \l;wheeled sniffer\u object\botsr; is a better option. When it is possible to build \l;winged bots\u object\botsj;, these represent the best solution for long distances. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the sniffing arm, use \c;\l;sniff\u cbot\sniff;\n;. + +\t;Object \l;Category\u cbot\category; +\c;TrackedSniffer\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/botshld.txt b/help/F/object/botshld.txt new file mode 100644 index 00000000..d1bcdaa8 --- /dev/null +++ b/help/F/object/botshld.txt @@ -0,0 +1,18 @@ +\b;\button 157; Shielder +\image botshld 8 8; +Tracked bot designed to protect and defend against all \l;enemy\u object\mother; attacks within a perimeter of 10 to 25 meters. The individual shields of bots and buildings are re-energized through the shielder's defensive actions. This bot is the only way to get through narrow passages adorned with poisonous green mushrooms. + +A \l;regular power cell\u object\power; allows for a 20-second activity span with a radius of 25 meters, much too short in most cases. A \l;nuclear power cell\u object\atomic; is of course more suited to this bot. + +The energy consumption is proportional to the radius of the protective sphere. With a radius of 10 meters, the bot can work 2.5 times longer than with the maximum radius of 25 meters. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the deployment of the shield, use \c;\l;shield\u cbot\shield;\n;. + +\t;Object \l;Category\u cbot\category; +\c;Shielder\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/botsj.txt b/help/F/object/botsj.txt new file mode 100644 index 00000000..9085244f --- /dev/null +++ b/help/F/object/botsj.txt @@ -0,0 +1,22 @@ +\b;\button 142; Winged Sniffer +\image botsj 8 8; +Jet propelled flying bot equipped to prospect the geological structure of the subsoil. Whenever it locates something of use, the sniffer lays down the following marks: + +- a \l;red cross\u object\stonspot; -> \l;titanium ore\u object\titanore;. +- a \l;yellow circle\u object\uranspot; -> \l;uranium ore\u object\uranore;. +- a \l;green cross\u object\enerspot; -> energy deposit, useful for a \l;power station\u object\station; or a \l;power plant\u object\energy;. + +The display at the bottom of your screen indicates the temperature of the reactor. Keep an eye on it. If the reactor overheats, the engine stops and the bot crashes. + +Winged bots can fly across natural obstacles such as mountains or lakes but their energy supply uses up quickly. They're slow on the ground. To cover a short distance that will not call for flying, it is recommended to use a \l;wheeled sniffer\u object\botsr; instead. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;jet\u cbot\jet;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the sniffing arm, use \c;\l;sniff\u cbot\sniff;\n;. + +\t;Object \l;Category\u cbot\category; +\c;WingedSniffer\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/botsr.txt b/help/F/object/botsr.txt new file mode 100644 index 00000000..9e5609c8 --- /dev/null +++ b/help/F/object/botsr.txt @@ -0,0 +1,20 @@ +\b;\button 140; Wheeled Sniffer +\image botsr 8 8; +Wheeled bot equipped to prospect the geological structure of the subsoil. Whenever it locates something of use, the sniffer lays down the following marks: + +- a \l;red cross\u object\stonspot; -> \l;titanium ore\u object\titanore;. +- a \l;yellow circle\u object\uranspot; -> \l;uranium ore\u object\uranore;. +- a \l;green cross\u object\enerspot; -> energy deposit, useful for a \l;power station\u object\station; or a \l;power plant\u object\energy;. + +Wheels constitute a standard, fast and energy-saving mode of propulsion, which is perfectly adapted for a relatively flat terrain. Whenever the terrain gets sloped, it is advised to use a \l;winged sniffer\u object\botsj; instead, or, if this is impossible, a \l;tracked sniffer\u object\botsc;. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the sniffing arm, use \c;\l;sniff\u cbot\sniff;\n;. + +\t;Object \l;Category\u cbot\category; +\c;WheeledSniffer\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/botss.txt b/help/F/object/botss.txt new file mode 100644 index 00000000..b2bb5b53 --- /dev/null +++ b/help/F/object/botss.txt @@ -0,0 +1,20 @@ +\b;\button 152; Legged Sniffer +\image botss 8 8; +Ant-legged creeping bot equipped to prospect the geological structure of the subsoil. Whenever it locates something of use, the sniffer lays down the following marks: + +- a \l;red cross\u object\stonspot; -> \l;titanium ore\u object\titanore;. +- a \l;yellow circle\u object\uranspot; -> \l;uranium ore\u object\uranore;. +- a \l;green cross\u object\enerspot; -> energy deposit, useful for a \l;power station\u object\station; or a \l;power plant\u object\energy;. + +A moving legged shooter uses up half as much energy as a \l;wheeled sniffer\u object\botsr;. A legged bot is also perfectly adapted to climb the steepest slopes. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the sniffing arm, use \c;\l;sniff\u cbot\sniff;\n;. + +\t;Object \l;Category\u cbot\category; +\c;LeggedSniffer\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/botsub.txt b/help/F/object/botsub.txt new file mode 100644 index 00000000..4b9f8959 --- /dev/null +++ b/help/F/object/botsub.txt @@ -0,0 +1,16 @@ +\b;\button 149; Subber +\image botsub 8 8; +Amphibious tracked bot equipped with an operating claw. The subber is the only bot capable of moving and running operations underwater. + +It is best to check the \l;power cell\u object\power; readings prior to immersion since replacing or recharging it underwater is impossible. The subber can only pick up objects from the ground, as opposed to, for example, a battery from the back of another bot. + +\t;Programming +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the operating claw, use \c;\l;grab\u cbot\grab;\n; and \c;\l;drop\u cbot\drop;\n;. + +\t;Object \l;Category\u cbot\category; +\c;Subber\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/bottarg.txt b/help/F/object/bottarg.txt new file mode 100644 index 00000000..4807d784 --- /dev/null +++ b/help/F/object/bottarg.txt @@ -0,0 +1,11 @@ +\b;\button 173; Target Bot +\image bottarg 8 8; +Wheeled bot intended solely for target practice. It is autonomous and its trajectory is dependant upon the nature of the exercise. + +Note that target bots, loaded as they are with \l;TNT\u object\tnt;, are extremely sensitive to shocks. + +\t;Object \l;Category\u cbot\category; +\c;TargetBot\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/bottr.txt b/help/F/object/bottr.txt new file mode 100644 index 00000000..65f185c6 --- /dev/null +++ b/help/F/object/bottr.txt @@ -0,0 +1,12 @@ +\b;\button 158; Practice Bot +\image bottr 8 8; +Wheeled bot intended solely for training and practice. Its only purpose is to help you get accustomed to the programming of the bots' various ground movements. + +\t;Instructions +To program the bot's movements, use the following commands: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +\t;Object \l;Category\u cbot\category; +\c;PracticeBot\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/bottump.txt b/help/F/object/bottump.txt new file mode 100644 index 00000000..8398f770 --- /dev/null +++ b/help/F/object/bottump.txt @@ -0,0 +1,18 @@ +\b;\button 146; Thumper +\image bottump 8 8; +Tracked bot designed to hit the ground with enormous force. The purpose of the thumping is to turn \l;ants\u object\ant; and \l;spiders\u object\spider; belly up within a radius of 100 meters. An insect on its back is not dead but will struggle to get right side up again. After approximately 60 seconds of effort, it will usually succeed. + +To visualize the zone of impact, hit the button \button 41;. Little red dots outline the circular zone for 20 seconds. + +The bot uses up a large amount of power. A thump will drain 2/5ths of a \l;regular power cell\u object\power;. + +\t;Instructions +To program the bot's movements, use the following commands : \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +To program the thumping, use \c;\l;thump\u cbot\thump;\n;. + +\t;Object \l;Category\u cbot\category; +\c;Thumper\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/bullet.txt b/help/F/object/bullet.txt new file mode 100644 index 00000000..5df1efe5 --- /dev/null +++ b/help/F/object/bullet.txt @@ -0,0 +1,12 @@ +\b;Organic Matter +\image bullet 4 4; +The organic matter is the insects' secretion. \l;Wasps\u object\wasp; often use balls of organic matter to bombard you. You should perhaps try to get hold of some since it could allow you, given the necessary \l;analysis\u object\labo;, to discover new and strange technologies that will improve the efficiency of your bots. + +\t;Transport +All \l;grabbers\u object\botgr; and the \l;astronaut\u object\human;. + +\t;Object \l;Category\u cbot\category; +\c;OrgaMatter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/captor.txt b/help/F/object/captor.txt new file mode 100644 index 00000000..d13df6f7 --- /dev/null +++ b/help/F/object/captor.txt @@ -0,0 +1,25 @@ +\b;\button 174; Power Captor +\image captor 8 8; +The power captor acts as both a lightning conductor and a power converter. +It offers protection within a radius of 50 meters against the perilous lightning bolts of magnetic storms. Additionally, when the captor is hit by lightning, all bots and \l;power cells\u object\power; placed underneath, with the exception of the \l;nuclear power cells\u object\atomic;, are recharged. + +To visualize the zone shielded by a power captor, select it then hit the button \button 41;. Red dots outline the circular zone for 20 seconds. + +In the vastness of space, few planets suffer from magnetic storms. Among the ones you'll be visiting, only Orpheon is subject to this phenomenon. + +Note that your \l;spaceship\u object\base; can also act as a lightning conductor. However it will not recharge power cells. + +\t;Requirements for building +Any flat surface of at least 10 meters wide. + +\t;Power source +Lightning bolts. + +\t;Duration of operation +1 second. + +\t;Object \l;Category\u cbot\category; +\c;PowerCaptor\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/convert.txt b/help/F/object/convert.txt new file mode 100644 index 00000000..49836688 --- /dev/null +++ b/help/F/object/convert.txt @@ -0,0 +1,24 @@ +\b;\button 162; Converter +\image convert 8 8; +This building was designed to convert chunks of \l;titanium ore\u object\titanore; into usable \l;titanium cubes\u object\titan;. All \l;you\u object\human; need to do is place a chunk at the center of the platform and step back. The converter takes care of the rest. + +\t;Requirements for building +Any flat surface of at least 6 meters wide. + +\t;Input +Titanium ore. + +\t;Output +Titanium. + +\t;Power source +None. + +\t;Duration of operation +15 seconds. + +\t;Object \l;Category\u cbot\category; +\c;Converter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/derrick.txt b/help/F/object/derrick.txt new file mode 100644 index 00000000..4eea1369 --- /dev/null +++ b/help/F/object/derrick.txt @@ -0,0 +1,29 @@ +\b;\button 161; Derrick +\image derrick 8 8; +The derrick is intended for the extraction of raw materials. + +In order to determine the best site on which to erect a derrick, a \l;sniffer\u object\botsr; should be used to prospect the subsoil. The marks it lays down provide information about the specifics of what the derrick will be able to extract: + +- a \l;red cross\u object\stonspot; -> \l;titanium ore\u object\titanore;. +- a \l;yellow circle\u object\uranspot; -> \l;uranium ore\u object\uranore;. + +\t;Requirements for building +Any flat and geologically adequate surface of at least 2.5 meters wide. + +\t;Input +Titanium or uranium ore in the subsoil. + +\t;Output +Chunks of titanium or uranium ore. + +\t;Power source +None. + +\t;Duration of operation +10 seconds for titanium and 30 for uranium. + +\t;Object \l;Category\u cbot\category; +\c;Derrick\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/egg.txt b/help/F/object/egg.txt new file mode 100644 index 00000000..d3e11e20 --- /dev/null +++ b/help/F/object/egg.txt @@ -0,0 +1,8 @@ +\b;Alien Egg +The alien eggs are laid by the \l;Alien Queen\u object\mother;. After a short time, they will hatch and an \l;ant\u object\ant;, a \l;wasp\u object\wasp;, a \l;spider\u object\spider; or a \l;worm\u object\worm; will come out. + +\t;Object \l;Category\u cbot\category; +\c;AlienEgg\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/energy.txt b/help/F/object/energy.txt new file mode 100644 index 00000000..45a695bf --- /dev/null +++ b/help/F/object/energy.txt @@ -0,0 +1,28 @@ +\b;\button 167; Power Plant +\image energy 8 8; +The power plant is a \l;power cell\u object\power; factory. It transforms a \l;titanium cube\u object\titan; into a regular power cell fully charged and ready for use. + +A power plant requires some energy in the subsoil. If the satellite report says that energy is available only at some places, you will need a \l;sniffer bot\u object\botsr; to prospect the subsoil. The marks it lays down provide information about the specifics of its findings: a \l;green cross\u object\enerspot; means that there is an energy deposit at this location beneath the surface, which is indispensable for the construction of a power plant or a \l;power station\u object\station;. + +If the large power cell at the base of the plant remains red after the construction is completed, this means that the site is not geologically adequate. + +\t;Requirements for building +Any flat and geologically adequate surface of at least 4 meters wide. + +\t;Input +Titanium. + +\t;Output +Regular power cell. + +\t;Power source +Subsoil energy. + +\t;Duration of operation +12 seconds. + +\t;Object \l;Category\u cbot\category; +\c;PowerPlant\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/enerspot.txt b/help/F/object/enerspot.txt new file mode 100644 index 00000000..44bf6235 --- /dev/null +++ b/help/F/object/enerspot.txt @@ -0,0 +1,17 @@ +\b;Underground Energy Deposit +\image enerspot 4 4; +Whenever a \l;sniffer\u object\botsr; uncovers a source of energy in the subsoil, it lays down a green cross. The following buildings can be erected nearby : + +o \l;Power station\u object\station; +o \l;Power plant\u object\energy; + +In order to prospect the subsoil you need a \l;sniffer bot\u object\botsr;, which can also discover \l;titanium ore\u object\titanore; deposits (indicated by a \l;red cross\u object\stonspot;) or \l;uranium ore\u object\uranore; deposits (indicated by a \l;yellow circle\u object\uranspot;). + +\t;Transport +Impossible. + +\t;Object \l;Category\u cbot\category; +\c;EnergySite\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/exchange.txt b/help/F/object/exchange.txt new file mode 100644 index 00000000..2cb763a7 --- /dev/null +++ b/help/F/object/exchange.txt @@ -0,0 +1,31 @@ +\b;\button 172; Information Exchange Post +\image info 8 8; +This building stores digital information. A post can contain up to 10 pieces of information, each one referenced by a name. +For example, a post can contain 3 informations¦:\c; +\tab;"Position.x" 23.45 +\tab;"Position.y" -102.70 +\tab;"Quantity" 3.00 +\n; +To put new information, you must execute the command \c;\l;send\u cbot\send;\n;. +To read information from a post, you must execute the command \c;\l;receive\u cbot\receive;\n;. + +\t;Requirements for building +Any flat surface of at least 2.5 meters wide. + +\t;Input +None. + +\t;Output +Digital information. + +\t;Power source +None. + +\t;Duration of operation +1 second. + +\t;Object \l;Category\u cbot\category; +\c;ExchangePost\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/factory.txt b/help/F/object/factory.txt new file mode 100644 index 00000000..cc86ca11 --- /dev/null +++ b/help/F/object/factory.txt @@ -0,0 +1,33 @@ +\b;\button 160; Bot Factory +\image factory 8 8; +This building is intended for the manufacturing of bots using \l;titanium\u object\titan;. + +1) Place the titanium cube inside the factory. +2) Step back out. +3) Select the factory. +4) Click on the button showing the diagram of the bot you want the factory to assemble (e.g. \button 137; for a \l;wheeled grabber\u object\botgr;). + +The finished bot does not include an onboard \l;power cell\u object\power;. You'll need to supply it with one for it to be able to leave the factory. + +The list of feasible bots will depend upon the research your \l;research center\u object\research; has completed at this time. + +\t;Requirements for building +Any flat surface of at least 7.5 meters wide. + +\t;Input +Titanium. + +\t;Output +Completed bot. + +\t;Power source +None. + +\t;Duration of operation +15 seconds. + +\t;Object \l;Category\u cbot\category; +\c;BotFactory\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/flag.txt b/help/F/object/flag.txt new file mode 100644 index 00000000..4740d2ff --- /dev/null +++ b/help/F/object/flag.txt @@ -0,0 +1,22 @@ +\b;Colored Flag +\image flag 4 4; +The colored flags are helpful to mark strategic locations or positions that \l;you\u object\human; will need to find again. Flags appear on the mini-map in the shape of a cross of the same color as the flag. + +Use the buttons \button 118; and \button 119; to plant and remove flags, the colors of which you can choose with the buttons above. + +When your mini-map is out of order, the fact that flags follow the direction of the wind can help you to find your way and not to walk around in circles. + +When programming, you can use flags to give a bot a reference to a certain position: the instruction \c;\l;radar\u cbot\radar;\n; allows bots to know the exact position of a flag of a given color. + +\t;Transport +Impossible. + +\t;Object \l;Category\u cbot\category; +\c;BlueFlag\n; +\c;RedFlag\n; +\c;GreenFlag\n; +\c;YellowFlag\n; +\c;VioletFlag\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/goal.txt b/help/F/object/goal.txt new file mode 100644 index 00000000..d59fa12f --- /dev/null +++ b/help/F/object/goal.txt @@ -0,0 +1,8 @@ +\b;Finishing Pad +The finishing pad is an objective to be reached in some exercises. + +\t;Object \l;Category\u cbot\category; +\c;GoalArea\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/human.txt b/help/F/object/human.txt new file mode 100644 index 00000000..399384af --- /dev/null +++ b/help/F/object/human.txt @@ -0,0 +1,19 @@ +\b;\button 136; Astronaut +\image human 8 8; +The astronaut is you within the game. + +If you die, the mission immediately fails. + +You can construct buildings with the help of the neutron gun holstered to your survival kit. The survival kit allows you, in most missions, to fly, thanks to the reactor placed underneath, or to swim with no time limit. You can carry most objects but the weight will slow down your movements considerably. Flying, swimming and walking underwater are also made impossible if you are carrying an object. The use of a \l;grabber\u object\botgr; or a \l;subber\u object\botsub; is advised for tasks such as these. + +You cannot carry \l;uranium ore\u object\uranore; because of the risks attached to radioactivity. + +A special button \button 111; allows you to ensure that the ground around you is flat. This is important since building is only possible on a flat surface. A flat surface is designated green while a sloping one is red. + +A button \button 118; allows you to mark a location with \l;flags\u object\flag; of various colors. This can help you not to get lost, to find important positions again, or to indicate a position to a bot. 5 flags of 5 different colors are at your disposal. You can remove a flag by using the next button \button 119; and store it for further use. + +\t;Object \l;Category\u cbot\category; +\c;Me\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/huston.txt b/help/F/object/huston.txt new file mode 100644 index 00000000..8bcaa64e --- /dev/null +++ b/help/F/object/huston.txt @@ -0,0 +1,11 @@ +\b;\button 176; Mission Control +\image huston 8 8; +Earth control center for all \l;your\u object\human; space missions. Though still named after the well-known mission control of the old days, "Houston" is actually located in the middle of the Nevada Desert, the new center for space exploration activities. + +The Mission Control Center watches over you day and night, and a whole team of scientists and engineers are working hard trying to find a solution to all the problems that you encounter. + +\t;Object \l;Category\u cbot\category; +\c;Houston\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/key.txt b/help/F/object/key.txt new file mode 100644 index 00000000..e21d292f --- /dev/null +++ b/help/F/object/key.txt @@ -0,0 +1,17 @@ +\b;Keys A, B, C and D +\image key 4 4; +The keys give \l;you\u object\human; access to the \l;vault\u object\safe;. You'll need 4 of them. + +o Key A, blue and triangle-shaped +o Key B, red and pentagon-shaped +o Key C, green and shaped like a 6-pointed star +o Key D, yellow and circular + +\t;Transport +All \l;grabbers\u object\botgr; and the \l;astronaut\u object\human;. + +\t;Objects \l;Category\u cbot\category; +\c;KeyA\n;, \c;KeyB\n;, \c;KeyC\n; and \c;KeyD\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/labo.txt b/help/F/object/labo.txt new file mode 100644 index 00000000..d6a03462 --- /dev/null +++ b/help/F/object/labo.txt @@ -0,0 +1,24 @@ +\b;\button 166; Autolab +\image labo 8 8; +The lab is intended for the analysis of \l;organic matter\u object\bullet;. It will help \l;you\u object\human; become familiar with the insects' very own technology and perhaps even use it to your advantage. Place a chunk of \l;organic matter\u object\bullet; on the platform, select the lab, and click the button corresponding to the desired research program. + +\t;Requirements for building +Any flat surface of at least 6 meters wide. + +\t;Input +Organic matter. + +\t;Output +New and improved technologies. + +\t;Power source +None. + +\t;Duration of operation +20 seconds. + +\t;Object \l;Category\u cbot\category; +\c;AutoLab\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/lrv.txt b/help/F/object/lrv.txt new file mode 100644 index 00000000..e4271afc --- /dev/null +++ b/help/F/object/lrv.txt @@ -0,0 +1,9 @@ +\b;Apollo Lunar Roving Vehicle + + + +\c;< no archive picture available >\n; + + + +The Lunar Jeep (LRV) was brought to the moon on July 30th 1971 by the astronauts David Scott and Jim Irwin from Apollo mission 15. Its batteries are still partly charged, which allows you to remote control it. But this old-fashioned technology will be of no use to you. diff --git a/help/F/object/mine.txt b/help/F/object/mine.txt new file mode 100644 index 00000000..6da1b95c --- /dev/null +++ b/help/F/object/mine.txt @@ -0,0 +1,14 @@ +\b;Mine +\image mine 8 8; +Mines were a defensive weapons system used by the first expedition. Because of the dangers this system causes for the mission itself, they are no longer used in your expedition. In some exercises mines are used to learn how to avoid obstacles. There is no way to remove them or to create new ones. + +With a \l;practice bot\u object\bottr;, don't get any closer than 2 meters to the position given by the instruction \l;radar\u cbot\radar;. + +\t;Transport +Impossible. + +\t;Object \l;Category\u cbot\category; +\c;Mine\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/mother.txt b/help/F/object/mother.txt new file mode 100644 index 00000000..bb26c86a --- /dev/null +++ b/help/F/object/mother.txt @@ -0,0 +1,15 @@ +\b;Alien Queen +\image mother 8 8; +This huge insect is the mother of them all. It lays \l;eggs\u object\egg; and from these eggs will hatch all the various kinds of insects \l;you\u object\human;'re likely to encounter. All of them are extremely hazardous to yourself and your mission. The queen's protective shell is particularly resistant to attack. + +It gives birth to the following insects : +o \l;ants\u object\ant; +o \l;spiders\u object\spider; +o \l;wasps\u object\wasp; +o \l;worms\u object\worm; + +\t;Object \l;Category\u cbot\category; +\c;AlienQueen\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/nest.txt b/help/F/object/nest.txt new file mode 100644 index 00000000..c14e16f2 --- /dev/null +++ b/help/F/object/nest.txt @@ -0,0 +1,8 @@ +\b;Nest +The alien nest is an odd structure out of which \l;organic matter\u object\bullet; erupts on a regular basis. \l;Wasps\u object\wasp; visit nests regularly to collect ammunition that they will use to bombard your bots, buildings and yourself. + +\t;Object \l;Category\u cbot\category; +\c;AlienNest\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/nuclear.txt b/help/F/object/nuclear.txt new file mode 100644 index 00000000..6d06b3f3 --- /dev/null +++ b/help/F/object/nuclear.txt @@ -0,0 +1,24 @@ +\b;\button 170; Nuclear Plant +\image nuclear 8 8; +The nuclear plant is a \l;nuclear power cell\u object\atomic; factory. It transforms a chunk of \l;uranium ore\u object\uranore; into a \l;nuclear power cell\u object\atomic; fully charged and ready for use. + +\t;Requirements for building +Any flat surface of at least 10 meters wide. + +\t;Input +Uranium ore. + +\t;Output +Nuclear power cell. + +\t;Power source +None. + +\t;Duration of operation +30 seconds. + +\t;Object \l;Category\u cbot\category; +\c;NuclearPlant\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/power.txt b/help/F/object/power.txt new file mode 100644 index 00000000..03e2bc2b --- /dev/null +++ b/help/F/object/power.txt @@ -0,0 +1,16 @@ +\b;Regular Power Cell +\image power 4 4; +A power cell supplies the bots and a few buildings with energy. + +An entirely red power cell is empty. The green section indicates the remaining capacity. A power cell can be recharged using a \l;power station\u object\station;. A \l;power plant\u object\energy; is needed to produce a new and fully charged power cell. + +The capacity of a regular power cell is 100 times smaller than that of a \l;nuclear power cell\u object\atomic; produced by a \l;nuclear plant\u object\nuclear; using \l;uranium ore\u object\uranore;. + +\t;Transport +All \l;grabbers\u object\botgr; and the \l;astronaut\u object\human;. + +\t;Object \l;Category\u cbot\category; +\c;PowerCell\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/radar.txt b/help/F/object/radar.txt new file mode 100644 index 00000000..453f2ea9 --- /dev/null +++ b/help/F/object/radar.txt @@ -0,0 +1,26 @@ +\b;\button 168; Radar +\image radar 8 8; +The radar indicates the direction of the nearest \l;enemy\u object\mother;. Moreover, the information given by the radar allows the mini-map at the bottom right corner of your screen to show the position of all bots, buildings and enemies as small squares and triangles of different colors. + +Radar stations also act as relays for communication with the Earth from distant planets. + +\t;Requirements for building +Any flat surface of at least 2.5 meters wide. + +\t;Input +None. + +\t;Output +Information for the mini-map. + +\t;Power source +None. + +\t;Duration of operation +Constant. + +\t;Object \l;Category\u cbot\category; +\c;RadarStation\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/repair.txt b/help/F/object/repair.txt new file mode 100644 index 00000000..4adac267 --- /dev/null +++ b/help/F/object/repair.txt @@ -0,0 +1,24 @@ +\b;\button 169; Repair Center +\image repair 8 8; +The repair center regenerates the shield on damaged bots. A bot's shield will absorb a certain amount of \l;enemy\u object\mother; hits. If there is no shield left, this means that the bot itself, when hit next, will be destroyed. + +\t;Requirements for building +Any flat surface of at least 6 meters wide. + +\t;Input +Damaged bot. + +\t;Output +Repaired bot with regenerated shield. + +\t;Power source +None. + +\t;Duration of operation +A few seconds depending on the repair job to be done. + +\t;Object \l;Category\u cbot\category; +\c;RepairCenter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/research.txt b/help/F/object/research.txt new file mode 100644 index 00000000..47e66333 --- /dev/null +++ b/help/F/object/research.txt @@ -0,0 +1,27 @@ +\b;\button 163; Research Center +\image research 8 8; +The research center is an enormous computer. Its most useful feature is its ability to come up with new technologies as well as improvements on existing ones regarding buildings and bots in particular. + +The 65'536 processors it contains use up a large amount of energy. +Each research program necessitates a brand new and fully charged \l;power cell\u object\power; + +\t;Requirements for building +Any flat surface of at least 5 meters wide. + +\t;Input +Request for research. + +\t;Output +New and improved technologies. + +\t;Power source +Regular or nuclear power cell. + +\t;Duration of operation +Between 9 seconds and 1 minute depending on the research. + +\t;Object \l;Category\u cbot\category; +\c;ResearchCenter\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/safe.txt b/help/F/object/safe.txt new file mode 100644 index 00000000..79bc849e --- /dev/null +++ b/help/F/object/safe.txt @@ -0,0 +1,9 @@ +\b;\button 175; Vault +\image safe 8 8; +This dome-shaped building was conceived by the first expedition. Its purpose was to offer protection to a new type of advanced bot. To protect it from insect attacks, the vault was locked by 4 \l;keys\u object\key;. Only after you find the 4 keys and place each one of them on their corresponding slots will you be given access to the bot. + +\t;Object \l;Category\u cbot\category; +\c;Vault\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/spider.txt b/help/F/object/spider.txt new file mode 100644 index 00000000..7e65b27b --- /dev/null +++ b/help/F/object/spider.txt @@ -0,0 +1,9 @@ +\b;Spider +\image spider 8 8; +Spiders work like suicide commandoes: whenever a spider gets within a close enough range of its target, it inflates its abdomen and bursts into a multitude of tiny burning fragments. These fragments will set fire to everything they get in contact with. Luckily the spider won't survive. + +\t;Object \l;Category\u cbot\category; +\c;AlienSpider\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/start.txt b/help/F/object/start.txt new file mode 100644 index 00000000..a4523e12 --- /dev/null +++ b/help/F/object/start.txt @@ -0,0 +1,8 @@ +\b;Starting Pad +The starting pad is a platform used in some exercises. + +\t;Object \l;Category\u cbot\category; +\c;StartArea\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/station.txt b/help/F/object/station.txt new file mode 100644 index 00000000..17ad780d --- /dev/null +++ b/help/F/object/station.txt @@ -0,0 +1,28 @@ +\b;\button 164; Power Station +\image station 8 8; +The power station extracts energy from the underground and recharges \l;regular power cells\u object\power; through induction. To recharge a power cell loaded at the back of a bot, just move the bot to the center of the platform and wait a few seconds. A \l;power cell\u object\power; carried at arm's length can also be recharged. \l;Nuclear power cells\u object\atomic; are non-rechargeable. + +A power plant needs some energy in the subsoil. If the satellite report says that energy is available only at some places, you will need a \l;sniffer bot\u object\botsr; to prospect the subsoil. The marks it lays down provide information about the specifics of its findings: a \l;green cross\u object\enerspot; means that there is an energy deposit at this location beneath the surface, which is indispensable to the construction of a power station or a \l;power plant\u object\energy;. + +The large power cell at the top of the station remaining red after the construction is completed can only mean that the site is not geologically adequate. + +\t;Requirements for building +Any flat and geologically adequate surface at least 6 meters wide. + +\t;Input +Empty power cell. + +\t;Output +Recharged power cell. + +\t;Power source +Subsoil energy. + +\t;Duration of operation +A few seconds, depending on the capacity to be recharged. + +\t;Object \l;Category\u cbot\category; +\c;PowerStation\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/stonspot.txt b/help/F/object/stonspot.txt new file mode 100644 index 00000000..2c9f4deb --- /dev/null +++ b/help/F/object/stonspot.txt @@ -0,0 +1,14 @@ +\b;Underground Titanium Deposit +\image stonspot 4 4; +A red cross reveals the presence of a stratum of \l;titanium ore\u object\titanore; in the subsoil. It will be possible to extract it using a \l;derrick\u object\derrick;. + +A \l;sniffer\u object\botsr; will lay down a red cross each time it uncovers a deposit. \l;Sniffer bots\u object\botsr; can also detect the presence of \l;uranium ore\u object\uranore; as indicated by a \l;yellow circle\u object\uranspot; and of energy as indicated by a \l;green cross\u object\enerspot;. + +\t;Transport +Impossible. + +\t;Object \l;Category\u cbot\category; +\c;TitaniumSite\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/titan.txt b/help/F/object/titan.txt new file mode 100644 index 00000000..2e0d306d --- /dev/null +++ b/help/F/object/titan.txt @@ -0,0 +1,14 @@ +\b;Titanium +\image titan 4 4; +Titanium is indispensable for the construction of buildings, \l;bots\u object\factory; and \l;regular power cells\u object\energy;. There is usually some left on the \l;spaceship\u object\base; when you embark on a new mission. + +If more is needed, you'll have to \l;convert\u object\convert; chunks of \l;titanium ore\u object\titanore; into usable titanium cubes. + +\t;Transport +All \l;grabbers\u object\botgr; and the \l;astronaut\u object\human;. + +\t;Object \l;Category\u cbot\category; +\c;Titanium\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/titanore.txt b/help/F/object/titanore.txt new file mode 100644 index 00000000..a42551d3 --- /dev/null +++ b/help/F/object/titanore.txt @@ -0,0 +1,14 @@ +\b;Titanium Ore +\image titanore 4 4; +\l;Titanium\u object\titan; is indispensable for the construction of buildings, \l;bots\u object\factory; and \l;regular power cells\u object\energy;. The titanium \l;you\u object\human; see in its usable, cube shaped form has been \l;converted\u object\convert; from raw chunks of titanium ore. + +Titanium ore can be found either directly on the surface or in the subsoil. In the latter case, it needs to be first located and identified by a \l;sniffer\u object\botsr;, then extracted using a \l;derrick\u object\derrick;. If a sniffer identifies a titanium ore deposit, it lays down a \l;red cross\u object\stonspot;. + +\t;Transport +All \l;grabbers\u object\botgr; and the \l;astronaut\u object\human;. + +\t;Object \l;Category\u cbot\category; +\c;TitaniumOre\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/tnt.txt b/help/F/object/tnt.txt new file mode 100644 index 00000000..264d5acf --- /dev/null +++ b/help/F/object/tnt.txt @@ -0,0 +1,12 @@ +\b; Explosive (TNT) +\image tnt 4 4; +A TNT charge is extremely sensitive. You should approach it with caution so as not to hit it or give it any kind of shock. The risk is minimized once the explosive is within a \l;grabber\u object\botgr;'s grasp. + +\t;Transport +All \l;grabbers\u object\botgr; and the \l;astronaut\u object\human;. + +\t;Object \l;Category\u cbot\category; +\c;TNT\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/tower.txt b/help/F/object/tower.txt new file mode 100644 index 00000000..27443a6d --- /dev/null +++ b/help/F/object/tower.txt @@ -0,0 +1,22 @@ +\b;\button 165; Defense Tower +\image tower 8 8; +The tower constitutes the best defense against \l;enemy\u object\mother; attacks, whether they originate on the ground or from the skies. + +The tower requires either a \l;regular\u object\power; or a \l;nuclear\u object\atomic; power cell. A regular power cell provides a capacity for 8 shots. A nuclear power cell is of course preferable. The tower starts blinking when it runs out of power. + +The range is 40 meters. To visualize it, select the tower then hit the button \button 41;. Red dots outline the circular zone for 20 seconds. + +\t;Requirements for building +Any flat surface of at least 3.5 meters wide. + +\t;Power source +Regular or nuclear power cell. + +\t;Duration of operation +1 second. + +\t;Object \l;Category\u cbot\category; +\c;DefenseTower\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/uranore.txt b/help/F/object/uranore.txt new file mode 100644 index 00000000..354f2a25 --- /dev/null +++ b/help/F/object/uranore.txt @@ -0,0 +1,16 @@ +\b;Uranium Ore +\image uranore 4 4; +Uranium ore is essential to the production of \l;nuclear power cells\u object\atomic;. + +It is to be found on the surface or in the subsoil. In the latter case, it needs to be first located and identified by a \l;sniffer\u object\botsr;, then extracted using a \l;derrick\u object\derrick;. If a sniffer identifies a deposit of uranium ore, it lays down a \l;yellow circle\u object\uranspot;. + +A \l;nuclear plant\u object\nuclear; will then take care of converting the chunk into a new and fully charged \l;nuclear power cell\u object\atomic;. + +\t;Transport +All \l;grabbers\u object\botgr;. Due to its radioactivity, the \l;astronaut\u object\human; can not transport it. + +\t;Object \l;Category\u cbot\category; +\c;UraniumOre\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/uranspot.txt b/help/F/object/uranspot.txt new file mode 100644 index 00000000..2f90e070 --- /dev/null +++ b/help/F/object/uranspot.txt @@ -0,0 +1,15 @@ +\b; Underground Uranium Deposit +\image uranspot 4 4; +A yellow circle reveals the presence of a stratum of \l;uranium ore\u object\uranore; in the subsoil. It will be possible to extract it using a \l;derrick\u object\derrick;. + +A \l;sniffer\u object\botsr; will lay down a yellow circle each time it uncovers a deposit. \l;Sniffer bots\u object\botsr; can also detect the presence of \l;titanium ore\u object\titanore; as indicated by a \l;red cross\u object\stonspot; and of energy as indicated by a \l;green cross\u object\enerspot;. + + +\t;Transport +Impossible. + +\t;Object \l;Category\u cbot\category; +\c;UraniumSite\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/wasp.txt b/help/F/object/wasp.txt new file mode 100644 index 00000000..19c70649 --- /dev/null +++ b/help/F/object/wasp.txt @@ -0,0 +1,11 @@ +\b;Wasp +\image wasp 8 8; +The wasp is a formidable enemy, very hard to shoot down since its flying is particularly swift. Wasps carry balls of \l;organic matter\u object\bullet; that they will hurl at your bots and buildings and at yourself from above. + +The \l;defense tower\u object\tower; is the easiest way to get rid of them. + +\t;Object \l;Category\u cbot\category; +\c;AlienWasp\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/waypoint.txt b/help/F/object/waypoint.txt new file mode 100644 index 00000000..e3d322c0 --- /dev/null +++ b/help/F/object/waypoint.txt @@ -0,0 +1,12 @@ +\b;Checkpoint +\image waypoint 4 4; +In the exercises, blue crosses indicate positions that have to be crossed. They disappear as soon as a \l;practice bot\u object\bottr; crosses them. + +\t;Transport +Impossible. + +\t;Object \l;Category\u cbot\category; +\c;WayPoint\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/worm.txt b/help/F/object/worm.txt new file mode 100644 index 00000000..8644162b --- /dev/null +++ b/help/F/object/worm.txt @@ -0,0 +1,11 @@ +\b;Worm +\image worm 8 8; +Worms transmit viruses to programmed bots. The virus alters the programming to such an extent that the bot either functions in a very erratic way or stops functioning altogether. + +Worms live in the subsoil but sometimes emerge and crawl on the surface. When they are underground they are undetectable and indestructible. + +\t;Object \l;Category\u cbot\category; +\c;AlienWorm\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/object/wreck.txt b/help/F/object/wreck.txt new file mode 100644 index 00000000..dd0315e6 --- /dev/null +++ b/help/F/object/wreck.txt @@ -0,0 +1,10 @@ +\b;Derelict bot +A derelict bot is what's left of a bot after it has been disabled by a \l;spider\u object\spider; or by friendly fire. + +A \l;recycler\u object\botrecy; can convert a derelict bot back into a reusable \l;titanium cube\u object\titan;. + +\t;Object \l;Category\u cbot\category; +\c;Wreck\n; + +\t;See also +\l;CBOT Language\u cbot;, \l;Variables\u cbot\type; and \l;Categories\u cbot\category;. diff --git a/help/F/tant1.txt b/help/F/tant1.txt new file mode 100644 index 00000000..950b9bac --- /dev/null +++ b/help/F/tant1.txt @@ -0,0 +1,16 @@ +\b;Objective +As a defense against several giant ants attacking from the north, rotate the bot when shooting in order to perform barrage fire. + +\t;Program +When you are radio-guiding a bot, you can rotate the cannon during the burst in order to sweep a whole zone. You can also do this when programming the bot, but you have to turn the whole bot with the instruction \c;\l;motor\u cbot\motor;( , )\n;. This instruction asks for two numbers: the speed of the left-hand motor, and the speed of the right-hand motor. These numbers must range between -1 and +1.\c; motor(1,1);\n; moves the bot forward with maximum speed (both motors at full power).\c; motor(-1,-1);\n; moves the bot backward with maximum speed.\c; motor(1,0.9);\n; moves the bot forward with a slight turn to the right: the left-hand motor turns a little faster than the right-hand motor. And \c;motor(1,-1);\n; will turn the bot clockwise on the spot: the left-hand motor moves forward, the right-hand motor moves backward. + +After a \l;motor\u cbot\motor; instruction the motors will keep this speed until the next \c;motor\n;, \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n; or \c;\l;goto\u cbot\goto;\n; instruction. For example, if you perform a rotation on the spot with \c;motor(1,-1);\n; and afterward you shoot with \c;fire(1);\n;, the bot will continue to turn during the burst, and will sweep a whole zone. + +The ants attack from the north. In order to sweep the whole zone north of the bot, first turn 90 degrees left with \c;turn(90);\n;, then repeat always with \c;\l;while\u cbot\while; (true)\n; the following instructions: +o rotate clockwise with \c;motor(1,-1);\n; +o a 2 seconds burst with \c;fire(2);\n; +o rotate counter-clockwise with \c;motor(-1,1);\n; +o a 2 seconds burst. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/tant2.txt b/help/F/tant2.txt new file mode 100644 index 00000000..a775f77f --- /dev/null +++ b/help/F/tant2.txt @@ -0,0 +1,33 @@ +\b;Objective +As a defense against ants attacking from all sides, adapt the program \c;Spider2\n; in order to fly at a given altitude. + +\t;Program +The program necessary for this task is somewhat similar to the program \c;Spider2\n; that looks for the closest ant, turns towards it and fires: +\c; +\s;extern void object::Spider2() +\s;{ +\s; object item; +\s; +\s; while (true) +\s; { +\s; item = radar(AlienSpider); +\s; turn(direction(item.position)); +\s; fire(1); +\s; } +\s;} +\n; +You can copy-paste it to the editor, and adapt it. Replace \c;radar(AlienSpider);\n; by \c;radar(AlienAnt);\n;, and write before the \c;while\n; loop another loop that activates the jet beneath the \l;winged shooter\u object\botfj; until the bot reaches an altitude of 20 meters. + +The instruction \c;\l;jet\u cbot\jet;()\n; controls the jet beneath winged bots. The number in brackets must range between \c;-1\n; and \c;1\n;.\c; jet(1);\n; moves the bot upward with maximum speed.\c; jet(-1);\n; moves the bot downward with maximum speed, and \c;jet(0);\n; stabilizes the altitude. As the bot must reach a precise altitude, move it upward slowly with \c;jet(0.2);\n;, wait until it has reached the desired height, then stabilize the altitude with \c;jet(0);\n;. + +In order to "wait until it has reached the desired height", we need a conditional loop: the instructions inside the loop will be repeated only as long as a certain condition is true. The altitude of the bot is given by \c;position.z\n;. We already saw that \c;position\n; gives the position of the bot. And a position is given by the three coordinates x, y and z: the x-axis is the axis west-east, the y-axis is the axis south-north, and the z-axis is the vertical axis. Therefore we must wait while \c;position.z\n; is smaller than 20: +\c; +\s; while (position.z < 20) +\s; { +\s; wait(0.2); +\s; } +\n; +After waiting 0.2 seconds, the program will check if the altitude is still below 20 meters. If this is the case, it will wait a little more, if not, the program continues after the loop, i.e. after the closing brace \c;}\n;. Do not forget after the loop to stabilize the altitude with \c;jet(0);\n;. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/tant3.txt b/help/F/tant3.txt new file mode 100644 index 00000000..0798edad --- /dev/null +++ b/help/F/tant3.txt @@ -0,0 +1,40 @@ +\b;Objective +Adapt the program \c;Tower1\n; in order to avoid wasting energy when shooting at ants that are out of range. + +\t;Program +The program \c;Tower1\n; shoots in the direction of the closest ant, even if it is still out of range: +\c; +\s;extern void object::Tour1() +\s;{ +\s; object item; +\s; +\s; jet(0.2); +\s; while(position.z < 20) +\s; { +\s; wait(0.2); +\s; } +\s; jet(0); +\s; +\s; while(true) +\s; { +\s; item = radar(AlienAnt); +\s; turn(direction(item.position)); +\s; fire(1); +\s; } +\s;} +\n; +If the bot must perform the same task than before with only a \l;regular power cell\u object\power;, you can insert a loop that waits until the ant is close enough, i.e. until the ant is at less than 40 meters. Only one burst will be needed for every ant then. + +You can give the instruction \c;\l;radar\u cbot\radar();\n; more parameters (numbers) indicating where the radar should look for the ants. For example \c;radar(AlienAnt,0,360,0,40);\n; will only look for ants that are closer than 40 meters. The two first numbers tell the radar to search in all directions, the two last numbers tell the radar to detect only ants that are at a distance between 0 and 40 meters. If no ant is found that is closer than 40 meters, the instruction \c;\l;radar\u cbot\radar();\n; returns the value \c;null\n;. We can then write a conditional loop similar to the one written in the last exercise that waits as long as there is no ant closer than 40 meters: +\c; +\s; while (radar(AlienAnt, 0, 360, 0, 40) == null) +\s; { +\s; wait(0.2); +\s; } +\n; +Notice that two equal signs "==" are needed to perform a comparison of equality. + +Just insert these lines before the instruction \c;fire(0);\n;, and the bot will wait before shooting until the ant is closer than 40 meters. Like this a regular power cell is enough to kill all ants. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/tant4.txt b/help/F/tant4.txt new file mode 100644 index 00000000..7c58831f --- /dev/null +++ b/help/F/tant4.txt @@ -0,0 +1,10 @@ +\b;Objectif +Program a \l;winged shooter\u object\botfj; to hunt all ants in the region. + +\t;Program +In this swamp, a wheeled or tracked shooter is of little use. And ants, in opposition to spiders, keep moving: you can not just turn towards the closest ant, move forward and shoot. + +The easiest way to solve the problem consists in flying at a height of 10 meters, aiming downward with \c;aim(-20);\n;, and approaching the ant with a conditional loop as long as the \l;distance\u cbot\dist; is greater than 20m. In this conditional loop, you must look for the closest ant, turn towards it, set the motors at full speed with \c;motor(1,1);\n;, and wait a little, for example 0.2 seconds. All these instructions must be repeated until the ant is at less than 20 meters. Then just shoot it. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/tant5.txt b/help/F/tant5.txt new file mode 100644 index 00000000..e822f2fb --- /dev/null +++ b/help/F/tant5.txt @@ -0,0 +1,52 @@ +\b;Objective +Adapt the flying height of the \l;winged shooter\u object\botfj; to the terrain. + +\t;Program +Here is one more time the program of the previous exercise that hunts ants: +\c; +\s;extern void object::JetFighter1() +\s;{ +\s; object item; +\s; +\s; aim(-20); +\s; jet(0.2); +\s; while (position.z < 10) +\s; { +\s; wait(0.2); +\s; } +\s; jet(0); +\s; +\s; while (true) +\s; { +\s; while (radar(AlienAnt, 0, 360, 0, 20) == null) +\s; { +\s; item = radar(AlienAnt); +\s; turn(direction(item.position)); +\s; motor(1,1); +\s; wait(0.2); +\s; } +\s; fire(1); +\s; } +\s;} +\n; +The bot always stays at an altitude of 10m above sea level. This is not adapted to the mountainous terrain of the present exercise, the bot has got to adapt to the terrain. The best way to do so is to insert just before the \c;wait(0.2);\n; a test to see if the height above ground is too low or too high, and to react accordingly. + +We already saw that \c;position.z\n; gives the altitude above sea level. \c;\l;topo\u cbot\topo;(position)\n; gives the altitude of the ground at the position of the bot. If we want the bot to stay at an altitude between 6 and 9m above ground, we must treat the following cases: if \c;position.z-topo(position)\n; is smaller than 6, the bot must climb with \c;jet(1);\n;. If \c;position.z-topo(position)\n; is greater than 9, the bot must go down with \c;jet(-1);\n;. In order to program these tests, use the instruction \c;\l;if\u cbot\if;\n;, that executes the instructions in braces only once if the condition is true: +\c; +\s; jet(0); +\s; if (position.z-topo(position) < 6) +\s; { +\s; jet(1); +\s; } +\s; +\s; if (position.z-topo(position) > 9) +\s; { +\s; jet(-1); +\s; } +\n; +Before starting the testing, stabilize the altitude with \c;jet(0);\n;: in case the height above ground lies between 6 and 9m, the bot must neither climb nor go down. If afterwards either \c;jet(1);\n; or \c;jet(-1);\n; is executed, it will cancel the previous \c;jet(0);\n;. + +Just insert these lines before the \c;wait(0.2)\n;, and the bot will adapt to the terrain. You can then delete the first lines of the program that set the initial altitude at 10m. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/tcell1.txt b/help/F/tcell1.txt new file mode 100644 index 00000000..f001d85c --- /dev/null +++ b/help/F/tcell1.txt @@ -0,0 +1,38 @@ +\b;Objective +Program the \l;grabber bot\u object\botgr; to change the \l;power cell\u object\power; of the \l;winged shooter\u object\botfj;. The winged shooter can then shoot the spiders. + +\t;Procedure +1) Program the \l;grabber bot\u object\botgr;. +2) Execute the program with the arrow button \button 21;. +The \l;winged shooter\u object\botfj; is already programmed, it will do its job as soon as it has got a new power cell. + +\t;Program +You will need the following instructions: +\c; +\s;grab();\n; +\n;Takes whatever there is in front of the bot. +\c; +\s;drop();\n; +\n;Drops whatever the bot is carrying in front. +\c; +\s;turn();\n; +\n;We have seen this instruction already in the previous exercise: it performs a rotation of a certain angle, given in degrees. + +Let us see the beginning of the program: +o pick up the empty power cell with \c;grab();\n; +o turn left 90 degrees (quarter turn) with \c;turn(90)\n; +o drop the empty cell with \c;drop();\n; +o etc. + +It is up to you now to write the rest of the program! + +If you have got a problem, you can always look at the solution: select the \c;Solution\n; program, and click the braces button \button 22;. + +\t;Remarks +Be careful to write the instructions precisely, respecting lower and upper case letters. + +Always write one instruction per line, finishing each line with a semicolon. + +In case your program does not do exactly what you wanted, you can put the bot back at the starting point with the button \button 59;. You can also start over again from the beginning (hit the key "Esc", the click "Restart"). The program you have written will not be lost. + +\key;\key help;\norm; allows you to review these instructions at all times. diff --git a/help/F/tcell2.txt b/help/F/tcell2.txt new file mode 100644 index 00000000..6d989599 --- /dev/null +++ b/help/F/tcell2.txt @@ -0,0 +1,48 @@ +\b;Objective +Power the \l;winged shooters\u object\botfj; with \l;power cells\u object\power;, so that they can kill the ants in the ant nest located in a hole north of your position. + +\t;Program +The \l;wheeled grabber\u object\botgr; must go to a \l;power cell\u object\power;, grab it, go to a \l;winged shooter\u object\botfj;, and drop the cell. This task is very similar to the task performed in the previous exercise. Here is this program again: +\c; +\s;extern void object::Titanium2() +\s;{ +\s; object item; +\s; +\s; item = radar(TitaniumOre); +\s; goto(item.position); +\s; grab(); +\s; +\s; item = radar(Converter); +\s; goto(item.position); +\s; drop(); +\s;} +\n; +The best way to solve the present exercise is to copy \button 61; the program above into the clipboard (from \c;object\n; to \c;drop();\n;), and paste \button 62; it into the program editor. Then you just have to make the necessary changes in order to adapt it to the new task. + +Instead of looking for titanium ore (\c;TitaniumOre\n;), look for a power cell (\c;PowerCell\n;). Instead of going to a converter (\c;Converter\n;), go to a winged shooter (\c;WingedShooter\n;). As soon as the winged shooter has got a new power cell, it will get down to work. + +If you want to know more about the "names" of the different objects in the programming language, please refer to the \l;text about categories\u cbot\category;. + +\t;Further improvement: loops +Once the program explained above works properly, you can improve it in order to repeat the task over and over again. Like this you will not have to execute the program several times in order to power several bots. + +All programs written until now execute all instructions only once, one after another, from the beginning to the end of the program. You can also tell the bot to repeat some instructions: just write \c;while (true)\n;, an open brace, the instructions to be repeated, and a closing brace. Repeating some instructions several times in this way is called a loop. Here is an example of a program that repeats over and over the instructions that look for a power cell, grab it, and drop it on a winged shooter: +\c; +\s; while (true) +\s; { +\s; item = radar(PowerCell); +\s; goto(item.position); +\s; grab(); +\s; +\s; item = radar(WingedShooter); +\s; goto(item.position); +\s; drop(); +\s; } +\n; +Of course the variable declaration \c;object item;\n; must not be inside the loop, but just before: declare a variable only once. + +\t;Remark +A bot can execute a program perfectly well on his own. Meantime you can for example select the astronaut and take a look at what is happening at the nest, the show is worth it. But be careful not to get shot by your own bots... + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/tchasse.txt b/help/F/tchasse.txt new file mode 100644 index 00000000..eb807f5a --- /dev/null +++ b/help/F/tchasse.txt @@ -0,0 +1,18 @@ +\b;Exercise +You must find a way to destroy the four moving \l;target bots\u object\bottarg; without wasting one shot. Notice that after every move, the targets will stay motionless during one second. + +\b;General principle +1) Detect a target with the instruction \c;\l;radar\u cbot\radar;(TargetBot);\n;. +2) Turn towards the target with \c;\l;turn\u cbot\turn;(direction());\n;. +3) After the rotation, check if the target did not move. +4) If it did not, wait 0.2 seconds with \c;\l;wait\u cbot\wait;(0.2);\n;. +5) Re-check if the target did not move. +6) If it did not, shoot with \c;\l;fire\u cbot\fire;(2);\n; and wait 2 seconds for the target to be hit by the bullets and destroyed. + +There are of course other ways to achieve the goal. + +\b;Remark +In order to increase the efficiency of your shots, aim a little downward with \c;\l;aim\u cbot\aim;(-3);\n;. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/tdragst.txt b/help/F/tdragst.txt new file mode 100644 index 00000000..38b62d30 --- /dev/null +++ b/help/F/tdragst.txt @@ -0,0 +1,64 @@ +\b;Exercise +Reach the finishing pad (25m in front of you) as fast as possible, using the instruction \c;motor( , )\n;. You will have to slow down progressively at the end of the move, otherwise the bot will get blown up on the \l;mines\u object\mine;. + +You could very well write no more than \c;\l;move\u cbot\move;(25);\n;, this would work perfectly well. However, the aim of this exercise is to learn how to use the instruction \c;\l;motor\u cbot\motor;\n;. + +This instruction asks for two values: +1) The speed of the left-hand motor. +2) The speed of the right-hand motor. + +\s;\c; motor( left, right ); +\n; +The values must range between -1 and 1: +-1 = full throttle backward + 0 = stop + 1 = full throttle forward + +For example, \c;motor(0.5, 0.5);\n; will move the motor forward with half-speed, until new instructions are given to the motors. + +With the instruction \c;motor(0.5, 0.6);\n;, the bot will move forward with half-speed, turning at the same time slightly to the left: the right-hand motor moves a little faster (\c;0.6\n;) than the left-hand motor (\c;0.5\n;). + +\b;General principle +In order to move forward for exactly 25 meters and not more, you must move full speed during the first 23 meters, then reduce the speed of the motors progressively during the last two meters. +The \l;variable\u cbot\var; \l;position\u cbot\object; gives you at any moment the current position of the bot, and the instruction \c;\l;distance\u cbot\dist;( , );\n; returns the distance between two points. The best way to know where you are consists in saving the current position before the start into a \l;variable\u cbot\var;, for example a variable called \c;start\n;. Then you can calculate the distance between the starting position and your current position with \c;distance(position, start)\n;. + +\b;The program +1) declare the variables +\s;\c; point start; +\s; float len; +\n; +2) save the starting position +\s;\c; start = position; +\n; +3) start full throttle : +\s;\c; motor(1, 1); +\n; +4) Perform an infinite \c;\l;while\u cbot\while;\n; loop: +\s;\c; while ( true ) +\s; { +\s; len = distance(position, start); +\s; if ( len > 25-2 ) +\s; { +\s; motor( less than before ! ); +\s; } +\s; } +\n; +As long as the distance between the start and the current position is smaller than 23m, the instruction in braces after the \c;\l;if\u cbot\if;\n; instruction will not be executed, so the motors keep their maximum speed as they were told by the \c;\l;motor\u cbot\motor;(1,1);\n; instruction. + +In order to slow down progressively, the speed of the motors must be proportional to the remaining distance: +o \c;2.0\n; meters left -> speed = \c;1.00\n; (maximum) +o \c;1.5\n; meters left -> speed = \c;0.75\n; +o \c;1.0\n; meter left -> speed = \c;0.50\n; +o \c;0.5\n; meter left -> speed = \c;0.25\n; +o \c;0.0\n; meter left -> speed = \c;0.00\n; (stop) + +\image tdragst1 12 6; +You can use the following \l;expression\u cbot\expr; \c;(25-len)/2\n; in order to calculate the value for the speed instruction that must be given to the motors. + +It is now up to you to put everything together and to test the program. + +\b;Remark +You can use values greater than 1 for the instruction \c;\l;motor\u cbot\motor;();\n;, but the bot will not move any faster. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/texch1.txt b/help/F/texch1.txt new file mode 100644 index 00000000..914ba70f --- /dev/null +++ b/help/F/texch1.txt @@ -0,0 +1,31 @@ +\b;Exercise +Several \l;information exchange posts\u object\exchange; stand in the middle of a \l;mine\u object\mine; field. When the bot is close enough to an exchange post, it can read the information that it contains. Every exchange post contains the angle of the rotation that must be performed in order to reach the next exchange post, without touching a \l;mine\u object\mine;. +The exchange posts are distant 20m from each other. + +\b;General principe +Repeat 5 times : + o Move 20m forward. + o Read the direction of the next \l;information exchange post\u object\exchange;. + o Execute the necessary rotation. + +\image tinfo1 8 8; +In order to repeat the steps above, use a \c;\l;for\u cbot\for;\n; loop, as we saw it before. +\s;\c; for ( int i=0 ; i<5 ; i=i+1 ) +\n; +Move forward with the instruction \c;move(20);\n;. + +Use the instruction \c;\l;receive\u cbot\receive;("Direction");\n; in order to read the information contained in the \l;exchange post\u object\exchange;. This is of course possible only when the bot is close enough to the exchange post. +You will need a \l;variable\u cbot\var; to contain the value retrieved from the exchange post. Let us call it \c;dir\n;; you must declare it with the following line: +\s;\c; float dir; +\n; +Then retrieve the rotation angle from the exchange post, and put it into the variable: +\s;\c; dir = receive(...); +\n; +Then you can execute the rotation: +\s;\c; turn(dir); +\n; +\b;Remark +You can click on an \l;information exchange post\u object\exchange; in order to read what information it contains. In this exercise, every exchange post contains only one value called \c;"Direction"\n;, but it can contain up to 10 different values, as you will see in some of the following exercises. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/texch2.txt b/help/F/texch2.txt new file mode 100644 index 00000000..842770cf --- /dev/null +++ b/help/F/texch2.txt @@ -0,0 +1,36 @@ +\b;Exercise +In this exercise, the \l;information exchange posts\u object\exchange; along the way contain the direction of the next post and the distance. And you do not know how many exchange posts you must get in touch with before arriving at your goal. + +\b;General principle + Repeat forever: + o Retrieve the direction from the \l;exchange post\u object\exchange;. + o Retrieve the distance from the \l;exchange post\u object\exchange;. + o If no information could be retrieved, stop the program. + o Execute the rotation. + o Move forward to the next post. + +In order to repeat always, use a \c;\l;while\u cbot\while; (true)\n; loop. The instructions between the braces \c;{ }\n; will be repeated over and over, or until a \c;\l;break\u cbot\break;\n; instruction is executed. +\s;\c; while ( true ) +\n; +This time you need 2 \l;variables\u cbot\var;, one for the rotation angle, one for the distance, for example \c;dir\n; and \c;len\n; : +\s;\c; float dir, len; +\n; +Then you can retrieve the information: +\s;\c; dir = receive("Direction"); +\s;\c; len = receive("Length"); +\n; +A variable of the \l;type\u cbot\type; \c;\l;float\u cbot\float;\n; can take a special value called \c;\l;nan\u cbot\nan;\n;. This value means that the variable contains no number (Not A Number). +When there is no \l;exchange post\u object\exchange; nearby, either because the bot has reached the goal, or because it took the wrong way, the two variables \c;dir\n; and \c;len\n; contain this value. You can test this with the instruction \c;\l;if\u cbot\if;\n;, and stop the program if necessary with the instruction \c;\l;break\u cbot\break;\n;: +\s;\c; if ( dir == nan ) break; +\n; +If the information retrieval from the \l;exchange post\u object\exchange; has been performed successfully, execute the rotation: +\s;\c; turn(dir); +\n; +And move forward: +\s;\c; move(len); +\n; +\b;Remark +You can click on an \l;information exchange post\u object\exchange; in order to read what information it contains. In this exercise, every exchange post contains two values called \c;"Direction"\n; and \c;"Length"\n;. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/tfollow1.txt b/help/F/tfollow1.txt new file mode 100644 index 00000000..25f6fb93 --- /dev/null +++ b/help/F/tfollow1.txt @@ -0,0 +1,62 @@ +\b;Exercise +You must follow the \l;target bot\u object\bottr; with the explosive device, but without touching it, otherwise it will blow up. Every time the target bot stops, you must be close to it (less than 10m). After you managed to stay close to the target bot at 10 successive stops, it will lead you to the finishing pad, and the exercise is over. At every stop, the target bot checks that you are there. If you are not there, you must start over again. + +\b;General principle +Repeat forever : +o Look for the target bot. +o Calculate the distance to the bot. +o if the distance to the target bot is less than 5m, move backward. +o Otherwise, calculate the direction of the target bot, and move towards it. + +As many times before, use \c;\l;while\u cbot\while; (true)\n; in order to perform the infinite loop: +\s;\c;while (true) +\s;{ +\s; \n;instructions to be repeated ...\c; +\s;} +\n; +Look for the target bot with the instruction \c;\l;radar\u cbot\radar;\n;: +\s;\c; target = radar(TargetBot); +\n; +You do not have to test if the radar found a target bot: there must be one. + +Use the instruction \c;\l;distance\u cbot\dist;( , )\n; to calculate the distance between two points. The first point will be the position of your own bot, given by \c;position\n;. The second point is the position of the target bot, given by \c;target.position\n;. +\s;\c;len = distance(position, target.position); +\n; +If the distance to the target bot is smaller than 5m, move backward with a speed inversely proportional to the distance: the closer you are to the bot, the faster you must move backward. + Distance = 5.0 meters -> speed = 0.0 + Distance = 2.5 meters -> speed = -0.5 + Distance = 0.0 meters -> speed = -1.0 +You can use the \l;expression\u cbot\expr; \c;distance/5-1\n; in order to achieve this, together with the \c;\l;if\u cbot\if;\n; to test if the target is closer than 5m: +\s;\c;if ( len < 5 ) // too close ? +\s;{ +\s; motor(len/5-1, len/5-1); // moves backward +\s;} +\n; +If the distance to the target is greater than 5m, move towards the target. First calculate the angle necessary to face the target with the instruction \c;\l;direction\u cbot\direct;\n;. You can then adjust the speed of the right-hand and left-hand motor in order to follow the target: +\s;\c;else +\s;{ +\s; dir = direction(target.position); +\s; if ( dir >= 0 ) // target on the left side? +\s; { +\s; motor(1-dir/90, 1); +\s; } +\s; else // target on the right side? +\s; { +\s; \n;it is up to you to fill in\c; +\s; } +\s;} +\n; +When the target is on your left, \c;dir\n; takes a positive value, ranging between 0 and 180. The \l;expression\u cbot\expr; \c;1-dir/90\n; returns a speed ranging between 1 and -1, according to the direction: + direction = 0 -> speed = 1.0 + direction = 45 -> speed = 0.5 + direction = 90 -> speed = 0.0 + direction = 135 -> speed = -0.5 + direction = 180 -> speed = -1.0 + +\image radar2 14 10; +When the target is on the right side, \c;dir\n; is negative, ranging between 0 and -180. + +The only task left for you now is to declare the \l;variables\u cbot\var; that you use in the program. \c;target\n; is of type \c;object\n;, whereas \c;dir\n; and \c;len\n; are of type \c;float\n;. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/tfor.txt b/help/F/tfor.txt new file mode 100644 index 00000000..07285d69 --- /dev/null +++ b/help/F/tfor.txt @@ -0,0 +1,57 @@ +\b;Exercise +Destroy the six \l;targets\u object\bottarg; with a program using a loop. The bot must move 5m forward to get from one target to the next. + +\b;General principle +The program must execute the following scheme: +Repeat 6 times : + o move 5m forward + o turn 90 degrees left + o shoot + o turn 90 degrees right + +\image tfor1 14 5; +\b;Instruction \c;for ( )\n; +The instruction \c;\l;for\u cbot\for;\n; asks for 3 expressions: +1) Initialize the counting variable. +2) The end \l;condition\u cbot\cond;. +3) The counting \l;expression\u cbot\expr;. + +Here is the loop once it is integrated into the program frame: +\s;\c;extern void object::Massacre( ) +\s;{ +\s; for ( int i=0 ; i<6 ; i=i+1 ) +\s; { +\s; \n;instructions repeated 6 times ...\c; +\s; } +\s;} +\n; +ATTENTION: The line \c;for ( )\n; must not be followed by a \l;semicolon\u cbot\term; ! + +\b;Explanation of the instruction \c;for ( )\n; +1) \c;int i=0\n; + The \l;variable\u cbot\var; i is set to zero before the beginning of the loop. + +2) \c;i<6\n; + The loop will be executed as long as i is smaller than 6. + +3) \c;i=i+1\n; + At the end of every loop, add 1 to the variable i. + +\b;Blocks +Use braces \c;{ }\n; in order to create a \l;block\u cbot\bloc;. All the instructions that must be executed in the \c;for\n; loop are held together by a block. The whole program itself is made up of a block: +\c; +\s;extern void object::massacre( ) +\s;{ +\s; \n;fill in here ...\c; +\s;} +\n; +Never change these characters. Just add the instructions of the program between the braces. +You can fit several blocks one into the other. For example the \c;for\n; block is fitted into the block of the whole program. In order to improve readability, the editor lines up the braces belonging to the different blocks. + +\b;Remember +The instruction used to move forward is \c;\l;move\u cbot\move;();\n;. +The instruction used to turn the bot is \c;\l;turn\u cbot\turn;();\n;. A positive angle turns left. +The instruction used to fire the cannon is \c;\l;fire\u cbot\fire;(1);\n;. A one-second burst allows to destroy all six \l;targets\u object\bottarg;. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/tlaby1.txt b/help/F/tlaby1.txt new file mode 100644 index 00000000..c5deb7c6 --- /dev/null +++ b/help/F/tlaby1.txt @@ -0,0 +1,62 @@ +\b;Exercise +Program the bot so that it will find its way without hitting the walls of the labyrinth. We suppose that you do not know the configuration of the labyrinth, but there are no bifurcations, and no dead-ends. The labyrinth is made of squares measuring 5m each. + +\b;The instruction \c;radar\n; +The instruction \c;\l;radar\u cbot\radar;(Barrier, 0, 45, 0, 5);\n; will find any \l;barrier\u object\barrier; in front of the radar that is closer than 5m. Let us take a closer look at the five parameters used: + +\s;\c;Barrier\n; +\l;Category\u cbot\category; of the object that the radar must look for, i.e. a barrier. + +\s;\c;0\n; +Direction of the radar. \c;0\n; means that the radar must search straight forward. + +\s;\c;45\n; +Opening angle in degrees. With an opening angle of 45 degrees, barriers situated between 22.5 degrees to the left and 22.5 degrees to the right will be detected. + +\s;\c;0\n; +Minimum detection distance. \c;0\n; means that even object that are very close to the bot will be detected. + +\s;\c;5\n; +Maximum detection range. Any barrier situated beyond \c;5\n; meters will not be detected. + +To take another example, \c;\l;radar\u cbot\radar;(Barrier, 90, 45, 0, 5);\n; will direct the radar 90 degrees to the left, in order to test if the way to the left is free. + +\image tlaby1 10 10; +\b;General principle +The program must only take care of one square portion of the labyrinth. You will have to execute it several times in order to arrive at the finishing pad. +o If there is nothing in front, move forward. +o If there is nothing on the left side, quarter turn left, move forward. +o If there is nothing on the right side, quarter turn right, move forward. + +1) First of all declare three \l;variables\u cbot\var; of type \c;\l;object\u cbot\object;\n;, that we call \c;front\n;, \c;left\n; and \c;right\n;. Variables of this type can contain the description of any object, for example of a barrier found by the radar. +\s;\c; object front, left, right;\n; + +2) Look for barriers in all three directions, and put the result of the \c;radar\n; instruction into the three variables defined at point 1). If the radar finds nothing, the variable will contain the value \c;\l;null\u cbot\null;\n;. +\s;\c; front = radar(Barrier, 0, 45, 0, 5); +\s; left = radar(Barrier, 90, 45, 0, 5); +\s; right = radar(Barrier, -90, 45, 0, 5); +\n; +3) Test if the way is free in front of the bot with the instruction \c;\l;if\u cbot\if;\n;. If the test is true, the instructions in braces \c;{ }\n; will be executed, otherwise the execution will resume after the closing brace \c;}\n;. +The instruction \c;return\n; leaves the program: the job is done. +\s;\c;if ( front == null ) +\s;{ +\s; move(5); +\s; return; +\s;} +\n; +4) Test if it is possible to turn left; if so, turn left with the instruction \c;\l;turn\u cbot\turn;\n; and move 5m forward. +\s;\c;if ( left == null ) +\s;{ +\s; turn(90); +\s; move(5); +\s; return; +\s;} +\n; +5) Test if it is possible to turn right. + ... + +\b;Attention +The instruction \c;if ( )\n; must never be followed by a \l;semicolon\u cbot\term;. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/tlaby2.txt b/help/F/tlaby2.txt new file mode 100644 index 00000000..b09ec7f2 --- /dev/null +++ b/help/F/tlaby2.txt @@ -0,0 +1,55 @@ +\b;Exercise +This exercise is very similar to the previous one. This time the bot should find its way alone from the start to the goal; you will have to execute the program only once. + +\b;Remark +The labyrinth is not exactly the same, but this should be of no importance, as the program adapts to what it "sees". + +\image tlaby1 10 10; +\b;General principle +Use an infinite \c;\l;while\u cbot\while;\n; loop in order to execute the previous program several times: +\s;\c;while ( true ) +\s;{ +\s; \n;If there is nothing in front, move forward\c; +\s; \n;If there is nothing on your left hand, turn left\c; +\s; \n;If there is nothing on your right hand, turn right\c; +\s;} +\n; +Inside this \c;while\n; loop, replace the \c;return\n; instructions by \c;\l;continue\u cbot\continue;\n; instructions. \c;return\n; would quit the program, which is not what we want here. \c;continue\n; will just resume the execution at the beginning of the \c;\l;while\u cbot\while;\n; loop: +\s;\c;if ( front == null ) +\s;{ +\s; move(5); +\s; continue; +\s;} +\n; +\b;Remember +Here is again the program of the previous exercise : +\c; +\s;object front, left, right; +\s; +\s;front = radar(Barrier, 0, 45, 0, 5); +\s;left = radar(Barrier, 90, 45, 0, 5); +\s;right = radar(Barrier, -90, 45, 0, 5); +\s; +\s;if ( front == null ) +\s;{ +\s; move(5); +\s; return; +\s;} +\s;if ( left == null ) +\s;{ +\s; turn(90); +\s; move(5); +\s; return; +\s;} +\s;if ( right == null ) +\s;{ +\s; turn(-90); +\s; move(5); +\s; return; +\s;} +\n; +\b;Help +If you need some help, just click on the hyperlinks of the instructions \c;\l;radar\u cbot\radar;\n;, \c;\l;if\u cbot\if;\n;, \c;\l;move\u cbot\move;\n; or \c;\l;turn\u cbot\turn;\n;. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/tmove1.txt b/help/F/tmove1.txt new file mode 100644 index 00000000..24604c1f --- /dev/null +++ b/help/F/tmove1.txt @@ -0,0 +1,33 @@ +\b;Exercise +Program the robot in such a way that it arrives on the finishing pad, after having passed by the three blue crosses. + +\b;Procedure +1) Take the power cell and put it on the rear of the bot. +2) Walk around on reconnaissance to understand what the bot must do. +3) Program the bot. To do so, you must select it, and then click on the braces button \button 22;; you will get into the program editor. +4) Once you finished writing the program, click "OK", and execute the program with the arrow key \button 21;. + +\b;Program +The pads are at a distance of 20 meters from each other. +The instruction \c;move(20);\n; moves 20 meters forward. +The instruction \c;turn(90);\n; turns left with an angle of 90 degrees. +The instruction \c;turn(-90);\n; turns right with an angle of 90 degrees. + +The frame of the program consists in: +\c; +\s; extern void object::MoveBot( ) +\s; { +\s; \n;\\write the necessary instructions here ...\c; +\s; } +\n; +For now, you must not change the frame of the program. Just insert the instructions you need to move the bot around between the braces \c;{ }\n;. + +\b;Attention +Be very careful about upper case and lower case letters! +Every instruction must be terminated with a semicolon. + +\b;Helpful trick +When you write the program, you can watch the scene by clicking on the button \button 51;, and by moving the mouse to the edges of the window to turn the camera. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/tmove2.txt b/help/F/tmove2.txt new file mode 100644 index 00000000..14e873f5 --- /dev/null +++ b/help/F/tmove2.txt @@ -0,0 +1,66 @@ +\b;Exercise +This exercise is very similar to the previous one. The bot must move exactly in the same way, but when writing the program, you must use a new concept that is extremely important in programming: \l;variables\u cbot\var;. +We saw that all the pads are at a distance form each other of 20 meters. And all the rotations performed consist in 90 degree angles. Instead of rewriting the same values over and over again in the program, we can store them in a variable: + +Instead of: +\c;\s; move(20); +\s; turn(90); +\s; move(20); +\s; turn(-90); +\s; ... +\n; +We write : +\c;\s; dist = 20; +\s; dir = 90; +\s; move(dist); +\s; turn(dir); +\s; move(dist); +\s; turn(-dir); +\s; ... +\n; +\b;Variables +A \l;variable\u cbot\var; is composed of three elements: +1) The name +2) The type of the content +3) The content + +\t;The name +Use the name to refer to a variable. For example, instead of writing \c;move(20);\n;, write \c;move(dist);\n;: "dist" is the name of the variable. You can choose almost any name for a variable, for example \c;dist\n;, \c;dir\n;, \c;p2\n;, \c;a\n;, \c;x\n;, \c;nothing_2_grab\n;, etc. + +\t;The type +The type of a variable determines what kind of information the variable can contain. According to the type, a variable can contain a whole number, a real number, a character string, the coordinates of a point, etc. Here is a list with the most common variable types: + o \c;\l;int\u cbot\int;\n; for a whole number (12, -500, etc.) + o \c;\l;float\u cbot\float;\n; for a real number (3.14, 0.2, -99.98, etc.) + o \c;\l;string\u cbot\string;\n; for a character string ("Hello!", "Nothing to grab", etc.) + o \c;\l;point\u cbot\point;\n; for the x,y,z-coordinates of a point in space + o \c;\l;object\u cbot\object;\n; for the information about an object (bot, building, etc.) + +\t;The content +The content of a variable can be a number, a string, coordinates, etc., according to the type of the variable. The content of a variable can change many times during the execution of a program. + +Before you can use a variable, you have to declare it. For example, before you can use the two variables \c;dist\n; and \c;dir\n;, you must declare them with the following lines: +\c; +\s; float dist; +\s; float dir; +\n; +Now you can use the two variables. To put the value 20 into \c;dist\n; and 90 into \c;dir\n;, write: +\c; +\s; dist = 20; +\s; dir = 90; +\n; +Now you can move and turn the bot with the instructions \c;\l;move\u cbot\move;\n; and \c;\l;turn\n;\u cbot\turn;: +\c; +\s; move(dist); +\s; turn(dir); +\n; +You can also use a whole \l;mathematical expression\u cbot\expr; instead of just the variable: +\c; +\s; move(dist+100); +\s; turn(-dir); +\n; +The latter instruction will be needed to turn the bot right. + +Now, rewrite the program of the previous exercise, but use a variable for the distance and another variable for the angle of the rotation. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/tproc1.txt b/help/F/tproc1.txt new file mode 100644 index 00000000..484d7897 --- /dev/null +++ b/help/F/tproc1.txt @@ -0,0 +1,59 @@ +\b;Exercise +The \l;bot\u object\bottr; must pass over all the \l;blue crosses\u object\waypoint; on the ground. The way that must be covered is made of two squares. The first one measures 15 meters, the second 25 meters. + +\image tproc1a 8 8; +\b;General principle +In order to solve this problem, the most efficient solution consists in creating a \l;function\u cbot\function; that instructs the bot to move on a square shape of a certain size. The main program becomes then very simple:\c; +\s;extern void object::Function1( ) +\s;{ +\s; Square(15); +\s; Square(25); +\s;} +\n; +You still have to define the function called \c;Square\n;. In order to do this, you will have to write some instructions outside the \l;block\u cbot\bloc; that until now was the frame of each one of your programs. At the very end of the program, after the last closing brace, we will define the function \c;Square\n;. The program will take the following shape: +\c; +\s;extern void object::Function1( ) +\s;{ +\s; \n;main function ...\c; +\s;} +\s; +\s;void object::Square(float length) +\s;{ +\s; \n;new function ...\c; +\s;} +\n; +Let us look in detail at the different elements of the declaration of the function \c;Square\n;: + +\c;\l;void\u cbot\void;\n; +This means that this function will return no value. + +\c;\l;object\u cbot\object;::\n; +When you write this in front of the function name, you can have access in the function to all the characteristics of the bot, such as \c;position\n;, \c;orientation\n;, etc. In this exercise, this element is not compulsory, as we will not need the characteristics of the bot in the function. + +\c;Square ( )\n; +This is the name of the function. You can call it Square, or any other name. + +\c;\l;float\u cbot\float; length\n; +Here you define the parameters that the function will get when it is called. The first time the function is actually called with \c;Square(15)\n;, the variable \c;length\n; will contain the value \c;15\n;. The second time, \c;length\n; will contain \c;25\n;. + +Here is in detail what will happen when the program is executed: +- First the main function \c;Function\n; will be executed. +- At the line \c;Square(15)\n;, the program will follow the red arrow and enter the function \c;Square\n; a first time, \c;length\n; containing \c;15\n;. +- At the end of the function \c;Square\n;, the program follows the orange arrow and comes back to the main function. +- At the line \c;Square(25)\n;, the program will follow the blue arrow and enter the function \c;Square\n; a second time. +- At the end of the function \c;Square\n;, the program follows the light blue arrow and comes back to the main function. + +\image tproc1b 17 12; +In the function \c;Square\n;, use the instructions \c;\l;move\u cbot\move;\n; and \c;\l;turn\u cbot\turn;\n;. In order to make it shorter, you can use a \c;\l;for\u cbot\for;\n; loop, that will repeat the instructions \c;\l;move\u cbot\move;\n; and \c;\l;turn\u cbot\turn;\n; 4 times; however, this is not compulsory. +\c; +\s;void object::Square(float length) +\s;{ +\s; for ( int i=0 ; i<4 ; i=i+1 ) +\s; { +\s; move(length); +\s; turn(90); +\s; } +\s;} +\n; +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/tproc2.txt b/help/F/tproc2.txt new file mode 100644 index 00000000..6be8e7b2 --- /dev/null +++ b/help/F/tproc2.txt @@ -0,0 +1,34 @@ +\b;Exercise +Follow the way in form of a spiral. The bot must move 2 times 25m forward and turn, then move 2 times 20m forward and turn, and so on. +\image tproc2 8 8; +\b;Function +You will have noticed that the way is made of "L"-shaped parts that are fit one into another. The first one (dark blue) measures two times 25 meters. The second one (light blue) measures 5 meters less. Let us start with writing the \l;function\u cbot\function; that will move the bot on a "L"-shaped part whose length will be given as a parameter: +\c; +\s;void object::Part(float length) +\s;{ +\s; for ( int i=0 ; i<2 ; i=i+1 ) +\s; { +\s; move(length); +\s; turn(90); +\s; } +\s;} +\n; +Now you just need to write the main function, that will call the function \c;Part\n;. At the beginning the variable \c;rest\n; will be set to 25m. The \c;while\n; loop will then repeat the instructions inside the block as long as \c;rest\n; is greater than zero. Inside the loop, first call the function \c;Part\n; (see above), then subtract 5m to the length of the L. +\c; +\s;extern void object::Function2( ) +\s;{ +\s; float rest = 25; +\s; while ( rest > 0 ) +\s; { +\s; Part(rest); +\s; rest = rest-5; +\s; } +\s;} +\n; +The function \c;Part\n; will be called a last time with the value \c;5\n;. Then the expression \c;rest-5\n; will set the value of the variable \c;rest\n; to zero, and the \c;while\n; loop will stop. + +\b;Remark +You will have noticed that in the previous exercise, the main function was at the beginning of the program, whereas in this exercise, it is at the end of the program, after the function \c;Part\n;. The rank order of the functions in the program does not matter, you can write a program either way. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/tradar1.txt b/help/F/tradar1.txt new file mode 100644 index 00000000..d55a31c6 --- /dev/null +++ b/help/F/tradar1.txt @@ -0,0 +1,57 @@ +\b;Exercise +Let the bot find all the \l;blue crosses\u object\waypoint; on the ground. As soon as the bot passed over one of the crosses, it will disappear. Here is the general principle that you will apply: + +Repeat forever: + o Look for a cross + o If there is none, stop the program. + o Calculate the direction of the cross. + o Set the speed of the motors in such a way that they will find their way to the cross. + +\b;The program +Use a \c;\l;while\u cbot\while;\n; loop in order to repeat several instructions over and over: +\s;\c;while ( true ) +\s;{ +\s; \n;instructions...\c; +\s;} +\n; +The instruction \c;\l;radar\u cbot\radar;\n; will detect the blue crosses and put their description into a variable, for example \c;spot\n;. In this case, \c;\l;radar\u cbot\radar;()\n; needs only one parameter, i.e. the category of the object that it must look for: +\s;\c;spot = radar(WayPoint); +\n; +Once all the crosses have been found, \c;radar\n; will return the value \c;\l;null\u cbot\null;\n;. You will have to test this case and react accordingly with the instruction \c;\l;if\u cbot\if;\n;: +\s;\c;if ( spot == null ) // no more ? +\s;{ +\s; motor(0, 0); // stops the motors +\s; break; // stops the loop +\s;} +\n;The instruction \c;\l;break\u cbot\break;\n; will stop the infinite loop \c;while (true)\n;. + +Use the instruction \c;\l;direction\u cbot\direct;()\n; to calculate the angle of the rotation that the bot must perform in order to turn towards the blue cross. The coordinates of the object are given by \c;spot.position\n;. The following line will put the angle of the necessary rotation into the \l;variable\u cbot\var; \c;dir\n;: +\s;\c;dir = direction(spot.position); +\n; +The value of the angle is positive if the blue cross is on your left hand, and negative if it is on your right hand. If the cross to be reached is on your left hand, you must set the right-hand motor to full speed, and set the left-hand motor to a lower speed, according to the angle: + + direction = \c; 0\n; -> speed = \c; 1.0\n; + direction = \c; 45\n; -> speed = \c; 0.5\n; + direction = \c; 90\n; -> speed = \c; 0.0\n; + direction = \c;135\n; -> speed = \c;-0.5\n; + direction = \c;180\n; -> speed = \c;-1.0\n; + +The graphic below shows the speed of the left-hand and right-hand motor as set by the instruction \c;\l;motor\u cbot\motor;\n;, according to the angle: + +\image radar2 14 10; +If the cross is straight ahead, the angle is 0 degrees. The motors will get the speeds 1 and 1, which means full speed ahead. If the cross is behind, the right motor will be set to speed -1: it will turn around. You can use the \l;expression\u cbot\expr; \c;1+dir/90\n; in order to calculate the necessary speed of the motors: +\s;\c;if ( dir < 0 ) // on the right side? +\s;{ +\s; motor(1, 1+dir/90); // turns more or less +\s;} +\n; +Use the same principle if the angle has got a positive value, ranging between 0 and 180 degrees. It is up to you to work out the exact instructions to be performed: +\s;\c;else // on the left side? +\s;{ +\s; \n;up to you to fill in here...\c; +\s;} +\n; +At the beginning of the program, you must still declare all the variables. \c;spot\n; is of type \c;\l;object\u cbot\object;\n;, whereas \c;dir\n; is of type \c;\l;float\u cbot\float;\n;. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/tradar2.txt b/help/F/tradar2.txt new file mode 100644 index 00000000..8ad15fce --- /dev/null +++ b/help/F/tradar2.txt @@ -0,0 +1,8 @@ +\b;Exercise +In this exercise, a "crazy bot" places many \l;blue crosses\u object\waypoint; on the ground. In order to find them, you can reuse the program written in the previous exercise. This can show you the flexibility of such a program: it adapts to whatever environment it encounters. + +\t;Remark +Do not wait too long, because the crazy bot gets down to work immediately. Fortunately, as long as you are in the program editor, the game will pause. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/tremote1.txt b/help/F/tremote1.txt new file mode 100644 index 00000000..70c55aa0 --- /dev/null +++ b/help/F/tremote1.txt @@ -0,0 +1,39 @@ +\b;Exercise +Remote control a robot using an \l;information exchange post\u object\exchange;, so it will transport \l;uranium ore\u object\uranore;. +The main actors of this exercise are¦: + +1) A \l;sniffer\u object\botsr; (can't carry anything). +2) An \l;information exchange post\u object\exchange; that receives information from a sender and then transmits it to a receiver. +3) A \l;grabber\u object\botgr; which waits for orders from the exchange post. You have no way control this robot directly. + +\image tremot1a 16 8; +An information exchange post stores "name/value" couples. To control the "slave" robot we use just one couple¦: + + name="order", valuer=order number + +The slace robot understands following orders¦: +\c; + 1 -> grab(); // take an object + 2 -> drop(); // drop an object + 3 -> move(10); // move 10 meters forward + 4 -> move(-10); // move 10 meters backwards +\n; +To instruct the slave to move forward 10 meters all you have to do is¦: +\c;\s; \l;send\u cbot\send;("order", 3, 100); // order 3 -> "move(10)" +\n; +After the send instruction we wait for 5 seconds to be sure the move is done. +\c;\s; \l;wait\u cbot\wait;(5); +\n; +Remark: There is a better way for waiting the order has been executed, but we'll see this later in exercise "Remote Control #2". + +To finish the exercise you must¦: + +1) Take the uranium ore +2) Move forward by 10 meters +3) Drop the uranium ore +4) Move backwards by 10 meters + +It's up to you to write the program. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/tremote2.txt b/help/F/tremote2.txt new file mode 100644 index 00000000..58083be3 --- /dev/null +++ b/help/F/tremote2.txt @@ -0,0 +1,50 @@ +\b;Exercise +Remote control a robot using an \l;information exchange post\u object\exchange;, so it will pass over the 6 blue waypoints. +The main actors of this exercise are¦: + +1) A \l;wheeled grabber\u object\botgr; robot without an energy cell. This is the master you have to program. +2) An \l;information exchange post\u object\exchange; that receives information from the master and then transmits it to the slave. +3) A \l;practice bot\u object\bottr; which waits for orders from the exchange post. This robot has already been programmed. + +\image tremot2a 16 8; +An information exchange post stores "name/value" couples. To control the "slave" robot we use two couples¦: + +1) name="order", value=order number +2) nom="param", valuer=parameter for the operation + +Order #1 means "move" and order #2 means "turn". The parameter is the distance to move or the turning angle. For example to make the slave move 20 meters write¦: +\c;\s; \l;send\u cbot\send;("order", 1, 100); // order "move" +\s; \l;send\u cbot\send;("param", 20, 100); // distance 20 meters +\n; +These two instruction send following 2 pieces of information to the exchange post¦: +\c; order=1 + param=20 +\n; +The slave robot waits for an order and executes it. Once the order has been executed by the slave, it removes the order from the exchange post. Once an order has been sent, the master must wait for the slave finishing the order before sending the next order. This is done by testing if the order is still inside the exchange post. Just write¦: +\c;\s; while ( \l;testinfo\u cbot\testinfo;("order", 100) ) // wait for end of work +\s; { +\s; wait(1); +\s; } +\n; +As we must give more than one order its most convenient to write a \l;function\u cbot\function; \c;SendToPost\n;, that sends the order and wait for its completion¦: +\c;\s;void object::SendToPost(float order, float param) +\s;{ +\s; send("param", param, 100); // send the parameter +\s; send("order", order, 100); // send the order +\s; +\s; while ( testinfo("order", 100) ) // wait for end of work +\s; { +\s; wait(1); +\s; } +\s;} +\n; +To move forward by 20 meters, you must write in the main program¦: +\c;\s; SendToPost(1, 20); // move(20); +\n; +This is the route the robot must travel through¦: + +\image tremot2b 8 8; +It's up to you to finish the programming. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/tremote3.txt b/help/F/tremote3.txt new file mode 100644 index 00000000..b8875f05 --- /dev/null +++ b/help/F/tremote3.txt @@ -0,0 +1,103 @@ +\b;Exercice +Remote control a slave robot without using an \l;information exchange post\u object\exchange;. The robot should pass over the 6 blue crosses. You must use a \l;string\u cbot\string; to pass the orders to the slave bot. This string contains the order the slave shoud execute, for exemple \c;"move(20)"\n;. You can see that this is the same syntax as used in the CBOT language but we could have chosen any other syntax for exemple something like \c;"advance=20"\n;. The string will be a \c;\l;static\u cbot\static;\n; class member that will be used to communicate from the master to the slave. + +The two main actors of this exercise are: +1) The \l;wheeled grabber\u object\botgr; without an energy pack and therefore immobile. This is the master you should program so it will transmit orders to the slave. +2) The slave \l;practice bot\u object\bottr; which is already programmed and just waits for orders from the master. + +\b;The slave +First of all we must understand how the program of the slave works. The \l;class\u cbot\class; \c;exchange\n; contains the mechanism for exchaning the orders. We declare a \c;\l;static\u cbot\static;\n; class member \c;m_order\n; which will contain the order to be executed. The word \c;static\n; insures that the member \c;m_order\n; is shared between all instances of the \l;class\u cbot\class; exchange. + +\c;\s;\l;public\u cbot\public; \l;class\u cbot\class; exchange +\s;{ +\s; \l;static\u cbot\static; \l;private\u cbot\private; \l;string\u cbot\string; m_order = ""; + +\n;The \c;put\n; method will be used by the master robot for transmitting an order. As long as the string \c;m_order\n; is not empty, the slave has not finished the order and the \c;put\n; method will return \c;false\n; and will do nothing. + +\c;\s; \l;synchronized\u cbot\synchro; \l;bool\u cbot\bool; put(string order) +\s; { +\s; if ( m_order == "" ) +\s; { +\s; m_order = order; +\s; return true; +\s; } +\s; else +\s; { +\s; return false; +\s; } +\s; } +\n; +Another method \c;get\n; will be used by the slave to retrieve the orders. This method returns the string contained in \c;m_order\n; and empties it, so a new order can be accepted: + +\c;\s; \l;synchronized\u cbot\synchro; string get() +\s; { +\s; string ret = m_order; +\s; m_order = ""; +\s; return ret; +\s; } +\s;} +\n; +The main program of the slave contains an instance of the class \c;exchange\n; called \c;list\n;. + +\c;\s;\l;extern\u cbot\extern; void object::Slave3( ) +\s;{ +\s; exchange list(); +\s; string todo; +\n; +The outer \c;while\n; loop lasts for ever. The inner \c;while\n; loop waits for an order by using the \c;get\n; method of the \c;exchange\n; class. As soon as \c;get\n; returns a non empty string, the while loop stops. + +\c;\s; \l;while\u cbot\while; ( true ) +\s; { +\s; \l;while\u cbot\while; ( true ) +\s; { +\s; todo = list.get(); +\s; if ( todo != "" ) break; +\s; wait(1); +\s; } +\n; +Now we have received the order in the \c;todo\n; variable. All we have to do is execute it: + +\c;\s; if ( \l;strfind\u cbot\strfind;(todo, "move") == 0 ) +\s; { +\s; move(\l;strval\u cbot\strval;(\l;strmid\u cbot\strmid;(todo,5))); +\s; } +\s; if ( strfind(todo, "turn") == 0 ) +\s; { +\s; turn(strval(strmid(todo,5))); +\s; } +\s; } +\s;} +\n; +\b;The master +In the master we write an function called \c;SendOrder\n; which will send an order to the slave: + +\c;\s;void object::SendOrder(string order) +\s;{ +\s; exchange list(); +\s; +\s; while ( list.put(order) == false ) +\s; { +\s; wait(1); +\s; } +\s;} +\n; +The \c;while\n; loop waits until a pending order has been terminated, that is the slaved has exited from the \c;get\n; method. +Now the main program of the master is very simple: + +\c;\s;extern void object::Remote3( ) +\s;{ +\s; SendOrder("move(20)"); +\s; SendOrder("turn(90)"); +\s; SendOrder("move(20)"); +\s; SendOrder("turn(90)"); +\s; SendOrder("move(10)"); +\s; SendOrder("turn(90)"); +\s; SendOrder("move(10)"); +\s; SendOrder("turn(-90)"); +\s; SendOrder("move(10)"); +\s;} +\n; +\key;\key help;\norm; show these instruction at any time. + +\t;See also +\l;Controls\u command; and \l;programming\u cbot;. diff --git a/help/F/tremote4.txt b/help/F/tremote4.txt new file mode 100644 index 00000000..876a00f3 --- /dev/null +++ b/help/F/tremote4.txt @@ -0,0 +1,129 @@ +\b;Exercise +Remote control a slave robot without using an \l;information exchange post\u object\exchange;. The robot should pass over the 6 blue crosses. You must use a \c;\l;static\u cbot\static;\n; variable to pass the orders to the slave bot. + +The two main actors of this exercise are: +1) The \l;wheeled grabber\u object\botgr; without an energy pack and therefore immobile. This is the master you should program so it will transmit orders to the slave. +2) The slave \l;practice bot\u object\bottr; which is already programmed and just waits for orders from the master. + +\b;The slave +First of all we must understand how the program of the slave works. The \l;class\u cbot\class; \c;order\n; contains two members: \c;m_type\n; is the order to execute (move or turn) and \c;m_param\n; is the distance to move or the rotation angle¦: + +\c;\s;\l;public\u cbot\public; \l;class\u cbot\class; order +\s;{ +\s; \l;int\u cbot\int; m_type = \l;nan\u cbot\nan;; +\s; \l;float\u cbot\float; m_param; +\s;} +\n; +A second \l;class\u cbot\class; \c;exchange\n; contains the mechanism for exchanging the orders. We declare a \c;\l;static\u cbot\static;\n; class member \c;m_order\n; which will contain the order to be executed. The word \c;static\n; insures that the member \c;m_order\n; is shared between all instances of the \l;class\u cbot\class; exchange. + +\c;\s;\l;public\u cbot\public; \l;class\u cbot\class; exchange +\s;{ +\s; \l;static\u cbot\static; \l;private\u cbot\private; order m_order = new order; +\n; +\n;The \c;put\n; method will be used by the master robot for transmitting an order. As long as \c;m_order\n; is different from \c;\l;nan\u cbot\nan;\n;, the slave has not finished the order and the \c;put\n; method will return \c;false\n; and will do nothing¦: + +\c;\s; \l;synchronized\u cbot\synchro; \l;bool\u cbot\bool; put(order a) +\s; { +\s; if ( m_order.m_type == nan ) +\s; { +\s; m_order = a; +\s; return true; +\s; } +\s; else +\s; { +\s; return false; +\s; } +\s; } +\n; +Another method \c;get\n; will be used by the slave to retrieve the orders. This method returns the order to be executed: + +\c;\s; \l;synchronized\u cbot\synchro; order get() +\s; { +\s; return m_order; +\s; } +\n; +A third method \c;delete\n; will be used by the slave to indicate that the order has been executed: + +\c;\s; \l;synchronized\u cbot\synchro; void delete() +\s; { +\s; m_order.m_type = nan; +\s; } +\s;} +\n; +The main program of the slave contains an instance of the class \c;exchange\n; called \c;list\n;. We put () after the word \c;list\n; in order to create an instance of the class \c;exchange\n;. + +\c;\s;\l;extern\u cbot\extern; void object::Slave3( ) +\s;{ +\s; exchange list(); +\s; order todo; +\n; +The outer \c;while\n; loop lasts for ever. The inner \c;while\n; loop waits for an order by using the \c;get\n; method of the \c;exchange\n; class. As soon as \c;get\n; returns a value different from \c;nan\n;, the while loop stops. + +\c;\s; \l;while\u cbot\while; ( true ) +\s; { +\s; \l;while\u cbot\while; ( true ) +\s; { +\s; todo = list.get(); +\s; if ( todo.m_type != nan ) break; +\s; wait(1); +\s; } +\n; +Now we have received the order in the \c;todo\n; variable. All we have to do is execute it: + +\c;\s; if ( todo.m_type == 1 ) +\s; { +\s; move(todo.m_param); +\s; } +\s; else if ( todo.m_type == 2 ) +\s; { +\s; turn(todo.m_param); +\s; } +\s; else +\s; { +\s; message("Unknown order"); +\s; } +\n; +As soon as the execution of the order is finished, we must call the \c;delete\n; method so the master knows that another order can be sent¦: + +\c;\s; list.delete(); +\s; } +\s;} +\n; +\b;The master +In the master we write an function called \c;SendOrder\n; which will send an order to the slave: + +\c;\s;void object::SendOrder(float order, float param) +\s;{ +\s; exchange list(); +\s; order todo(); +\s; +\s; todo.m_type = order; +\s; todo.m_param = param; +\s; +\s; while ( list.put(todo) == false ) +\s; { +\s; wait(1); +\s; } +\s;} +\n; +The \c;while\n; loop waits until a pending order has been terminated, that is the slaved has exited from the \c;get\n; method and the \c;delete\n; method has been called. +Now the main program of the master is very simple: + +\c;\s;extern void object::Remote4( ) +\s;{ +\s; SendOrder(1, 20); // move(20); +\s; SendOrder(2, 90); // turn(90); +\s; SendOrder(1, 20); // move(20); +\s; SendOrder(2, 90); // turn(90); +\s; SendOrder(1, 10); // move(10); +\s; SendOrder(2, 90); // turn(90); +\s; SendOrder(1, 10); // move(10); +\s; SendOrder(2,-90); // turn(-90); +\s; SendOrder(1, 10); // move(10); +\s;} +\n; +\key;\key help;\norm; show these instruction at any time. + + +\t;See also +\l;Controls\u command; and \l;programming\u cbot;. diff --git a/help/F/tremote5.txt b/help/F/tremote5.txt new file mode 100644 index 00000000..f2313946 --- /dev/null +++ b/help/F/tremote5.txt @@ -0,0 +1,113 @@ +\b;Exercise +Remote control a slave robot without using an \l;information exchange post\u object\exchange;. The robot should pass over the 6 blue crosses. + +The two main actors of this exercise are: +1) The \l;wheeled grabber\u object\botgr; without an energy pack and therefore immobile. This is the master you should program so it will transmit orders to the slave. +2) The slave \l;practice bot\u object\bottr; which is already programmed and just waits for orders from the master. + +The orders shall be stored, so the master will be able to transmit several orders without waiting for each order being processed. We use an \l;array\u cbot\array; for this purpose. + +\b;The slave +First of all we must understand how the program of the slave works. The \l;class\u cbot\class; \c;order\n; contains two members: \c;m_type\n; is the order to execute (move or turn) and \c;m_param\n; is the distance to move or the rotation angle¦: + +\c;\s;\l;public\u cbot\public; \l;class\u cbot\class; order +\s;{ +\s; \l;int\u cbot\int; m_type; +\s; \l;float\u cbot\float; m_param; +\s;} +\n; +A second \l;class\u cbot\class; \c;exchange\n; contains the mechanism for exchanging the orders. We declare a \c;\l;static\u cbot\static;\n; class member \c;m_fifo\n; which will contain the list of orders to be executed. The word \c;static\n; insures that the member \c;m_fifo\n; is shared between all instances of the \l;class\u cbot\class; exchange. + +\c;\s;{ +\s; \l;static\u cbot\static; \l;private\u cbot\private; order m_fifo[] = null; +\n; +The \c;put\n; method will be used by the master robot for transmitting an order. The order will simply be added at the end of the \c;m_fifo\n; array: + +\c;\s; \l;synchronized\u cbot\synchro; void put(order a) +\s; { +\s; m_fifo[sizeof(m_fifo)] = a; +\s; } +\n; +Another method \c;get\n; will be used by the slave to retrieve the orders. This method returns the order to be executed. If the list is empty, \c;null\n; will be returned and the robot must wait for more orders. Otherwise the first order in the list must be returned and the remaining orders must be "scrolled up". As an array can not be "shortened" we use a temporary array \c;copy\n;¦: + +\c;\s; \l;synchronized\u cbot\synchro; order get() +\s; { +\s; if ( sizeof(m_fifo) == 0 ) return null; +\s; +\s; order a = m_fifo[0]; +\s; order copy[] = null; +\s; for ( int i=1 ; i 9) +\s; { +\s; \l;jet\u cbot\jet;(-1); +\s; } +\s; \l;wait\u cbot\wait;(0.2); +\s; } +\s; \l;fire\u cbot\fire;(1); +\s; } +\s;} +\n; +In order to adapt the program to shooting wasps, you need to make a few changes. Replace all \c;radar(AlienAnt)\n; with \c;radar(AlienWasp)\n;. The cannon must aim straight forward and not downward, replace \c;aim(-20);\n; with \c;aim(0);\n;. And the bot must fly at the same height as the wasp. For this, you must compare the altitude of the bot given by \c;position.z\n; with the altitude of the wasp given by \c;item.position.z\n;: if \c;position.z > item.position.z\n;, go down slowly with \c;jet(-0.3);\n;. If \c;position.z < item.position.z-1\n;, climb slowly with \c;jet(0.3);\n;. A winged shooter is higher than a wasp, therefore it is better if the altitude of the bot is a little lower than the altitude of the wasp. In this case, we admit that the altitude of the bot ranges between the altitude of the wasp and the altitude of the wasp minus 1. + +\t;Further improvement +Wasps move very fast. In order to increase your chances to get them, better to repeat just before the \c;fire(1);\n; a \c;radar\n; and a \c;turn\n; in order to perform a last readjustment of the direction before the shot. + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/twasp2.txt b/help/F/twasp2.txt new file mode 100644 index 00000000..fcec44ab --- /dev/null +++ b/help/F/twasp2.txt @@ -0,0 +1,84 @@ +\b;Objective +Bring down the flying wasps in a more efficient way than with the previous program. + +\b;Program +Here is again the program of the previous exercise that shoots down all the wasps after many, many unsuccessful attempts: +\c; +\s;extern void object::Wasp1() +\s;{ +\s; \l;object\u cbot\type; item; +\s; +\s; \l;aim\u cbot\aim;(0); +\s; +\s; \l;while\u cbot\while; (true) +\s; { +\s; \l;while\u cbot\while; (\l;radar\u cbot\radar;(AlienWasp, 0, 360, 0, 20) == null) +\s; { +\s; item = \l;radar\u cbot\radar;(AlienWasp); +\s; \l;turn\u cbot\turn;(\l;direction\u cbot\direct;(item.position)); +\s; \l;motor\u cbot\motor;(1,1); +\s; +\s; \l;jet\u cbot\jet;(0); +\s; \l;if\u cbot\if; (position.z > item.position.z) +\s; { +\s; \l;jet\u cbot\jet;(-0.3); +\s; } +\s; +\s; \l;if\u cbot\if; (position.z < item.position.z - 1) +\s; { +\s; \l;jet\u cbot\jet;(0.3); +\s; } +\s; +\s; \l;wait\u cbot\wait;(0.2); +\s; } +\s; item = \l;radar\u cbot\radar;(AlienWasp); +\s; \l;turn\u cbot\turn;(\l;direction\u cbot\direct;(item.position)); +\s; \l;fire\u cbot\fire;(1); +\s; } +\s;} +\n; +The many failures are due to the fact that the wasp is already gone before the bullets can reach it. The only way to improve the program consists in setting the power of the two motors and of the jet in such a way that the bot follows the movement of the target during the burst. + +Just before the shot, the program adjusts a last time the direction with \c;turn(direction(item.position));\n;. In order to follow the wasp during the burst, you have to "remember" the angle of this last rotation: if the angle was positive (rotation to the left), the bot must continue to turn left during the burst; if the angle was negative, the bot must continue to turn right. + +In order to "remember" the angle of the last rotation, we need a variable that can contain just one number. If we choose to call it \c;angle\n;, we must define the variable with the following line at the beginning of the program: +\c; +\s; \l;float\u cbot\type; angle; +\n; +The variable type \l;float\u cbot\type; is the variable type that can contain any number, i.e. whole numbers or real numbers. Please refer to the \l;text about variable types\u cbot\type; if you want to know more about the different types of variables and what they can contain. + +Just before the instruction \c;fire(1);\n;, instead of writing \c;\l;turn\u cbot\turn;(\l;direction\u cbot\direct;(item.position));\n;, we will put the rotation angle into the variable \c;angle\n;: +\c; +\s; angle = direction(item.position); +\n; +Then we perform the rotation, and we set the power of the motors so that the bot continues the movement: +\c; +\s; turn(angle); +\s; if (angle < 0) +\s; { +\s; motor(1,0.5); +\s; } +\s; else +\s; { +\s; motor(0.5,1); +\s; } +\n; +The instruction \c;else\n; determines what instructions the program should execute if the condition stated in the \c;if\n; instruction is false. + +Then we must set the power of the jet so that the bot follows the wasp also in the vertical direction: +\c; +\s; jet(0); +\s; if(position.z > item.position.z) +\s; { +\s; jet(-0.3); +\s; } +\s; +\s; if(position.z < item.position.z - 1) +\s; { +\s; jet(0.3); +\s; } +\n; +As you will see, this program is much more efficient than the previous one! + +\t;See also +\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/F/win.txt b/help/F/win.txt new file mode 100644 index 00000000..88e55a42 --- /dev/null +++ b/help/F/win.txt @@ -0,0 +1,3 @@ + +Houston congratulates you in the name of mankind for the success of your missin. +The Great Migration to Terra Nova will start very soon. diff --git a/help/P/COMMAND.TXT b/help/P/COMMAND.TXT new file mode 100644 index 00000000..a2d7071a --- /dev/null +++ b/help/P/COMMAND.TXT @@ -0,0 +1,45 @@ +\b;Sterowanie +Polecana jest gra z jedną ręką na klawiszach strzałek a drugą na myszy. + +\t;Roboty +\key;\key left;\norm; = skręt w lewo +\key;\key right;\norm; = skręt w prawo +\key;\key up;\norm; = ruch do przodu +\key;\key down;\norm; = ruch do tyłu +Klawisze te nie są dostępne dla \l;robota treningowego\u object\bottr;. + +\key;\key gup;\norm; = start i wznoszenie się \button 28; +\key;\key gdown;\norm; = opuszczanie się i lądowanie \button 29; +Te klawisze są oczywiście dostępne tylko dla \l;astronauty\u object\human; oraz \l;robotów latających\u object\botgj; w niektórych misjach. + +mysz do przodu = celowanie wyżej +mysz do tyłu = celowanie niżej +mysz w prawo = celowanie w prawo +mysz w lewo = celowanie w lewo +Klawisze te dostępne są tylko dla \l;dział\u object\botfr;, \l;dział organicznych\u object\botor; i \l;działa fazowego\u object\botphaz;. + +\key;\key action;\norm; = główne działanie zaznaczonego obiektu (człowieka lub robota) +Klawisz ten pozwala np. na operowanie ramieniem \l;transportera\u object\botgr; lub strzelanie z \l;działa\u object\botfr; \button 42;. + +\t;Zaznaczanie +\key;\key next;\norm; = zaznacza następny obiekt +\key;\key human;\norm; = zaznacza astronautę +\key;\key desel;\norm; = poprzednie zaznaczenie \button 10; + +\t;Kamera +\key;\key camera;\norm; = przełącza pomiędzy kamerą pokładową i podążającą za robotem \button 13; +\key;\key near;\norm; = powiększenie +\key;\key away;\norm; = pomniejszenie +\key;\key visit;\norm; = zatrzymuje grę i wyświetla miejsce pochodzenia ostatniej wiadomości. Kolejne naciśnięcie pokazuje pochodzenie poprzedniej wiadomości. + +\t;Pomoc +\key;\key help;\norm; = rozkazy dot. misji +\key;\key prog;\norm; = podręcznik programowania + +\t;Gra +\key;\key speed10;\norm; = normalna prędkość x1 +\key;\key speed15;\norm; = średnia prędkość x1,5 +\key;\key speed20;\norm; = duża prędkość x2 +\key;\key quit;\norm; = wyjście z misji \button 11; + +Wszystkie powyższe ustawienia klawiszy sterowania mogą być zmienione w menu opcje/sterowanie. diff --git a/help/P/Cbot.txt b/help/P/Cbot.txt new file mode 100644 index 00000000..bccf8cc6 --- /dev/null +++ b/help/P/Cbot.txt @@ -0,0 +1,91 @@ +\b;Programowanie - język CBOT +Język CBOT jest zbliżony strukturą i składnią do takich języków programowania jak C++ i Java. Został on przystosowany do specyficznych zadań gry COLOBOT, przy uwzględnieniu aspektu pedagogicznego. +Składa się on z instrukcji (zobacz poniżej), \l;bloków\u cbot\bloc;, \l;funkcji\u cbot\function;, \l;klas\u cbot\class;, \l;zmiennych\u cbot\var;, \l;tablic\u cbot\array;, \l;wyrażeń\u cbot\expr; i \l;warunków\u cbot\cond;. + +o \c;\token;Instrukcje\norm;\n; +W edytorze programu, instrukcje języka CBOT są zawsze wyświetlane na pomarańczowym tle. Jeśli jest inaczej, oznacza to literówkę w nazwie instrukcji. Nazwy instrukcji są zawsze pisane małymi literami. + +o \c;\type;Typy\norm;\n; +\l;Typ\u cbot\type; zmiennej wyświetlany jest na zielonym tle. + +o \c;\const;Stałe\norm;\n; +Stałe, podobnie jak \l;kategorie\u cbot\category;, wyświetlane są na czerwonym tle. + +\t;Instrukcje w języku CBOT: +\c;\l;extern\u cbot\extern; \n;Oznacza główną funkcję +\c;\l;if\u cbot\if; \n;Struktura wyboru +\c;\l;else\u cbot\if; \n;Struktura wyboru alternatywy +\c;\l;for\u cbot\for; \n;Struktura pętli +\c;\l;while\u cbot\while; \n;Struktura kontroli +\c;\l;do\u cbot\do; \n;Struktura kontroli +\c;\l;break\u cbot\break; \n;Wychodzi z pętli +\c;\l;continue\u cbot\continue; \n;Kontynuuje pętlę +\c;\l;return\u cbot\return; \n;Wychodzi z funkcji +\c;\l;sizeof\u cbot\sizeof; \n;Rozmiar tablicy + +\t;Instrukcje specyficzne dla robotów: +\c;\l;radar\u cbot\radar; \n;Wykrywa obiekty +\c;\l;direction\u cbot\direct; \n;Oblicza kąt obrotu +\c;\l;distance\u cbot\dist; \n;Oblicza odległość +\c;\l;distance2d\u cbot\dist2d; \n;Oblicza odległość +\c;\l;wait\u cbot\wait; \n;Czeka +\c;\l;move\u cbot\move; \n;Przesuwa naprzód lub wstecz +\c;\l;turn\u cbot\turn; \n;Obraca +\c;\l;goto\u cbot\goto; \n;Przemieszcza się do zadanej pozycji +\c;\l;motor\u cbot\motor; \n;Bezpośrednia kontrola nad silnikiem +\c;\l;jet\u cbot\jet; \n;Bezpośrednia kontrola nad odrzutem +\c;\l;message\u cbot\message; \n;Wyświetla komunikat +\c;\l;retobject\u cbot\retobj; \n;Zwraca obiekt z funkcji +\c;\l;errmode\u cbot\errmode; \n;Sposób traktowania błędów +\c;\l;abstime\u cbot\abstime; \n;Zwraca czas absolutny + +\t;Instrukcje związane z topologią terenu: +\c;\l;space\u cbot\space; \n;Znajduje wolne miejsce +\c;\l;topo\u cbot\topo; \n;Zwraca wysokość punktu +\c;\l;flatground\u cbot\flatgrnd; \n;Zwraca promień płaskiego obszaru + +\t;Instrukcje specyficzne dla niektórych robotów: +\c;\l;grab\u cbot\grab; \n;Podnosi przedmiot +\c;\l;drop\u cbot\drop; \n;Upuszcza przedmiot +\c;\l;sniff\u cbot\sniff; \n;Nasłuchuje podglebie +\c;\l;thump\u cbot\thump; \n;Przewraca obce organizmy +\c;\l;recycle\u cbot\recycle; \n;Odzyskuje tytan z pozostałości robota +\c;\l;shield\u cbot\shield; \n;Rozszerza lub wyłącza osłonę +\c;\l;fire\u cbot\fire; \n;Strzela z działa +\c;\l;aim\u cbot\aim; \n;Ustawia kąt lufy w pionie + +\t;Instrukcje specyficzne dla stacji przekaźnikowych: +\c;\l;receive\u cbot\receive; \n;Odbiera informację +\c;\l;send\u cbot\send; \n;Wysyła nową informację +\c;\l;testinfo\u cbot\testinfo; \n;Sprawdza czy istnieje informacja +\c;\l;deleteinfo\u cbot\delinfo; \n;Usuwa istniejącą informację + +\t;Instrukcje specyficzne dla klas: +\c;\l;class\u cbot\class; \n;Deklaracja klasy +\c;\l;public\u cbot\public; \n;Deklaracja funkcji publicznej +\c;\l;private\u cbot\private; \n;Deklaracja prywatnego elementu klasy +\c;\l;static\u cbot\static; \n;Deklaracja statycznego elementu klasy +\c;\l;synchronized\u cbot\synchro; \n;Zapobiega jednoczesnemu wykonywaniu +\c;\l;new\u cbot\new; \n;Tworzy nową instancję +\c;\l;this\u cbot\this; \n;Odwołanie do bieżącej instancji + +\t;Instrukcje specyficzne dla łańcuchów: +\c;\l;strlen\u cbot\strlen; \n;Podaje długość łańcucha +\c;\l;strleft\u cbot\strleft; \n;Wyodrębnia lewą część +\c;\l;strright\u cbot\strright; \n;Wyodrębnia prawą część +\c;\l;strmid\u cbot\strmid; \n;Wyodrębnia środkową część +\c;\l;strfind\u cbot\strfind; \n;Znajduje podłańcuch. +\c;\l;strval\u cbot\strval; \n;Zamienia łańcuch na liczbę +\c;\l;strupper\u cbot\strupper; \n;Zamienia litery na wielkie +\c;\l;strlower\u cbot\strlower; \n;Zamienia litery na małe + +\t;Instrukcje specyficzne dla plików: +\c;\l;open\u cbot\open; \n;Otwiera plik +\c;\l;close\u cbot\close; \n;Zamyka plik +\c;\l;writeln\u cbot\writeln; \n;Zapisuje wiersz do pliku +\c;\l;readln\u cbot\readln; \n;Wczytuje wiersz z pliku +\c;\l;eof\u cbot\eof; \n;Sprawdza czy jest już koniec pliku +\c;\l;deletefile\u cbot\deletef; \n;Usuwa plik + +\t;Zobacz również +\l;Typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/Tant1.TXT b/help/P/Tant1.TXT new file mode 100644 index 00000000..481d21d0 --- /dev/null +++ b/help/P/Tant1.TXT @@ -0,0 +1,16 @@ +\b;Zadanie +Aby obronić się przed ogromnymi mrówkami atakującymi z północy, obracaj robota podczas strzelania, w celu uzyskania ognia zaporowego. + +\t;Program +Podczas bezpośredniej kontroli robota, można obracać jego działkiem podczas strzelania w celu ostrzelania większej strefy. Można to zrobić również poprzez programowanie, ale wtedy trzeba obracać całego robota instrukcją \c;\l;motor\u cbot\motor;( , )\n;. Instrukcja ta potrzebuje dwóch liczb: prędkości lewego silnika i prędkości prawego silnika. Liczby te powinny zawierać się w przedziale od -1 do +1.\c; motor(1,1);\n; porusza robota naprzód z maksymalną prędkością (pełna moc obu silników).\c; motor(-1,-1);\n; porusza robota do tyłu z maksymalną prędkością.\c; motor(1,0.9);\n; porusza robota do przodu z niewielkim obrotem w prawo: lewy silnik kręci się nieco szybciej niż prawy. A \c;motor(1,-1);\n; obraca robota w miejscu zgodnie ze ruchem wskazówek zegara: lewy silnik porusza się do przodu, prawy do tyłu. + +Po wykonaniu instrukcji \l;motor\u cbot\motor; silniki utrzymują nadaną im prędkość aż do następnej instrukcji \c;motor\n;, \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n; lub \c;\l;goto\u cbot\goto;\n;. Na przykład jeśli wykonasz obrót w miejscu instrukcją \c;motor(1,-1);\n;, a następnie strzał instrukcją \c;fire(1);\n;, robot będzie kontynuował obrót i ostrzela całą strefę. + +Mrówki atakują z północy. Aby ostrzelać całą strefę na północ od robota, najpierw obróć go o 90 stopni w lewo instrukcją \c;turn(90);\n;, a następnie powtarzaj, używając pętli \c;\l;while\u cbot\while; (true)\n; następujące instrukcje: +o obrót w prawo: \c;motor(1,-1);\n; +o 2 sekundowa seria: \c;fire(2);\n; +o obrót w lewo: \c;motor(-1,1);\n; +o 2 sekundowa seria. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/Tant2.TXT b/help/P/Tant2.TXT new file mode 100644 index 00000000..a3c587da --- /dev/null +++ b/help/P/Tant2.TXT @@ -0,0 +1,33 @@ +\b;Zadanie +Przystosuj program \c;Spider2\n; do lotu na zadanej wysokości, w celu obrony przed atakującymi z każdej strony mrówkami. + +\t;Program +Program niezbędny do wykonania tego zadania jest podobny do programu \c;Spider2\n;, który szuka najbliższego pająka, obraca się w jego kierunku i strzela: +\c; +\s;extern void object::Spider2() +\s;{ +\s; object item; +\s; +\s; while (true) +\s; { +\s; item = radar(AlienSpider); +\s; turn(direction(item.position)); +\s; fire(1); +\s; } +\s;} +\n; +Możesz go skopiować i wkleić do edytora oraz przystosować do nowego zadania. Zamień \c;radar(AlienSpider);\n; na \c;radar(AlienAnt);\n;, i napisz przed pętlą \c;while\n; inną pętlę uruchamiającą napęd odrzutowy \l;działa latającego\u object\botfj; do chwili osiągnięcia przez robota wysokości 20 metrów. + +Instrukcja \c;\l;jet\u cbot\jet;()\n; kontroluje napęd odrzutowy robota latającego. Liczba w nawiasach musi się zawierać w przedziale od \c;-1\n; do \c;1\n;.\c; jet(1);\n; unosi robota do góry z maksymalną prędkością. \c; jet(-1);\n; opuszcza robota w dół z maksymalną prędkością, a \c;jet(0);\n; powoduje, że robot utrzymuje uzyskaną wysokość. Ponieważ robot musi osiągnąć dokładną wysokość, wzlatuj nim powoli używając instrukcji \c;jet(0.2);\n;, poczekaj aż osiągnie pożądaną wysokość i ustabilizuj wysokość instrukcją \c;jet(0);\n;. + +Aby "czekać aż do osiągnięcia żądanej wysokości", konieczne jest użycie pętli warunkowej: instrukcje wewnątrz niej będą powtarzane tak długo, jak podany warunek jest prawdziwy. Wysokość robota jest podawana przez \c;position.z\n;. Jak już widzieliśmy, instrukcja \c;position\n; podaje pozycję robota. Jest ona określona przez trzy współrzędne x, y oraz z: oś x jest osią zachód-wschód, oś y jest osią południe-północ, a oś z jest osią pionową. Wobec tego należy poczekać tak długo jak \c;position.z\n; będzie mniejsze niż 20: +\c; +\s; while (position.z < 20) +\s; { +\s; wait(0.2); +\s; } +\n; +Po odczekaniu 0,2 sekundy, program sprawdzi czy wysokość jest wciąż mniejsza od 20 metrów. Jeśli tak, poczeka jeszcze chwilę, a jeśli nie, program będzie kontynuowany po pętli, tzn. po klamrze zamykającej \c;}\n;. Nie zapomnij po pętli ustabilizować wysokości instrukcją \c;jet(0);\n;. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/Tant3.TXT b/help/P/Tant3.TXT new file mode 100644 index 00000000..c3096e57 --- /dev/null +++ b/help/P/Tant3.TXT @@ -0,0 +1,40 @@ +\b;Zadanie +Aby zapobiec marnowaniu energii przystosuj program \c;Tower1\n; tak, aby nie strzelał do mrówek będących poza zasięgiem. + +\t;Program +Program \c;Tower1\n; strzela w kierunku najbliższej mrówki, nawet jeśli wciąż jest ona poza zasięgiem: +\c; +\s;extern void object::Tower1() +\s;{ +\s; object item; +\s; +\s; jet(0.2); +\s; while(position.z < 20) +\s; { +\s; wait(0.2); +\s; } +\s; jet(0); +\s; +\s; while(true) +\s; { +\s; item = radar(AlienAnt); +\s; turn(direction(item.position)); +\s; fire(1); +\s; } +\s;} +\n; +Jeśli robot musi wykonać to samo zadanie co poprzednio z dostępnym jedynie \l;zwykłym ogniwem elektrycznym\u object\power;, wstaw pętlę oczekującą na wystarczające zbliżenie się mrówki (czyli mniej niż 40 metrów). Wtedy dla każdej mrówki wystarczy jedna seria strzałów. + +Instrukcji \c;\l;radar\u cbot\radar();\n; można podać więcej parametrów (liczb) oznaczających gdzie radar powinien szukać mrówek. Na przykład \c;radar(AlienAnt,0,360,0,40);\n; będzie szukał tylko mrówek będących bliżej niż 40 metrów. Dwie pierwsze liczby określają, że radar powinien szukać we wszystkich kierunkach, dwie ostatnie określają, że radar powinien wykrywać tylko mrówki w odległości od 0 do 40 metrów. Jeśli nie zostanie znaleziona mrówka będąca bliżej niż 40 metrów, instrukcja \c;\l;radar\u cbot\radar();\n; zwróci wartość \c;null\n;. Wobec czego można więc napisać pętlę warunkową podobną do napisanej w poprzednim ćwiczeniu, która czeka na pojawienie się mrówki bliżej niż 40 metrów: +\c; +\s; while (radar(AlienAnt, 0, 360, 0, 40) == null) +\s; { +\s; wait(0.2); +\s; } +\n; +Zauważ, że podwójny znak równości "==" jest konieczny do wykonania sprawdzenia równości stron. + +Aby robot czekał ze strzałem, aż mrówka będzie bliżej niż 40 metrów, wystarczy wstawić te dwie linie przed instrukcją \c;fire(0);\n;,. Wtedy nawet zwykłe ogniwo elektryczne wystarczy do zabicia wszystkich mrówek. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/Tant4.TXT b/help/P/Tant4.TXT new file mode 100644 index 00000000..64d8f7e8 --- /dev/null +++ b/help/P/Tant4.TXT @@ -0,0 +1,10 @@ +\b;Zadanie +Zaprogramuj \l;działo latające\u object\botfj; do zabicia wszystkich mrówek w okolicy. + +\t;Program +Na tych bagnach działa na kołach lub gąsienicach będą niezbyt przydatne. A mrówki, w odróżnieniu od pająków, poruszają się: nie wystarczy obrócić się w kierunku najbliższej mrówki, podejść i strzelić. + +Najprostszy sposób rozwiązania tego problemu polega na lataniu na wysokości 10 metrów, celowaniu w dół: \c;aim(-20);\n; i zbliżaniu się do mrówki używając pętli warunkowej, o ile \l;odległość\u cbot\dist; jest większa niż 20 m. W pętli warunkowej musisz znaleźć najbliższą mrówkę, obrócić się w jej kierunku, ustawić silniki na pełną moc instrukcją \c;motor(1,1);\n; i chwilę poczekać, na przykład 0,2 sekundy. Te wszystkie instrukcje muszą być powtarzane aż do zbliżenia się na odległość mniejszą niż 20 metrów od mrówki. Wtedy wystarczy tylko ją zastrzelić. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/Tant5.TXT b/help/P/Tant5.TXT new file mode 100644 index 00000000..3d3fce56 --- /dev/null +++ b/help/P/Tant5.TXT @@ -0,0 +1,52 @@ +\b;Zadanie +Przystosuj wysokość lotu \l;działa latającego\u object\botfj; do terenu. + +\t;Program +Oto jeszcze raz program polujący na mrówki z poprzedniego ćwiczenia: +\c; +\s;extern void object::JetFighter1() +\s;{ +\s; object item; +\s; +\s; aim(-20); +\s; jet(0.2); +\s; while (position.z < 10) +\s; { +\s; wait(0.2); +\s; } +\s; jet(0); +\s; +\s; while (true) +\s; { +\s; while (radar(AlienAnt, 0, 360, 0, 20) == null) +\s; { +\s; item = radar(AlienAnt); +\s; turn(direction(item.position)); +\s; motor(1,1); +\s; wait(0.2); +\s; } +\s; fire(1); +\s; } +\s;} +\n; +Robot zawsze utrzymuje wysokość 10 m nad poziomem morza. Nie jest on przystosowany do górzystego terenu w tym ćwiczeniu. Najlepszym sposobem przystosowania programu jest wstawienie przed instrukcją \c;wait(0.2);\n; testu sprawdzającego czy wysokość nad poziomem ziemi jest za mała lub za duża i odpowiednie reagowanie. + +Wiesz już że instrukcja \c;position.z\n; podaje wysokość nad poziomem morza. Instrukcja \c;\l;topo\u cbot\topo;(position)\n; podaje wysokość nad poziomem ziemi w pozycji robota. Jeśli chcesz, aby robot utrzymywał wysokość pomiędzy 6 i 9 m nad ziemią, należy rozpatrzyć następujące przypadki: jeśli \c;position.z-topo(position)\n; jest mniejsze od 6, robot musi się wznieść: \c;jet(1);\n;. Jeśli \c;position.z-topo(position)\n; jest większe od 9, robot musi zmniejszyć wysokość: \c;jet(-1);\n;. Aby zaprogramować te testy, użyj instrukcji \c;\l;if\u cbot\if;\n;, która wykonuje instrukcje w klamrach jedynie wtedy gdy warunek jest prawdziwy: +\c; +\s; jet(0); +\s; if (position.z-topo(position) < 6) +\s; { +\s; jet(1); +\s; } +\s; +\s; if (position.z-topo(position) > 9) +\s; { +\s; jet(-1); +\s; } +\n; +Przed rozpoczęciem testowania, ustabilizuj wysokość instrukcją \c;jet(0);\n;: w przypadku wysokości nad poziomem ziemi pomiędzy 6 i 9 m, robot nie musi zmieniać wysokości lotu. Jeśli później zostanie wykonana instrukcja \c;jet(1);\n; lub \c;jet(-1);\n; anuluje ona poprzednią instrukcję \c;jet(0);\n;. + +Wystarczy wstawić te linie przed instrukcją \c;wait(0.2)\n;, a robot przystosuje się do terenu. Możesz już usunąć pierwszą linię programu ustawiającą wysokość początkową na 10 m. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/Tcell1.TXT b/help/P/Tcell1.TXT new file mode 100644 index 00000000..20b2e907 --- /dev/null +++ b/help/P/Tcell1.TXT @@ -0,0 +1,38 @@ +\b;Zadanie +Zaprogramuj \l;transporter\u object\botgr; do zmiany \l;ogniwa elektrycznego\u object\power; \l;działa latającego\u object\botfj;. Wtedy będzie ono mogło strzelać do pająków. + +\t;Procedura +1) Zaprogramuj \l;transporter\u object\botgr;. +2) Uruchom program klawiszem strzałki \button 21;. +\l;Działo latające\u object\botfj; jest już zaprogramowane, wystarczy je zasilić nowym ogniwem elektrycznym, aby wykonało swoją robotę. + +\t;Program +Potrzebne Ci będą następujące instrukcje: +\c; +\s;grab();\n; +\n;Podnosi przedmiot znajdujący się przed robotem. +\c; +\s;drop();\n; +\n;Wypuszcza przedmiot niesiony przez robota. +\c; +\s;turn();\n; +\n;Instrukcja ta już się pojawiła w poprzednim ćwiczeniu: obraca ona robota o podany w stopniach kąt. + +Zobaczmy początek programu: +o podnieś puste ogniwo elektryczne: \c;grab();\n; +o obróć się w lewo o 90 stopni (ćwierć obrotu): \c;turn(90)\n; +o upuść puste ogniwo: \c;drop();\n; +o itd. + +Do Ciebie należy napisanie reszty programu! + +Jeśli masz problem, zawsze możesz zerknąć na rozwiązanie: zaznacz program \c;Rozwiązanie\n; i kliknij przycisk z klamrami \button 22;. + +\t;Uwagi +Zachowaj ostrożność i pisz instrukcje dokładnie, uwzględniając małe i wielkie litery. + +W każdymi wierszu powinna być jedna instrukcja, a wiersz zakończony średnikiem. + +Jeśli Twój program nie robi tego czego oczekujesz, możesz wrócić do pozycji wyjściowej, naciskając przycisk \button 59;. Można również zacząć wszystko od początku (naciśnij klawisz "Esc", a następnie kliknij "Uruchom ponownie"). Napisany program nie zostanie usunięty. + +Naciśnięcie klawisza \key;\key help;\norm; pozwala przejrzeć te instrukcje w dowolnej chwili. diff --git a/help/P/Tcell2.TXT b/help/P/Tcell2.TXT new file mode 100644 index 00000000..df9bf691 --- /dev/null +++ b/help/P/Tcell2.TXT @@ -0,0 +1,48 @@ +\b;Zadanie +Zasil \l;działa latające\u object\botfj; \l;ogniwami elektrycznymi\u object\power;, aby mogły zabić mrówki znajdujące się w gnieździe mrówek w jamie na północ od Ciebie. + +\t;Program +\l;Transporter na kołach\u object\botgr; musi podejść do \l;ogniwa elektrycznego\u object\power;, podnieść je, podejść do \l;działa latającego\u object\botfj; i umieścić w nim ogniwo. To zadanie jest bardzo podobne do zadania z poprzedniego ćwiczenia. Oto jeszcze raz ten program: +\c; +\s;extern void object::Titanium2() +\s;{ +\s; object item; +\s; +\s; item = radar(TitaniumOre); +\s; goto(item.position); +\s; grab(); +\s; +\s; item = radar(Converter); +\s; goto(item.position); +\s; drop(); +\s;} +\n; +Najlepszym sposobem rozwiązania obecnego ćwiczenia jest skopiowanie \button 61; powyższego programu do schowka (od \c;object\n; do \c;drop();\n;), i wklejenie \button 62; do edytora programu. Następnie wystarczy dokonać niezbędnych poprawek, aby przystosować go do nowego zadania. + +Zamiast szukać rudy tytanu (\c;TitaniumOre\n;), poszukaj ogniwa elektrycznego (\c;PowerCell\n;). Zamiast iść do huty (\c;Converter\n;), idź do działa latającego (\c;WingedShooter\n;). Działo latające zacznie pracę, jak tylko otrzyma nowe ogniwo elektryczne. + +Jeśli chcesz wiedzieć więcej o "nazwach" różnych obiektów języka programowania, zobacz pomoc dotyczącą \l;kategorii\u cbot\category;. + +\t;Dalsze usprawnienia: pętle +Gdy opisany powyżej program będzie już działał idealnie, możesz go usprawnić, aby wykonywał zadanie w nieskończoność. W ten sposób nie będzie konieczne wielokrotne uruchamianie tego programu do zasilenia wielu robotów. + +Napisane dotychczas programy uruchamiają wszystkie instrukcje tylko raz, jedną po drugiej, od początku do końca programu. Można kazać robotowi powtarzać niektóre instrukcje: wystarczy napisać \c;while (true)\n;, klamrę otwierającą, instrukcje, które mają być powtarzane oraz klamrę zamykającą. Powtarzanie kilku instrukcji w ten sposób zwane jest pętlą. Oto przykład programu umożliwiającego powtarzanie w nieskończoność instrukcji szukających ogniwa elektrycznego, podnoszenia go i umieszczania w dziale latającym: +\c; +\s; while (true) +\s; { +\s; item = radar(PowerCell); +\s; goto(item.position); +\s; grab(); +\s; +\s; item = radar(WingedShooter); +\s; goto(item.position); +\s; drop(); +\s; } +\n; +Oczywiście deklaracja zmiennej \c;object item;\n; powinna pojawić się przed pętlą, a nie wewnątrz niej: zmienną wystarczy zadeklarować raz. + +\t;Uwaga +Robot może z powodzeniem wykonywać program samodzielnie. W międzyczasie możesz na przykład zaznaczyć astronautę i obejrzeć co się dzieje w gnieździe - warto. Uważaj jednak, aby nie postrzelił Cię własny robot... + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/Tspid1.TXT b/help/P/Tspid1.TXT new file mode 100644 index 00000000..7acd442f --- /dev/null +++ b/help/P/Tspid1.TXT @@ -0,0 +1,66 @@ +\b;Zadanie +Napisz krótki program zabijający trzy pająki. + +\t;Procedura +1) Aby zaprogramować robota, zaznacz go. +2) Liczby od 1 do 4 odpowiadające programom zawartym w robocie są widoczne w lewej dolnej części ekranu. Zaznacz pierwszą linię. +3) Kliknij przycisk z klamrami \button 22; a dostaniesz się do edytora, w którym możesz pisać program. +4) Podczas pisania programu, klawisz key \key;\key help;\norm; wyświetli czytany właśnie przez Ciebie tekst. Po skończeniu pisania programu, kliknij przycisk "OK". +5) Aby wykonać program, kliknij przycisk strzałki \button 21;. + +\t;Program +Musisz dokładnie, krok po kroku wyjaśnić robotowi co powinien zrobić, aby zabić trzy pająki. Robot rozumie tylko precyzyjne instrukcje, które wykona jedną po drugiej. + +Po kliknięciu przycisku z klamrami \button 22; w celu pisania programu, będzie już tam jego część: +\c; +\s;extern void object::Spider1( ) +\s;{ +\s; +\s; \n;tutaj napisz Twój program...\c; +\s; +\s;} +\n; +Nie zmieniaj tego, co zostało już napisane w edytorze, gdy go otworzysz. Dopisz tylko niezbędne instrukcje w miejscu kursora. + +Potrzebne Ci będą następujące instrukcje: +\c; +\s;aim(0);\n; +\n;Ustawia działko w poziomie. +\c; +\s;turn();\n; +\n;Wykonuje obrót o zadany kąt, podany w nawiasach w stopniach. Na przykład \c;turn(90);\n; obróci robota o 90 stopni czyli ćwierć obrotu w lewo. \c;turn(-90);\n; obróci o 90 stopni w prawo (również ćwierć obrotu). Wartości dodatnie obracają w prawo, ujemne w lewo. \c;turn(180);\n; spowoduje obrót w przeciwnym kierunku. +\c; +\s;fire(1); +\n;Strzela z działka. Liczba w nawiasach określa czas trwania serii. W większości przypadków wystarcza 1 sekundowa seria. + +Zobaczmy początek programu: +o ustaw działo poziomo: \c;aim(0);\n; +o zastrzel pająka przed robotem: \c;fire(1);\n; +o obróć o 90 stopni w lewo: \c;turn(90)\n; +o strzelaj: \c;fire(1);\n; +o itd. + +Oto program wykonujący to wszystko: +\c; +\s;extern void object::Spider1( ) +\s;{ +\s; +\s; aim(0); +\s; fire(1); +\s; turn(90); +\s; fire(1); +\s; +\s;} +\n; +Teraz do Ciebie należy napisanie reszty programu! + +Jeśli masz problem, zawsze możesz obejrzeć rozwiązanie: zaznacz program\c;Rozwiązanie\n; w lewej dolnej części ekranu i kliknij przycisk z klamrami \button 22;. Możesz nawet uruchomić program rozwiązanie, klikając przycisk strzałki \button 21;. + +\t;Uwagi +Uważaj, żeby dokładnie pisać instrukcje, zwracając uwagę na małe i wielkie litery. + +Pisz zawsze jedną instrukcję w wierszy, kończąc każdy wiersz średnikiem. + +Jeśli program nie działa dokładnie w pożądany sposób, zawsze możesz umieścić robota w punkcie startowym, klikając przycisk \button 59;. Możesz również rozpocząć zadanie od samego początku (klikając przycisk "Esc", a następnie "Uruchom ponownie"). Napisany program nie będzie stracony. + +Klawisz \key;\key help;\norm; pozwala wyświetlić te instrukcje w dowolnej chwili. diff --git a/help/P/Tspid2.TXT b/help/P/Tspid2.TXT new file mode 100644 index 00000000..aa7e14c9 --- /dev/null +++ b/help/P/Tspid2.TXT @@ -0,0 +1,16 @@ +\b;Zadanie +Zabij kilka pająków, których położenie nie jest znane. Do ich znalezienia użyj radaru robota. + +\t;Program +Znajdź najbliższego pająka instrukcją \c;\l;radar\u cbot\radar;(AlienSpider);\n;, tak jak w poprzednich ćwiczeniach z rudą tytanu i ogniwami elektrycznymi. Nie podchodź jednak do pająka, gdyż robot ulegnie zniszczeniu, zanim tam dojdzie. Obróć się tylko w jego kierunku. Instrukcja \c;\l;direction\u cbot\direct;(item.position)\n; obliczy kąt obrotu, jaki powinien wykonać robot, aby wycelować w pająka. Aby wycelować w pająka należy napisać:: +\c; +\s; \l;turn\u cbot\turn;(\l;direction\u cbot\direct;(item.position)); +\n; +Zauważ dwa nawiasy zamykające na końcu wiersza, przed średnikiem. Są dwa nawiasy otwierające, więc muszą się też pojawić dwa nawiasy zamykające. + +Następnie strzel, wykonując instrukcję \c;\l;fire\u cbot\fire;(1);\n;. + +Również tutaj możesz użyć pętli \c;\l;while\u cbot\while; (true)\n; aby nie musieć ponownie wykonywać programu dla każdego pająka, tak jak w poprzednim ćwiczeniu. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/Tspid3.TXT b/help/P/Tspid3.TXT new file mode 100644 index 00000000..132aa0b6 --- /dev/null +++ b/help/P/Tspid3.TXT @@ -0,0 +1,14 @@ +\b;Zadanie +Zbliż się do pająków będących poza zasięgiem. + +\t;Program +Ten program będzie podobny do poprzedniego, ale przed strzałem użyj instrukcji \c;\l;move\u cbot\move;();\n; aby zbliżyć się do celu na odpowiednią odległość. + +Pytanie tylko, ile metrów powinien przejechać robot. Instrukcja \c;\l;distance\u cbot\dist;( , )\n; oblicza odległość pomiędzy dwoma punktami. W tym przypadku, konieczne jest poznanie odległości pomiędzy robotem i celem. Pozycja celu podawana jest przez \c;item.position\n;, pozycja robota przez \c;position\n;. Odległość pomiędzy celem i robotem jest podana przez\c;\l;distance\u cbot\dist;(position, item.position)\n;. Zasięg działka strzelającego kulami ognia to 40 metrów. Aby się zbliżyć wystarczająco, robot musi iść naprzód \c;\l;distance\u cbot\dist;(position, item.position)-40\n; metrów. Robi to następujący wiersz: +\c; +\s; \l;move\u cbot\move;(\l;distance\u cbot\dist;(position, item.position)-40); +\n; +Wystarczy wstawić tę linię do poprzedniego programu przed instrukcją \c;fire(1);\n;, a robot zacznie się poruszać. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/Ttit1.TXT b/help/P/Ttit1.TXT new file mode 100644 index 00000000..3e2f4a92 --- /dev/null +++ b/help/P/Ttit1.TXT @@ -0,0 +1,14 @@ +\b;Zadanie +Napisz program, który przenosi porcję \l;rudy tytanu\u object\titanore; do \l;huty\u object\convert; w celu wytworzenia \l;kostki tytanu\u object\titan;. + +\t;Program +Potrzebne Ci będą nowe instrukcje: +\c; +\s;move();\n; +Porusza robotem do przodu lub do tyłu. Odległość podawana jest w nawiasach, w metrach: \c;move(10);\n; przesuwa robota o 10m do przodu, \c;move(-1);\n; cofa robota o 1m. + +Instrukcje \c;\l;turn\u cbot\turn;()\n;, \c;\l;grab\u cbot\grab;()\n; i \c;\l;drop\u cbot\drop;()\n; zostały już wyjaśnione w poprzednich ćwiczeniach. Jeśli masz jeszcze jakieś pytania na ich temat, kliknij podkreśloną na niebiesko nazwę instrukcji a pojawi się jej opis. + +\l;Ruda tytanu\u object\titanore; jest 20m przed robotem, \l;huta\u object\convert; jest 10m za robotem. Po zaniesieniu rudy tytanu do huty nie zapomnij cofnąć robota (na przykład \c;move(-2.5);\n;), aby umożliwić hucie rozpoczęcie pracy. + +Klawisz \key;\key help;\norm; pozwala wyświetlić te instrukcje w dowolnej chwili. diff --git a/help/P/Ttit2.TXT b/help/P/Ttit2.TXT new file mode 100644 index 00000000..df05b11c --- /dev/null +++ b/help/P/Ttit2.TXT @@ -0,0 +1,51 @@ +\b;Zadanie +Zabierz porcję \l;rudy tytanu\u object\titanore;, której dokładne położenie nie jest znane. Użyj radaru robota, aby ją znaleźć. Dostarcz rudę tytanu do \l;huty\u object\convert;. + +\t;Program +Można zauważyć, że programy napisane w poprzednich ćwiczeniach były zupełnie "ślepe": jeśli ruda tytanu, ogniwo elektryczne lub pająki byłyby w innym miejscu, robot by ich nie znalazł. + +Radar to "oczy" robota. Za pomocą radaru można wykrywać obiekty dookoła niego. Na przykład instrukcja \c;\l;radar\u cbot\radar;(TitaniumOre);\n; poda informacje o najbliższej porcji \l;rudy tytanu\u object\titanore;. Jednakże trzeba gdzieś "przechować" informację zwróconą przez instrukcję \c;\l;radar\u cbot\radar;(TitaniumOre);\n;. Do tego zadania potrzebna będzie \l;zmienna\u cbot\var;. + +\l;Zmienna\u cbot\var; jest jak małe podpisane pudełko, w którym można umieścić informacje, odczytać je, zmienić, itd. Przed użyciem zmiennej trzeba ją zadeklarować. Najpierw należy określić jej \l;typ\u cbot\type;, w tym przypadku \c;object\n;. Zmienna tego typu może zawierać wszystkie informacje opisujące obiekt, taki jak porcja rudy tytanu, pająk, mrówka, robot, ogniwo elektryczne itd. Potem trzeba napisać nazwę, którą chcesz nadać zmiennej, na przykład \c;item\n;. Otrzymamy poniższy wiersz: +\c; +\s;\l;object\u cbot\type; item; +\n; +Następnie należy przypisać zmiennej wartość zwróconą przez instrukcję \c;\l;radar\u cbot\radar;(TitaniumOre)\n;: +\c; +\s;item = \l;radar\u cbot\radar;(TitaniumOre); +\n; +Zmienna \c;item\n; zawiera wiele różnych rodzajów informacji: zawiera pozycję, orientację, pochylenie, itd. Aby otrzymać pozycję kawałka rudy tytanu, napisz \c;item.position\n;. Następnie użyj instrukcji \c;goto();\n;, aby wysłać robota na tę pozycję. Oto wiersz wykonujący opisane czynności: +\c; +\s;\l;goto\u cbot\goto;(item.position); +\n; +Jeśli "przetłumaczymy" to na język polski, będzie to oznaczać: idź na pozycję obiektu opisanego przez zmienną \c;item\n;. + +Następnie można podnieść przedmiot znajdujący się przed robotem, używając instrukcji \c;\l;grab\u cbot\grab;();\n;. + +Po złożeniu tego wszystkiego razem, otrzymamy następujący program: +\c; +\s;extern void object::Titanium2( ) +\s;{ +\s; +\s; \l;object\u cbot\type; item; +\s; item = \l;radar\u cbot\radar;(TitaniumOre); +\s; \l;goto\u cbot\goto;(item.position); +\s; grab(); +\s; +\s;} +\n; +Później musisz znaleźć \l;hutę\u cbot\convert; i umieścić informacje o niej w zmiennej \c;item\n;: +\c; +\s;item = \l;radar\u cbot\radar;(Converter); +\n; +Podejdź do huty, używając tej samej instrukcji \c;\l;goto\u cbot\goto;(item.position);\n; co powyżej, zostaw tytan i cofnij się. Huta wykona resztę roboty. + +Jeśli chcesz wiedzieć więcej o "nazwach" różnych obiektów w języku programowania, przeczytaj \l;tekst o kategoriach\u cbot\category;. + +\t;Uwagi +\l;Zmienne\u cbot\var; muszą zostać zadeklarowane tylko raz, na początku programu! Później można używać ich wielokrotnie. + +Aby uniknąć przepisywania opisanych powyżej instrukcji, możesz zaznaczyć je myszą oraz skopiować i wkleić \button 61; do Twojego programu. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/Twasp1.TXT b/help/P/Twasp1.TXT new file mode 100644 index 00000000..65a25c59 --- /dev/null +++ b/help/P/Twasp1.TXT @@ -0,0 +1,43 @@ +\b;Zadanie +Zestrzel wszystkie latające osy. + +\t;Program +Oto program z poprzedniego ćwiczenia, który zabija wszystkie mrówki, przystosowując się do rzeźby terenu: +\c; +\s;extern void object::JetFighter2() +\s;{ +\s; \l;object\u cbot\type; item; +\s; +\s; \l;aim\u cbot\aim;(-20); +\s; +\s; \l;while\u cbot\while; (true) +\s; { +\s; \l;while\u cbot\while; (\l;radar\u cbot\radar;(AlienAnt, 0, 360, 0, 20) == null) +\s; { +\s; item = \l;radar\u cbot\radar;(AlienAnt); +\s; \l;turn\u cbot\turn;(\l;direction\u cbot\direct;(item.position)); +\s; \l;motor\u cbot\motor;(1,1); +\s; +\s; \l;jet\u cbot\jet;(0); +\s; \l;if\u cbot\if; (position.z-topo(position) < 6) +\s; { +\s; \l;jet\u cbot\jet;(1); +\s; } +\s; +\s; \l;if\u cbot\if; (position.z-topo(position) > 9) +\s; { +\s; \l;jet\u cbot\jet;(-1); +\s; } +\s; \l;wait\u cbot\wait;(0.2); +\s; } +\s; \l;fire\u cbot\fire;(1); +\s; } +\s;} +\n; +Aby przystosować ten program do zestrzeliwania os, konieczne będzie wprowadzenie kilku poprawek. Zamień wszystkie wystąpienia \c;radar(AlienAnt)\n; na \c;radar(AlienWasp)\n;. Działko musi celować prosto naprzód, a nie w dół, zamień więc również \c;aim(-20);\n; na \c;aim(0);\n;. Robot powinien lecieć na tej samej wysokości co osa. Musi więc porównywać wysokość robota podaną przez \c;position.z\n; z wysokością osy podaną przez \c;item.position.z\n;: jeśli \c;position.z > item.position.z\n;, powoli zmniejsz wysokość \c;jet(-0.3);\n;. Jeśli \c;position.z < item.position.z-1\n;, powoli zwiększ wysokość \c;jet(0.3);\n;. Działo latające jest nieco wyższe od osy, dlatego lepiej jeśli wysokość robota będzie trochę mniejsza od wysokości osy. W tym przypadku sugerujemy, aby wysokość robota była pomiędzy wysokością osy a wysokością osy minus 1. + +\t;Dalsze usprawnienia +Osy poruszają się bardzo szybko. Aby zwiększyć szanse ich trafienia, przed samym strzałem (\c;fire(1);\n;) można powtórzyć instrukcje \c;radar\n; i \c;turn\n; w celu ostatniej korekty kierunku. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/Twasp2.TXT b/help/P/Twasp2.TXT new file mode 100644 index 00000000..43a4e4ee --- /dev/null +++ b/help/P/Twasp2.TXT @@ -0,0 +1,84 @@ +\b;Zadanie +Zestrzel wszystkie osy nieco efektywniej niż w poprzednim programie. + +\b;Program +Oto program z poprzedniego ćwiczenia, który zabija wszystkie osy, jednak po bardzo wielu nieudanych próbach: +\c; +\s;extern void object::Wasp1() +\s;{ +\s; \l;object\u cbot\type; item; +\s; +\s; \l;aim\u cbot\aim;(0); +\s; +\s; \l;while\u cbot\while; (true) +\s; { +\s; \l;while\u cbot\while; (\l;radar\u cbot\radar;(AlienWasp, 0, 360, 0, 20) == null) +\s; { +\s; item = \l;radar\u cbot\radar;(AlienWasp); +\s; \l;turn\u cbot\turn;(\l;direction\u cbot\direct;(item.position)); +\s; \l;motor\u cbot\motor;(1,1); +\s; +\s; \l;jet\u cbot\jet;(0); +\s; \l;if\u cbot\if; (position.z > item.position.z) +\s; { +\s; \l;jet\u cbot\jet;(-0.3); +\s; } +\s; +\s; \l;if\u cbot\if; (position.z < item.position.z - 1) +\s; { +\s; \l;jet\u cbot\jet;(0.3); +\s; } +\s; +\s; \l;wait\u cbot\wait;(0.2); +\s; } +\s; item = \l;radar\u cbot\radar;(AlienWasp); +\s; \l;turn\u cbot\turn;(\l;direction\u cbot\direct;(item.position)); +\s; \l;fire\u cbot\fire;(1); +\s; } +\s;} +\n; +Wiele niecelnych strzałów jest spowodowanych faktem, że osa odleciała, zanim doleciał do niej pocisk. Jedynym sposobem usprawnienia programu jest ustawienie mocy obu silników oraz silnika odrzutowego w ten sposób, aby robot podążał tą samą trasą co cel podczas strzału. + +Bezpośrednio przed strzałem program po raz ostatni reguluje kierunek instrukcją \c;turn(direction(item.position));\n;. Aby podążać za osą w trakcie strzelania, należy "zapamiętać" kąt ostatniego obrotu: jeśli był on dodatni(obrót w lewo), robot powinien się obracać w lewo podczas strzelania; jeśli był ujemny, robot powinien obracać się w prawo. + +Do "zapamiętania" kąta ostatniego obrotu potrzebna będzie zmienna, zawierająca tylko jedną liczbę. Jeśli nazwiesz ją \c;angle\n;, należy zdefiniować zmienną za pomocą następującego wiersza na początku programu: +\c; +\s; \l;float\u cbot\type; angle; +\n; +Zmienna typu \l;float\u cbot\type; jest zmienną typu, który może przechowywać każdą liczbę, całkowitą bądź rzeczywistą. Zobacz \l;tekst o typach zmiennych\u cbot\type; jeśli chcesz wiedzieć więcej o różnych typach zmiennych oraz co one zawierają. + +Bezpośrednio przed instrukcją \c;fire(1);\n;, zamiast pisać \c;\l;turn\u cbot\turn;(\l;direction\u cbot\direct;(item.position));\n;, umieść kąt obrotu w zmiennej \c;angle\n;: +\c; +\s; angle = direction(item.position); +\n; +Następnie wykonaj obrót i ustaw moc silników tak, aby robot kontynuował poruszanie się: +\c; +\s; turn(angle); +\s; if (angle < 0) +\s; { +\s; motor(1,0.5); +\s; } +\s; else +\s; { +\s; motor(0.5,1); +\s; } +\n; +Instrukcja \c;else\n; określa jakie instrukcje powinien wykonać program jeśli warunek podany instrukcji \c;if\n; jest fałszywy. + +Następnie trzeba ustawić moc silników odrzutowych, aby robot utrzymywał również tą samą wysokość co osa: +\c; +\s; jet(0); +\s; if(position.z > item.position.z) +\s; { +\s; jet(-0.3); +\s; } +\s; +\s; if(position.z < item.position.z - 1) +\s; { +\s; jet(0.3); +\s; } +\n; +Każdy zauważy, że ten program jest o wiele skuteczniejszy od poprzedniego! + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/authors.txt b/help/P/authors.txt new file mode 100644 index 00000000..461e144d --- /dev/null +++ b/help/P/authors.txt @@ -0,0 +1,7 @@ +Zespół projektowy: Zespół wewnętrznych beta testerów: + +- Daniel Roux - Adrien Roux - Michael Jubin +- Denis Dumoulin - Didier Raboud - Daniel Sauthier +- Otto Kolbl - Nicolas Beuchat - Nicolas Stubi +- Michael Walz - Joel Roux - Patrick Thevoz +- Didier Gertsch diff --git a/help/P/cbot/AIM.TXT b/help/P/cbot/AIM.TXT new file mode 100644 index 00000000..0466afaf --- /dev/null +++ b/help/P/cbot/AIM.TXT @@ -0,0 +1,21 @@ +\b;Instrukcja \c;aim\n; +Składnia: +\s;\c;aim ( kąt );\n; + +Instrukcja ta umożliwia zmianę położenia lufy w pionie. Następujące roboty mogą strzelać: +o \l;Działo\u object\botfr; +o \l;Działo organiczne\u object\botor; +o \l;Działo fazowe\u object\botphaz; + +Podczas kontroli robota za pomocą programu, jedynym sposobem obrócenia lufy w lewo lub w prawo jest obrócenie całego robota przy użyciu instrukcji \c;\l;turn\u cbot\turn;\n;. + +\t;kąt: \c;\l;float\u cbot\float;\n; +Kąt w stopniach w odniesieniu do robota. Wartość dodatnia ustawia lufę w górę. Dla dział i dział organicznych ograniczeniem jest przedział od \c;-20\n; do \c;+20\n; stopni. Dla działa fazowego kąt ten musi należeć do przedziału od \c;-20\n; do \c;45\n; stopni. + +\t;Zwracana wartość: \c;\l;int\u cbot\int;\n; +Zero jeśli wszystko jest w porządku, wartość różna od zera, jeśli obrót nie może być wykonany: +\c;== 0 \n;Lufa została wycelowana w żądanym kierunku +\c;!= 0 \n;obrót niemożliwy + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/AIM.TXT.bak b/help/P/cbot/AIM.TXT.bak new file mode 100644 index 00000000..1cf01c43 --- /dev/null +++ b/help/P/cbot/AIM.TXT.bak @@ -0,0 +1,21 @@ +\b;Instrukcja \c;aim\n; +Skadnia: +\s;\c;aim ( kt );\n; + +Instrukcja ta umoliwia zmian pooenia lufy w pionie. Nastpujce roboty mog strzela: +o \l;Dziao\u object\botfr; +o \l;Dziao organiczne\u object\botor; +o \l;Dziao fazowe\u object\botphaz; + +Podczas kontroli robota za pomoc programu, jedynym sposobem obrcenia lufy w lewo lub w prawo jest obrcenie caego robota przy uyciu instrukcji \c;\l;turn\u cbot\turn;\n;. + +\t;kt: \c;\l;float\u cbot\float;\n; +Kt w stopniach w odniesieniu do robota. Warto dodatnia ustawia luf w gr. Dla dzia i dzia organicznych ograniczeniem jest przedzia od \c;-20\n; do \c;+20\n; stopni. Dla dziaa fazowego kt ten musi nalee do przedziau od \c;-20\n; do \c;45\n; stopni. + +\t;Zwracana warto: \c;\l;int\u cbot\int;\n; +Zero jeli wszystko jest w porzdku, warto rna od zera, jeli obrt nie moe by wykonany: +\c;== 0 \n;Lufa zostaa wycelowana w danym kierunku +\c;!= 0 \n;obrt niemoliwy + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/BOOL.TXT b/help/P/cbot/BOOL.TXT new file mode 100644 index 00000000..e2c59115 --- /dev/null +++ b/help/P/cbot/BOOL.TXT @@ -0,0 +1,5 @@ +\b;Typ \c;bool\n; +Zmiennej tego typu można przypisać wartość logiczną, czyli wartość która ma dwa stany: true (prawda) lub false (fałsz). + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/BOOL.TXT.bak b/help/P/cbot/BOOL.TXT.bak new file mode 100644 index 00000000..6c52776e --- /dev/null +++ b/help/P/cbot/BOOL.TXT.bak @@ -0,0 +1,5 @@ +\b;Typ \c;bool\n; +Zmiennej tego typu mona przypisa warto logiczn, czyli warto ktra ma dwa stany: true (prawda) lub false (fasz). + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/BREAK.TXT b/help/P/cbot/BREAK.TXT new file mode 100644 index 00000000..75c7c92c --- /dev/null +++ b/help/P/cbot/BREAK.TXT @@ -0,0 +1,25 @@ +\b;Instrukcja \c;break\n; +Składnia: +\s;\c;while ( warunek ) +\s;{ +\s; break; +\s;} +\n; +Instrukcja break kończy wykonywanie pętli \c;\l;while\u cbot\while;\n; lub \c;\l;for\u cbot\for;\n;. + +Oto przykład: +\s;\c;int i = 0; +\s;while ( true ) +\s;{ +\s; \n;Instrukcje ...\c; +\s; i = i+1; +\s; if ( i >= 10 ) +\s; { +\s; break; +\s; } +\s; \n;więcej instrukcji ...\c; +\s;} +\n; + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/BREAK.TXT.bak b/help/P/cbot/BREAK.TXT.bak new file mode 100644 index 00000000..8277732e --- /dev/null +++ b/help/P/cbot/BREAK.TXT.bak @@ -0,0 +1,25 @@ +\b;Instrukcja \c;break\n; +Skadnia: +\s;\c;while ( warunek ) +\s;{ +\s; break; +\s;} +\n; +Instrukcja break koczy wykonywanie ptli \c;\l;while\u cbot\while;\n; lub \c;\l;for\u cbot\for;\n;. + +Oto przykad: +\s;\c;int i = 0; +\s;while ( true ) +\s;{ +\s; \n;Instrukcje ...\c; +\s; i = i+1; +\s; if ( i >= 10 ) +\s; { +\s; break; +\s; } +\s; \n;wicej instrukcji ...\c; +\s;} +\n; + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/COND.TXT b/help/P/cbot/COND.TXT new file mode 100644 index 00000000..e1dc0931 --- /dev/null +++ b/help/P/cbot/COND.TXT @@ -0,0 +1,29 @@ +\b;Warunki +Warunek, to \l;wyrażenie\u cbot\expr; dające w wyniku wartość \l;logiczną\u cbot\bool;, którą może być \c;\l;true\u cbot\true;\n; (prawda) lub \c;\l;false\u cbot\false;\n; (fałsz). Używając warunku można wybrać czy instrukcje w pętli \c;\l;while\u cbot\while;\n; powinny być wykonane jeszcze raz lub czy instrukcje w bloku \c;\l;if\u cbot\if;\n; powinny być wykonywane. +Oto kilka operatorów, których można używać do porównywania dwóch wartości: + +\c;a == b \n;\c;a\n; równe \c;b\n; +\c;a != b \n;\c;a\n; różne od \c;b\n; +\c;a < b \n;\c;a\n; mniejsze od \c;b\n; +\c;a <= b \n;\c;a\n; mniejsze od lub równe \c;b\n; +\c;a > b \n;\c;a\n; większe od \c;b\n; +\c;a >= b \n;\c;a\n; większe od lub równe \c;b\n; + +Na przykład: + +\c;12 == 12 \n;daje w wyniku true +\c;45 != 47 \n;daje w wyniku true +\c;99 == 98 \n;daje w wyniku false +\c;12 < -1 \n;daje w wyniku false +\c;12 >= 10 \n;daje w wyniku true +\c;12 >= 12 \n;daje w wyniku true + +\t;Uwaga +Nie należy mylić operatora porównania \c;==\n; z operatorem przypisania wartości \l;zmiennej\u cbot\var; \c;=\n;. + +\c;a == b\n; jest wyrażeniem porównującym \c;a\n; z \c;b\n;. +\c;a = b\n; jest wyrażeniem kopiującym wartość \c;b\n; do \c;a\n;. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. + diff --git a/help/P/cbot/COND.TXT.bak b/help/P/cbot/COND.TXT.bak new file mode 100644 index 00000000..1cdc1847 --- /dev/null +++ b/help/P/cbot/COND.TXT.bak @@ -0,0 +1,29 @@ +\b;Warunki +Warunek, to \l;wyraenie\u cbot\expr; dajce w wyniku warto \l;logiczn\u cbot\bool;, ktr moe by \c;\l;true\u cbot\true;\n; (prawda) lub \c;\l;false\u cbot\false;\n; (fasz). Uywajc warunku mona wybra czy instrukcje w ptli \c;\l;while\u cbot\while;\n; powinny by wykonane jeszcze raz lub czy instrukcje w bloku \c;\l;if\u cbot\if;\n; powinny by wykonywane. +Oto kilka operatorw, ktrych mona uywa do porwnywania dwch wartoci: + +\c;a == b \n;\c;a\n; rwne \c;b\n; +\c;a != b \n;\c;a\n; rne od \c;b\n; +\c;a < b \n;\c;a\n; mniejsze od \c;b\n; +\c;a <= b \n;\c;a\n; mniejsze od lub rwne \c;b\n; +\c;a > b \n;\c;a\n; wiksze od \c;b\n; +\c;a >= b \n;\c;a\n; wiksze od lub rwne \c;b\n; + +Na przykad: + +\c;12 == 12 \n;daje w wyniku true +\c;45 != 47 \n;daje w wyniku true +\c;99 == 98 \n;daje w wyniku false +\c;12 < -1 \n;daje w wyniku false +\c;12 >= 10 \n;daje w wyniku true +\c;12 >= 12 \n;daje w wyniku true + +\t;Uwaga +Nie naley myli operatora porwnania \c;==\n; z operatorem przypisania wartoci \l;zmiennej\u cbot\var; \c;=\n;. + +\c;a == b\n; jest wyraeniem porwnujcym \c;a\n; z \c;b\n;. +\c;a = b\n; jest wyraeniem kopiujcym warto \c;b\n; do \c;a\n;. + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. + diff --git a/help/P/cbot/CONTINUE.TXT b/help/P/cbot/CONTINUE.TXT new file mode 100644 index 00000000..777b98f8 --- /dev/null +++ b/help/P/cbot/CONTINUE.TXT @@ -0,0 +1,25 @@ +\b;Instrukcja \c;continue\n; +Składnia: +\s;\c;while ( warunek ) +\s;{ +\s; continue; +\s;} +\n; +Przy użyciu tej instrukcji, można przeskoczyć resztę instrukcji w \c;\l;bloku\u cbot\bloc;\n; pętli \c;\l;while\u cbot\while;\n; lub \c;\l;for\u cbot\for;\n;: Działanie zostanie wznowione na początku bloku przy następnym powtórzeniu pętli. + +Oto przykład: +\s;\c;int i = 0; +\s;while ( i < 5 ) +\s;{ +\s; i = i+1; +\s; if ( i == 3 ) +\s; { +\s; continue; +\s; } +\s; \n;Instrukcje ...\c; +\s;} +\n; +Instrukcje będą wykonane tylko dla wartości \c;i\n; 1, 2, 4 i 5. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/CONTINUE.TXT.bak b/help/P/cbot/CONTINUE.TXT.bak new file mode 100644 index 00000000..75a491db --- /dev/null +++ b/help/P/cbot/CONTINUE.TXT.bak @@ -0,0 +1,25 @@ +\b;Instrukcja \c;continue\n; +Skadnia: +\s;\c;while ( warunek ) +\s;{ +\s; continue; +\s;} +\n; +Przy uyciu tej instrukcji, mona przeskoczy reszt instrukcji w \c;\l;bloku\u cbot\bloc;\n; ptli \c;\l;while\u cbot\while;\n; lub \c;\l;for\u cbot\for;\n;: Dziaanie zostanie wznowione na pocztku bloku przy nastpnym powtrzeniu ptli. + +Oto przykad: +\s;\c;int i = 0; +\s;while ( i < 5 ) +\s;{ +\s; i = i+1; +\s; if ( i == 3 ) +\s; { +\s; continue; +\s; } +\s; \n;Instrukcje ...\c; +\s;} +\n; +Instrukcje bd wykonane tylko dla wartoci \c;i\n; 1, 2, 4 i 5. + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/DIRECT.TXT b/help/P/cbot/DIRECT.TXT new file mode 100644 index 00000000..c777b66c --- /dev/null +++ b/help/P/cbot/DIRECT.TXT @@ -0,0 +1,15 @@ +\b;Instrukcja \c;direction\n; +Składnia: +\s;\c;direction ( pozycja );\n; + +Oblicza kąt obrotu, niezbędny do skierowania robota w kierunku zadanej pozycji. + +\t;pozycja: \c;\l;point\u cbot\point;\n; +Pozycja, w kierunku której ma być skierowany robot. + +\t;Typ wyniku: \c;\l;float\u cbot\float;\n; +Kąt obrotu, który powinien być wykonany. -90 oznacza obrót o 90 stopni w prawo. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. + diff --git a/help/P/cbot/DIRECT.TXT.bak b/help/P/cbot/DIRECT.TXT.bak new file mode 100644 index 00000000..cbc8cb20 --- /dev/null +++ b/help/P/cbot/DIRECT.TXT.bak @@ -0,0 +1,15 @@ +\b;Instrukcja \c;direction\n; +Skadnia: +\s;\c;direction ( pozycja );\n; + +Oblicza kt obrotu, niezbdny do skierowania robota w kierunku zadanej pozycji. + +\t;pozycja: \c;\l;point\u cbot\point;\n; +Pozycja, w kierunku ktrej ma by skierowany robot. + +\t;Typ wyniku: \c;\l;float\u cbot\float;\n; +Kt obrotu, ktry powinien by wykonany. -90 oznacza obrt o 90 stopni w prawo. + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. + diff --git a/help/P/cbot/DIST.TXT b/help/P/cbot/DIST.TXT new file mode 100644 index 00000000..509e1b7c --- /dev/null +++ b/help/P/cbot/DIST.TXT @@ -0,0 +1,30 @@ +\b;Instrukcja \c;distance\n; +Za pomocą instrukcji \c;distance( , )\n; można obliczyć odległość między dwoma punktami. + +\b;Podstawowe użycie +Napisanie samej instrukcji \c;position\n; daje w wyniku pozycję robota wykonującego program. Napisanie nazwy zmiennej, a następnie bezpośrednio po niej \c;.position\n;, daje w wyniku pozycję obiektu opisywanego przez zmienną. + +Oto program polecający robotowi podejść do przodu, o odległość równą odległości pomiędzy robotem i najbliższą mrówką: +\c; +\s; item = \l;radar\u cbot\radar;(AlienAnt); +\s; \l;move\u cbot\move;(distance(position, item.position)); +\n; +Byłoby to oczywiste samobójstwo. Lepiej zatrzymać robota 40 metrów wcześniej, w odległości odpowiedniej do strzału: +\c; +\s; item = radar(AlienAnt); +\s; move(distance(position, item.position) - 40); +\n; +\b;Dla specjalistów +Składnia: +\s;\c;distance ( pozycja1, pozycja2 );\n; + +Oblicza odległość między dwoma punktami. + +\t;pozycja1, pozycja2: \c;\l;point\u cbot\point;\n; +Współrzędne dwóch punktów. + +\t;Typ wyniku: \c;\l;float\u cbot\float;\n; +Odległość między dwoma punktami. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/DIST.TXT.bak b/help/P/cbot/DIST.TXT.bak new file mode 100644 index 00000000..151713c8 --- /dev/null +++ b/help/P/cbot/DIST.TXT.bak @@ -0,0 +1,30 @@ +\b;Instrukcja \c;distance\n; +Za pomoc instrukcji \c;distance( , )\n; mona obliczy odlego midzy dwoma punktami. + +\b;Podstawowe uycie +Napisanie samej instrukcji \c;position\n; daje w wyniku pozycj robota wykonujcego program. Napisanie nazwy zmiennej, a nastpnie bezporednio po niej \c;.position\n;, daje w wyniku pozycj obiektu opisywanego przez zmienn. + +Oto program polecajcy robotowi podej do przodu, o odlego rwn odlegoci pomidzy robotem i najblisz mrwk: +\c; +\s; item = \l;radar\u cbot\radar;(AlienAnt); +\s; \l;move\u cbot\move;(distance(position, item.position)); +\n; +Byoby to oczywiste samobjstwo. Lepiej zatrzyma robota 40 metrw wczeniej, w odlegoci odpowiedniej do strzau: +\c; +\s; item = radar(AlienAnt); +\s; move(distance(position, item.position) - 40); +\n; +\b;Dla specjalistw +Skadnia: +\s;\c;distance ( pozycja1, pozycja2 );\n; + +Oblicza odlego midzy dwoma punktami. + +\t;pozycja1, pozycja2: \c;\l;point\u cbot\point;\n; +Wsprzdne dwch punktw. + +\t;Typ wyniku: \c;\l;float\u cbot\float;\n; +Odlego midzy dwoma punktami. + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/DO.TXT b/help/P/cbot/DO.TXT new file mode 100644 index 00000000..42790816 --- /dev/null +++ b/help/P/cbot/DO.TXT @@ -0,0 +1,28 @@ +\b;Instrukcja \c;do - while\n; +Składnia: +\s;\c;do +\s;{ +\s; \n;Instrukcje ...\c; +\s;} +\s;while ( warunek ); +\n; +Instrukcja ta umożliwia kilkukrotne wykonanie instrukcji w \l;bloku\u cbot\bloc;. Instrukcje wykonywane są conajmniej jeden raz, gdyż warunek sprawdzany jest dopiero na końcu pętli. +Należy uważać, aby nie pomylić instrukcji \c;do { } while ( );\n; z instrukcją \c;\l;while\u cbot\while; ( ) { }\n;; ta druga sprawdza warunek przed wykonaniem instrukcji w bloku. + +\t;\c;warunek\n; +Instrukcje w bloku wykonywane są tak długo, jak długo \l;warunek\u cbot\cond; jest prawdziwy. + +Oto przykład: +\s;\c;do +\s;{ +\s; p = radar(TitaniumOre); +\s;} +\s;while ( p == null ); +\n; +\t;Uwaga +Zawsze należy umieszczać \l;średnik\u cbot\term; na końcu wiersza z instrukcją \c;while ( )\n;. + +Instrukcje \c;\l;break\u cbot\break;\n; i \c;\l;continue\u cbot\continue;\n; mogą być przydatne wewnątrz bloku instrukcji \c;do { }\n;. + +\t;Zobacz również +\l;Instrukcje\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/DO.TXT.bak b/help/P/cbot/DO.TXT.bak new file mode 100644 index 00000000..b6a82d0a --- /dev/null +++ b/help/P/cbot/DO.TXT.bak @@ -0,0 +1,28 @@ +\b;Instrukcja \c;do - while\n; +Skadnia: +\s;\c;do +\s;{ +\s; \n;Instrukcje ...\c; +\s;} +\s;while ( warunek ); +\n; +Instrukcja ta umoliwia kilkukrotne wykonanie instrukcji w \l;bloku\u cbot\bloc;. Instrukcje wykonywane s conajmniej jeden raz, gdy warunek sprawdzany jest dopiero na kocu ptli. +Naley uwaa, aby nie pomyli instrukcji \c;do { } while ( );\n; z instrukcj \c;\l;while\u cbot\while; ( ) { }\n;; ta druga sprawdza warunek przed wykonaniem instrukcji w bloku. + +\t;\c;warunek\n; +Instrukcje w bloku wykonywane s tak dugo, jak dugo \l;warunek\u cbot\cond; jest prawdziwy. + +Oto przykad: +\s;\c;do +\s;{ +\s; p = radar(TitaniumOre); +\s;} +\s;while ( p == null ); +\n; +\t;Uwaga +Zawsze naley umieszcza \l;rednik\u cbot\term; na kocu wiersza z instrukcj \c;while ( )\n;. + +Instrukcje \c;\l;break\u cbot\break;\n; i \c;\l;continue\u cbot\continue;\n; mog by przydatne wewntrz bloku instrukcji \c;do { }\n;. + +\t;Zobacz rwnie +\l;Instrukcje\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/DROP.TXT b/help/P/cbot/DROP.TXT new file mode 100644 index 00000000..6ed489f3 --- /dev/null +++ b/help/P/cbot/DROP.TXT @@ -0,0 +1,29 @@ +\b;Instrukcja \c;drop\n; +Instrukcja \c;drop();\n; poleca robotowi upuścić niesiony przedmiot na ziemię, platformę budynku lub miejsce na ogniwo elektryczne robota. + +\b;Podstawowe użycie +Instrukcja \c;drop();\n; napisana w takiej postaci upuszcza przedmiot przed robotem. Oto krótki program podnoszący przedmiot bezpośrednio przed robotem i upuszczający go 5 metrów dalej: +\c; +\s; \l;grab\u cbot\grab;(); +\s; \l;move\u cbot\move;(5); +\s; drop(); +\n; +\b;Dla specjalistów +Składnia: +\s;\c;drop ( oper );\n; + +Instrukcja ta odwołuje się do ramienia \l;robota transportera\u object\botgr;, w celu upuszczenia niesionego przedmiotu. + +\t;oper: \c;\l;int\u cbot\int;\n; (domyślna wartość \c;InFront\n;) +Oper oznacza gdzie robot powinien zostawić przedmiot. Jeśli nie jest to określone, przedmiot zostawiany jest przed robotem. +\c;InFront \n; przed (domyślnie). +\c;Behind \n; za +\c;EnergyCell\n; w miejscu na baterię samego robota. + +\t;Typ wyniku: \c;\l;int\u cbot\int;\n; +Zwykle wystąpienie błędu powoduje zatrzymanie programu. Można wyłączyć zatrzymywanie się programu w przypadku wystąpienia błędu, używając instrukcji \c;\l;errmode\u cbot\errmode;(0)\n;. Wtedy w przypadku wystąpienia błędu instrukcja \c;drop();\n; zwraca w wyniku wartość różną od zera. +\c;== 0 \n;przedmiot został upuszczony +\c;!= 0 \n;błąd, nie upuszczono żadnego przedmiotu + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/DROP.TXT.bak b/help/P/cbot/DROP.TXT.bak new file mode 100644 index 00000000..8c42696d --- /dev/null +++ b/help/P/cbot/DROP.TXT.bak @@ -0,0 +1,29 @@ +\b;Instrukcja \c;drop\n; +Instrukcja \c;drop();\n; poleca robotowi upuci niesiony przedmiot na ziemi, platform budynku lub miejsce na ogniwo elektryczne robota. + +\b;Podstawowe uycie +Instrukcja \c;drop();\n; napisana w takiej postaci upuszcza przedmiot przed robotem. Oto krtki program podnoszcy przedmiot bezporednio przed robotem i upuszczajcy go 5 metrw dalej: +\c; +\s; \l;grab\u cbot\grab;(); +\s; \l;move\u cbot\move;(5); +\s; drop(); +\n; +\b;Dla specjalistw +Skadnia: +\s;\c;drop ( oper );\n; + +Instrukcja ta odwouje si do ramienia \l;robota transportera\u object\botgr;, w celu upuszczenia niesionego przedmiotu. + +\t;oper: \c;\l;int\u cbot\int;\n; (domylna warto \c;InFront\n;) +Oper oznacza gdzie robot powinien zostawi przedmiot. Jeli nie jest to okrelone, przedmiot zostawiany jest przed robotem. +\c;InFront \n; przed (domylnie). +\c;Behind \n; za +\c;EnergyCell\n; w miejscu na bateri samego robota. + +\t;Typ wyniku: \c;\l;int\u cbot\int;\n; +Zwykle wystpienie bdu powoduje zatrzymanie programu. Mona wyczy zatrzymywanie si programu w przypadku wystpienia bdu, uywajc instrukcji \c;\l;errmode\u cbot\errmode;(0)\n;. Wtedy w przypadku wystpienia bdu instrukcja \c;drop();\n; zwraca w wyniku warto rn od zera. +\c;== 0 \n;przedmiot zosta upuszczony +\c;!= 0 \n;bd, nie upuszczono adnego przedmiotu + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/EXPR.TXT b/help/P/cbot/EXPR.TXT new file mode 100644 index 00000000..a9abce98 --- /dev/null +++ b/help/P/cbot/EXPR.TXT @@ -0,0 +1,88 @@ +\b;Wyrażenia +Wyrażenia mogą zawierać następujące operatory: + +\c;+\n; dodawanie +\c;-\n; odejmowanie +\c;*\n; mnożenie +\c;/\n; dzielenie +\c;%\n; reszta z dzielenia (tylko dla typu całkowitego \c;\l;int\u cbot\int;\n;) + +Dodatkowo operator \c;+\n; nie tylko dodaje liczby ale również złącza \l;łańcuchy\u cbot\string;. +\c; +\s; int i = 12+3; // daje w wyniku 15 +\s; string s = "a"+"bc"; // daje w wyniku "abc" +\s; int i = 2-5; // daje w wyniku -3 +\s; float f = 3.01*10; // daje w wyniku 30.1 +\s; int i = 5/3; // daje w wyniku 1 +\s; float f = 5/3; // daje w wyniku 1.67 +\s; float f = 5/0; // powoduje wystąpienie błędu +\s; int i = 13%5; // daje w wyniku 3 +\s; int i = -8%3; // daje w wyniku -2 +\n; +Wyrażenie może zawierać stałe lub \l;zmienne\u cbot\var;. Na przykład: + +\s;\c; 12+odległość\n; + +Mnożenie i dzielenie wykonywane jest przed dodawaniem i odejmowaniem. Aby zapewnić właściwą kolejność wykonywania działań, należy użyć nawiasów: +\c; +\s; 12*a+b/c \n;jest równoważne\c; (12*a)+(b/c) +\s; 2.5*(odległość+zasięg) +\n; +W celu poprawienia czytelności, można dodać dowolną liczbę spacji: +\c; +\s; 12*a + b/c +\s; 2.5 * (odległość+zasięg) +\n; +Oto lista funkcji matematycznych: + +\c;sin(angle) \n;sinus +\c;cos(angle) \n;cosinus +\c;tan(angle) \n;tangens +\c;asin(value) \n;arcus sinus +\c;acos(value) \n;arcus cosinus +\c;atan(value) \n;arcus tangens +\c;sqrt(value) \n;pierwiastek kwadratowy +\c;pow(x, y) \n;x do potęgi y +\c;rand() \n;losowa wartość pomiędzy 0 i 1 + +Kąty podawane są w stopniach. + +\t;Złożone operatory przypisania (dla specjalistów) +Poza operatorem przypisania wartości zmiennej \c;=\n; jest kilka złożonych operatorów przypisania. + +Złożone operatory przypisania to operator przypisania \c;=\n; z innym operatorem binarnym, takim jak \c;+\n; lub \c;-\n;. Złożone operatory przypisania wykonują działanie określona przez dodatkowy operator a wynik przypisują lewej stronie działania. Na przykład poniższe wyrażenie: + +\c;\s;wyrażenie1 += wyrażenie2 + +jest równoważne + +\c;\s;wyrażenie1 = wyrażenie1 + wyrażenie2 + +\c;+=\n; dodawanie +\c;-=\n; odejmowanie +\c;*=\n; mnożenie +\c;/=\n; dzielenie +\c;%=\n; reszta z dzielenia (tylko dla typu całkowitego \c;\l;int\u cbot\int;\n;) + +\t;Przedrostkowe i przyrostkowe operatory zwiększania i zmniejszania (dla specjalistów) +Operatory \c;++\n; i \c;--\n; umożliwiają wygodny i zwarty zapis zwiększania (++) lub zmiejszania (--) zmiennych. + +Na przykład aby zwiększyć zmienną \c;a\n; można napisać +\c;\s; a++ ; +\n;zamiast +\c;\s; a = a + 1 ; +\n; +Wartością wyrażenia \c;a++\n; jest wartość zmiennej \c;a\n; przed jej zwiększeniem. Użycie operatora przedrostkowego \c;++a\n; powoduje, że wartością wyrażenia jest wartość zmiennej \c;a\n; po jej zwiększeniu. To samo dotyczy operatora zmniejszania \c;--\n;. + +Przykłady: +\c;\s; a = 2 ; +\s; b = a++ ; +\s; // teraz b jest równe 2, a jest równe 3 + +\c;\s; a = 2 ; +\s; b = ++a ; +\s; // a teraz b jest równe 3 i a jest równe 3 +\n; + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/EXPR.TXT.bak b/help/P/cbot/EXPR.TXT.bak new file mode 100644 index 00000000..fba6d274 --- /dev/null +++ b/help/P/cbot/EXPR.TXT.bak @@ -0,0 +1,88 @@ +\b;Wyraenia +Wyraenia mog zawiera nastpujce operatory: + +\c;+\n; dodawanie +\c;-\n; odejmowanie +\c;*\n; mnoenie +\c;/\n; dzielenie +\c;%\n; reszta z dzielenia (tylko dla typu cakowitego \c;\l;int\u cbot\int;\n;) + +Dodatkowo operator \c;+\n; nie tylko dodaje liczby ale rwnie zcza \l;acuchy\u cbot\string;. +\c; +\s; int i = 12+3; // daje w wyniku 15 +\s; string s = "a"+"bc"; // daje w wyniku "abc" +\s; int i = 2-5; // daje w wyniku -3 +\s; float f = 3.01*10; // daje w wyniku 30.1 +\s; int i = 5/3; // daje w wyniku 1 +\s; float f = 5/3; // daje w wyniku 1.67 +\s; float f = 5/0; // powoduje wystpienie bdu +\s; int i = 13%5; // daje w wyniku 3 +\s; int i = -8%3; // daje w wyniku -2 +\n; +Wyraenie moe zawiera stae lub \l;zmienne\u cbot\var;. Na przykad: + +\s;\c; 12+odlego\n; + +Mnoenie i dzielenie wykonywane jest przed dodawaniem i odejmowaniem. Aby zapewni waciw kolejno wykonywania dziaa, naley uy nawiasw: +\c; +\s; 12*a+b/c \n;jest rwnowane\c; (12*a)+(b/c) +\s; 2.5*(odlego+zasig) +\n; +W celu poprawienia czytelnoci, mona doda dowoln liczb spacji: +\c; +\s; 12*a + b/c +\s; 2.5 * (odlego+zasig) +\n; +Oto lista funkcji matematycznych: + +\c;sin(angle) \n;sinus +\c;cos(angle) \n;cosinus +\c;tan(angle) \n;tangens +\c;asin(value) \n;arcus sinus +\c;acos(value) \n;arcus cosinus +\c;atan(value) \n;arcus tangens +\c;sqrt(value) \n;pierwiastek kwadratowy +\c;pow(x, y) \n;x do potgi y +\c;rand() \n;losowa warto pomidzy 0 i 1 + +Kty podawane s w stopniach. + +\t;Zoone operatory przypisania (dla specjalistw) +Poza operatorem przypisania wartoci zmiennej \c;=\n; jest kilka zoonych operatorw przypisania. + +Zoone operatory przypisania to operator przypisania \c;=\n; z innym operatorem binarnym, takim jak \c;+\n; lub \c;-\n;. Zoone operatory przypisania wykonuj dziaanie okrelona przez dodatkowy operator a wynik przypisuj lewej stronie dziaania. Na przykad ponisze wyraenie: + +\c;\s;wyraenie1 += wyraenie2 + +jest rwnowane + +\c;\s;wyraenie1 = wyraenie1 + wyraenie2 + +\c;+=\n; dodawanie +\c;-=\n; odejmowanie +\c;*=\n; mnoenie +\c;/=\n; dzielenie +\c;%=\n; reszta z dzielenia (tylko dla typu cakowitego \c;\l;int\u cbot\int;\n;) + +\t;Przedrostkowe i przyrostkowe operatory zwikszania i zmniejszania (dla specjalistw) +Operatory \c;++\n; i \c;--\n; umoliwiaj wygodny i zwarty zapis zwikszania (++) lub zmiejszania (--) zmiennych. + +Na przykad aby zwikszy zmienn \c;a\n; mona napisa +\c;\s; a++ ; +\n;zamiast +\c;\s; a = a + 1 ; +\n; +Wartoci wyraenia \c;a++\n; jest warto zmiennej \c;a\n; przed jej zwikszeniem. Uycie operatora przedrostkowego \c;++a\n; powoduje, e wartoci wyraenia jest warto zmiennej \c;a\n; po jej zwikszeniu. To samo dotyczy operatora zmniejszania \c;--\n;. + +Przykady: +\c;\s; a = 2 ; +\s; b = a++ ; +\s; // teraz b jest rwne 2, a jest rwne 3 + +\c;\s; a = 2 ; +\s; b = ++a ; +\s; // a teraz b jest rwne 3 i a jest rwne 3 +\n; + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/FALSE.TXT b/help/P/cbot/FALSE.TXT new file mode 100644 index 00000000..2776003a --- /dev/null +++ b/help/P/cbot/FALSE.TXT @@ -0,0 +1,6 @@ +\b;Typ \c;false\n; +Wartość ta oznacza, że warunek nie jest prawdziwy; jest to jedna z dwóch wartości \l;zmiennej\u cbot\var; typu \l;boolean\u cbot\bool;. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. + diff --git a/help/P/cbot/FALSE.TXT.bak b/help/P/cbot/FALSE.TXT.bak new file mode 100644 index 00000000..3399dd5f --- /dev/null +++ b/help/P/cbot/FALSE.TXT.bak @@ -0,0 +1,6 @@ +\b;Typ \c;false\n; +Warto ta oznacza, e warunek nie jest prawdziwy; jest to jedna z dwch wartoci \l;zmiennej\u cbot\var; typu \l;boolean\u cbot\bool;. + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. + diff --git a/help/P/cbot/FIRE.TXT b/help/P/cbot/FIRE.TXT new file mode 100644 index 00000000..412f3d9e --- /dev/null +++ b/help/P/cbot/FIRE.TXT @@ -0,0 +1,31 @@ +\b;Instrukcja \c;fire\n; +Instrukcja \c;fire();\n; powoduje wystrzał z broni pokładowej robota. + +\b;Podstawowe użycie +Przeważnie instrukcja ta używana jest do jednosekundowych serii strzałów: +\c; +\s; fire(1); +\n; +\b;Dla specjalistów +Składnia: +\s;\c;fire ( czas );\n; + +Strzela serią trwającą określony czas. Im dłuższa seria, tym więcej energii jest zużywane. Instrukcja ta może być używana przez następujące typy robotów: +o \l;Działo\u object\botfr; +o \l;Działo organiczne\u object\botor; +o \l;Działo fazowe\u object\botphaz; + +Podczas kontrolowania działanie robota przy użyciu programu, jedynym sposobem obrócenia lufy w prawo lub w lewo, jest obrócenie całego robota instrukcją \c;\l;turn\u cbot\turn;\n;. + +Do celowania w górę lub w dół, należy używać instrukcji \c;\l;aim\u cbot\aim;\n;. + +\t;czas: \c;\l;float\u cbot\float;\n; +Czas trwania serii. Zwykle jest to 1 sekunda. Krótsze serie pozwalają zaoszczędzić czas i energię. + +\t;Typ wyniku: \c;\l;int\u cbot\int;\n; +Zero w przypadku powodzenia lub inna wartość jeśli wystąpił błąd. +\c;== 0 \n;udało się wystrzelić +\c;!= 0 \n;błąd, strzał nie mógł byc wykonany + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/FIRE.TXT.bak b/help/P/cbot/FIRE.TXT.bak new file mode 100644 index 00000000..e3f8950b --- /dev/null +++ b/help/P/cbot/FIRE.TXT.bak @@ -0,0 +1,31 @@ +\b;Instrukcja \c;fire\n; +Instrukcja \c;fire();\n; powoduje wystrza z broni pokadowej robota. + +\b;Podstawowe uycie +Przewanie instrukcja ta uywana jest do jednosekundowych serii strzaw: +\c; +\s; fire(1); +\n; +\b;Dla specjalistw +Skadnia: +\s;\c;fire ( czas );\n; + +Strzela seri trwajc okrelony czas. Im dusza seria, tym wicej energii jest zuywane. Instrukcja ta moe by uywana przez nastpujce typy robotw: +o \l;Dziao\u object\botfr; +o \l;Dziao organiczne\u object\botor; +o \l;Dziao fazowe\u object\botphaz; + +Podczas kontrolowania dziaanie robota przy uyciu programu, jedynym sposobem obrcenia lufy w prawo lub w lewo, jest obrcenie caego robota instrukcj \c;\l;turn\u cbot\turn;\n;. + +Do celowania w gr lub w d, naley uywa instrukcji \c;\l;aim\u cbot\aim;\n;. + +\t;czas: \c;\l;float\u cbot\float;\n; +Czas trwania serii. Zwykle jest to 1 sekunda. Krtsze serie pozwalaj zaoszczdzi czas i energi. + +\t;Typ wyniku: \c;\l;int\u cbot\int;\n; +Zero w przypadku powodzenia lub inna warto jeli wystpi bd. +\c;== 0 \n;udao si wystrzeli +\c;!= 0 \n;bd, strza nie mg byc wykonany + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/FLOAT.TXT b/help/P/cbot/FLOAT.TXT new file mode 100644 index 00000000..26259f38 --- /dev/null +++ b/help/P/cbot/FLOAT.TXT @@ -0,0 +1,25 @@ +\b;Typ \c;float\n; +Typ ten jest używany dla większości zmiennych zawierających liczby. Zmienne tego typu mogą zawierać liczby dodatnie i ujemne, zarówno całkowite jak i rzeczywiste, na przykład: +\c; +\s; 12.9 +\s; 1.125 +\s; 0.002 +\s; -4.1 +\n; +Jeśli potrzebne są tylko liczby całkowite (takie jak 12 lub -5000), lepszym wyborem jest użycie typu \c;\l;int\u cbot\int;\n;. + +\t;Uwaga +Nie można wstawiać spacji ani przecinków wewnątrz liczby. Do rozdzielania części całkowitej i części ułamkowej należy używać kropki. +\c; +\s; dobrze źle +\s; 12.56 12 . 56 +\s; -54.34 -54,34 +\s;12895.69 12,895.69 +\n; +\t;Dla specjalistów +Liczby zmiennoprzecinkowe reprezentowane są w grze Colobot za pomocą 32 bitów. +Największa reprezentowalna wartość to 3.4E+38. +Najmniejsza reprezentowalna wartość to 3.4E-38. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/FLOAT.TXT.bak b/help/P/cbot/FLOAT.TXT.bak new file mode 100644 index 00000000..4263178e --- /dev/null +++ b/help/P/cbot/FLOAT.TXT.bak @@ -0,0 +1,25 @@ +\b;Typ \c;float\n; +Typ ten jest uywany dla wikszoci zmiennych zawierajcych liczby. Zmienne tego typu mog zawiera liczby dodatnie i ujemne, zarwno cakowite jak i rzeczywiste, na przykad: +\c; +\s; 12.9 +\s; 1.125 +\s; 0.002 +\s; -4.1 +\n; +Jeli potrzebne s tylko liczby cakowite (takie jak 12 lub -5000), lepszym wyborem jest uycie typu \c;\l;int\u cbot\int;\n;. + +\t;Uwaga +Nie mona wstawia spacji ani przecinkw wewntrz liczby. Do rozdzielania czci cakowitej i czci uamkowej naley uywa kropki. +\c; +\s; dobrze le +\s; 12.56 12 . 56 +\s; -54.34 -54,34 +\s;12895.69 12,895.69 +\n; +\t;Dla specjalistw +Liczby zmiennoprzecinkowe reprezentowane s w grze Colobot za pomoc 32 bitw. +Najwiksza reprezentowalna warto to 3.4E+38. +Najmniejsza reprezentowalna warto to 3.4E-38. + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/FOR.TXT b/help/P/cbot/FOR.TXT new file mode 100644 index 00000000..c673bba4 --- /dev/null +++ b/help/P/cbot/FOR.TXT @@ -0,0 +1,40 @@ +\b;Instrukcja \c;for\n; +Składnia: +\s;\c;for ( przed ; warunek ; koniec ) +\s;{ +\s; \n;Instrukcje...\c; +\s;} +\n; +Instrukcja ta pozwala na powtórzenie określoną ilość razy instrukcji zawartych w \l;bloku\u cbot\bloc;. + +\t;\c;przed\n; +Instrukcja wykonywana przed pierwszym przejściem pętli. + +\t;\c;warunek\n; +\l;Warunek\u cbot\cond; określa, czy powinno być wykonane następne przejście pętli. Jest on sprawdzany przed każdym jej przejściem. + +\t;\c;koniec\n; +Instrukcja wykonywana po każdym przejściu pętli. + +Przykład: liczenie od 1 do 4 +\c;\s;\c;for ( i = 0 ; i <= 4 ; i++ ) +\s;{ +\s; message(i) ; +\s;} +\n; +Następujący przykład, równoważny pętli \c;for\n;, używa instrukcji \c;\l;while\u cbot\while;\n;: +\s;\c;przed; +\s;while ( warunek ) +\s;{ +\s; \n;Instrukcje...\c; +\s; koniec; +\s;} +\n; +\t;Uwaga +Na końcu instrukcji \c;for ( )\n; nie należy umieszczać \l;średnika\u cbot\term;. + +Instrukcje \c;\l;break\u cbot\break;\n; i \c;\l;continue\u cbot\continue;\n; mogą być przydatne wewnątrz bloku instrukcji \c;for \n;. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. + diff --git a/help/P/cbot/FOR.TXT.bak b/help/P/cbot/FOR.TXT.bak new file mode 100644 index 00000000..88e89eb2 --- /dev/null +++ b/help/P/cbot/FOR.TXT.bak @@ -0,0 +1,40 @@ +\b;Instrukcja \c;for\n; +Skadnia: +\s;\c;for ( przed ; warunek ; koniec ) +\s;{ +\s; \n;Instrukcje...\c; +\s;} +\n; +Instrukcja ta pozwala na powtrzenie okrelon ilo razy instrukcji zawartych w \l;bloku\u cbot\bloc;. + +\t;\c;przed\n; +Instrukcja wykonywana przed pierwszym przejciem ptli. + +\t;\c;warunek\n; +\l;Warunek\u cbot\cond; okrela, czy powinno by wykonane nastpne przejcie ptli. Jest on sprawdzany przed kadym jej przejciem. + +\t;\c;koniec\n; +Instrukcja wykonywana po kadym przejciu ptli. + +Przykad: liczenie od 1 do 4 +\c;\s;\c;for ( i = 0 ; i <= 4 ; i++ ) +\s;{ +\s; message(i) ; +\s;} +\n; +Nastpujcy przykad, rwnowany ptli \c;for\n;, uywa instrukcji \c;\l;while\u cbot\while;\n;: +\s;\c;przed; +\s;while ( warunek ) +\s;{ +\s; \n;Instrukcje...\c; +\s; koniec; +\s;} +\n; +\t;Uwaga +Na kocu instrukcji \c;for ( )\n; nie naley umieszcza \l;rednika\u cbot\term;. + +Instrukcje \c;\l;break\u cbot\break;\n; i \c;\l;continue\u cbot\continue;\n; mog by przydatne wewntrz bloku instrukcji \c;for \n;. + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. + diff --git a/help/P/cbot/GOTO.TXT b/help/P/cbot/GOTO.TXT new file mode 100644 index 00000000..302f9916 --- /dev/null +++ b/help/P/cbot/GOTO.TXT @@ -0,0 +1,35 @@ +\b;Instrukcja \c;goto\n; +Instrukcja \c;goto();\n; rozkazuje robotowi udać się do podanej pozycji. + +\b;Podstawowe użycie +Najczęstsze użycie polega na wysłaniu robota do obiektu zlokalizowanego przy użyciu instrukcji \c;\l;radar\u cbot\radar;();\n;. Jeśli jego dane zastały zapisane w zmiennej, należy po nazwie zmiennej napisać \c;.position\n; aby otrzymać pozycję obiektu. Oto przykładowy program znajdujący \l;kostkę tytanu\u object\titan; idący na jej pozycję i podnoszący ją: +\c; +\s; element = \l;radar\u cbot\radar;(Titanium); +\s; goto(element.position); +\s; \l;grab\u cbot\grab;(); +\n; +\b;Dla specjalistów +Składnia: +\s;\c;goto ( pozycja, wysokość, cel, zderzenie );\n; + +Rozkazuje robotowi udać się w podane miejsce unikając wszelkich przeszkód, jeśli to możliwe. + +\t;pozycja: \c;\l;point\u cbot\point;\n; +Współrzędne pozycji docelowej. + +\t;wysokość: \c;\l;float\u cbot\float;\n; +Wysokość lotu \l;robota latającego\u object\botgj;. Parametr ten jest użyteczny tylko w przypadku \l;robota latającego\u object\botgj;. Z wysokości początkowej, robot wznosi się do góry, do czasu osiągnięcia określonej wysokości. Po zbliżeniu się do miejsca docelowego, zmniejsza wysokość, aby opaść na ziemię w zadanej pozycji. Jeśli nie określono wysokości, domyślną wartością jest 10 metrów. Przy bardzo krótkich trasach, nawet robot latający może poruszać się po ziemi. Parametr ten jest ignorowany dla wszystkich robotów poza robotem latającym. + +\t;cel: \c;\l;int\u cbot\int;\n; (domyślna wartość: \c;0\n;) +Określa sposób w jaki robot powinien osiągnąć swoj cel: +\c;0\n; zatrzymuje się dokładnie w pozycji docelowej +\c;1\n; zbliża się do pozycji docelowej bez zatrzymywania się. +Jeśli nie określono wartości, domyślnie przyjmowane jest \c;1\n; (dokładnie). + +\t;Typ wyniku: \c;\l;int\u cbot\int;\n; +Zwykle wystąpienie błędu powoduje zatrzymanie programu. Można wyłączyć zatrzymywanie się programu w przypadku wystąpienia błędu, używając instrukcji \c;\l;errmode\u cbot\errmode;(0)\n;. Wtedy w przypadku wystąpienia błędu instrukcja \c;goto()\n; zwraca w wyniku wartość różną od zera. +\c;== 0 \n;Pozycja docelowa została osiągnięta +\c;!= 0 \n;Osiągnięcie pozycji docelowej jest niemożliwe + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/GOTO.TXT.bak b/help/P/cbot/GOTO.TXT.bak new file mode 100644 index 00000000..b5fb7db1 --- /dev/null +++ b/help/P/cbot/GOTO.TXT.bak @@ -0,0 +1,35 @@ +\b;Instrukcja \c;goto\n; +Instrukcja \c;goto();\n; rozkazuje robotowi uda si do podanej pozycji. + +\b;Podstawowe uycie +Najczstsze uycie polega na wysaniu robota do obiektu zlokalizowanego przy uyciu instrukcji \c;\l;radar\u cbot\radar;();\n;. Jeli jego dane zastay zapisane w zmiennej, naley po nazwie zmiennej napisa \c;.position\n; aby otrzyma pozycj obiektu. Oto przykadowy program znajdujcy \l;kostk tytanu\u object\titan; idcy na jej pozycj i podnoszcy j: +\c; +\s; element = \l;radar\u cbot\radar;(Titanium); +\s; goto(element.position); +\s; \l;grab\u cbot\grab;(); +\n; +\b;Dla specjalistw +Skadnia: +\s;\c;goto ( pozycja, wysoko, cel, zderzenie );\n; + +Rozkazuje robotowi uda si w podane miejsce unikajc wszelkich przeszkd, jeli to moliwe. + +\t;pozycja: \c;\l;point\u cbot\point;\n; +Wsprzdne pozycji docelowej. + +\t;wysoko: \c;\l;float\u cbot\float;\n; +Wysoko lotu \l;robota latajcego\u object\botgj;. Parametr ten jest uyteczny tylko w przypadku \l;robota latajcego\u object\botgj;. Z wysokoci pocztkowej, robot wznosi si do gry, do czasu osignicia okrelonej wysokoci. Po zblieniu si do miejsca docelowego, zmniejsza wysoko, aby opa na ziemi w zadanej pozycji. Jeli nie okrelono wysokoci, domyln wartoci jest 10 metrw. Przy bardzo krtkich trasach, nawet robot latajcy moe porusza si po ziemi. Parametr ten jest ignorowany dla wszystkich robotw poza robotem latajcym. + +\t;cel: \c;\l;int\u cbot\int;\n; (domylna warto: \c;0\n;) +Okrela sposb w jaki robot powinien osign swoj cel: +\c;0\n; zatrzymuje si dokadnie w pozycji docelowej +\c;1\n; zblia si do pozycji docelowej bez zatrzymywania si. +Jeli nie okrelono wartoci, domylnie przyjmowane jest \c;1\n; (dokadnie). + +\t;Typ wyniku: \c;\l;int\u cbot\int;\n; +Zwykle wystpienie bdu powoduje zatrzymanie programu. Mona wyczy zatrzymywanie si programu w przypadku wystpienia bdu, uywajc instrukcji \c;\l;errmode\u cbot\errmode;(0)\n;. Wtedy w przypadku wystpienia bdu instrukcja \c;goto()\n; zwraca w wyniku warto rn od zera. +\c;== 0 \n;Pozycja docelowa zostaa osignita +\c;!= 0 \n;Osignicie pozycji docelowej jest niemoliwe + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/GRAB.TXT b/help/P/cbot/GRAB.TXT new file mode 100644 index 00000000..a4762c7e --- /dev/null +++ b/help/P/cbot/GRAB.TXT @@ -0,0 +1,29 @@ +\b;Instrukcja \c;grab\n; +Instrukcja \c;grab();\n; rozkazuje robotowi podnieść za pomocą ramienia chwytającego przedmiot znajdujący się na ziemi, platformie budynku lub miejscu na ogniwo robota. + +\b;Podstawowe użycie +Instrukcja \c;grab();\n; napisana w ten sposób, podniesie przedmiot znajdujący się przed robotem. Oto krótki program podnoszący przedmiot przed robotem i upuszczający go 5 metrów dalej: +\c; +\s; grab(); +\s; \l;move\u cbot\move;(5); +\s; \l;drop\u cbot\drop;(); +\n; +\b;Dla specjalistów +Składnia: +\s;\c;grab ( oper );\n; + +Instrukcja ta odwołuje się do ramienia \l;robota transportera\u object\botgr;, powodując chwycenie najbliższego obiektu. + +\t;oper: \c;\l;int\u cbot\int;\n; (domyślna wartość \c;InFront\n;) +Parametr oper określa gdzie robot powinien szukać przedmiotu do podniesienia. Jeśli nie jest to określone, podnoszony jest obiekt znajdujący się przed robotem: +\c;InFront \n; przed (domyślnie). +\c;Behind \n; za. +\c;EnergyCell\n; wyjmuje własne ogniwo elektryczne. + +\t;Typ wyniku: \c;\l;int\u cbot\int;\n; +Zwykle wystąpienie błędu powoduje zatrzymanie programu. Można wyłączyć zatrzymywanie się programu w przypadku wystąpienia błędu, używając instrukcji \c;\l;errmode\u cbot\errmode;(0)\n;. Wtedy w przypadku wystąpienia błędu instrukcja \c;grab();\n; zwraca w wyniku wartość różną od zera. +\c;== 0 \n;obiekt został chwycony +\c;!= 0 \n;błąd, obiekt nie został chwycony + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/GRAB.TXT.bak b/help/P/cbot/GRAB.TXT.bak new file mode 100644 index 00000000..6c9e3d93 --- /dev/null +++ b/help/P/cbot/GRAB.TXT.bak @@ -0,0 +1,29 @@ +\b;Instrukcja \c;grab\n; +Instrukcja \c;grab();\n; rozkazuje robotowi podnie za pomoc ramienia chwytajcego przedmiot znajdujcy si na ziemi, platformie budynku lub miejscu na ogniwo robota. + +\b;Podstawowe uycie +Instrukcja \c;grab();\n; napisana w ten sposb, podniesie przedmiot znajdujcy si przed robotem. Oto krtki program podnoszcy przedmiot przed robotem i upuszczajcy go 5 metrw dalej: +\c; +\s; grab(); +\s; \l;move\u cbot\move;(5); +\s; \l;drop\u cbot\drop;(); +\n; +\b;Dla specjalistw +Skadnia: +\s;\c;grab ( oper );\n; + +Instrukcja ta odwouje si do ramienia \l;robota transportera\u object\botgr;, powodujc chwycenie najbliszego obiektu. + +\t;oper: \c;\l;int\u cbot\int;\n; (domylna warto \c;InFront\n;) +Parametr oper okrela gdzie robot powinien szuka przedmiotu do podniesienia. Jeli nie jest to okrelone, podnoszony jest obiekt znajdujcy si przed robotem: +\c;InFront \n; przed (domylnie). +\c;Behind \n; za. +\c;EnergyCell\n; wyjmuje wasne ogniwo elektryczne. + +\t;Typ wyniku: \c;\l;int\u cbot\int;\n; +Zwykle wystpienie bdu powoduje zatrzymanie programu. Mona wyczy zatrzymywanie si programu w przypadku wystpienia bdu, uywajc instrukcji \c;\l;errmode\u cbot\errmode;(0)\n;. Wtedy w przypadku wystpienia bdu instrukcja \c;grab();\n; zwraca w wyniku warto rn od zera. +\c;== 0 \n;obiekt zosta chwycony +\c;!= 0 \n;bd, obiekt nie zosta chwycony + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/IF.TXT b/help/P/cbot/IF.TXT new file mode 100644 index 00000000..24fcec9e --- /dev/null +++ b/help/P/cbot/IF.TXT @@ -0,0 +1,40 @@ +\b;Instrukcje \c;if\n; i \c;else\n; +Używając instrukcji \c;if() {}\n; można uzależnić wykonanie zbioru instrukcji od spełnienia określonego warunku. Warunek należy zapisać w nawiasach \c;()\n;, a instrukcje w nawiasach klamrowych \c;{}\n;. + +\b;Podstawowe użycie +Oto konkretny przykład: Robot będzie strzelał dopiero wtedy, gdy cel będzie bliżej niż 40 metrów: +\c; +\s; item = \l;radar\u cbot\radar;(AlienAnt); +\s; if (\l;distance\u cbot\dist;(position, item.position) < 40) +\s; { +\s; fire(1); +\s; } +\n; +Można też sprawdzić czy obiekt istnieje w ogóle. Jeśli instrukcja \c;\l;radar\u cbot\radar;();\n; nie znajdzie żądanego obiektu, zwraca wartość \c;null\n;. Można więc sprawdzić czy obiekt istnieje, warunkiem \c;(item != null)\n; lub czy nie istnieje \c;(item == null)\n;. Dwa znaki równości \c;==\n; sprawdzają równość, znak równości poprzedzony wykrzyknikiem \c;!=\n; sprawdza nierówność. Oto program testowy, który będzie ładował \l;ogniwa elektryczne\u object\power; tylko wtedy, gdy znajdzie \l;stację energetyczną\u object\station;: +\c; +\s; item = \l;radar\u cbot\radar;(PowerStation); +\s; if (item != null) +\s; { +\s; \l;goto\u cbot\goto;(item.position); +\s; \l;wait\u cbot\wait;(5); +\s; } +\n; +\b;Dla specjalistów +Składnia: +\s;\c;if ( warunek ) +\s;{ +\s; \n;Instrukcje A ...\c; +\s;} +\s;else +\s;{ +\s; \n;Instrukcje B ...\c; +\s;} +\n; +Przy użyciu tej struktury warunkowej można wykonać \l;blok\u cbot\bloc; A lub \l;blok\u cbot\bloc; B w zależności od \l;warunku\u cbot\cond;. Jeśli warunek jest prawdziwy, wykonywany jest blok A. Jeśli warunek jest fałszywy, wykonywany jest blok B. +Część \c;else { }\n; nie jest obowiązkowa. + +\t;Uwaga +Na końcu linii \c;if ( )\n; nie należy stawiać \l;średnika\u cbot\term;. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/IF.TXT.bak b/help/P/cbot/IF.TXT.bak new file mode 100644 index 00000000..9599b0e4 --- /dev/null +++ b/help/P/cbot/IF.TXT.bak @@ -0,0 +1,40 @@ +\b;Instrukcje \c;if\n; i \c;else\n; +Uywajc instrukcji \c;if() {}\n; mona uzaleni wykonanie zbioru instrukcji od spenienia okrelonego warunku. Warunek naley zapisa w nawiasach \c;()\n;, a instrukcje w nawiasach klamrowych \c;{}\n;. + +\b;Podstawowe uycie +Oto konkretny przykad: Robot bdzie strzela dopiero wtedy, gdy cel bdzie bliej ni 40 metrw: +\c; +\s; item = \l;radar\u cbot\radar;(AlienAnt); +\s; if (\l;distance\u cbot\dist;(position, item.position) < 40) +\s; { +\s; fire(1); +\s; } +\n; +Mona te sprawdzi czy obiekt istnieje w ogle. Jeli instrukcja \c;\l;radar\u cbot\radar;();\n; nie znajdzie danego obiektu, zwraca warto \c;null\n;. Mona wic sprawdzi czy obiekt istnieje, warunkiem \c;(item != null)\n; lub czy nie istnieje \c;(item == null)\n;. Dwa znaki rwnoci \c;==\n; sprawdzaj rwno, znak rwnoci poprzedzony wykrzyknikiem \c;!=\n; sprawdza nierwno. Oto program testowy, ktry bdzie adowa \l;ogniwa elektryczne\u object\power; tylko wtedy, gdy znajdzie \l;stacj energetyczn\u object\station;: +\c; +\s; item = \l;radar\u cbot\radar;(PowerStation); +\s; if (item != null) +\s; { +\s; \l;goto\u cbot\goto;(item.position); +\s; \l;wait\u cbot\wait;(5); +\s; } +\n; +\b;Dla specjalistw +Skadnia: +\s;\c;if ( warunek ) +\s;{ +\s; \n;Instrukcje A ...\c; +\s;} +\s;else +\s;{ +\s; \n;Instrukcje B ...\c; +\s;} +\n; +Przy uyciu tej struktury warunkowej mona wykona \l;blok\u cbot\bloc; A lub \l;blok\u cbot\bloc; B w zalenoci od \l;warunku\u cbot\cond;. Jeli warunek jest prawdziwy, wykonywany jest blok A. Jeli warunek jest faszywy, wykonywany jest blok B. +Cz \c;else { }\n; nie jest obowizkowa. + +\t;Uwaga +Na kocu linii \c;if ( )\n; nie naley stawia \l;rednika\u cbot\term;. + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/INT.TXT b/help/P/cbot/INT.TXT new file mode 100644 index 00000000..53bdebbd --- /dev/null +++ b/help/P/cbot/INT.TXT @@ -0,0 +1,20 @@ +\b;Typ \c;int\n; +Jest to typ zmiennych zawierających tylko liczby całkowite, dodatnie albo ujemne. Na przykład: +\c; +\s; 12 +\s; 1000 +\s; -4 +\n; +Do reprezentacji liczb rzeczywistych, takich jak 12,05 lub -0,005 należy używać typu \c;\l;float\u cbot\float;\n;. + +\t;Uwaga +Nie należy używać spacji ani przecinków w zapisie liczby. + +\t;Dla specjalistów +Reprezentacja liczb typu \c;int\n; zajmuje 32 bity. +Największa reprezentowalna liczba to (2^31)-1, czyli 2 147 483 647. +Najmniejsza reprezentowalna liczba to -(2^31), czyli -2 147 483 648. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. + diff --git a/help/P/cbot/INT.TXT.bak b/help/P/cbot/INT.TXT.bak new file mode 100644 index 00000000..87393ec6 --- /dev/null +++ b/help/P/cbot/INT.TXT.bak @@ -0,0 +1,20 @@ +\b;Typ \c;int\n; +Jest to typ zmiennych zawierajcych tylko liczby cakowite, dodatnie albo ujemne. Na przykad: +\c; +\s; 12 +\s; 1000 +\s; -4 +\n; +Do reprezentacji liczb rzeczywistych, takich jak 12,05 lub -0,005 naley uywa typu \c;\l;float\u cbot\float;\n;. + +\t;Uwaga +Nie naley uywa spacji ani przecinkw w zapisie liczby. + +\t;Dla specjalistw +Reprezentacja liczb typu \c;int\n; zajmuje 32 bity. +Najwiksza reprezentowalna liczba to (2^31)-1, czyli 2 147 483 647. +Najmniejsza reprezentowalna liczba to -(2^31), czyli -2 147 483 648. + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. + diff --git a/help/P/cbot/JET.TXT b/help/P/cbot/JET.TXT new file mode 100644 index 00000000..6d718666 --- /dev/null +++ b/help/P/cbot/JET.TXT @@ -0,0 +1,16 @@ +\b;Instrukcja \c;jet\n; +Składnia: +\s;\c;jet ( moc );\n; + +Umożliwia bezpośrednią kontrolę nad silnikiem odrzutowym \l;robota latającego\u object\botgj;. Silnik odrzutowy umożliwia robotom latanie. Instrukcja ta może służyć do wznoszenia się, zwiększania i zmniejszania wysokości lotu oraz lądowania. + +\t;moc: \c;\l;float\u cbot\float;\n; +Moc silnika odrzutowego, może zawierać się w zakresie od \c;-1\n; do \c;+1\n;. \c;jet(1);\n; to sposób na najszybsze wznoszenie się robota, \c;jet(-1);\n; zmniejsza wysokość tak szybko, jak to możliwe, \c;jet(0);\n; utrzymuje stałą wysokość. W celu uzyskania wolniejszych zmian wysokości, należy użyć wartości pośrednich, na przykład \c;jet(0.3);\n;. + + +\t;Typ wyniku: \c;\l;void\u cbot\void;\n; +Brak. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. + diff --git a/help/P/cbot/JET.TXT.bak b/help/P/cbot/JET.TXT.bak new file mode 100644 index 00000000..e94f6c8e --- /dev/null +++ b/help/P/cbot/JET.TXT.bak @@ -0,0 +1,16 @@ +\b;Instrukcja \c;jet\n; +Skadnia: +\s;\c;jet ( moc );\n; + +Umoliwia bezporedni kontrol nad silnikiem odrzutowym \l;robota latajcego\u object\botgj;. Silnik odrzutowy umoliwia robotom latanie. Instrukcja ta moe suy do wznoszenia si, zwikszania i zmniejszania wysokoci lotu oraz ldowania. + +\t;moc: \c;\l;float\u cbot\float;\n; +Moc silnika odrzutowego, moe zawiera si w zakresie od \c;-1\n; do \c;+1\n;. \c;jet(1);\n; to sposb na najszybsze wznoszenie si robota, \c;jet(-1);\n; zmniejsza wysoko tak szybko, jak to moliwe, \c;jet(0);\n; utrzymuje sta wysoko. W celu uzyskania wolniejszych zmian wysokoci, naley uy wartoci porednich, na przykad \c;jet(0.3);\n;. + + +\t;Typ wyniku: \c;\l;void\u cbot\void;\n; +Brak. + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. + diff --git a/help/P/cbot/MESSAGE.TXT b/help/P/cbot/MESSAGE.TXT new file mode 100644 index 00000000..2d5239b1 --- /dev/null +++ b/help/P/cbot/MESSAGE.TXT @@ -0,0 +1,25 @@ +\b;Instrukcja \c;message\n; +Składnia: +\s;\c;message ( tekst, typ );\n; + +Wyświetla wiadomość na górze ekranu. Wiadomość znika automatycznie po kilku sekundach. + +\t;tekst: \c;\l;string\u cbot\string;\n; +Tekst do wyświetlenia. Możliwe jest złączanie tekstów i/lub wartości przy użyciu operatora \c;+\n;: +\c;message("Nie znaleziono");\n; +\c;message(kąt);\n; +\c;message(n + " obiektów");\n; +\c;message("Odległość = " + dist + " metrów");\n; + +\t;typ: \c;\l;int\u cbot\int;\n; (domyślna wartość: \c;DisplayMessage\n;) +Typ wiadomości, określający kolor tła. +o \c;DisplayMessage\n; Standardowa wiadomość na żółtym tle. +o \c;DisplayInfo \n; Informacja na zielonym tle. +o \c;DisplayWarning\n; Ostrzeżenie na niebieskim tle. +o \c;DisplayError \n; Błąd na czerwonym tle. + +\t;Typ wyniku: \c;\l;void\u cbot\void;\n; +Brak. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/MESSAGE.TXT.bak b/help/P/cbot/MESSAGE.TXT.bak new file mode 100644 index 00000000..31d369a1 --- /dev/null +++ b/help/P/cbot/MESSAGE.TXT.bak @@ -0,0 +1,25 @@ +\b;Instrukcja \c;message\n; +Skadnia: +\s;\c;message ( tekst, typ );\n; + +Wywietla wiadomo na grze ekranu. Wiadomo znika automatycznie po kilku sekundach. + +\t;tekst: \c;\l;string\u cbot\string;\n; +Tekst do wywietlenia. Moliwe jest zczanie tekstw i/lub wartoci przy uyciu operatora \c;+\n;: +\c;message("Nie znaleziono");\n; +\c;message(kt);\n; +\c;message(n + " obiektw");\n; +\c;message("Odlego = " + dist + " metrw");\n; + +\t;typ: \c;\l;int\u cbot\int;\n; (domylna warto: \c;DisplayMessage\n;) +Typ wiadomoci, okrelajcy kolor ta. +o \c;DisplayMessage\n; Standardowa wiadomo na tym tle. +o \c;DisplayInfo \n; Informacja na zielonym tle. +o \c;DisplayWarning\n; Ostrzeenie na niebieskim tle. +o \c;DisplayError \n; Bd na czerwonym tle. + +\t;Typ wyniku: \c;\l;void\u cbot\void;\n; +Brak. + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/MOVE.TXT b/help/P/cbot/MOVE.TXT new file mode 100644 index 00000000..338663e9 --- /dev/null +++ b/help/P/cbot/MOVE.TXT @@ -0,0 +1,22 @@ +\b;Instrukcja \c;move\n; +Instrukcja \c;move();\n; rozkazuje robotowi poruszać się do przodu lub do tyłu przy zachowaniu niezmiennej orientacji. W nawiasie należy podać odległość (w metrach) o jaką powinien przemieścić się robot. + +\b;Podstawowe użycie +Aby robot przemieścił się do przodu o 30 metrów, należy napisać \c;move(30);\n;. Aby robot cofnął się po umieszczeniu \l;rudy tytanu\u object\titanore; w \l;hucie\u object\convert;, należy napisać \c;move(-2.5);\n;. + +\b;Dla specjalistów +Składnia: +\s;\c;move ( odległość );\n; + +Porusza robotem do przodu lub do tyłu o zadaną odległość, zachowując bieżącą orientację robota. + +\t;odległość: \c;\l;float\u cbot\float;\n; +Odległość w metrach. Wartość ujemna powoduje ruch do tyłu. + +\t;Typ wyniku: \c;\l;int\u cbot\int;\n; +Zwykle wystąpienie błędu powoduje zatrzymanie programu. Można wyłączyć zatrzymywanie się programu w przypadku wystąpienia błędu, używając instrukcji \c;\l;errmode\u cbot\errmode;(0)\n;. Wtedy w przypadku wystąpienia błędu instrukcja \c;move();\n; zwraca w wyniku wartość różną od zera. +\c;== 0 \n;instrukcja move została wykonana +\c;!= 0 \n;błąd, instrukcja nie została poprawnie wykonana + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/MOVE.TXT.bak b/help/P/cbot/MOVE.TXT.bak new file mode 100644 index 00000000..00a5d3b2 --- /dev/null +++ b/help/P/cbot/MOVE.TXT.bak @@ -0,0 +1,22 @@ +\b;Instrukcja \c;move\n; +Instrukcja \c;move();\n; rozkazuje robotowi porusza si do przodu lub do tyu przy zachowaniu niezmiennej orientacji. W nawiasie naley poda odlego (w metrach) o jak powinien przemieci si robot. + +\b;Podstawowe uycie +Aby robot przemieci si do przodu o 30 metrw, naley napisa \c;move(30);\n;. Aby robot cofn si po umieszczeniu \l;rudy tytanu\u object\titanore; w \l;hucie\u object\convert;, naley napisa \c;move(-2.5);\n;. + +\b;Dla specjalistw +Skadnia: +\s;\c;move ( odlego );\n; + +Porusza robotem do przodu lub do tyu o zadan odlego, zachowujc biec orientacj robota. + +\t;odlego: \c;\l;float\u cbot\float;\n; +Odlego w metrach. Warto ujemna powoduje ruch do tyu. + +\t;Typ wyniku: \c;\l;int\u cbot\int;\n; +Zwykle wystpienie bdu powoduje zatrzymanie programu. Mona wyczy zatrzymywanie si programu w przypadku wystpienia bdu, uywajc instrukcji \c;\l;errmode\u cbot\errmode;(0)\n;. Wtedy w przypadku wystpienia bdu instrukcja \c;move();\n; zwraca w wyniku warto rn od zera. +\c;== 0 \n;instrukcja move zostaa wykonana +\c;!= 0 \n;bd, instrukcja nie zostaa poprawnie wykonana + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/NAN.TXT b/help/P/cbot/NAN.TXT new file mode 100644 index 00000000..cd2c39a5 --- /dev/null +++ b/help/P/cbot/NAN.TXT @@ -0,0 +1,16 @@ +\b;Typ \c;nan\n; +Specjalna wartość oznaczająca, że \l;zmienna\u cbot\var; typu \c;\l;int\u cbot\int;\n; lub \c;\l;float\u cbot\float;\n; nie zawiera liczby ale "nic". +Na przykład jeśli instrukcja \c;\l;receive\u cbot\receive;\n; nie może uzyskać żądanej informacji, zwraca w wyniku wartość \c;nan\n;: +\c; +\s; wartość = receive("Length"); +\s; if ( wartość == nan ) // nie znaleziono? +\s; { +\s; +\s; } +\n; +\t;Słownik +\c;nan\n; = Not A Number (nie liczba) + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. + diff --git a/help/P/cbot/NAN.TXT.bak b/help/P/cbot/NAN.TXT.bak new file mode 100644 index 00000000..11dcf91b --- /dev/null +++ b/help/P/cbot/NAN.TXT.bak @@ -0,0 +1,16 @@ +\b;Typ \c;nan\n; +Specjalna warto oznaczajca, e \l;zmienna\u cbot\var; typu \c;\l;int\u cbot\int;\n; lub \c;\l;float\u cbot\float;\n; nie zawiera liczby ale "nic". +Na przykad jeli instrukcja \c;\l;receive\u cbot\receive;\n; nie moe uzyska danej informacji, zwraca w wyniku warto \c;nan\n;: +\c; +\s; warto = receive("Length"); +\s; if ( warto == nan ) // nie znaleziono? +\s; { +\s; +\s; } +\n; +\t;Sownik +\c;nan\n; = Not A Number (nie liczba) + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. + diff --git a/help/P/cbot/NULL.TXT b/help/P/cbot/NULL.TXT new file mode 100644 index 00000000..6f6a4bb7 --- /dev/null +++ b/help/P/cbot/NULL.TXT @@ -0,0 +1,7 @@ +\b;Typ \c;null\n; +Specjalna wartość oznaczająca, że zmienna, która ją zawiera nie wskazuje na żadną instancję. + +\t;Zobacz również +\l;Wskaźniki\u cbot\pointer; +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. + diff --git a/help/P/cbot/NULL.TXT.bak b/help/P/cbot/NULL.TXT.bak new file mode 100644 index 00000000..fb28dc94 --- /dev/null +++ b/help/P/cbot/NULL.TXT.bak @@ -0,0 +1,7 @@ +\b;Typ \c;null\n; +Specjalna warto oznaczajca, e zmienna, ktra j zawiera nie wskazuje na adn instancj. + +\t;Zobacz rwnie +\l;Wskaniki\u cbot\pointer; +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. + diff --git a/help/P/cbot/OBJECT.TXT b/help/P/cbot/OBJECT.TXT new file mode 100644 index 00000000..d7ce05e3 --- /dev/null +++ b/help/P/cbot/OBJECT.TXT @@ -0,0 +1,70 @@ +\b;Typ \c;object\n; +Typ używany dla zmiennych zawierających charakterystyki obiektów, takich jak roboty, budynki, surowce, wrogowie, itp. + +\c;\l;int\u cbot\int; object.category \n;\l;Kategoria\u cbot\category; obiektu +\c;\l;point\u cbot\point; object.position \n;Pozycja obiektu (x,y,z) +\c;\l;float\u cbot\float; object.orientation \n;Orientacja obiektu (0..360) +\c;\l;float\u cbot\float; object.pitch \n;Pochylenie obiektu przód/tył +\c;\l;float\u cbot\float; object.roll \n;Pochylenie obiektu prawo/lewo +\c;\l;float\u cbot\float; object.energyLevel \n;Poziom energii (0..1) +\c;\l;float\u cbot\float; object.shieldLevel \n;Poziom osłony (0..1) +\c;\l;float\u cbot\float; object.temperature \n;Temperatura silnika odrzutowego (0..1) +\c;\l;float\u cbot\float; object.altitude \n;Wysokość nad poziomem ziemi +\c;\l;float\u cbot\float; object.lifeTime \n;Czas życia obiektu +\c;object object.energyCell \n;Ogniwo elektryczne robota +\c;object object.load \n;Przedmiot niesiony przez robota + +\s;\c;category\n; +\n;\l;Kategoria\u cbot\category; obiektu określa czym jest obiekt, tzn. określa np. rodzaj robota, budynku lub wroga, itp. + +\s;\c;position\n; +Położenie obiektu na planecie, w metrach. Współrzędne \c;x\n; i \c;y\n; odnoszą się do położenia na mapie, współrzędna \c;z\n; odpowiada wysokości nad (lub odpowiednio pod) poziomem morza. + +\s;\c;orientation\n; +Orientacja obiektu, w stopniach. Określa kierunek, w którym obrócony jest obiekt. Wartość \c;0\n; odpowiada orientacji na wschód, zgodnie z dodatnią osią \c;x\n;. Orientacja liczona jest przeciwnie do ruchu wskazówek zegara. + +\s;\c;pitch\n; +Pochylenie robota w przód/tył. Wartość \c;0\n; oznacza, że robot stoi na płaskim terenie. Wartość dodatnia oznacza, że robot "patrzy" w górę, wartość ujemna, że w dół. + +\s;\c;roll\n; +Pochylenie robota w lewo/prawo. Wartość dodatnia oznacza, że robot jest przechylony na lewą stronę, wartość ujemna, że na prawą. + +\s;\c;energyLevel\n; +Poziom energii, pomiędzy 0 i 1. Dla w pełni naładowanego \l;zwykłego ogniwa elektrycznego\u object\power; zwracana jest wartość \c;1\n;. \l;Atomowe ogniwo elektryczne\u object\atomic; nigdy nie zwraca wartości większej niż 1, jedynie działa dłużej. Uwaga: Poziom energii robota zawsze jest równy zero, gdyż energia nie jest zawarta w robocie ale w ogniwie elektrycznym. Aby poznać poziom energii ogniwa elektrycznego robota, należy napisać \c;energyCell.energyLevel\n;. + +\s;\c;shieldLevel\n; +Poziom osłony robota albo budynku. Wartość \c;1\n; oznacza w pełni sprawną osłonę. Za każdym uderzeniem pocisku lub zderzeniem z innym obiektem, zmniejsza się poziom osłony. Gdy osiągnie on \c;0\n;, następny pocisk bądź zderzenie spowoduje zniszczenie robota albo budynku. +Roboty mogą zregenerować osłony w \l;warsztacie\u object\repair;. Powłoka budynku regenerowana jest gdy znajdzie się w zasięgu sfery ochronnej robota \l;osłaniacza\u object\botshld;. + +\s;\c;temperature\n; +Temperatura silnika odrzutowego \l;robotów latających\u object\botgj;. \c;0\n; odpowiada zimnemu silnikowi. W miarę używania, wzrasta jego temperatura. Gdy osiągnie wartość \c;1\n;, silnik przegrzewa się i przestaje działać do czasu ostygnięcia. + +\s;\c;altitude\n; +Współrzędna \c;z\n; oznacza wysokość nad poziomem morza, podczas gdy \c;altitude\n; oznacza wysokość nad poziomem ziemi. Wartość ta ma znaczenie jedynie dla \l;robotów latających\u object\botgj; i \l;os\u object\wasp;. Dla pozostałych obiektów jest zerowa. + +\s;\c;lifeTime\n; +Wiek obiektów, w sekundach, od czasu ich powstania. + +\s;\c;energyCell\n; +Jest to specjalna informacja, gdyż zwraca informacje o innym obiekcie, w tym przypadku ogniwie elektrycznym. Oznacza to, że energyCell zawiera wszystkie charakterystyki normalnego obiektu, na przykład \c;category\n; (PowerCell lub NuclearCell), \c;position\n; (pozycję ogniwa), itp. +Aby poznać poziom energii robota, zamiast \c;energyLevel\n;, należy sprawdzić \c;energyCell.energyLevel\n;. +Jeśli robot nie zawiera ogniwa elektrycznego, \c;energyCell\n; jest równe \c;null\n;. + +\s;\c;load\n; +Ta informacja również zwraca opis całego obiektu, a mianowicie opis obiektu trzymanego przez \l;transporter\u object\botgr;. Jeśli nie niesie on niczego, \c;load\n; jest równe \c;null\n;. + +\b;Przykłady +Typ \c;object\n; zwraca specjalną wartość \c;\l;null\u cbot\null;\n; gdy obiekt nie istnieje. Na przykład: +\c; +\s; object a; +\s; a = radar(BotGrabberRoller); +\s; if ( a == null ) // obiekt nie istnieje? +\s; { +\s; } +\s; if ( a.position.z > 50 ) // czy jest na górze? +\s; { +\s; } +\n; +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. + diff --git a/help/P/cbot/OBJECT.TXT.bak b/help/P/cbot/OBJECT.TXT.bak new file mode 100644 index 00000000..ff28b4c8 --- /dev/null +++ b/help/P/cbot/OBJECT.TXT.bak @@ -0,0 +1,70 @@ +\b;Typ \c;object\n; +Typ uywany dla zmiennych zawierajcych charakterystyki obiektw, takich jak roboty, budynki, surowce, wrogowie, itp. + +\c;\l;int\u cbot\int; object.category \n;\l;Kategoria\u cbot\category; obiektu +\c;\l;point\u cbot\point; object.position \n;Pozycja obiektu (x,y,z) +\c;\l;float\u cbot\float; object.orientation \n;Orientacja obiektu (0..360) +\c;\l;float\u cbot\float; object.pitch \n;Pochylenie obiektu przd/ty +\c;\l;float\u cbot\float; object.roll \n;Pochylenie obiektu prawo/lewo +\c;\l;float\u cbot\float; object.energyLevel \n;Poziom energii (0..1) +\c;\l;float\u cbot\float; object.shieldLevel \n;Poziom osony (0..1) +\c;\l;float\u cbot\float; object.temperature \n;Temperatura silnika odrzutowego (0..1) +\c;\l;float\u cbot\float; object.altitude \n;Wysoko nad poziomem ziemi +\c;\l;float\u cbot\float; object.lifeTime \n;Czas ycia obiektu +\c;object object.energyCell \n;Ogniwo elektryczne robota +\c;object object.load \n;Przedmiot niesiony przez robota + +\s;\c;category\n; +\n;\l;Kategoria\u cbot\category; obiektu okrela czym jest obiekt, tzn. okrela np. rodzaj robota, budynku lub wroga, itp. + +\s;\c;position\n; +Pooenie obiektu na planecie, w metrach. Wsprzdne \c;x\n; i \c;y\n; odnosz si do pooenia na mapie, wsprzdna \c;z\n; odpowiada wysokoci nad (lub odpowiednio pod) poziomem morza. + +\s;\c;orientation\n; +Orientacja obiektu, w stopniach. Okrela kierunek, w ktrym obrcony jest obiekt. Warto \c;0\n; odpowiada orientacji na wschd, zgodnie z dodatni osi \c;x\n;. Orientacja liczona jest przeciwnie do ruchu wskazwek zegara. + +\s;\c;pitch\n; +Pochylenie robota w przd/ty. Warto \c;0\n; oznacza, e robot stoi na paskim terenie. Warto dodatnia oznacza, e robot "patrzy" w gr, warto ujemna, e w d. + +\s;\c;roll\n; +Pochylenie robota w lewo/prawo. Warto dodatnia oznacza, e robot jest przechylony na lew stron, warto ujemna, e na praw. + +\s;\c;energyLevel\n; +Poziom energii, pomidzy 0 i 1. Dla w peni naadowanego \l;zwykego ogniwa elektrycznego\u object\power; zwracana jest warto \c;1\n;. \l;Atomowe ogniwo elektryczne\u object\atomic; nigdy nie zwraca wartoci wikszej ni 1, jedynie dziaa duej. Uwaga: Poziom energii robota zawsze jest rwny zero, gdy energia nie jest zawarta w robocie ale w ogniwie elektrycznym. Aby pozna poziom energii ogniwa elektrycznego robota, naley napisa \c;energyCell.energyLevel\n;. + +\s;\c;shieldLevel\n; +Poziom osony robota albo budynku. Warto \c;1\n; oznacza w peni sprawn oson. Za kadym uderzeniem pocisku lub zderzeniem z innym obiektem, zmniejsza si poziom osony. Gdy osignie on \c;0\n;, nastpny pocisk bd zderzenie spowoduje zniszczenie robota albo budynku. +Roboty mog zregenerowa osony w \l;warsztacie\u object\repair;. Powoka budynku regenerowana jest gdy znajdzie si w zasigu sfery ochronnej robota \l;osaniacza\u object\botshld;. + +\s;\c;temperature\n; +Temperatura silnika odrzutowego \l;robotw latajcych\u object\botgj;. \c;0\n; odpowiada zimnemu silnikowi. W miar uywania, wzrasta jego temperatura. Gdy osignie warto \c;1\n;, silnik przegrzewa si i przestaje dziaa do czasu ostygnicia. + +\s;\c;altitude\n; +Wsprzdna \c;z\n; oznacza wysoko nad poziomem morza, podczas gdy \c;altitude\n; oznacza wysoko nad poziomem ziemi. Warto ta ma znaczenie jedynie dla \l;robotw latajcych\u object\botgj; i \l;os\u object\wasp;. Dla pozostaych obiektw jest zerowa. + +\s;\c;lifeTime\n; +Wiek obiektw, w sekundach, od czasu ich powstania. + +\s;\c;energyCell\n; +Jest to specjalna informacja, gdy zwraca informacje o innym obiekcie, w tym przypadku ogniwie elektrycznym. Oznacza to, e energyCell zawiera wszystkie charakterystyki normalnego obiektu, na przykad \c;category\n; (PowerCell lub NuclearCell), \c;position\n; (pozycj ogniwa), itp. +Aby pozna poziom energii robota, zamiast \c;energyLevel\n;, naley sprawdzi \c;energyCell.energyLevel\n;. +Jeli robot nie zawiera ogniwa elektrycznego, \c;energyCell\n; jest rwne \c;null\n;. + +\s;\c;load\n; +Ta informacja rwnie zwraca opis caego obiektu, a mianowicie opis obiektu trzymanego przez \l;transporter\u object\botgr;. Jeli nie niesie on niczego, \c;load\n; jest rwne \c;null\n;. + +\b;Przykady +Typ \c;object\n; zwraca specjaln warto \c;\l;null\u cbot\null;\n; gdy obiekt nie istnieje. Na przykad: +\c; +\s; object a; +\s; a = radar(BotGrabberRoller); +\s; if ( a == null ) // obiekt nie istnieje? +\s; { +\s; } +\s; if ( a.position.z > 50 ) // czy jest na grze? +\s; { +\s; } +\n; +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. + diff --git a/help/P/cbot/Point.txt b/help/P/cbot/Point.txt new file mode 100644 index 00000000..c00eb041 --- /dev/null +++ b/help/P/cbot/Point.txt @@ -0,0 +1,36 @@ +\b;Typ \c;point\n; +Zmienne tego typu zawierają współrzędne punktu w przestrzeni. Składa się on z trzech wartości reprezentujących współrzędne \c;x\n;, \c;y\n; oraz \ c;z\n;. +\c;x\n; i \c;y\n; odpowiadają miejscu na powierzchni ziemi. Dodatnia oś \c;x\n; wskazuje wschód, dodatnia oś \c;y\n; wskazuje północ. +Wartość \c;z\n; odpowiada wysokości nad poziomem morza. + +Aby zadeklarować zmienną typu point, można napisać: +\c; +\s; point a (10, 20, 30); +\n; +Można również pojedynczo ustawić wartości współrzędnych: +\c; +\s; point b; +\s; b.x = 10; +\s; b.y = 20; +\s; b.z = 30; +\n; +W przykładach tych, następujący \l;warunek\u cbot\cond; jest prawdziwy: +\c; +\s; if ( a == b ) +\s; { +\s; } +\n; +Następująca deklaracja: +\c; +\s; point c (4, 7); +\n; +Jest równoważna poniższej: +\c; +\s; point c; +\s; c.x = 4; +\s; c.y = 7; +\s; c.z = 0; +\n; + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/Point.txt.bak b/help/P/cbot/Point.txt.bak new file mode 100644 index 00000000..4a2fbe79 --- /dev/null +++ b/help/P/cbot/Point.txt.bak @@ -0,0 +1,36 @@ +\b;Typ \c;point\n; +Zmienne tego typu zawieraj wsprzdne punktu w przestrzeni. Skada si on z trzech wartoci reprezentujcych wsprzdne \c;x\n;, \c;y\n; oraz \ c;z\n;. +\c;x\n; i \c;y\n; odpowiadaj miejscu na powierzchni ziemi. Dodatnia o \c;x\n; wskazuje wschd, dodatnia o \c;y\n; wskazuje pnoc. +Warto \c;z\n; odpowiada wysokoci nad poziomem morza. + +Aby zadeklarowa zmienn typu point, mona napisa: +\c; +\s; point a (10, 20, 30); +\n; +Mona rwnie pojedynczo ustawi wartoci wsprzdnych: +\c; +\s; point b; +\s; b.x = 10; +\s; b.y = 20; +\s; b.z = 30; +\n; +W przykadach tych, nastpujcy \l;warunek\u cbot\cond; jest prawdziwy: +\c; +\s; if ( a == b ) +\s; { +\s; } +\n; +Nastpujca deklaracja: +\c; +\s; point c (4, 7); +\n; +Jest rwnowana poniszej: +\c; +\s; point c; +\s; c.x = 4; +\s; c.y = 7; +\s; c.z = 0; +\n; + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/RADAR.TXT b/help/P/cbot/RADAR.TXT new file mode 100644 index 00000000..3321a5e2 --- /dev/null +++ b/help/P/cbot/RADAR.TXT @@ -0,0 +1,60 @@ +\b;Instrukcja \c;radar\n; +Przy użyciu instrukcji \c;radar()\n;, można znajdować różne obiekty, takie jak \l;wrogów\u object\mother;, roboty, budynki lub surowce. + +\b;Podstawowe użycie +W nawiasach należy napisać \l;nazwę poszukiwanego obiektu\u cbot\category;. Wynik należy umieścić w zmiennej \l;typu\u cbot\type; \c;object\n;. Oto przykład znajdujący najbliższą mrówkę: +\c; +\s;// Na początku programu: +\s;object item; // deklaracja zmiennej +\s; +\s;// Znajdź najbliższą mrówkę +\s;item = radar(AlienAnt); +\n; +\b;Dla specjalistów +Składnia: +\s;\c;radar ( category, angle, focus, min, max, way );\n; + +Wykrywa obiekty w zależnie od różnych parametrów. + +\image radar1 8 8; +Patrząc z góry, czerwona strefa odpowiada strefie, w której będą wykrywane obiekty. + +\t;category: \c;\l;int\u cbot\int;\n; +\l;Kategoria\u cbot\category; poszukiwanego obiektu. Na przykład szukając mrówki, należy napisać \c;radar (AlienAnt)\n;. + +\t;angle: \c;\l;float\u cbot\float;\n; (domyślna wartość: \c;0\n;) +Kierunek, w którym "patrzy" radar, w stopniach: +\c; 0\n; -> na wprost +\c;-90\n; -> ćwierć obrotu w prawo +\c; 90\n; -> ćwierć obrotu w lewo + +\t;focus: \c;\l;float\u cbot\float;\n; (domyślna wartość: \c;360\n;) +Kąt widzenia radaru, w stopniach. + +\t;min: \c;\l;float\u cbot\float;\n; (domyślna wartość: \c;0\n;) +Minimalna odległość wykrywania, w metrach. Obiekty znajdujące się bliżej nie będą wykryte. + +\t;max: \c;\l;float\u cbot\float;\n; (domyślna wartość: \c;1000\n;) +Maksymalna odległość wykrywania, w metrach. Obiekty znajdujące się dalej nie będą wykryte. + +\t;way: \c;\l;float\u cbot\float;\n; (domyślna wartość: \c;1\n;) +Określa sposób wykrywania obiektu. Przy wartości \c;1\n;, znajduje najbliższy obiekt w podanej strefie. Przy wartości\c;-1\n;, znajduje najdalszy obiekt w strefie. + +\t;Typ wyniku: \c;\l;object\u cbot\object;\n; +Zwraca pierwszy znaleziony obiekt odpowiadający podanej kategorii w podanej strefie. Jeśli nie znaleziono obiektu, zwracana jest wartość \c;\l;null\u cbot\null;\n;. + +\t;Uwaga +Nie jest konieczne podawanie wszystkich parametrów. Oto dwa przykłady równoważnych instrukcji: +\c; +\s; radar(Titanium, 0, 360, 0, 1000); +\s; radar(Titanium); // równoważne + +\s; radar(Titanium, 0, 90, 0, 1000); +\s; radar(Titanium, 0, 90); // równoważne +\n; +Jeśli pominięto jeden lub więcej parametrów, przyjmowane są wymienione powyżej wartości domyślne; tylko pierwszy parametr jest obowiązkowy. +Zwykle określony jest tylko pierwszy parametr, np. \c;radar (AlienAnt)\n; wykrywa najbliższą mrówkę, niezależnie od jej położenia. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. + diff --git a/help/P/cbot/RADAR.TXT.bak b/help/P/cbot/RADAR.TXT.bak new file mode 100644 index 00000000..58a95223 --- /dev/null +++ b/help/P/cbot/RADAR.TXT.bak @@ -0,0 +1,60 @@ +\b;Instrukcja \c;radar\n; +Przy uyciu instrukcji \c;radar()\n;, mona znajdowa rne obiekty, takie jak \l;wrogw\u object\mother;, roboty, budynki lub surowce. + +\b;Podstawowe uycie +W nawiasach naley napisa \l;nazw poszukiwanego obiektu\u cbot\category;. Wynik naley umieci w zmiennej \l;typu\u cbot\type; \c;object\n;. Oto przykad znajdujcy najblisz mrwk: +\c; +\s;// Na pocztku programu: +\s;object item; // deklaracja zmiennej +\s; +\s;// Znajd najblisz mrwk +\s;item = radar(AlienAnt); +\n; +\b;Dla specjalistw +Skadnia: +\s;\c;radar ( category, angle, focus, min, max, way );\n; + +Wykrywa obiekty w zalenie od rnych parametrw. + +\image radar1 8 8; +Patrzc z gry, czerwona strefa odpowiada strefie, w ktrej bd wykrywane obiekty. + +\t;category: \c;\l;int\u cbot\int;\n; +\l;Kategoria\u cbot\category; poszukiwanego obiektu. Na przykad szukajc mrwki, naley napisa \c;radar (AlienAnt)\n;. + +\t;angle: \c;\l;float\u cbot\float;\n; (domylna warto: \c;0\n;) +Kierunek, w ktrym "patrzy" radar, w stopniach: +\c; 0\n; -> na wprost +\c;-90\n; -> wier obrotu w prawo +\c; 90\n; -> wier obrotu w lewo + +\t;focus: \c;\l;float\u cbot\float;\n; (domylna warto: \c;360\n;) +Kt widzenia radaru, w stopniach. + +\t;min: \c;\l;float\u cbot\float;\n; (domylna warto: \c;0\n;) +Minimalna odlego wykrywania, w metrach. Obiekty znajdujce si bliej nie bd wykryte. + +\t;max: \c;\l;float\u cbot\float;\n; (domylna warto: \c;1000\n;) +Maksymalna odlego wykrywania, w metrach. Obiekty znajdujce si dalej nie bd wykryte. + +\t;way: \c;\l;float\u cbot\float;\n; (domylna warto: \c;1\n;) +Okrela sposb wykrywania obiektu. Przy wartoci \c;1\n;, znajduje najbliszy obiekt w podanej strefie. Przy wartoci\c;-1\n;, znajduje najdalszy obiekt w strefie. + +\t;Typ wyniku: \c;\l;object\u cbot\object;\n; +Zwraca pierwszy znaleziony obiekt odpowiadajcy podanej kategorii w podanej strefie. Jeli nie znaleziono obiektu, zwracana jest warto \c;\l;null\u cbot\null;\n;. + +\t;Uwaga +Nie jest konieczne podawanie wszystkich parametrw. Oto dwa przykady rwnowanych instrukcji: +\c; +\s; radar(Titanium, 0, 360, 0, 1000); +\s; radar(Titanium); // rwnowane + +\s; radar(Titanium, 0, 90, 0, 1000); +\s; radar(Titanium, 0, 90); // rwnowane +\n; +Jeli pominito jeden lub wicej parametrw, przyjmowane s wymienione powyej wartoci domylne; tylko pierwszy parametr jest obowizkowy. +Zwykle okrelony jest tylko pierwszy parametr, np. \c;radar (AlienAnt)\n; wykrywa najblisz mrwk, niezalenie od jej pooenia. + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. + diff --git a/help/P/cbot/RECYCLE.TXT b/help/P/cbot/RECYCLE.TXT new file mode 100644 index 00000000..3a9d8fc1 --- /dev/null +++ b/help/P/cbot/RECYCLE.TXT @@ -0,0 +1,14 @@ +\b;Instrukcja \c;recycle\n; +Składnia: +\s;\c;recycle ( );\n; + +Odzyskuje surowce z pozostałości robota znajdującego się bezpośrednio przed robotem \l;recyklerem\u object\botrecy; i tworzy \l;kostkę tytanu\u object\titan;. + +\t;Typ wyniku: \c;\l;int\u cbot\int;\n; +Zero jeśli wszystko w porządku, lub wartość inna od zera w przypadku wystąpienia błędu. +\c;== 0 \n;odzyskano surowce z pozostałości robota +\c;!= 0 \n;błąd, pozostałość robota nie mogła zostać przetworzona + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. + diff --git a/help/P/cbot/RECYCLE.TXT.bak b/help/P/cbot/RECYCLE.TXT.bak new file mode 100644 index 00000000..bf53d1cf --- /dev/null +++ b/help/P/cbot/RECYCLE.TXT.bak @@ -0,0 +1,14 @@ +\b;Instrukcja \c;recycle\n; +Skadnia: +\s;\c;recycle ( );\n; + +Odzyskuje surowce z pozostaoci robota znajdujcego si bezporednio przed robotem \l;recyklerem\u object\botrecy; i tworzy \l;kostk tytanu\u object\titan;. + +\t;Typ wyniku: \c;\l;int\u cbot\int;\n; +Zero jeli wszystko w porzdku, lub warto inna od zera w przypadku wystpienia bdu. +\c;== 0 \n;odzyskano surowce z pozostaoci robota +\c;!= 0 \n;bd, pozostao robota nie moga zosta przetworzona + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. + diff --git a/help/P/cbot/RETOBJ.TXT b/help/P/cbot/RETOBJ.TXT new file mode 100644 index 00000000..eafa5b20 --- /dev/null +++ b/help/P/cbot/RETOBJ.TXT @@ -0,0 +1,15 @@ +\b;Instrukcja \c;retobject\n; +Składnia: +\s;\c;retobject ( numer );\n; + +Zwraca obiekt odpowiadający podanemu numerowi. + +\t;numer: \c;\l;int\u cbot\int;\n; +Numer obiektu, pomiędzy 0 i n, gdzie "n" to liczba wszystkich obiektów na planecie. + +\t;Typ wyniku: \c;\l;object\u cbot\object;\n; +Obiekt odpowiadający numerowi. Wartość \c;\l;null\u cbot\null;\n; oznacza, że nie ma obiektu odpowiadającego podanemu numerowi, gdyż nie ma aż tylu obiektów na tej planecie. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. + diff --git a/help/P/cbot/RETOBJ.TXT.bak b/help/P/cbot/RETOBJ.TXT.bak new file mode 100644 index 00000000..2a100777 --- /dev/null +++ b/help/P/cbot/RETOBJ.TXT.bak @@ -0,0 +1,15 @@ +\b;Instrukcja \c;retobject\n; +Skadnia: +\s;\c;retobject ( numer );\n; + +Zwraca obiekt odpowiadajcy podanemu numerowi. + +\t;numer: \c;\l;int\u cbot\int;\n; +Numer obiektu, pomidzy 0 i n, gdzie "n" to liczba wszystkich obiektw na planecie. + +\t;Typ wyniku: \c;\l;object\u cbot\object;\n; +Obiekt odpowiadajcy numerowi. Warto \c;\l;null\u cbot\null;\n; oznacza, e nie ma obiektu odpowiadajcego podanemu numerowi, gdy nie ma a tylu obiektw na tej planecie. + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. + diff --git a/help/P/cbot/RETURN.TXT b/help/P/cbot/RETURN.TXT new file mode 100644 index 00000000..d9a7030c --- /dev/null +++ b/help/P/cbot/RETURN.TXT @@ -0,0 +1,31 @@ +\b;Instrukcja \c;return\n; +Powrót z funkcji. Składnia: +\c; +\s;void funkcja ( ) +\s;{ +\s; return; +\s;} +\n; +\b;Dla specjalistów +Jeśli \l;funkcja\u cbot\function; ma określony typ wyniku, po instrukcji \c;return\n; musi wystąpić wartość, która ma być zwrócona przez funkcję: +\c; +\s;float Pi ( ) +\s;{ +\s; return 3.1415; +\s;} + +\s;float Średnia (float a, float b) +\s;{ +\s; return (a+b)/2; +\s;} + +\s;string Znak (float a) +\s;{ +\s; if ( a > 0 ) return "dodatnia"; +\s; if ( a < 0 ) return "ujemna"; +\s; return "zero"; +\s;} +\n; +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. + diff --git a/help/P/cbot/RETURN.TXT.bak b/help/P/cbot/RETURN.TXT.bak new file mode 100644 index 00000000..27fb9d08 --- /dev/null +++ b/help/P/cbot/RETURN.TXT.bak @@ -0,0 +1,31 @@ +\b;Instrukcja \c;return\n; +Powrt z funkcji. Skadnia: +\c; +\s;void funkcja ( ) +\s;{ +\s; return; +\s;} +\n; +\b;Dla specjalistw +Jeli \l;funkcja\u cbot\function; ma okrelony typ wyniku, po instrukcji \c;return\n; musi wystpi warto, ktra ma by zwrcona przez funkcj: +\c; +\s;float Pi ( ) +\s;{ +\s; return 3.1415; +\s;} + +\s;float rednia (float a, float b) +\s;{ +\s; return (a+b)/2; +\s;} + +\s;string Znak (float a) +\s;{ +\s; if ( a > 0 ) return "dodatnia"; +\s; if ( a < 0 ) return "ujemna"; +\s; return "zero"; +\s;} +\n; +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. + diff --git a/help/P/cbot/Receive.txt b/help/P/cbot/Receive.txt new file mode 100644 index 00000000..7ccc1c83 --- /dev/null +++ b/help/P/cbot/Receive.txt @@ -0,0 +1,18 @@ +\b;Instrukcja \c;receive\n; +Składnia: +\s;\c;receive ( nazwa, moc );\n; + +Pobiera informację z najbliższej \l;stacji przekaźnikowej informacji\u object\exchange;. + +\t;nazwa: \c;string\n; +Nazwa informacji żądanej od stacji przekaźnikowej. Jest ona łańcuchem i powinna być zapisana w cudzysłowach "¦". + +\t;moc: \c;float\n; +Moc odbiornika, która odpowiada maksymalnej odległości pomiędzy odbiorcą i stacją przekaźnikową. Jeśli odległość jest większa, nie zostanie pobrana żadna informacja. Domyślną wartością jest 10 metrów. + +\t;Typ wyniku: \c;\l;float\u cbot\float;\n; +Wartość pobranej informacji. Jeśli wystarczająco blisko nie ma żadnej stacji przekaźnikowej, lub jeśli informacja o podanej nazwie nie istnieje, zwracana jest wartość \c;nan\n;. + +\t;Zobacz również +\c;\l;send\u cbot\send;\n;, \c;\l;testinfo\u cbot\testinfo;\n; i \c;\l;deleteinfo\u cbot\delinfo;\n;. +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/Receive.txt.bak b/help/P/cbot/Receive.txt.bak new file mode 100644 index 00000000..78d13c49 --- /dev/null +++ b/help/P/cbot/Receive.txt.bak @@ -0,0 +1,18 @@ +\b;Instrukcja \c;receive\n; +Skadnia: +\s;\c;receive ( nazwa, moc );\n; + +Pobiera informacj z najbliszej \l;stacji przekanikowej informacji\u object\exchange;. + +\t;nazwa: \c;string\n; +Nazwa informacji danej od stacji przekanikowej. Jest ona acuchem i powinna by zapisana w cudzysowach "". + +\t;moc: \c;float\n; +Moc odbiornika, ktra odpowiada maksymalnej odlegoci pomidzy odbiorc i stacj przekanikow. Jeli odlego jest wiksza, nie zostanie pobrana adna informacja. Domyln wartoci jest 10 metrw. + +\t;Typ wyniku: \c;\l;float\u cbot\float;\n; +Warto pobranej informacji. Jeli wystarczajco blisko nie ma adnej stacji przekanikowej, lub jeli informacja o podanej nazwie nie istnieje, zwracana jest warto \c;nan\n;. + +\t;Zobacz rwnie +\c;\l;send\u cbot\send;\n;, \c;\l;testinfo\u cbot\testinfo;\n; i \c;\l;deleteinfo\u cbot\delinfo;\n;. +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/SEARCH.TXT b/help/P/cbot/SEARCH.TXT new file mode 100644 index 00000000..7be578aa --- /dev/null +++ b/help/P/cbot/SEARCH.TXT @@ -0,0 +1,18 @@ +\b;Instrukcja \c;search\n; +Składnia: +\s;\c;search ( kategoria, pozycja );\n; + +Znajduje obiekt o określonej kategorii, będący najbliżej podanej pozycji. + +\t;kategoria: \c;\l;int\u cbot\int;\n; +\l;Kategoria\u cbot\category; poszukiwanego obiektu. + +\t;pozycja: \c;\l;point\u cbot\point;\n; +Funkcja \c;search\n; zwraca obiekt o podanej kategorii znajdujący się najbliżej określonej tutaj pozycji. + +\t;Typ wyniku: \c;\l;object\u cbot\object;\n; +Charakterystyka znalezionego obiektu. Wartość \c;\l;null\u cbot\null;\n; oznacza, że nie znaleziono obiektu o podanej kategorii. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. + diff --git a/help/P/cbot/SEARCH.TXT.bak b/help/P/cbot/SEARCH.TXT.bak new file mode 100644 index 00000000..00a94175 --- /dev/null +++ b/help/P/cbot/SEARCH.TXT.bak @@ -0,0 +1,18 @@ +\b;Instrukcja \c;search\n; +Skadnia: +\s;\c;search ( kategoria, pozycja );\n; + +Znajduje obiekt o okrelonej kategorii, bdcy najbliej podanej pozycji. + +\t;kategoria: \c;\l;int\u cbot\int;\n; +\l;Kategoria\u cbot\category; poszukiwanego obiektu. + +\t;pozycja: \c;\l;point\u cbot\point;\n; +Funkcja \c;search\n; zwraca obiekt o podanej kategorii znajdujcy si najbliej okrelonej tutaj pozycji. + +\t;Typ wyniku: \c;\l;object\u cbot\object;\n; +Charakterystyka znalezionego obiektu. Warto \c;\l;null\u cbot\null;\n; oznacza, e nie znaleziono obiektu o podanej kategorii. + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. + diff --git a/help/P/cbot/SHIELD.TXT b/help/P/cbot/SHIELD.TXT new file mode 100644 index 00000000..972a6f96 --- /dev/null +++ b/help/P/cbot/SHIELD.TXT @@ -0,0 +1,19 @@ +\b;Instrukcja \c;shield\n; +Składnia: +\s;\c;shield ( oper );\n; + +Aktywuje lub dezaktywuje osłonę robota \l;osłaniacza\u object\botshld;. Oczywiście można poruszać robotem przy aktywnej osłonie. Zabezpiecza ona wszystkie obiekty znajdujące się wewnątrz strefy przed atakami wroga. Promień sfery może się zawierać pomiędzy 10 a 25 metrami. + +\t;oper: \c;\l;float\u cbot\float;\n; +\c;1\n; aktywuje osłonę. +\c;0\n; dezaktywuje osłonę +Zwykłe, w pełni naładowane \l;ogniwo elektryczne\u object\power; wystarcza na 20 sekund aktywności osłony. Gdy ogniwo się wyczerpie, osłona jest wyłączana. + +\t;promień: \c;\l;float\u cbot\float;\n; +Promień sfery ochronnej, pomiędzy 10 a 25 metrów. + +\t;Typ wyniku: \c;\l;void\u cbot\void;\n; +Brak. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/SHIELD.TXT.bak b/help/P/cbot/SHIELD.TXT.bak new file mode 100644 index 00000000..3367ea65 --- /dev/null +++ b/help/P/cbot/SHIELD.TXT.bak @@ -0,0 +1,19 @@ +\b;Instrukcja \c;shield\n; +Skadnia: +\s;\c;shield ( oper );\n; + +Aktywuje lub dezaktywuje oson robota \l;osaniacza\u object\botshld;. Oczywicie mona porusza robotem przy aktywnej osonie. Zabezpiecza ona wszystkie obiekty znajdujce si wewntrz strefy przed atakami wroga. Promie sfery moe si zawiera pomidzy 10 a 25 metrami. + +\t;oper: \c;\l;float\u cbot\float;\n; +\c;1\n; aktywuje oson. +\c;0\n; dezaktywuje oson +Zwyke, w peni naadowane \l;ogniwo elektryczne\u object\power; wystarcza na 20 sekund aktywnoci osony. Gdy ogniwo si wyczerpie, osona jest wyczana. + +\t;promie: \c;\l;float\u cbot\float;\n; +Promie sfery ochronnej, pomidzy 10 a 25 metrw. + +\t;Typ wyniku: \c;\l;void\u cbot\void;\n; +Brak. + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/SNIFF.TXT b/help/P/cbot/SNIFF.TXT new file mode 100644 index 00000000..847f09f7 --- /dev/null +++ b/help/P/cbot/SNIFF.TXT @@ -0,0 +1,17 @@ +\b;Instrukcja \c;sniff\n; +Składnia: +\s;\c;sniff ( );\n; + +Analizuje grunt przed robotem \l;szperaczem\u object\botsr;. W zależności od wykrytego surowca, pojawia się następujący znacznik: + +\c;Złoże tytanu\n; -> \l;Czerwony plus\u object\stonspot; +\c;Złoże uranu \n; -> \l;Żółte kółko\u object\uranspot; +\c;Źródło energii \n; -> \l;Zielony plus\u object\enerspot; + +\t;Typ wyniku: \c;\l;int\u cbot\int;\n; +Zero jeśli wszystko jest w porządku, lub wartość inna od zera w przypadku wystąpienia błędu. +\c;== 0 \n;analiza wykonana +\c;!= 0 \n;analiza niemożliwa + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/SNIFF.TXT.bak b/help/P/cbot/SNIFF.TXT.bak new file mode 100644 index 00000000..c64e1d20 --- /dev/null +++ b/help/P/cbot/SNIFF.TXT.bak @@ -0,0 +1,17 @@ +\b;Instrukcja \c;sniff\n; +Skadnia: +\s;\c;sniff ( );\n; + +Analizuje grunt przed robotem \l;szperaczem\u object\botsr;. W zalenoci od wykrytego surowca, pojawia si nastpujcy znacznik: + +\c;Zoe tytanu\n; -> \l;Czerwony plus\u object\stonspot; +\c;Zoe uranu \n; -> \l;te kko\u object\uranspot; +\c;rdo energii \n; -> \l;Zielony plus\u object\enerspot; + +\t;Typ wyniku: \c;\l;int\u cbot\int;\n; +Zero jeli wszystko jest w porzdku, lub warto inna od zera w przypadku wystpienia bdu. +\c;== 0 \n;analiza wykonana +\c;!= 0 \n;analiza niemoliwa + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/STRING.TXT b/help/P/cbot/STRING.TXT new file mode 100644 index 00000000..8fce47e7 --- /dev/null +++ b/help/P/cbot/STRING.TXT @@ -0,0 +1,33 @@ +\b;Typ \c;string\n; +Zmiennej tego typu można używać do przechowywania znaków lub ciągów znaków. + +Na przykład: +\s;\c; "Cześć!" +\s; "To jest łańcuch" +\s; "x" +\s; "" // pusty łańcuch +\n; +Dwa łańcuchy można złączać, używając operatora \c;+\n;: +\s;\c; "Dzień dobry" + " " + "Panu" +\n; +Daje w wyniku łańcuch: +\s;\c; "Dzień dobry Panu" +\n; +Aby użyć cudzysłowu (") lub odwróconej kreski ułamkowej (\) w łańcuchu, należy napisać¦: +\s;\c;"To jest \"bardzo\" ważne" +\n;czego wynikiem będzie \c; To jest "bardzo" ważne. +\s;\c;"%user%\\ant.txt" +\n;czego wynikiem będzie \c;%user%\ant.txt +\n; +Następujące instrukcje mogą być używane na łańcuchach¦: +\c;\l;strlen\u cbot\strlen; \n;Podaje długość łańcucha +\c;\l;strleft\u cbot\strleft; \n;Wyodrębnia lewą część +\c;\l;strright\u cbot\strright; \n;Wyodrębnia prawą część +\c;\l;strmid\u cbot\strmid; \n;Wyodrębnia środkową część +\c;\l;strfind\u cbot\strfind; \n;Znajduje podłańcuch +\c;\l;strval\u cbot\strval; \n;Zamienia łańcuch na liczbę +\c;\l;strupper\u cbot\strupper; \n;Zamienia litery na wielkie +\c;\l;strlower\u cbot\strlower; \n;Zamienia litery na małe + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/STRING.TXT.bak b/help/P/cbot/STRING.TXT.bak new file mode 100644 index 00000000..ee860054 --- /dev/null +++ b/help/P/cbot/STRING.TXT.bak @@ -0,0 +1,33 @@ +\b;Typ \c;string\n; +Zmiennej tego typu mona uywa do przechowywania znakw lub cigw znakw. + +Na przykad: +\s;\c; "Cze!" +\s; "To jest acuch" +\s; "x" +\s; "" // pusty acuch +\n; +Dwa acuchy mona zcza, uywajc operatora \c;+\n;: +\s;\c; "Dzie dobry" + " " + "Panu" +\n; +Daje w wyniku acuch: +\s;\c; "Dzie dobry Panu" +\n; +Aby uy cudzysowu (") lub odwrconej kreski uamkowej (\) w acuchu, naley napisa: +\s;\c;"To jest \"bardzo\" wane" +\n;czego wynikiem bdzie \c; To jest "bardzo" wane. +\s;\c;"%user%\\ant.txt" +\n;czego wynikiem bdzie \c;%user%\ant.txt +\n; +Nastpujce instrukcje mog by uywane na acuchach: +\c;\l;strlen\u cbot\strlen; \n;Podaje dugo acucha +\c;\l;strleft\u cbot\strleft; \n;Wyodrbnia lew cz +\c;\l;strright\u cbot\strright; \n;Wyodrbnia praw cz +\c;\l;strmid\u cbot\strmid; \n;Wyodrbnia rodkow cz +\c;\l;strfind\u cbot\strfind; \n;Znajduje podacuch +\c;\l;strval\u cbot\strval; \n;Zamienia acuch na liczb +\c;\l;strupper\u cbot\strupper; \n;Zamienia litery na wielkie +\c;\l;strlower\u cbot\strlower; \n;Zamienia litery na mae + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/TERM.TXT b/help/P/cbot/TERM.TXT new file mode 100644 index 00000000..f1ae4c39 --- /dev/null +++ b/help/P/cbot/TERM.TXT @@ -0,0 +1,31 @@ +\b;Średnik +Po prostych wyrażeniach zawsze należy używać średnika \c;;\n;. Na przykład: +\c; +\s; int licznik = 0; +\n; +Nie należy jednak używać średnika na zakończenie \l;bloku\u cbot\bloc;: +\c; +\s; { +\s; float odl; +\s; odl = distance(p1, p2); +\s; } \n;// tutaj bez średnika!\c; +\n; +Nie należy również stosować średnika bezpośrednio po instrukcjach \c;\l;while\u cbot\while;\n;, \c;\l;if\u cbot\if;\n; lub \c;\l;for\u cbot\for;\n;: +\c; +\s; if ( a < b ) \n;// tutaj bez średnika!\c; +\s; { +\s; b = 100-a; +\s; } +\n; +Ponieważ instrukcje zawsze kończą się średnikiem a nie znakiem końca linii, można umieścić kilka instrukcji w jednej linii: +\c; +\s; int d=20; +\s; move(d); +\s; turn(90); +\n; +Jest równoważne: +\c; +\s; int d=20; move(d); turn(90); +\n; +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/TERM.TXT.bak b/help/P/cbot/TERM.TXT.bak new file mode 100644 index 00000000..1926c8a3 --- /dev/null +++ b/help/P/cbot/TERM.TXT.bak @@ -0,0 +1,31 @@ +\b;rednik +Po prostych wyraeniach zawsze naley uywa rednika \c;;\n;. Na przykad: +\c; +\s; int licznik = 0; +\n; +Nie naley jednak uywa rednika na zakoczenie \l;bloku\u cbot\bloc;: +\c; +\s; { +\s; float odl; +\s; odl = distance(p1, p2); +\s; } \n;// tutaj bez rednika!\c; +\n; +Nie naley rwnie stosowa rednika bezporednio po instrukcjach \c;\l;while\u cbot\while;\n;, \c;\l;if\u cbot\if;\n; lub \c;\l;for\u cbot\for;\n;: +\c; +\s; if ( a < b ) \n;// tutaj bez rednika!\c; +\s; { +\s; b = 100-a; +\s; } +\n; +Poniewa instrukcje zawsze kocz si rednikiem a nie znakiem koca linii, mona umieci kilka instrukcji w jednej linii: +\c; +\s; int d=20; +\s; move(d); +\s; turn(90); +\n; +Jest rwnowane: +\c; +\s; int d=20; move(d); turn(90); +\n; +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/THUMP.TXT b/help/P/cbot/THUMP.TXT new file mode 100644 index 00000000..8b4b3980 --- /dev/null +++ b/help/P/cbot/THUMP.TXT @@ -0,0 +1,13 @@ +\b;Instrukcja \c;thump\n; +Składnia: +\s;\c;thump ( );\n; + +Uruchamia system broni robota \l;uderzacza\u object\bottump;, który przewraca mrówki i pająki do góry brzuchem, powodując ich chwilowe unieszkodliwienie. + +\t;Typ wyniku: \c;\l;int\u cbot\int;\n; +Zero w przypadku powodzenia lub inna wartość, jeśli wystąpił błąd. +\c;== 0 \n;Uderzenie wykonane +\c;!= 0 \n;Operacja niemożliwa + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/THUMP.TXT.bak b/help/P/cbot/THUMP.TXT.bak new file mode 100644 index 00000000..75c75961 --- /dev/null +++ b/help/P/cbot/THUMP.TXT.bak @@ -0,0 +1,13 @@ +\b;Instrukcja \c;thump\n; +Skadnia: +\s;\c;thump ( );\n; + +Uruchamia system broni robota \l;uderzacza\u object\bottump;, ktry przewraca mrwki i pajki do gry brzuchem, powodujc ich chwilowe unieszkodliwienie. + +\t;Typ wyniku: \c;\l;int\u cbot\int;\n; +Zero w przypadku powodzenia lub inna warto, jeli wystpi bd. +\c;== 0 \n;Uderzenie wykonane +\c;!= 0 \n;Operacja niemoliwa + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/TOPO.TXT b/help/P/cbot/TOPO.TXT new file mode 100644 index 00000000..6a2a9e1f --- /dev/null +++ b/help/P/cbot/TOPO.TXT @@ -0,0 +1,14 @@ +\b;Instrukcja \c;topo\n; +Składnia: +\s;\c;topo ( pozycja );\n; + +Podaje wysokość gruntu w podanej pozycji. Wysokość zerowa odpowiada poziomowi morza. Wartość ujemna oznacza, że sprawdzany punkt jest przykryty wodą. + +\t;pozycja: \c;\l;point\u cbot\point;\n; +Współrzędne pozycji, której wysokość ma być sprawdzona. + +\t;Typ wyniku: \c;\l;float\u cbot\float;\n; +Wysokość gruntu w podanej pozycji. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/TOPO.TXT.bak b/help/P/cbot/TOPO.TXT.bak new file mode 100644 index 00000000..a2942fba --- /dev/null +++ b/help/P/cbot/TOPO.TXT.bak @@ -0,0 +1,14 @@ +\b;Instrukcja \c;topo\n; +Skadnia: +\s;\c;topo ( pozycja );\n; + +Podaje wysoko gruntu w podanej pozycji. Wysoko zerowa odpowiada poziomowi morza. Warto ujemna oznacza, e sprawdzany punkt jest przykryty wod. + +\t;pozycja: \c;\l;point\u cbot\point;\n; +Wsprzdne pozycji, ktrej wysoko ma by sprawdzona. + +\t;Typ wyniku: \c;\l;float\u cbot\float;\n; +Wysoko gruntu w podanej pozycji. + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/TRUE.TXT b/help/P/cbot/TRUE.TXT new file mode 100644 index 00000000..34128b57 --- /dev/null +++ b/help/P/cbot/TRUE.TXT @@ -0,0 +1,5 @@ +\b;Typ \c;true\n; +Wartość ta oznacza, że warunek jest prawdziwy; jest to jedna z dwóch wartości \l;zmiennej\u cbot\var; typu \l;boolean\u cbot\bool;. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/TRUE.TXT.bak b/help/P/cbot/TRUE.TXT.bak new file mode 100644 index 00000000..64919e0a --- /dev/null +++ b/help/P/cbot/TRUE.TXT.bak @@ -0,0 +1,5 @@ +\b;Typ \c;true\n; +Warto ta oznacza, e warunek jest prawdziwy; jest to jedna z dwch wartoci \l;zmiennej\u cbot\var; typu \l;boolean\u cbot\bool;. + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/TURN.TXT b/help/P/cbot/TURN.TXT new file mode 100644 index 00000000..485a239c --- /dev/null +++ b/help/P/cbot/TURN.TXT @@ -0,0 +1,33 @@ +\b;Instrukcja \c;turn\n; +Instrukcja \c;turn();\n; służy do wykonania przez robota obrotu o określoną liczbę stopni. + +\b;Podstawowe użycie +90 stopni oznacza ćwierć obrotu, 180 stopni to pół obrotu. Kąt dodatni to obrót przeciwny do ruchu wskazówek zegara, kąt ujemny oznacza obrót zgodny z ruchem wskazówek zegara. Oto kilka przykładów użycia instrukcji \c;turn();\n;: + +\c;turn(90);\n; ćwierć obrotu w lewo +\c;turn(-90);\n; ćwierć obrotu w prawo (ujemny kąt) +\c;turn(180);\n; połowa obrotu + +Aby obrócić robota w kierunku obiektu znalezionego przy użyciu instrukcji \c;\l;radar\u cbot\radar;();\n;, należy obliczyć kąt obrotu przy pomocy instrukcji \c;\l;direction\u cbot\direct;()\n;: +\c; +\s; item = \l;radar\u cbot\radar;(AlienSpider); +\s; turn(\l;direction\u cbot\direct;(item.position)); +\n; +Po tych liniach wystarczy wystrzelić z działa i już mamy jednego wroga mniej. + +\b;Dla specjalistów +Składnia: +\s;\c;turn ( kąt );\n; + +Obraca robota o podany kąt, w prawo lub w lewo, bez poruszania do przodu ani do tyłu. + +\t;kąt: \c;\l;float\u cbot\float;\n; +Kąt obrotu w stopniach. Wartość dodatnia to obrót w lewo, ujemna - w prawo. \c;turn(180)\n; obraca do tyłu. + +\t;Typ wyniku: \c;\l;int\u cbot\int;\n; +Zero w przypadku powodzenia lub inna wartość, jeśli wystąpił błąd. +\c;== 0 \n;obrót wykonany +\c;!= 0 \n;obrót niemożliwy + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/TURN.TXT.bak b/help/P/cbot/TURN.TXT.bak new file mode 100644 index 00000000..28c7595d --- /dev/null +++ b/help/P/cbot/TURN.TXT.bak @@ -0,0 +1,33 @@ +\b;Instrukcja \c;turn\n; +Instrukcja \c;turn();\n; suy do wykonania przez robota obrotu o okrelon liczb stopni. + +\b;Podstawowe uycie +90 stopni oznacza wier obrotu, 180 stopni to p obrotu. Kt dodatni to obrt przeciwny do ruchu wskazwek zegara, kt ujemny oznacza obrt zgodny z ruchem wskazwek zegara. Oto kilka przykadw uycia instrukcji \c;turn();\n;: + +\c;turn(90);\n; wier obrotu w lewo +\c;turn(-90);\n; wier obrotu w prawo (ujemny kt) +\c;turn(180);\n; poowa obrotu + +Aby obrci robota w kierunku obiektu znalezionego przy uyciu instrukcji \c;\l;radar\u cbot\radar;();\n;, naley obliczy kt obrotu przy pomocy instrukcji \c;\l;direction\u cbot\direct;()\n;: +\c; +\s; item = \l;radar\u cbot\radar;(AlienSpider); +\s; turn(\l;direction\u cbot\direct;(item.position)); +\n; +Po tych liniach wystarczy wystrzeli z dziaa i ju mamy jednego wroga mniej. + +\b;Dla specjalistw +Skadnia: +\s;\c;turn ( kt );\n; + +Obraca robota o podany kt, w prawo lub w lewo, bez poruszania do przodu ani do tyu. + +\t;kt: \c;\l;float\u cbot\float;\n; +Kt obrotu w stopniach. Warto dodatnia to obrt w lewo, ujemna - w prawo. \c;turn(180)\n; obraca do tyu. + +\t;Typ wyniku: \c;\l;int\u cbot\int;\n; +Zero w przypadku powodzenia lub inna warto, jeli wystpi bd. +\c;== 0 \n;obrt wykonany +\c;!= 0 \n;obrt niemoliwy + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/TYPE.TXT b/help/P/cbot/TYPE.TXT new file mode 100644 index 00000000..bd7a48c9 --- /dev/null +++ b/help/P/cbot/TYPE.TXT @@ -0,0 +1,33 @@ +\b;Typy zmiennych +Definiując \l;zmienną\u cbot\var; należy podać dwa elementy: + +1) nazwę +2) typ + +Po zdefiniowaniu zmiennej można w niej umieszczać informacje. Jednakże informacja, którą może przechowywać zmienna musi być odpowiedniego typu: zmienna typu \l;float\u cbot\float; nie może zawierać łańcucha itd. + +W programie typy zmiennych wyświetlane są na \type;zielonym tle\norm;. Jeśli jest inaczej, prawdopodobnie w nazwie jest literówka. Nazwy typów są zawsze zapisywane małymi literami. Oto lista różnych typów: + +\s;\c;\l;int\u cbot\int;\n; +Dla liczb całkowitych (12, -500, itd.) + +\s;\c;\l;float\u cbot\float;\n; +Dla liczb rzeczywistych (12, 3.14, 0.2, -99.98, itd.) + +\s;\c;\l;bool\u cbot\bool;\n; +Dla zmiennych logicznych, które mogą zawierać wartości \c;true\n; lub \c;false\n; + +\s;\c;\l;string\u cbot\string;\n; +Dla tekstów ("Cześć!", "Nie znaleziono obiektu", itd.) + +\s;\c;\l;point\u cbot\point;\n; +Dla współrzędnych punktu w przestrzeni; zmienna tego typu składa się z trzech części nazwanych x, y oraz z. + +\s;\c;\l;object\u cbot\object;\n; +Zmienna tego typu może zawierać informacje o obiekcie (robocie, budynku, wrogu, itd.) + +\s;\c;\l;void\u cbot\void;\n; +Jest to "typ pusty", używany wtedy, gdy nie chcemy określać typu. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/TYPE.TXT.bak b/help/P/cbot/TYPE.TXT.bak new file mode 100644 index 00000000..3b8c607b --- /dev/null +++ b/help/P/cbot/TYPE.TXT.bak @@ -0,0 +1,33 @@ +\b;Typy zmiennych +Definiujc \l;zmienn\u cbot\var; naley poda dwa elementy: + +1) nazw +2) typ + +Po zdefiniowaniu zmiennej mona w niej umieszcza informacje. Jednake informacja, ktr moe przechowywa zmienna musi by odpowiedniego typu: zmienna typu \l;float\u cbot\float; nie moe zawiera acucha itd. + +W programie typy zmiennych wywietlane s na \type;zielonym tle\norm;. Jeli jest inaczej, prawdopodobnie w nazwie jest literwka. Nazwy typw s zawsze zapisywane maymi literami. Oto lista rnych typw: + +\s;\c;\l;int\u cbot\int;\n; +Dla liczb cakowitych (12, -500, itd.) + +\s;\c;\l;float\u cbot\float;\n; +Dla liczb rzeczywistych (12, 3.14, 0.2, -99.98, itd.) + +\s;\c;\l;bool\u cbot\bool;\n; +Dla zmiennych logicznych, ktre mog zawiera wartoci \c;true\n; lub \c;false\n; + +\s;\c;\l;string\u cbot\string;\n; +Dla tekstw ("Cze!", "Nie znaleziono obiektu", itd.) + +\s;\c;\l;point\u cbot\point;\n; +Dla wsprzdnych punktu w przestrzeni; zmienna tego typu skada si z trzech czci nazwanych x, y oraz z. + +\s;\c;\l;object\u cbot\object;\n; +Zmienna tego typu moe zawiera informacje o obiekcie (robocie, budynku, wrogu, itd.) + +\s;\c;\l;void\u cbot\void;\n; +Jest to "typ pusty", uywany wtedy, gdy nie chcemy okrela typu. + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/VAR.TXT b/help/P/cbot/VAR.TXT new file mode 100644 index 00000000..ebfc5b03 --- /dev/null +++ b/help/P/cbot/VAR.TXT @@ -0,0 +1,67 @@ +\b;Zmienne +Zmienna jest jak pudełko, do którego można wkładać różne informacje. Wartość zmiennej może się zmieniać podczas wykonywania programu. + +Na przykład można użyć zmiennej do liczenia jednostek rudy tytanu zebranych i przeniesionych przez transporter do huty. Najpierw należy ustalić odpowiednią nazwę dla zmiennej: nie powinna być ona zbyt długa, ale powinna wyjaśniać do czego używana jest zmienna. Nazwijmy ją \c;liczTyt\n;. Zmienna ta będzie zawierała tylko liczby całkowite, dlatego odpowiednim dla niej typem będzie \c;int\n;. Na początku programu zmienną trzeba zadeklarować. Następnie można w niej umieścić wartość \c;0\n;, zwiększając ją o \c;1\n; za każdym razem, gdy robot podniesie rudę tytanu. Zmienna ta będzie zawierać liczbę porcji rudy tytanu zebranych do tej pory przez robota. + +Aby zadeklarować zmienną, należy napisać: +\c;\s; int liczTyt;\n; + +Aby przypisać jej wartość \c;0\n;, należy napisać: +\c;\s; liczTyt = 0;\n; + +Po zebraniu każdej porcji rudy tytanu należy napisać: +\c;\s; liczTyt = liczTyt + 1\n; + +W wyborze nazwy dla zmiennej jest dużo swobody, można ją nazwać dowolnie, np.: \c;odl\n;, \c;kierunek\n;, \c;p2\n;, \c;a\n;, \c;x\n;, \c;nic_do_zestrzelenia\n;, itd. +Nazwa zmiennej musi zaczynać się od litery, po której może następować dowolna kombinacja liter, cyfr i znaków podkreślenia \c;_\n;. Oczywiście nie można używać słów kluczowych języka CBOT takich jak \c;\l;for\u cbot\for;\n;, \c;\l;while\u cbot\while;\n;, \c;\l;break\u cbot\break;\n;, \c;\l;continue\u cbot\continue;\n;, \c;do\n;, itd. +Należy być ostrożnym w wyborze nazw przydzielanych zmiennym; pisanie programu może okazać się bardzo trudne jeśli zapomni się nazwy zmiennych lub nie pamięta do czego one służyły. Należy opracować własny system nazywania zmiennych i raczej nie używać nazw podobnych do \c;Bmo45\n;, \c;a\n; czy \c;tgBinX\n;. + +W powyższym przykładzie, słowo \c;int\n; określa, że zmienna może zawierać tylko liczby całkowite, odpowiednie do liczenia obiektów. Do mierzenia odległości lepiej jest użyć zmiennej, która może również zawierać liczby rzeczywiste z częścią ułamkową (takie jak 3.45 lub 0.034): w tym przypadku odpowiedniejszy jest typ \c;float\n;. + +Zmienna składa się z trzech części: +1) nazwy +2) typu informacji przez nią przechowywanych +3) zawartości, czyli samej informacji + +\t;nazwa +Jest niezbędna do rozróżniania zmiennych pomiędzy sobą. + +\t;typ +\l;Typ\u cbot\type; warunkuje rodzaj informacji, jaką może zawierać zmienna. Zależnie od typu, zmienna może zawierać liczby całkowite, liczby rzeczywiste, łańcuchy, współrzędne punktu, informacje o obiekcie, itd. +Oto lista najczęściej występujących typów zmiennych: + o \c;\l;int\u cbot\int;\n; dla liczb całkowitych (12, -500, itd.) + o \c;\l;float\u cbot\float;\n; dla liczb rzeczywistych (3.14, 0.2, -99.98, itd.) + o \c;\l;string\u cbot\string;\n; dla łańcuchów znakowych ("Cześć!", "Nie znaleziono obiektu", itd.) + o \c;\l;point\u cbot\point;\n; dla współrzędnych x, y, z w przestrzeni + o \c;\l;object\u cbot\object;\n; dla informacji o obiekcie (robocie, budynku, itd.) + +\t;zawartość +Zawartością zmiennej jest informacja, której rodzaj jest określony przez typ. Może się ona zmieniać w trakcie działania programu. + +Po zadeklarowaniu zmiennej nie zawiera ona żadnej wartości. Zanim będzie można jej użyć, trzeba nadać jej wartość: +\c;\s; int i, j; +\s; j = 25; // j przyjmuje wartość 25 +\s; j = i; // tak nie można napisać, gdyż i nie ma jeszcze żadnej wartości. +\n; +Możliwe jest zadeklarowanie zmiennej i przypisanie jej wartości w tym samym wierszu: +\c;\s; int liczTyt = 0; +\n; +Przy wykonywaniu przypisania wartości zmiennej przy użyciu znaku równości\c;=\n;, wartość z prawej strony jest kopiowana do wartości po lewej stronie. Rozważmy następujący przykład: +\c;\s; int i, j; +\s; i = 5+2; // i przyjmuje wartość 7 +\s; j = i+6; // j przyjmuje wartość i plus 6, czyli 13 +\s; i = j; // i przyjmuje wartość j, czyli 13 +\n; +Na końcu tego przykładu obie zmienne \c;i\n; i \c;j\n; zawierają wartość \c;13\n;. + +Następujące przypisanie jest niepoprawne, gdyż po lewej stronie znaku równości \c;=\n; może występować tylko nazwa zmiennej: +\c;\s; i+2 = j; // niemożliwe +\n; +Do zamiany zawartości dwóch zmiennych konieczne jest użycie trzeciej zmiennej. Oto przykład zamieniający zawartość zmiennych \c;a\n; i \c;b\n;: +\c;\s; int pom; +\s; pom = a; // pom przyjmuje wartość a +\s; a = b; // zawartość b jest kopiowana do a +\s; b = pom; // zawartość pom jest kopiowana do b +\n; +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/VAR.TXT.bak b/help/P/cbot/VAR.TXT.bak new file mode 100644 index 00000000..5149d198 --- /dev/null +++ b/help/P/cbot/VAR.TXT.bak @@ -0,0 +1,67 @@ +\b;Zmienne +Zmienna jest jak pudeko, do ktrego mona wkada rne informacje. Warto zmiennej moe si zmienia podczas wykonywania programu. + +Na przykad mona uy zmiennej do liczenia jednostek rudy tytanu zebranych i przeniesionych przez transporter do huty. Najpierw naley ustali odpowiedni nazw dla zmiennej: nie powinna by ona zbyt duga, ale powinna wyjania do czego uywana jest zmienna. Nazwijmy j \c;liczTyt\n;. Zmienna ta bdzie zawieraa tylko liczby cakowite, dlatego odpowiednim dla niej typem bdzie \c;int\n;. Na pocztku programu zmienn trzeba zadeklarowa. Nastpnie mona w niej umieci warto \c;0\n;, zwikszajc j o \c;1\n; za kadym razem, gdy robot podniesie rud tytanu. Zmienna ta bdzie zawiera liczb porcji rudy tytanu zebranych do tej pory przez robota. + +Aby zadeklarowa zmienn, naley napisa: +\c;\s; int liczTyt;\n; + +Aby przypisa jej warto \c;0\n;, naley napisa: +\c;\s; liczTyt = 0;\n; + +Po zebraniu kadej porcji rudy tytanu naley napisa: +\c;\s; liczTyt = liczTyt + 1\n; + +W wyborze nazwy dla zmiennej jest duo swobody, mona j nazwa dowolnie, np.: \c;odl\n;, \c;kierunek\n;, \c;p2\n;, \c;a\n;, \c;x\n;, \c;nic_do_zestrzelenia\n;, itd. +Nazwa zmiennej musi zaczyna si od litery, po ktrej moe nastpowa dowolna kombinacja liter, cyfr i znakw podkrelenia \c;_\n;. Oczywicie nie mona uywa sw kluczowych jzyka CBOT takich jak \c;\l;for\u cbot\for;\n;, \c;\l;while\u cbot\while;\n;, \c;\l;break\u cbot\break;\n;, \c;\l;continue\u cbot\continue;\n;, \c;do\n;, itd. +Naley by ostronym w wyborze nazw przydzielanych zmiennym; pisanie programu moe okaza si bardzo trudne jeli zapomni si nazwy zmiennych lub nie pamita do czego one suyy. Naley opracowa wasny system nazywania zmiennych i raczej nie uywa nazw podobnych do \c;Bmo45\n;, \c;a\n; czy \c;tgBinX\n;. + +W powyszym przykadzie, sowo \c;int\n; okrela, e zmienna moe zawiera tylko liczby cakowite, odpowiednie do liczenia obiektw. Do mierzenia odlegoci lepiej jest uy zmiennej, ktra moe rwnie zawiera liczby rzeczywiste z czci uamkow (takie jak 3.45 lub 0.034): w tym przypadku odpowiedniejszy jest typ \c;float\n;. + +Zmienna skada si z trzech czci: +1) nazwy +2) typu informacji przez ni przechowywanych +3) zawartoci, czyli samej informacji + +\t;nazwa +Jest niezbdna do rozrniania zmiennych pomidzy sob. + +\t;typ +\l;Typ\u cbot\type; warunkuje rodzaj informacji, jak moe zawiera zmienna. Zalenie od typu, zmienna moe zawiera liczby cakowite, liczby rzeczywiste, acuchy, wsprzdne punktu, informacje o obiekcie, itd. +Oto lista najczciej wystpujcych typw zmiennych: + o \c;\l;int\u cbot\int;\n; dla liczb cakowitych (12, -500, itd.) + o \c;\l;float\u cbot\float;\n; dla liczb rzeczywistych (3.14, 0.2, -99.98, itd.) + o \c;\l;string\u cbot\string;\n; dla acuchw znakowych ("Cze!", "Nie znaleziono obiektu", itd.) + o \c;\l;point\u cbot\point;\n; dla wsprzdnych x, y, z w przestrzeni + o \c;\l;object\u cbot\object;\n; dla informacji o obiekcie (robocie, budynku, itd.) + +\t;zawarto +Zawartoci zmiennej jest informacja, ktrej rodzaj jest okrelony przez typ. Moe si ona zmienia w trakcie dziaania programu. + +Po zadeklarowaniu zmiennej nie zawiera ona adnej wartoci. Zanim bdzie mona jej uy, trzeba nada jej warto: +\c;\s; int i, j; +\s; j = 25; // j przyjmuje warto 25 +\s; j = i; // tak nie mona napisa, gdy i nie ma jeszcze adnej wartoci. +\n; +Moliwe jest zadeklarowanie zmiennej i przypisanie jej wartoci w tym samym wierszu: +\c;\s; int liczTyt = 0; +\n; +Przy wykonywaniu przypisania wartoci zmiennej przy uyciu znaku rwnoci\c;=\n;, warto z prawej strony jest kopiowana do wartoci po lewej stronie. Rozwamy nastpujcy przykad: +\c;\s; int i, j; +\s; i = 5+2; // i przyjmuje warto 7 +\s; j = i+6; // j przyjmuje warto i plus 6, czyli 13 +\s; i = j; // i przyjmuje warto j, czyli 13 +\n; +Na kocu tego przykadu obie zmienne \c;i\n; i \c;j\n; zawieraj warto \c;13\n;. + +Nastpujce przypisanie jest niepoprawne, gdy po lewej stronie znaku rwnoci \c;=\n; moe wystpowa tylko nazwa zmiennej: +\c;\s; i+2 = j; // niemoliwe +\n; +Do zamiany zawartoci dwch zmiennych konieczne jest uycie trzeciej zmiennej. Oto przykad zamieniajcy zawarto zmiennych \c;a\n; i \c;b\n;: +\c;\s; int pom; +\s; pom = a; // pom przyjmuje warto a +\s; a = b; // zawarto b jest kopiowana do a +\s; b = pom; // zawarto pom jest kopiowana do b +\n; +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/VOID.TXT b/help/P/cbot/VOID.TXT new file mode 100644 index 00000000..acf3d0dd --- /dev/null +++ b/help/P/cbot/VOID.TXT @@ -0,0 +1,11 @@ +\b;Typ \c;void\n; +Tego typu należy użyć do deklaracji funkcji, która nie zwraca żadnego wyniku. + +Przykład: +\c;\s;void MojaFunkcja(int a) +\s;{ +\s; ... +\s;} +\n +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/VOID.TXT.bak b/help/P/cbot/VOID.TXT.bak new file mode 100644 index 00000000..3d504586 --- /dev/null +++ b/help/P/cbot/VOID.TXT.bak @@ -0,0 +1,11 @@ +\b;Typ \c;void\n; +Tego typu naley uy do deklaracji funkcji, ktra nie zwraca adnego wyniku. + +Przykad: +\c;\s;void MojaFunkcja(int a) +\s;{ +\s; ... +\s;} +\n +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/WAIT.TXT b/help/P/cbot/WAIT.TXT new file mode 100644 index 00000000..f478b588 --- /dev/null +++ b/help/P/cbot/WAIT.TXT @@ -0,0 +1,22 @@ +\b;Instrukcja \c;wait\n; +Instrukcja \c;wait();\n; każe robotowi czekać przez kilka sekund, zależnie od wartości podanej w nawiasach. + +\b;Podstawowe użycie +Na naładowanie \l;ogniwa elektrycznego\u object\power; w stacji energetycznej należy poczekać 5 sekund używając instrukcji \c;wait(5);\n;. + +Na przetopienie \l;rudy tytanu\u object\titanore; w \l;kostkę tytanu\u object\titan; w \l;hucie\u object\convert; należy poczekać 15 sekund używając instrukcji \c;wait(15);\n;. + +\b;Dla specjalistów +Składnia: +\s;\c;wait ( czas );\n; + +Czeka przez chwilę. + +\t;czas: \c;\l;float\u cbot\float;\n; +Określa czas przez jaki robot powinien czekać. + +\t;Typ wyniku: \c;\l;void\u cbot\void;\n; +Brak. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/WAIT.TXT.bak b/help/P/cbot/WAIT.TXT.bak new file mode 100644 index 00000000..ad6ad794 --- /dev/null +++ b/help/P/cbot/WAIT.TXT.bak @@ -0,0 +1,22 @@ +\b;Instrukcja \c;wait\n; +Instrukcja \c;wait();\n; kae robotowi czeka przez kilka sekund, zalenie od wartoci podanej w nawiasach. + +\b;Podstawowe uycie +Na naadowanie \l;ogniwa elektrycznego\u object\power; w stacji energetycznej naley poczeka 5 sekund uywajc instrukcji \c;wait(5);\n;. + +Na przetopienie \l;rudy tytanu\u object\titanore; w \l;kostk tytanu\u object\titan; w \l;hucie\u object\convert; naley poczeka 15 sekund uywajc instrukcji \c;wait(15);\n;. + +\b;Dla specjalistw +Skadnia: +\s;\c;wait ( czas );\n; + +Czeka przez chwil. + +\t;czas: \c;\l;float\u cbot\float;\n; +Okrela czas przez jaki robot powinien czeka. + +\t;Typ wyniku: \c;\l;void\u cbot\void;\n; +Brak. + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/abstime.txt b/help/P/cbot/abstime.txt new file mode 100644 index 00000000..8f0b4ee1 --- /dev/null +++ b/help/P/cbot/abstime.txt @@ -0,0 +1,11 @@ +\b;Instrukcja \c;abstime\n; +Składnia¦: +\s;\c;abstime ( );\n; + +Zwraca czas (w sekundach) jaki upłynął od początku misji. + +\t;Typ wyniku: \c;\l;float\u cbot\float;\n; +Czas w sekundach. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/abstime.txt.bak b/help/P/cbot/abstime.txt.bak new file mode 100644 index 00000000..6db84290 --- /dev/null +++ b/help/P/cbot/abstime.txt.bak @@ -0,0 +1,11 @@ +\b;Instrukcja \c;abstime\n; +Skadnia: +\s;\c;abstime ( );\n; + +Zwraca czas (w sekundach) jaki upyn od pocztku misji. + +\t;Typ wyniku: \c;\l;float\u cbot\float;\n; +Czas w sekundach. + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/array.txt b/help/P/cbot/array.txt new file mode 100644 index 00000000..6596a416 --- /dev/null +++ b/help/P/cbot/array.txt @@ -0,0 +1,31 @@ +\b;Tablice +Tablica jest zestawem obiektów tego samego typu lub klasy. W języku CBOT można używać N wymiarowych tablic. Każdy wymiar jest ograniczony do 9999 elementów. Aby zadeklarować tablicę, należy użyć nawiasów kwadratowych \c;[]\n; po nazwie zmiennej lub nazwie typu. +\c; +\s;int [ ] a; // tablica typu int +\s;int a [12]; // tablica typu int ograniczona do 12 elementów +\s;string s[3]; // tablica 3 elementów typu string +\s;float xy[][]; // 2 wymiarowa tablica typu float +\n; +W rzeczywistości, gdy interpreter języka CBOT napotka deklarację tablicy, tworzy jedynie \l;wskażnik\u cbot\pointer; \c;\l;null\u cbot\null;\n;: +\c; +\s;int a[5]; // jest teraz wskaźnikiem null +\n; +Z chwilą wstawienia wartości do tablicy, tworzone są elementy i inicjalizowany jest wskaźnik: +\c; +\s;a[2] = 213; // tablica a wskazuje na +\s; // 3 elementy: [0], [1] i [2] +\n; +Po tej operacji, zmienna \c;a\n; zawiera wskaźnik do elementów tablicy. Elementy \c;[0]\n; i \c;[1]\n; są tworzone, ale nie inicjalizowane, gdyż tablica nie może zawierać pustych elementów. Instrukcja \c;\l;sizeof\u cbot\sizeof;\n; umożliwia sprawdzenie liczby elementów tablicy. + +Gdy określony jest rozmiar maksymalny deklarowanej tablicy, program zatrzyma się w przypadku próby dostępu poza tablicę. Błąd ten nie jest sygnalizowany podczas kompilacji, nawet jeśli jest oczywisty: +\c; +\s;{ +\s; int a[5]; +\s; a[7] = 123; // nie ma błędu podczas kompilacji +\s; // ale pojawia się podczas działania programu +\s;} +\n; +Jeśli tablica przekazywana jest jako parametr \l;funkcji\u cbot\function;, funkcja otrzymuje jedynie \l;wskaźnik\u cbot\pointer; do tablicy. Oznacza to, że w przypadku modyfikacji elementu tablicy wewnątrz funkcji, zostanie w rzeczywistości zmodyfikowany element tablicy przekazanej funkcji jako parametr. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/array.txt.bak b/help/P/cbot/array.txt.bak new file mode 100644 index 00000000..5a45b5b3 --- /dev/null +++ b/help/P/cbot/array.txt.bak @@ -0,0 +1,31 @@ +\b;Tablice +Tablica jest zestawem obiektw tego samego typu lub klasy. W jzyku CBOT mona uywa N wymiarowych tablic. Kady wymiar jest ograniczony do 9999 elementw. Aby zadeklarowa tablic, naley uy nawiasw kwadratowych \c;[]\n; po nazwie zmiennej lub nazwie typu. +\c; +\s;int [ ] a; // tablica typu int +\s;int a [12]; // tablica typu int ograniczona do 12 elementw +\s;string s[3]; // tablica 3 elementw typu string +\s;float xy[][]; // 2 wymiarowa tablica typu float +\n; +W rzeczywistoci, gdy interpreter jzyka CBOT napotka deklaracj tablicy, tworzy jedynie \l;wskanik\u cbot\pointer; \c;\l;null\u cbot\null;\n;: +\c; +\s;int a[5]; // jest teraz wskanikiem null +\n; +Z chwil wstawienia wartoci do tablicy, tworzone s elementy i inicjalizowany jest wskanik: +\c; +\s;a[2] = 213; // tablica a wskazuje na +\s; // 3 elementy: [0], [1] i [2] +\n; +Po tej operacji, zmienna \c;a\n; zawiera wskanik do elementw tablicy. Elementy \c;[0]\n; i \c;[1]\n; s tworzone, ale nie inicjalizowane, gdy tablica nie moe zawiera pustych elementw. Instrukcja \c;\l;sizeof\u cbot\sizeof;\n; umoliwia sprawdzenie liczby elementw tablicy. + +Gdy okrelony jest rozmiar maksymalny deklarowanej tablicy, program zatrzyma si w przypadku prby dostpu poza tablic. Bd ten nie jest sygnalizowany podczas kompilacji, nawet jeli jest oczywisty: +\c; +\s;{ +\s; int a[5]; +\s; a[7] = 123; // nie ma bdu podczas kompilacji +\s; // ale pojawia si podczas dziaania programu +\s;} +\n; +Jeli tablica przekazywana jest jako parametr \l;funkcji\u cbot\function;, funkcja otrzymuje jedynie \l;wskanik\u cbot\pointer; do tablicy. Oznacza to, e w przypadku modyfikacji elementu tablicy wewntrz funkcji, zostanie w rzeczywistoci zmodyfikowany element tablicy przekazanej funkcji jako parametr. + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/bloc.txt b/help/P/cbot/bloc.txt new file mode 100644 index 00000000..11341fbd --- /dev/null +++ b/help/P/cbot/bloc.txt @@ -0,0 +1,49 @@ +\b;Bloki +Do zgrupowania razem kilku instrukcji można użyć nawiasów klamrowych \c;{ }\n; i utworzyć z nich jeden blok, na przykład: +\c; +\s; { +\s; float t; +\s; t = a; +\s; a = b; +\s; b = t; // zamienia zawartości a i b +\s; } +\n; +Każda instrukcja w bloku zakończona jest \l;średnikiem\u cbot\term; ale sam blok już nie. +W celu zilustrowania użycia bloków w programie rozważmy następujący przykład z instrukcją \c;\l;if\u cbot\if;\n;: +\c; +\s; if ( a < b ) +\s; \n;instrukcja 1\c;; +\s; \n;instrukcja 2\c;; +\s; \n;instrukcja 3\c;; +\n; +Jeśli \l;warunek\u cbot\cond; jest prawdziwy, wykonywane są instrukcje 1, 2 i 3. Jeśli nie, tylko instrukcja 1 jest pomijana, instrukcje 2 i 3 są wykonywane. Fakt, że instrukcja 2 jest na tym samym poziomie co instrukcja 1 nie ma znaczenia. +Jeśli instrukcje 1 i 2 mają być wykonywane tylko gdy warunek jest prawdziwy, należy użyć nawiasów klamrowych do złączenie ich w jeden blok: +\c; +\s; if ( a < b ) +\s; { +\s; \n;instrukcja 1\c;; +\s; \n;instrukcja 2\c;; +\s; } +\s; \n;instrukcja 3\c;; +\n; +Bloki mogą być niezbędne w przypadku instrukcji \c;\l;if\u cbot\if;\n;, \c;\l;while\u cbot\while;\n; oraz \c;\l;for\u cbot\for;\n;, w celu zgrupowania instrukcji, które mają być wykonywane tylko w przypadku prawdziwości warunku bądź powtarzane wielokrotnie. +Bloki można umieszczać wewnątrz innych bloków dowolną liczbę razy. Oto przykład dwupoziomowego zagnieżdżenia: +\c; +\s; if ( a > b ) +\s; { +\s; int i = 0; +\s; while ( i < 18 ) +\s; { +\s; move(10); +\s; turn(5); +\s; i = i+1; +\s; } +\s; } +\n; +Aby poprawić czytelność programu, najlepiej jest wyrównać klamrę otwierającą\c;{\n; z zamykającą \c;}\n;, chociaż nie jest to obowiązkowe. Następujący przykład zajmuje mniej miejsca i jest równoważny poprzedniemu, nie jest jednak polecane używanie takiego stylu: +\c; +\s; if(a>b) { int i=0; while(i<18) { +\s; move(10);turn(5);i=i+1; }} +\n; +\t;Zobacz również +\l;Instrukcje\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/bloc.txt.bak b/help/P/cbot/bloc.txt.bak new file mode 100644 index 00000000..b3e6c2f2 --- /dev/null +++ b/help/P/cbot/bloc.txt.bak @@ -0,0 +1,49 @@ +\b;Bloki +Do zgrupowania razem kilku instrukcji mona uy nawiasw klamrowych \c;{ }\n; i utworzy z nich jeden blok, na przykad: +\c; +\s; { +\s; float t; +\s; t = a; +\s; a = b; +\s; b = t; // zamienia zawartoci a i b +\s; } +\n; +Kada instrukcja w bloku zakoczona jest \l;rednikiem\u cbot\term; ale sam blok ju nie. +W celu zilustrowania uycia blokw w programie rozwamy nastpujcy przykad z instrukcj \c;\l;if\u cbot\if;\n;: +\c; +\s; if ( a < b ) +\s; \n;instrukcja 1\c;; +\s; \n;instrukcja 2\c;; +\s; \n;instrukcja 3\c;; +\n; +Jeli \l;warunek\u cbot\cond; jest prawdziwy, wykonywane s instrukcje 1, 2 i 3. Jeli nie, tylko instrukcja 1 jest pomijana, instrukcje 2 i 3 s wykonywane. Fakt, e instrukcja 2 jest na tym samym poziomie co instrukcja 1 nie ma znaczenia. +Jeli instrukcje 1 i 2 maj by wykonywane tylko gdy warunek jest prawdziwy, naley uy nawiasw klamrowych do zczenie ich w jeden blok: +\c; +\s; if ( a < b ) +\s; { +\s; \n;instrukcja 1\c;; +\s; \n;instrukcja 2\c;; +\s; } +\s; \n;instrukcja 3\c;; +\n; +Bloki mog by niezbdne w przypadku instrukcji \c;\l;if\u cbot\if;\n;, \c;\l;while\u cbot\while;\n; oraz \c;\l;for\u cbot\for;\n;, w celu zgrupowania instrukcji, ktre maj by wykonywane tylko w przypadku prawdziwoci warunku bd powtarzane wielokrotnie. +Bloki mona umieszcza wewntrz innych blokw dowoln liczb razy. Oto przykad dwupoziomowego zagniedenia: +\c; +\s; if ( a > b ) +\s; { +\s; int i = 0; +\s; while ( i < 18 ) +\s; { +\s; move(10); +\s; turn(5); +\s; i = i+1; +\s; } +\s; } +\n; +Aby poprawi czytelno programu, najlepiej jest wyrwna klamr otwierajc\c;{\n; z zamykajc \c;}\n;, chocia nie jest to obowizkowe. Nastpujcy przykad zajmuje mniej miejsca i jest rwnowany poprzedniemu, nie jest jednak polecane uywanie takiego stylu: +\c; +\s; if(a>b) { int i=0; while(i<18) { +\s; move(10);turn(5);i=i+1; }} +\n; +\t;Zobacz rwnie +\l;Instrukcje\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/category.txt b/help/P/cbot/category.txt new file mode 100644 index 00000000..214e0eba --- /dev/null +++ b/help/P/cbot/category.txt @@ -0,0 +1,108 @@ +\b;\c;Kategorie\n; wartości +Kategorie to nazwy obiektów języka CBOT. W grze COLOBOT wszystko to obiekty: roboty, budynki, surowce, itd., nawet Ty. + +W programie kategorie są wyświetlane na \const;czerwonym tle\norm;. Jeśli kategoria nie jest podświetlona na czerwono, w jej nazwie jest literówka. Wielkie i małe litery powinny być zachowane. + +Poniżej wymienione są różne dostępne kategorie: + +\t;Budynki: + +\button 176; \c;\l;Houston\u object\Huston; \n;Centrum Kontroli Misji +\button 171; \c;\l;SpaceShip\u object\base; \n;Statek kosmiczny +\button 160; \c;\l;BotFactory\u object\factory; \n;Fabryka robotów +\button 163; \c;\l;ResearchCenter\u object\research; \n;Centrum badawcze +\button 168; \c;\l;RadarStation\u object\radar; \n;Radar +\button 172; \c;\l;ExchangePost\u object\exchange; \n;Stacja przekaźnikowa informacji +\button 169; \c;\l;RepairCenter\u object\repair; \n;Warsztat +\button 165; \c;\l;DefenseTower\u object\tower; \n;Wieża obronna +\button 166; \c;\l;AutoLab\u object\labo; \n;Analizator materii organicznej +\button 164; \c;\l;PowerStation\u object\station; \n;Elektrownia +\button 167; \c;\l;PowerPlant\u object\energy; \n;Fabryka ogniw elektrycznych +\button 170; \c;\l;NuclearPlant\u object\nuclear; \n;Elektrownia atomowa +\button 162; \c;\l;Converter\u object\convert; \n;Huta tytanu +\button 161; \c;\l;Derrick\u object\derrick; \n;Kopalnia +\button 174; \c;\l;PowerCaptor\u object\captor; \n;Paraboliczny odgromnik +\button 175; \c;\l;Vault\u object\safe; \n;Skrytka + \c;\l;StartArea\u object\start; \n;Podest startowy + \c;\l;GoalArea\u object\goal; \n;Podest końcowy + \c;\l;AlienNest\u object\nest; \n;Gniazdo Obcych + + +\t;Obiekty przenośne: + + \c;\l;TitaniumOre\u object\titanore; \n;Ruda tytanu + \c;\l;UraniumOre\u object\uranore; \n;Ruda uranu + \c;\l;Titanium\u object\titan; \n;Kostka przetopionego tytanu + \c;\l;PowerCell\u object\power; \n;Zwykłe ogniwo elektryczne + \c;\l;NuclearCell\u object\atomic; \n;Atomowe ogniwo elektryczne + \c;\l;OrgaMatter\u object\bullet; \n;Materia organiczna + \c;\l;BlackBox\u object\bbox; \n;Czarna skrzynka + \c;\l;TNT\u object\tnt; \n;Materiały wybuchowe + \c;\l;KeyA..D\u object\key; \n;Klucze A, B, C i D + + +\t;Roboty: + +\button 158; \c;\l;PracticeBot\u object\bottr; \n;Robot treningowy +\button 173; \c;\l;TargetBot\u object\bottarg; \n;Robot cel + +\button 137; \c;\l;WheeledGrabber\u object\botgr; \n;Transporter na kołach +\button 138; \c;\l;TrackedGrabber\u object\botgc; \n;Transporter na gąsienicach +\button 139; \c;\l;WingedGrabber\u object\botgj; \n;Transporter latający +\button 150; \c;\l;LeggedGrabber\u object\botgs; \n;Transporter na nogach + +\button 140; \c;\l;WheeledSniffer\u object\botsr; \n;Szperacz na kołach +\button 141; \c;\l;TrackedSniffer\u object\botsc; \n;Szperacz na gąsienicach +\button 142; \c;\l;WingedSniffer\u object\botsj; \n;Szperacz latający +\button 152; \c;\l;LeggedSniffer\u object\botss; \n;Szperacz na nogach + +\button 143; \c;\l;WheeledShooter\u object\botfr; \n;Działo na kołach +\button 144; \c;\l;TrackedShooter\u object\botfc; \n;Działo na gąsienicach +\button 145; \c;\l;WingedShooter\u object\botfj; \n;Działo latające +\button 151; \c;\l;LeggedShooter\u object\botfs; \n;Działo na nogach + +\button 153; \c;\l;WheeledOrgaShooter\u object\botor; \n;Działo organiczne na kołach +\button 154; \c;\l;TrackedOrgaShooter\u object\botoc; \n;Działo organiczne na gąsienicach +\button 155; \c;\l;WingedOrgaShooter\u object\botoj; \n;Latające działo organiczne +\button 156; \c;\l;LeggedOrgaShooter\u object\botos; \n;Działo organiczne na nogach + +\button 149; \c;\l;Subber\u object\botsub; \n;Robot nurek +\button 148; \c;\l;Recycler\u object\botrecy; \n;Robot recykler +\button 157; \c;\l;Shielder\u object\botshld; \n;Robot osłaniacz +\button 146; \c;\l;Thumper\u object\bottump; \n;Robot uderzacz +\button 147; \c;\l;PhazerShooter\u object\botphaz; \n;Działo fazowe + + +\t;Wrogowie: + + \c;\l;AlienQueen\u object\mother; \n;Królowa Obcych + \c;\l;AlienEgg\u object\egg; \n;Jajo Obcych + \c;\l;AlienAnt\u object\ant; \n;Mrówka + \c;\l;AlienSpider\u object\spider; \n;Pająk + \c;\l;AlienWasp\u object\wasp; \n;Osa + \c;\l;AlienWorm\u object\worm; \n;Robal + + +\t;Różne: + +\button 136; \c;\l;Me\u object\human; \n;Ty! + \c;\l;Mine\u object\mine; \n;Mina + \c;\l;Barrier\u object\barrier; \n;Bariera + \c;\l;Wreck\u object\wreck; \n;Szczątki robota + \c;\l;Ruin\u object\ruin; \n;Szczątki budynku + + +\t;Flagi i inne znaczniki: + + \c;\l;BlueFlag\u object\flag; \n;Niebieska flaga + \c;\l;RedFlag\u object\flag; \n;Czerwona flaga + \c;\l;GreenFlag\u object\flag; \n;Zielona flaga + \c;\l;YellowFlag\u object\flag; \n;Żółta flaga + \c;\l;VioletFlag\u object\flag; \n;Fioletowa flaga + \c;\l;WayPoint\u object\waypoint; \n;Punkt kontrolny + \c;\l;EnergySite\u object\enerspot; \n;Podziemne źródło energii + \c;\l;TitaniumSite\u object\stonspot; \n;Podziemne złoże tytanu + \c;\l;UraniumSite\u object\uranspot; \n;Podziemne złoże uranu + +\t;Zobacz również +\l;Język CBOT\u cbot; i \l;zmienne\u cbot\type;. diff --git a/help/P/cbot/category.txt.bak b/help/P/cbot/category.txt.bak new file mode 100644 index 00000000..453a47b4 --- /dev/null +++ b/help/P/cbot/category.txt.bak @@ -0,0 +1,108 @@ +\b;\c;Kategorie\n; wartoci +Kategorie to nazwy obiektw jzyka CBOT. W grze COLOBOT wszystko to obiekty: roboty, budynki, surowce, itd., nawet Ty. + +W programie kategorie s wywietlane na \const;czerwonym tle\norm;. Jeli kategoria nie jest podwietlona na czerwono, w jej nazwie jest literwka. Wielkie i mae litery powinny by zachowane. + +Poniej wymienione s rne dostpne kategorie: + +\t;Budynki: + +\button 176; \c;\l;Houston\u object\Huston; \n;Centrum Kontroli Misji +\button 171; \c;\l;SpaceShip\u object\base; \n;Statek kosmiczny +\button 160; \c;\l;BotFactory\u object\factory; \n;Fabryka robotw +\button 163; \c;\l;ResearchCenter\u object\research; \n;Centrum badawcze +\button 168; \c;\l;RadarStation\u object\radar; \n;Radar +\button 172; \c;\l;ExchangePost\u object\exchange; \n;Stacja przekanikowa informacji +\button 169; \c;\l;RepairCenter\u object\repair; \n;Warsztat +\button 165; \c;\l;DefenseTower\u object\tower; \n;Wiea obronna +\button 166; \c;\l;AutoLab\u object\labo; \n;Analizator materii organicznej +\button 164; \c;\l;PowerStation\u object\station; \n;Elektrownia +\button 167; \c;\l;PowerPlant\u object\energy; \n;Fabryka ogniw elektrycznych +\button 170; \c;\l;NuclearPlant\u object\nuclear; \n;Elektrownia atomowa +\button 162; \c;\l;Converter\u object\convert; \n;Huta tytanu +\button 161; \c;\l;Derrick\u object\derrick; \n;Kopalnia +\button 174; \c;\l;PowerCaptor\u object\captor; \n;Paraboliczny odgromnik +\button 175; \c;\l;Vault\u object\safe; \n;Skrytka + \c;\l;StartArea\u object\start; \n;Podest startowy + \c;\l;GoalArea\u object\goal; \n;Podest kocowy + \c;\l;AlienNest\u object\nest; \n;Gniazdo Obcych + + +\t;Obiekty przenone: + + \c;\l;TitaniumOre\u object\titanore; \n;Ruda tytanu + \c;\l;UraniumOre\u object\uranore; \n;Ruda uranu + \c;\l;Titanium\u object\titan; \n;Kostka przetopionego tytanu + \c;\l;PowerCell\u object\power; \n;Zwyke ogniwo elektryczne + \c;\l;NuclearCell\u object\atomic; \n;Atomowe ogniwo elektryczne + \c;\l;OrgaMatter\u object\bullet; \n;Materia organiczna + \c;\l;BlackBox\u object\bbox; \n;Czarna skrzynka + \c;\l;TNT\u object\tnt; \n;Materiay wybuchowe + \c;\l;KeyA..D\u object\key; \n;Klucze A, B, C i D + + +\t;Roboty: + +\button 158; \c;\l;PracticeBot\u object\bottr; \n;Robot treningowy +\button 173; \c;\l;TargetBot\u object\bottarg; \n;Robot cel + +\button 137; \c;\l;WheeledGrabber\u object\botgr; \n;Transporter na koach +\button 138; \c;\l;TrackedGrabber\u object\botgc; \n;Transporter na gsienicach +\button 139; \c;\l;WingedGrabber\u object\botgj; \n;Transporter latajcy +\button 150; \c;\l;LeggedGrabber\u object\botgs; \n;Transporter na nogach + +\button 140; \c;\l;WheeledSniffer\u object\botsr; \n;Szperacz na koach +\button 141; \c;\l;TrackedSniffer\u object\botsc; \n;Szperacz na gsienicach +\button 142; \c;\l;WingedSniffer\u object\botsj; \n;Szperacz latajcy +\button 152; \c;\l;LeggedSniffer\u object\botss; \n;Szperacz na nogach + +\button 143; \c;\l;WheeledShooter\u object\botfr; \n;Dziao na koach +\button 144; \c;\l;TrackedShooter\u object\botfc; \n;Dziao na gsienicach +\button 145; \c;\l;WingedShooter\u object\botfj; \n;Dziao latajce +\button 151; \c;\l;LeggedShooter\u object\botfs; \n;Dziao na nogach + +\button 153; \c;\l;WheeledOrgaShooter\u object\botor; \n;Dziao organiczne na koach +\button 154; \c;\l;TrackedOrgaShooter\u object\botoc; \n;Dziao organiczne na gsienicach +\button 155; \c;\l;WingedOrgaShooter\u object\botoj; \n;Latajce dziao organiczne +\button 156; \c;\l;LeggedOrgaShooter\u object\botos; \n;Dziao organiczne na nogach + +\button 149; \c;\l;Subber\u object\botsub; \n;Robot nurek +\button 148; \c;\l;Recycler\u object\botrecy; \n;Robot recykler +\button 157; \c;\l;Shielder\u object\botshld; \n;Robot osaniacz +\button 146; \c;\l;Thumper\u object\bottump; \n;Robot uderzacz +\button 147; \c;\l;PhazerShooter\u object\botphaz; \n;Dziao fazowe + + +\t;Wrogowie: + + \c;\l;AlienQueen\u object\mother; \n;Krlowa Obcych + \c;\l;AlienEgg\u object\egg; \n;Jajo Obcych + \c;\l;AlienAnt\u object\ant; \n;Mrwka + \c;\l;AlienSpider\u object\spider; \n;Pajk + \c;\l;AlienWasp\u object\wasp; \n;Osa + \c;\l;AlienWorm\u object\worm; \n;Robal + + +\t;Rne: + +\button 136; \c;\l;Me\u object\human; \n;Ty! + \c;\l;Mine\u object\mine; \n;Mina + \c;\l;Barrier\u object\barrier; \n;Bariera + \c;\l;Wreck\u object\wreck; \n;Szcztki robota + \c;\l;Ruin\u object\ruin; \n;Szcztki budynku + + +\t;Flagi i inne znaczniki: + + \c;\l;BlueFlag\u object\flag; \n;Niebieska flaga + \c;\l;RedFlag\u object\flag; \n;Czerwona flaga + \c;\l;GreenFlag\u object\flag; \n;Zielona flaga + \c;\l;YellowFlag\u object\flag; \n;ta flaga + \c;\l;VioletFlag\u object\flag; \n;Fioletowa flaga + \c;\l;WayPoint\u object\waypoint; \n;Punkt kontrolny + \c;\l;EnergySite\u object\enerspot; \n;Podziemne rdo energii + \c;\l;TitaniumSite\u object\stonspot; \n;Podziemne zoe tytanu + \c;\l;UraniumSite\u object\uranspot; \n;Podziemne zoe uranu + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot; i \l;zmienne\u cbot\type;. diff --git a/help/P/cbot/class.txt b/help/P/cbot/class.txt new file mode 100644 index 00000000..1d01dd6f --- /dev/null +++ b/help/P/cbot/class.txt @@ -0,0 +1,72 @@ +\b;Instrukcja \c;class\n; +Pozwala na zadeklarowanie definicji klasy, przy użyciu następującej składni: +\c; +\s;public class NazwaKlasy +\s;{ +\s; deklaracje; +\s;} +\n; +Klasy mogą być tylko typu \l;public\u cbot\public; (publiczne), a więc mogą być używane podczas misji przez wszystkie roboty. Elementy klasy również są publiczne, dostępne spoza klasy. Do klasy mogą należeć pola lub funkcje (zwane również metodami), na przykład następująca klasa \c;MojaKlasa\n; zawiera 4 pola (a, b, x oraz s) i jedną metodę (MojaFunkcja). +\c; +\s;public class MojaKlasa +\s;{ +\s; int a, b; +\s; float x = 3.33; +\s; string s = "Cześć"; +\s; float MojaFunkcja( float value ) +\s; { +\s; return (value*x)-1; +\s; } +\s;} +\n; +Jak pokazano na tym przykładzie, elementy klasy mogą być inicjalizowane (\c;x=3.33\n;). Można też zdefiniować konstruktor, który jest specjalną metodą o nazwie takiej samej jak nazwa klasy. Metoda ta jest wywoływana automatycznie podczas tworzenia instancji klasy. Możliwe jest również zadeklarowanie więcej niż jednej metody o tej samej nazwie ale o innych parametrach. +\c; +\s;public class MojaKlasa +\s;{ +\s; int a, b; +\s; void MojaKlasa( ) +\s; { +\s; a = 2; b = 3; +\s; } +\s; void MojaKlasa( int a, int b ) +\s; { +\s; this.a = a; this.b = b; +\s; } +\s;} +\n; +W tym przykładzie zadeklarowano dwa konstruktory dla klasy \c;MojaKlasa\n;, jeden bez parametrów, drugi z dwoma parametrami. Jako że nazwy parametrów drugiego konstruktora są takie same jak nazwy dwóch pól klasy \c;a\n; et \c;b\n; konieczne jest użycie \c;\l;this\u cbot\this;.a\n; i \c;\l;this\u cbot\this;.b\n; w celu rozróżnienia parametrów. Inne, prostsze rozwiązanie, to nadanie różnych nazw parametrom. +\c; +\s;void Test( ) +\s;{ +\s; MojaKlasa element1(); // konstruktor bez parametrów +\s; MojaKlasa element2(4, 5); // konstruktor z 2 parametrami +\s; MojaKlasa element3; // konstruktor nie jest wywoływany, +\s; // więc item3 == null +\s;} +\n; +Można też zdefinować destruktor. Musi to być funkcja \c;void\n; bez parametrów o takiej samej nazwie jak nazwa klasy, poprzedzona znakiem ~. Destruktor jest wywoływany automatycznie gdy nie ma już żadnych odwołań do instancji klasy. +\c; +\s;public class MojaKlasa +\s;{ +\s; static private int licznik = 0; // licznik instancji +\s; void MojaKlasa( ) +\s; { +\s; licznik ++; // jedna instancja więcej +\s; } +\s; void ~MojaKlasa( ) +\s; { +\s; licznik --; // jedna instancja mniej +\s; } +\s;} +\s;void Test() +\s;{ +\s; MojaKlasa element1( ); // licznik = 1 +\s; MojaKlasa element2( ); // licznik = 2 +\s; element1 = null; // licznik = 1 +\s;} // licznik = 0 +\n; +W przypadku przekazywania instancji klasy jako parametru \l;funkcji\u cbot\function;, otrzymuje ona tylko \l;wskaźnik\u cbot\pointer; do instancji. Oznacza to, że jeśli zostanie zmodyfikowana instancja wewnątrz funkcji, w rzeczywistości zostanie zmodyfikowana instancja przekazana funkcji. + +\t;Zobacz również +\c;\l;public\u cbot\public;\n;, \c;\l;private\u cbot\private;\n;, \c;\l;static\u cbot\static;\n;, \c;\l;synchronized\u cbot\synchro;\n;, \c;\l;new\u cbot\new;\n;, \c;\l;wskaźnik\u cbot\pointer;\n;, \c;\l;this\u cbot\this;\n; +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/class.txt.bak b/help/P/cbot/class.txt.bak new file mode 100644 index 00000000..3ed19f9d --- /dev/null +++ b/help/P/cbot/class.txt.bak @@ -0,0 +1,72 @@ +\b;Instrukcja \c;class\n; +Pozwala na zadeklarowanie definicji klasy, przy uyciu nastpujcej skadni: +\c; +\s;public class NazwaKlasy +\s;{ +\s; deklaracje; +\s;} +\n; +Klasy mog by tylko typu \l;public\u cbot\public; (publiczne), a wic mog by uywane podczas misji przez wszystkie roboty. Elementy klasy rwnie s publiczne, dostpne spoza klasy. Do klasy mog nalee pola lub funkcje (zwane rwnie metodami), na przykad nastpujca klasa \c;MojaKlasa\n; zawiera 4 pola (a, b, x oraz s) i jedn metod (MojaFunkcja). +\c; +\s;public class MojaKlasa +\s;{ +\s; int a, b; +\s; float x = 3.33; +\s; string s = "Cze"; +\s; float MojaFunkcja( float value ) +\s; { +\s; return (value*x)-1; +\s; } +\s;} +\n; +Jak pokazano na tym przykadzie, elementy klasy mog by inicjalizowane (\c;x=3.33\n;). Mona te zdefiniowa konstruktor, ktry jest specjaln metod o nazwie takiej samej jak nazwa klasy. Metoda ta jest wywoywana automatycznie podczas tworzenia instancji klasy. Moliwe jest rwnie zadeklarowanie wicej ni jednej metody o tej samej nazwie ale o innych parametrach. +\c; +\s;public class MojaKlasa +\s;{ +\s; int a, b; +\s; void MojaKlasa( ) +\s; { +\s; a = 2; b = 3; +\s; } +\s; void MojaKlasa( int a, int b ) +\s; { +\s; this.a = a; this.b = b; +\s; } +\s;} +\n; +W tym przykadzie zadeklarowano dwa konstruktory dla klasy \c;MojaKlasa\n;, jeden bez parametrw, drugi z dwoma parametrami. Jako e nazwy parametrw drugiego konstruktora s takie same jak nazwy dwch pl klasy \c;a\n; et \c;b\n; konieczne jest uycie \c;\l;this\u cbot\this;.a\n; i \c;\l;this\u cbot\this;.b\n; w celu rozrnienia parametrw. Inne, prostsze rozwizanie, to nadanie rnych nazw parametrom. +\c; +\s;void Test( ) +\s;{ +\s; MojaKlasa element1(); // konstruktor bez parametrw +\s; MojaKlasa element2(4, 5); // konstruktor z 2 parametrami +\s; MojaKlasa element3; // konstruktor nie jest wywoywany, +\s; // wic item3 == null +\s;} +\n; +Mona te zdefinowa destruktor. Musi to by funkcja \c;void\n; bez parametrw o takiej samej nazwie jak nazwa klasy, poprzedzona znakiem ~. Destruktor jest wywoywany automatycznie gdy nie ma ju adnych odwoa do instancji klasy. +\c; +\s;public class MojaKlasa +\s;{ +\s; static private int licznik = 0; // licznik instancji +\s; void MojaKlasa( ) +\s; { +\s; licznik ++; // jedna instancja wicej +\s; } +\s; void ~MojaKlasa( ) +\s; { +\s; licznik --; // jedna instancja mniej +\s; } +\s;} +\s;void Test() +\s;{ +\s; MojaKlasa element1( ); // licznik = 1 +\s; MojaKlasa element2( ); // licznik = 2 +\s; element1 = null; // licznik = 1 +\s;} // licznik = 0 +\n; +W przypadku przekazywania instancji klasy jako parametru \l;funkcji\u cbot\function;, otrzymuje ona tylko \l;wskanik\u cbot\pointer; do instancji. Oznacza to, e jeli zostanie zmodyfikowana instancja wewntrz funkcji, w rzeczywistoci zostanie zmodyfikowana instancja przekazana funkcji. + +\t;Zobacz rwnie +\c;\l;public\u cbot\public;\n;, \c;\l;private\u cbot\private;\n;, \c;\l;static\u cbot\static;\n;, \c;\l;synchronized\u cbot\synchro;\n;, \c;\l;new\u cbot\new;\n;, \c;\l;wskanik\u cbot\pointer;\n;, \c;\l;this\u cbot\this;\n; +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/close.txt b/help/P/cbot/close.txt new file mode 100644 index 00000000..484bd351 --- /dev/null +++ b/help/P/cbot/close.txt @@ -0,0 +1,8 @@ +\b;Instrukcja \c;close\n; +Zamyka plik otwarty wcześniej przy użyciu instrukcji \c;\l;open\u cbot\open;\n;. Jest to metoda klasy \c;\l;file\u cbot\file;\n;, wobec czego nie można napisać \c;close()\n;, lecz jedynie \c;handle.close()\n;¦: +\c; +\s; handle.close(); +\n; +\t;Zobacz również +\c;\l;file\u cbot\file;\n;, \c;\l;open\u cbot\open;\n;, \c;\l;readln\u cbot\readln;\n;, \c;\l;writeln\u cbot\writeln;\n; i \c;\l;eof\u cbot\eof;\n;. +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/close.txt.bak b/help/P/cbot/close.txt.bak new file mode 100644 index 00000000..049ca732 --- /dev/null +++ b/help/P/cbot/close.txt.bak @@ -0,0 +1,8 @@ +\b;Instrukcja \c;close\n; +Zamyka plik otwarty wczeniej przy uyciu instrukcji \c;\l;open\u cbot\open;\n;. Jest to metoda klasy \c;\l;file\u cbot\file;\n;, wobec czego nie mona napisa \c;close()\n;, lecz jedynie \c;handle.close()\n;: +\c; +\s; handle.close(); +\n; +\t;Zobacz rwnie +\c;\l;file\u cbot\file;\n;, \c;\l;open\u cbot\open;\n;, \c;\l;readln\u cbot\readln;\n;, \c;\l;writeln\u cbot\writeln;\n; i \c;\l;eof\u cbot\eof;\n;. +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/deletef.txt b/help/P/cbot/deletef.txt new file mode 100644 index 00000000..c5d64714 --- /dev/null +++ b/help/P/cbot/deletef.txt @@ -0,0 +1,10 @@ +\b;Instrukcja \c;deletefile\n; +Instrukcja deletefile usuwa istniejący plik z folderu files/. + +Pliki mogą być usuwane tylko w folderze files/ znajdującym się w folderze, w którym została zainstalowana gra Colobot. Nie jest możliwe usuwanie plików znajdujących się w innych folderach. + +Składnia¦: +\s;\c;deletefile ( nazwa_pliku );\n; + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/deletef.txt.bak b/help/P/cbot/deletef.txt.bak new file mode 100644 index 00000000..d89f8e4c --- /dev/null +++ b/help/P/cbot/deletef.txt.bak @@ -0,0 +1,10 @@ +\b;Instrukcja \c;deletefile\n; +Instrukcja deletefile usuwa istniejcy plik z folderu files/. + +Pliki mog by usuwane tylko w folderze files/ znajdujcym si w folderze, w ktrym zostaa zainstalowana gra Colobot. Nie jest moliwe usuwanie plikw znajdujcych si w innych folderach. + +Skadnia: +\s;\c;deletefile ( nazwa_pliku );\n; + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/delinfo.txt b/help/P/cbot/delinfo.txt new file mode 100644 index 00000000..e236e9d6 --- /dev/null +++ b/help/P/cbot/delinfo.txt @@ -0,0 +1,15 @@ +\b;Instrukcja \c;deleteinfo\n; +Składnia¦: +\s;\c;deleteinfo ( nazwa, moc );\n; + +Usuwa istniejącą informację z najbliższej \l;stacji przekaźnikowej\u object\exchange;. + +\t;nazwa: \c;string\n; +Nazwa informacji do usunięcia. Nazwa jest typu string i musi być napisana w cudzysłowach "¦". + +\t;moc: \c;float\n; +Moc transmitera, odpowiadająca maksymalnej odległości pomiędzy nadawcą i stacją przekaźnikową. Jeśli odległość jest większa, informacja nie zostanie usunięta. Domyślana wartość to 10 metrów. + +\t;Zobacz również +\c;\l;receive\u cbot\receive;\n;, \c;\l;send\u cbot\send;\n; i \c;\l;testinfo\u cbot\testinfo;\n;. +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/delinfo.txt.bak b/help/P/cbot/delinfo.txt.bak new file mode 100644 index 00000000..afcb3048 --- /dev/null +++ b/help/P/cbot/delinfo.txt.bak @@ -0,0 +1,15 @@ +\b;Instrukcja \c;deleteinfo\n; +Skadnia: +\s;\c;deleteinfo ( nazwa, moc );\n; + +Usuwa istniejc informacj z najbliszej \l;stacji przekanikowej\u object\exchange;. + +\t;nazwa: \c;string\n; +Nazwa informacji do usunicia. Nazwa jest typu string i musi by napisana w cudzysowach "". + +\t;moc: \c;float\n; +Moc transmitera, odpowiadajca maksymalnej odlegoci pomidzy nadawc i stacj przekanikow. Jeli odlego jest wiksza, informacja nie zostanie usunita. Domylana warto to 10 metrw. + +\t;Zobacz rwnie +\c;\l;receive\u cbot\receive;\n;, \c;\l;send\u cbot\send;\n; i \c;\l;testinfo\u cbot\testinfo;\n;. +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/dist2d.txt b/help/P/cbot/dist2d.txt new file mode 100644 index 00000000..d969dca7 --- /dev/null +++ b/help/P/cbot/dist2d.txt @@ -0,0 +1,14 @@ +\b;Instrukcja \c;distance2d\n; +Składnia: +\s;\c;distance2d ( pozycja1, pozycja2 );\n; + +Oblicza odległość pomiędzy dwoma punktami (pomijając współrzędną z). + +\t;pozycja1, pozycja2: \c;\l;point\u cbot\point;\n; +Współrzędne dwóch punktów. + +\t;Typ wyniku: \c;\l;float\u cbot\float;\n; +Odległość między dwoma punktami. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/dist2d.txt.bak b/help/P/cbot/dist2d.txt.bak new file mode 100644 index 00000000..70564024 --- /dev/null +++ b/help/P/cbot/dist2d.txt.bak @@ -0,0 +1,14 @@ +\b;Instrukcja \c;distance2d\n; +Skadnia: +\s;\c;distance2d ( pozycja1, pozycja2 );\n; + +Oblicza odlego pomidzy dwoma punktami (pomijajc wsprzdn z). + +\t;pozycja1, pozycja2: \c;\l;point\u cbot\point;\n; +Wsprzdne dwch punktw. + +\t;Typ wyniku: \c;\l;float\u cbot\float;\n; +Odlego midzy dwoma punktami. + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/eof.txt b/help/P/cbot/eof.txt new file mode 100644 index 00000000..b1a97016 --- /dev/null +++ b/help/P/cbot/eof.txt @@ -0,0 +1,15 @@ +\b;Instrukcja \c;eof\n; +Sprawdza warunek końca otwartego pliku. Jest to metoda klasy \c;\l;file\u cbot\file;\n;; wobec czego zamiast \c;eof()\n; należy napisać \c;handle.eof()\n;¦: +\c; +\s; if ( handle.eof() ) +\n; +Przykład¦: +\c; +\s; while ( not handle.eof() ) +\s; { +\s; s = handle.readln(); +\s; } +\n; +\t;Zobacz również +\c;\l;file\u cbot\file;\n;, \c;\l;open\u cbot\open;\n;, \c;\l;close\u cbot\close;\n;, \c;\l;readln\u cbot\readln;\n; i \c;\l;writeln\u cbot\writeln;\n;. +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/eof.txt.bak b/help/P/cbot/eof.txt.bak new file mode 100644 index 00000000..1f86a08f --- /dev/null +++ b/help/P/cbot/eof.txt.bak @@ -0,0 +1,15 @@ +\b;Instrukcja \c;eof\n; +Sprawdza warunek koca otwartego pliku. Jest to metoda klasy \c;\l;file\u cbot\file;\n;; wobec czego zamiast \c;eof()\n; naley napisa \c;handle.eof()\n;: +\c; +\s; if ( handle.eof() ) +\n; +Przykad: +\c; +\s; while ( not handle.eof() ) +\s; { +\s; s = handle.readln(); +\s; } +\n; +\t;Zobacz rwnie +\c;\l;file\u cbot\file;\n;, \c;\l;open\u cbot\open;\n;, \c;\l;close\u cbot\close;\n;, \c;\l;readln\u cbot\readln;\n; i \c;\l;writeln\u cbot\writeln;\n;. +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/errmode.txt b/help/P/cbot/errmode.txt new file mode 100644 index 00000000..a8654d91 --- /dev/null +++ b/help/P/cbot/errmode.txt @@ -0,0 +1,33 @@ +\b;Instrukcja \c;errmode\n; +Instrukcja \c;errmode();\n; pozwala wybrać, czy program powinien zatrzymywać się w przypadku wystąpienia błędu w wykonywaniu jednej z następujących instrukcji: \c;\l;goto\u cbot\goto;\n;, \c;\l;move\u cbot\move;\n;, \c;\l;grab\u cbot\grab;\n;, \c;\l;drop\u cbot\drop;\n;, itd. + +\b;Dla specjalistów +Składnia¦: +\s;\c;errmode ( tryb );\n; + +Zwykle program zatrzymuje się po wystąpieniu błędu. Po użyciu instrukcji \c;errmode(0);\n; na początku programu, wymienione powyżej instrukcje dają w wyniku wartość różną od zera jeśli instrukcja nie mogła być wykonana. + +\t;tryb: \c;\l;float\u cbot\float;\n; (domyślnie \c;1\n;) +Sposób traktowania błędu. +\c;0\n; -> kontynuuje działanie programu i daje w wyniku wartość różną od zera +\c;1\n; -> zatrzymuje program (działanie domyślne) + +Przykład 1¦: +\s;\c;errmode(0); +\s;while ( goto(pos) != 0 ) +\s;{ +\s; wait(2); +\s;} +\n; +Przykład 2¦: +\s;\c;errmode(0); +\s;int err; +\s;err = goto(pozycja); +\s;if ( err != 0 ) +\s;{ +\s; \n;instrukcji goto nie udało się wykonać...\c; +\s; \n;podejmij odpowienie działania...\c; +\s;} +\n; +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/errmode.txt.bak b/help/P/cbot/errmode.txt.bak new file mode 100644 index 00000000..fbc78048 --- /dev/null +++ b/help/P/cbot/errmode.txt.bak @@ -0,0 +1,33 @@ +\b;Instrukcja \c;errmode\n; +Instrukcja \c;errmode();\n; pozwala wybra, czy program powinien zatrzymywa si w przypadku wystpienia bdu w wykonywaniu jednej z nastpujcych instrukcji: \c;\l;goto\u cbot\goto;\n;, \c;\l;move\u cbot\move;\n;, \c;\l;grab\u cbot\grab;\n;, \c;\l;drop\u cbot\drop;\n;, itd. + +\b;Dla specjalistw +Skadnia: +\s;\c;errmode ( tryb );\n; + +Zwykle program zatrzymuje si po wystpieniu bdu. Po uyciu instrukcji \c;errmode(0);\n; na pocztku programu, wymienione powyej instrukcje daj w wyniku warto rn od zera jeli instrukcja nie moga by wykonana. + +\t;tryb: \c;\l;float\u cbot\float;\n; (domylnie \c;1\n;) +Sposb traktowania bdu. +\c;0\n; -> kontynuuje dziaanie programu i daje w wyniku warto rn od zera +\c;1\n; -> zatrzymuje program (dziaanie domylne) + +Przykad 1: +\s;\c;errmode(0); +\s;while ( goto(pos) != 0 ) +\s;{ +\s; wait(2); +\s;} +\n; +Przykad 2: +\s;\c;errmode(0); +\s;int err; +\s;err = goto(pozycja); +\s;if ( err != 0 ) +\s;{ +\s; \n;instrukcji goto nie udao si wykona...\c; +\s; \n;podejmij odpowienie dziaania...\c; +\s;} +\n; +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/extern.txt b/help/P/cbot/extern.txt new file mode 100644 index 00000000..7c86b557 --- /dev/null +++ b/help/P/cbot/extern.txt @@ -0,0 +1,30 @@ +\b;Instrukcja \c;extern\n; +Instrukcja \c;extern\n; wyróżnia \l;funkcję\u cbot\function;, która jest głównym programem robota. Nazwa funkcji zadeklarowanej jako \c;extern\n; pojawi się na liście programów w lewej dolnej części ekranu. +\c; +\s;extern void object::MowDown( ) +\s;{ +\s; while ( true ) +\s; { +\s; fire(1); +\s; turn(10); +\s; } +\s;} +\n; +Jeśli program zawiera inne funkcje, tylko główna funkcja powinna być poprzedzona słowem \c;extern\n;. +\c; +\s;extern void object::Square( ) +\s;{ +\s; for ( int i=0 ; i<4 ; i++ ) +\s; { +\s; Line(10); +\s; } +\s;} +\s; +\s;void object::Line(float dist) +\s;{ +\s; move(dist); +\s; turn(90); +\s;} +\n; +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/extern.txt.bak b/help/P/cbot/extern.txt.bak new file mode 100644 index 00000000..18eed83f --- /dev/null +++ b/help/P/cbot/extern.txt.bak @@ -0,0 +1,30 @@ +\b;Instrukcja \c;extern\n; +Instrukcja \c;extern\n; wyrnia \l;funkcj\u cbot\function;, ktra jest gwnym programem robota. Nazwa funkcji zadeklarowanej jako \c;extern\n; pojawi si na licie programw w lewej dolnej czci ekranu. +\c; +\s;extern void object::MowDown( ) +\s;{ +\s; while ( true ) +\s; { +\s; fire(1); +\s; turn(10); +\s; } +\s;} +\n; +Jeli program zawiera inne funkcje, tylko gwna funkcja powinna by poprzedzona sowem \c;extern\n;. +\c; +\s;extern void object::Square( ) +\s;{ +\s; for ( int i=0 ; i<4 ; i++ ) +\s; { +\s; Line(10); +\s; } +\s;} +\s; +\s;void object::Line(float dist) +\s;{ +\s; move(dist); +\s; turn(90); +\s;} +\n; +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/file.txt b/help/P/cbot/file.txt new file mode 100644 index 00000000..031fef47 --- /dev/null +++ b/help/P/cbot/file.txt @@ -0,0 +1,18 @@ +\b;Typ \c;file\n; +Jest to typ wykorzystywany przy dostępie do plików znajdujących się w folderze files/. +\c; +\s; file handle(); +\n; +Powyższej składni należ używać do deklarowania zmiennej plikowej. Konieczne jest użycie () do utworzenia instancji klasy \c;file\n;. Bez (), handle będzie wskazywać na \c;\l;null\u cbot\null;\n;. + +Pliki mogą być tworzone i otwierane tylko w folderze files/, który znajduje sie w folderze instalacji gry Colobot. Nie jest możliwe tworzenie ani otwieranie plików poza folderem files/. + +\b;Dla specjalistów +\c;file\n; w rzeczywistości nie jest typem prostym ale klasą. \c;open\n;, \c;close\n;, \c;writeln\n; itd. są metodami klasy \c;file\n;. Dlatego zawsze należy pisać \c;handle.method()\n;¦: +\c; +\s; handle.open("test.txt", "w"); +\s; handle.close(); +\n; +\t;Zobacz również +\c;\l;open\u cbot\open;\n;, \c;\l;close\u cbot\close;\n;, \c;\l;readln\u cbot\readln;\n;, \c;\l;writeln\u cbot\writeln;\n; i \c;\l;eof\u cbot\eof;\n;. +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/file.txt.bak b/help/P/cbot/file.txt.bak new file mode 100644 index 00000000..b21dd9e1 --- /dev/null +++ b/help/P/cbot/file.txt.bak @@ -0,0 +1,18 @@ +\b;Typ \c;file\n; +Jest to typ wykorzystywany przy dostpie do plikw znajdujcych si w folderze files/. +\c; +\s; file handle(); +\n; +Powyszej skadni nale uywa do deklarowania zmiennej plikowej. Konieczne jest uycie () do utworzenia instancji klasy \c;file\n;. Bez (), handle bdzie wskazywa na \c;\l;null\u cbot\null;\n;. + +Pliki mog by tworzone i otwierane tylko w folderze files/, ktry znajduje sie w folderze instalacji gry Colobot. Nie jest moliwe tworzenie ani otwieranie plikw poza folderem files/. + +\b;Dla specjalistw +\c;file\n; w rzeczywistoci nie jest typem prostym ale klas. \c;open\n;, \c;close\n;, \c;writeln\n; itd. s metodami klasy \c;file\n;. Dlatego zawsze naley pisa \c;handle.method()\n;: +\c; +\s; handle.open("test.txt", "w"); +\s; handle.close(); +\n; +\t;Zobacz rwnie +\c;\l;open\u cbot\open;\n;, \c;\l;close\u cbot\close;\n;, \c;\l;readln\u cbot\readln;\n;, \c;\l;writeln\u cbot\writeln;\n; i \c;\l;eof\u cbot\eof;\n;. +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/flatgrnd.txt b/help/P/cbot/flatgrnd.txt new file mode 100644 index 00000000..3154d234 --- /dev/null +++ b/help/P/cbot/flatgrnd.txt @@ -0,0 +1,17 @@ +\b;Instrukcja \c;flatground\n; +Składnia¦: +\s;\c;flatground ( center, rmax );\n; + +Oblicza maksymalny promień płaskiego obszaru, na którym może być zbudowany budynek. + +\t;center: \c;\l;point\u cbot\point;\n; +Środek kolistej strefy. + +\t;rmax: \c;\l;float\u cbot\float;\n; +Maksymalny promień. + +\t;Typ wyniku: \c;\l;float\u cbot\float;\n; +Promień płaskiego obszaru (zawsze pomiędzy 0 i rmax). + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/flatgrnd.txt.bak b/help/P/cbot/flatgrnd.txt.bak new file mode 100644 index 00000000..2b39775d --- /dev/null +++ b/help/P/cbot/flatgrnd.txt.bak @@ -0,0 +1,17 @@ +\b;Instrukcja \c;flatground\n; +Skadnia: +\s;\c;flatground ( center, rmax );\n; + +Oblicza maksymalny promie paskiego obszaru, na ktrym moe by zbudowany budynek. + +\t;center: \c;\l;point\u cbot\point;\n; +rodek kolistej strefy. + +\t;rmax: \c;\l;float\u cbot\float;\n; +Maksymalny promie. + +\t;Typ wyniku: \c;\l;float\u cbot\float;\n; +Promie paskiego obszaru (zawsze pomidzy 0 i rmax). + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/function.txt b/help/P/cbot/function.txt new file mode 100644 index 00000000..912f505e --- /dev/null +++ b/help/P/cbot/function.txt @@ -0,0 +1,85 @@ +\b;Funkcje +Używając funkcji można podzielić program na kilka części, z których każda będzie wykonywała określone zadanie. +Wyobraźmy sobie następujący program¦: +\c; +\s;extern void object::Zdalnie( ) +\s;{ +\s; send("order", 1, 100); +\s; wait(5); +\s; send("order", 3, 100); +\s; wait(5); +\s; send("order", 2, 100); +\s; wait(5); +\s; send("order", 4, 100); +\s; wait(5); +\s;} +\n; +Instrukcje \c;send\n; i \c;wait\n; wykonywane są wielokrotnie. Byłoby dobrze utworzyć funkcję wykonującą te dwie instrukcje: +\c; +\s;void object::WyślijDoStacji( float op ) +\s;{ +\s; send("order", op, 100); +\s; wait(5); +\s;} +\s;extern void object::Zdalnie( ) +\s;{ +\s; WyślijDoStacji(1); +\s; WyślijDoStacji(3); +\s; WyślijDoStacji(2); +\s; WyślijDoStacji(4); +\s;} +\n; +Funkcja może mieć parametry¦: +\c; +\s;void Przykład( int a, float x, string s ) +\n; +Funkcja \c;Przykład\n; dostaje jako parametry liczbę całkowitą \c;a\n;, liczbę zmiennoprzecinkową \c;x\n; oraz łańcuch \c;s\n;. Parametry są "przekazywane przez wartość", czyli są kopią wartości określonych jako zmienne podczas wywołania. Przy przekazaniu zmiennej \c;int\n; funkcji, jej parametr jest kopią wartości przekazanej jako argument, wobec czego funkcja może zmieniać wartość parametru bez zmiany wartości w miejscu, z którego była wywołana funkcja. + +Przy przekazaniu instancji \l;klasy\u cbot\class; lub \l;tablicy\u cbot\array; jako parametru, funkcja otrzymuje jedynie \l;wskaźnik\u cbot\pointer; do instancji lub tablicy. Oznacza to, że w przypadku modyfikacji instancji lub tablicy wewnątrz funkcji, w rzeczywistości zostanie zmodyfikowana instancja lub tablica określona podczas wywołania. + +Funkcja może również zwrócić wynik przy użyciu instrukcji \c;\l;return\u cbot\return;\n;. Jednakże powinna być wówczas zadeklarowana nie jako void, ale powinna mieć określony typ: +\c; +\s;float Średnia( float a, float b ) +\s;{ +\s; return (a+b)/2; +\s;} +\s; +\s;extern void object::Test( ) +\s;{ +\s; float wartość; +\s; wartość = Średnia(2, 6); +\s; message( wartość ); // wyświetli liczbę 4 +\s;} +\n; +I jeszcze kilka przykładów¦: +\c; +\s;float Pi( ) +\s;{ +\s; return 3.1415; +\s;} +\s; +\s;string Znak( float a ) +\s;{ +\s; if ( a > 0 ) return "dodatnia"; +\s; if ( a < 0 ) return "ujemna"; +\s; return "zero"; +\s;} +\n; +Można zadeklarować kilka funkcji o tej samej nazwie lecz o różnych parametrach¦: +\c; +\s;float Pitagoras( float a, float b ) +\s;{ +\s; return sqrt((a*a)+(b*b)); +\s;} +\s; +\s;float Pitagoras( float a, float b, float c ) +\s;{ +\s; return sqrt((a*a)+(b*b)+(c*c)); +\s;} +\n; +CBOT wywoła jedną z nich, w zależności od przekazanych parametrów. + +Można też zadeklarować funkcję \l;publiczną\u cbot\public;, która będzie dostępna dla wszystkich robotów. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/function.txt.bak b/help/P/cbot/function.txt.bak new file mode 100644 index 00000000..77c34f16 --- /dev/null +++ b/help/P/cbot/function.txt.bak @@ -0,0 +1,85 @@ +\b;Funkcje +Uywajc funkcji mona podzieli program na kilka czci, z ktrych kada bdzie wykonywaa okrelone zadanie. +Wyobramy sobie nastpujcy program: +\c; +\s;extern void object::Zdalnie( ) +\s;{ +\s; send("order", 1, 100); +\s; wait(5); +\s; send("order", 3, 100); +\s; wait(5); +\s; send("order", 2, 100); +\s; wait(5); +\s; send("order", 4, 100); +\s; wait(5); +\s;} +\n; +Instrukcje \c;send\n; i \c;wait\n; wykonywane s wielokrotnie. Byoby dobrze utworzy funkcj wykonujc te dwie instrukcje: +\c; +\s;void object::WylijDoStacji( float op ) +\s;{ +\s; send("order", op, 100); +\s; wait(5); +\s;} +\s;extern void object::Zdalnie( ) +\s;{ +\s; WylijDoStacji(1); +\s; WylijDoStacji(3); +\s; WylijDoStacji(2); +\s; WylijDoStacji(4); +\s;} +\n; +Funkcja moe mie parametry: +\c; +\s;void Przykad( int a, float x, string s ) +\n; +Funkcja \c;Przykad\n; dostaje jako parametry liczb cakowit \c;a\n;, liczb zmiennoprzecinkow \c;x\n; oraz acuch \c;s\n;. Parametry s "przekazywane przez warto", czyli s kopi wartoci okrelonych jako zmienne podczas wywoania. Przy przekazaniu zmiennej \c;int\n; funkcji, jej parametr jest kopi wartoci przekazanej jako argument, wobec czego funkcja moe zmienia warto parametru bez zmiany wartoci w miejscu, z ktrego bya wywoana funkcja. + +Przy przekazaniu instancji \l;klasy\u cbot\class; lub \l;tablicy\u cbot\array; jako parametru, funkcja otrzymuje jedynie \l;wskanik\u cbot\pointer; do instancji lub tablicy. Oznacza to, e w przypadku modyfikacji instancji lub tablicy wewntrz funkcji, w rzeczywistoci zostanie zmodyfikowana instancja lub tablica okrelona podczas wywoania. + +Funkcja moe rwnie zwrci wynik przy uyciu instrukcji \c;\l;return\u cbot\return;\n;. Jednake powinna by wwczas zadeklarowana nie jako void, ale powinna mie okrelony typ: +\c; +\s;float rednia( float a, float b ) +\s;{ +\s; return (a+b)/2; +\s;} +\s; +\s;extern void object::Test( ) +\s;{ +\s; float warto; +\s; warto = rednia(2, 6); +\s; message( warto ); // wywietli liczb 4 +\s;} +\n; +I jeszcze kilka przykadw: +\c; +\s;float Pi( ) +\s;{ +\s; return 3.1415; +\s;} +\s; +\s;string Znak( float a ) +\s;{ +\s; if ( a > 0 ) return "dodatnia"; +\s; if ( a < 0 ) return "ujemna"; +\s; return "zero"; +\s;} +\n; +Mona zadeklarowa kilka funkcji o tej samej nazwie lecz o rnych parametrach: +\c; +\s;float Pitagoras( float a, float b ) +\s;{ +\s; return sqrt((a*a)+(b*b)); +\s;} +\s; +\s;float Pitagoras( float a, float b, float c ) +\s;{ +\s; return sqrt((a*a)+(b*b)+(c*c)); +\s;} +\n; +CBOT wywoa jedn z nich, w zalenoci od przekazanych parametrw. + +Mona te zadeklarowa funkcj \l;publiczn\u cbot\public;, ktra bdzie dostpna dla wszystkich robotw. + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/motor.txt b/help/P/cbot/motor.txt new file mode 100644 index 00000000..ed649017 --- /dev/null +++ b/help/P/cbot/motor.txt @@ -0,0 +1,39 @@ +\b;Instrukcja \c;motor\n; +Instrukcja \c;motor( , );\n; ustawia prędkość lewego i prawego silnika robota. + +\b;Podstawowe użycie +Prędkość nadana robotowi pozostaje niezmienna podczas wykonywania następujących instrukcji. Dzięki temu możliwe jest obracanie robota podczas wykonywania instrukcji \c;\l;fire\u cbot\fire;();\n;. Pozwala to na omiecenie całego obszaru jedną serią. Oto program omiatający całą strefę przed robotem: +\c; +\s; \l;turn\u cbot\turn;(45); // obróć o 45 stopnie w lewo +\s; motor(0.5, -0.5); // powoli obracaj w prawo +\s; \l;fire\u cbot\fire;(2); // strzelaj +\s; motor(0,0); // zatrzymaj obracanie +\n; +Z lewym silnikiem obracającym się z połową prędkości do przodu i prawym obracającym się z połową prędkości do tyłu, robot będzie się powoli obracał podczas 2 sekundowej serii strzałów. + +\b;Dla specjalistów +Składnia: +\s;\c;motor ( lewy, prawy );\n; + +Ustala prędkości prawego i lewego silnika. Silniki będą poruszały się z tą prędkością do czasu ustalenia nowej prędkości silników lub wykonania jednej z instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n; lub \c;\l;goto\u cbot\goto;\n;. + +\t;lewy: \c;\l;float\u cbot\float;\n; +Prędkość lewego silnika; wartości w zakresie od -1 do 1. + +\t;prawy: \c;\l;float\u cbot\float;\n; +Prędkość prawego silnika; wartości w zakresie od -1 do 1. + +Przykłady : +\c;motor(1, 1);\n; ruch do przodu z maksymalną prędkością. +\c;motor(-0.5, -0.5);\n; ruch do tyłu z połową prędkości. +\c;motor(1, -1);\n; obrót w prawo z maksymalną prędkością. + +Uwaga: +\c;motor(2, 2);\n; nie będzie poruszało robotem do przodu szybciej niż \c;motor(1, 1)\n; +\c;motor(-2, -2);\n; nie będzie poruszało robotem do tyłu szybciej niż \c;motor(-1, -1)\n; + +\t;Typ wyniku: \c;\l;void\u cbot\void;\n; +Brak. + +\t;Zobacz również +\l;Instrukcje\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/motor.txt.bak b/help/P/cbot/motor.txt.bak new file mode 100644 index 00000000..38e989ee --- /dev/null +++ b/help/P/cbot/motor.txt.bak @@ -0,0 +1,39 @@ +\b;Instrukcja \c;motor\n; +Instrukcja \c;motor( , );\n; ustawia prdko lewego i prawego silnika robota. + +\b;Podstawowe uycie +Prdko nadana robotowi pozostaje niezmienna podczas wykonywania nastpujcych instrukcji. Dziki temu moliwe jest obracanie robota podczas wykonywania instrukcji \c;\l;fire\u cbot\fire;();\n;. Pozwala to na omiecenie caego obszaru jedn seri. Oto program omiatajcy ca stref przed robotem: +\c; +\s; \l;turn\u cbot\turn;(45); // obr o 45 stopnie w lewo +\s; motor(0.5, -0.5); // powoli obracaj w prawo +\s; \l;fire\u cbot\fire;(2); // strzelaj +\s; motor(0,0); // zatrzymaj obracanie +\n; +Z lewym silnikiem obracajcym si z poow prdkoci do przodu i prawym obracajcym si z poow prdkoci do tyu, robot bdzie si powoli obraca podczas 2 sekundowej serii strzaw. + +\b;Dla specjalistw +Skadnia: +\s;\c;motor ( lewy, prawy );\n; + +Ustala prdkoci prawego i lewego silnika. Silniki bd poruszay si z t prdkoci do czasu ustalenia nowej prdkoci silnikw lub wykonania jednej z instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n; lub \c;\l;goto\u cbot\goto;\n;. + +\t;lewy: \c;\l;float\u cbot\float;\n; +Prdko lewego silnika; wartoci w zakresie od -1 do 1. + +\t;prawy: \c;\l;float\u cbot\float;\n; +Prdko prawego silnika; wartoci w zakresie od -1 do 1. + +Przykady : +\c;motor(1, 1);\n; ruch do przodu z maksymaln prdkoci. +\c;motor(-0.5, -0.5);\n; ruch do tyu z poow prdkoci. +\c;motor(1, -1);\n; obrt w prawo z maksymaln prdkoci. + +Uwaga: +\c;motor(2, 2);\n; nie bdzie poruszao robotem do przodu szybciej ni \c;motor(1, 1)\n; +\c;motor(-2, -2);\n; nie bdzie poruszao robotem do tyu szybciej ni \c;motor(-1, -1)\n; + +\t;Typ wyniku: \c;\l;void\u cbot\void;\n; +Brak. + +\t;Zobacz rwnie +\l;Instrukcje\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/new.txt b/help/P/cbot/new.txt new file mode 100644 index 00000000..d0d57d55 --- /dev/null +++ b/help/P/cbot/new.txt @@ -0,0 +1,21 @@ +\b;Instrukcja \c;new\n; (dla specjalistów) +Operator \c;new\n; tworzy nową instancję \l;klasy\u cbot\class;: +\c;\s; MojaKlasa element; // jest teraz wskaźnikiem null +\s; element = new MojaKlasa(); // jest teraz wskaźnikiem +\s; // do nowej instancji klasy +\n; +W przypadku tworzenia nowej instancji podczas deklaracji, można ominąć operator \c;new\n;, dodając () na końcu deklaracji: + +Zamiast: +\c;\s; MojaKlasa element = new MojaKlasa(); +\n;można napisać: +\c;\s; MojaKlasa element(); +\n; +Jeśli klasa ma konstruktor z parametrami, można napisać: +\c;\s; MojaKlasa element = new MojaKlasa(2, 3); +\n;lub: +\c;\s; MojaKlasa element(2, 3); +\n; +\t;Zobacz również +\c;\l;klasa\u cbot\class;\n;, \c;\l;wskaźnik\u cbot\pointer;\n; +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/new.txt.bak b/help/P/cbot/new.txt.bak new file mode 100644 index 00000000..0afdc13d --- /dev/null +++ b/help/P/cbot/new.txt.bak @@ -0,0 +1,21 @@ +\b;Instrukcja \c;new\n; (dla specjalistw) +Operator \c;new\n; tworzy now instancj \l;klasy\u cbot\class;: +\c;\s; MojaKlasa element; // jest teraz wskanikiem null +\s; element = new MojaKlasa(); // jest teraz wskanikiem +\s; // do nowej instancji klasy +\n; +W przypadku tworzenia nowej instancji podczas deklaracji, mona omin operator \c;new\n;, dodajc () na kocu deklaracji: + +Zamiast: +\c;\s; MojaKlasa element = new MojaKlasa(); +\n;mona napisa: +\c;\s; MojaKlasa element(); +\n; +Jeli klasa ma konstruktor z parametrami, mona napisa: +\c;\s; MojaKlasa element = new MojaKlasa(2, 3); +\n;lub: +\c;\s; MojaKlasa element(2, 3); +\n; +\t;Zobacz rwnie +\c;\l;klasa\u cbot\class;\n;, \c;\l;wskanik\u cbot\pointer;\n; +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/open.txt b/help/P/cbot/open.txt new file mode 100644 index 00000000..b936737a --- /dev/null +++ b/help/P/cbot/open.txt @@ -0,0 +1,20 @@ +\b;Instrukcja \c;open\n; +Otwiera plik tekstowy w folderze files/. Jest to metoda klasy \c;\l;file\u cbot\file;\n;, dlatego zawsze należy używać konstrukcji \c;handle.open()\n;¦: +\c; +\s; handle.open("test.txt", "w"); +\n; +Aby otworzyć plik, należy postępować następująco¦: +\c; +\s; file handle(); +\s; handle.open("nazwapliku", "w"); +\s; handle.writeln("abc"); +\s; handle.close(); +\n; +\c;"r"\n; tryb: otwarty do odczytu. +\c;"w"\n; tryb: otwarty do zapisu. + +Pliki mogą być tworzone tylko w folderze files/ znajdującym się w folderze, w którym została zainstalowana gra Colobot. Nie jest możliwe tworzenie ani otwieranie plików znajdujących się w innych folderach. + +\t;Zobacz również +\c;\l;file\u cbot\file;\n;, \c;\l;close\u cbot\close;\n;, \c;\l;readln\u cbot\readln;\n;, \c;\l;writeln\u cbot\writeln;\n; i \c;\l;eof\u cbot\eof;\n;. +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/open.txt.bak b/help/P/cbot/open.txt.bak new file mode 100644 index 00000000..4cfb974b --- /dev/null +++ b/help/P/cbot/open.txt.bak @@ -0,0 +1,20 @@ +\b;Instrukcja \c;open\n; +Otwiera plik tekstowy w folderze files/. Jest to metoda klasy \c;\l;file\u cbot\file;\n;, dlatego zawsze naley uywa konstrukcji \c;handle.open()\n;: +\c; +\s; handle.open("test.txt", "w"); +\n; +Aby otworzy plik, naley postpowa nastpujco: +\c; +\s; file handle(); +\s; handle.open("nazwapliku", "w"); +\s; handle.writeln("abc"); +\s; handle.close(); +\n; +\c;"r"\n; tryb: otwarty do odczytu. +\c;"w"\n; tryb: otwarty do zapisu. + +Pliki mog by tworzone tylko w folderze files/ znajdujcym si w folderze, w ktrym zostaa zainstalowana gra Colobot. Nie jest moliwe tworzenie ani otwieranie plikw znajdujcych si w innych folderach. + +\t;Zobacz rwnie +\c;\l;file\u cbot\file;\n;, \c;\l;close\u cbot\close;\n;, \c;\l;readln\u cbot\readln;\n;, \c;\l;writeln\u cbot\writeln;\n; i \c;\l;eof\u cbot\eof;\n;. +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/openfile.txt b/help/P/cbot/openfile.txt new file mode 100644 index 00000000..90fd10bb --- /dev/null +++ b/help/P/cbot/openfile.txt @@ -0,0 +1,11 @@ +\b;Instrukcja \c;openfile\n; +Instrukcja \c;openfile();\n; otwiera plik tekstowy w folderze files/. Nie jest to metoda klasy \c;\l;file\u cbot\file;\n; ale zwraca ona \l;wskaźnik\u cbot\pointer; do nowej instancji klasy file. Należy określić dwa parametry, nazwę pliku i tryb otwarcia. +\c; +\s;file handle = openfile("nazwapliku", "r"); +\n; +\c;"r"\n; tryb: otwarty do odczytu. +\c;"w"\n; tryb: otwarty do zapisu. + + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/openfile.txt.bak b/help/P/cbot/openfile.txt.bak new file mode 100644 index 00000000..825e8aa4 --- /dev/null +++ b/help/P/cbot/openfile.txt.bak @@ -0,0 +1,11 @@ +\b;Instrukcja \c;openfile\n; +Instrukcja \c;openfile();\n; otwiera plik tekstowy w folderze files/. Nie jest to metoda klasy \c;\l;file\u cbot\file;\n; ale zwraca ona \l;wskanik\u cbot\pointer; do nowej instancji klasy file. Naley okreli dwa parametry, nazw pliku i tryb otwarcia. +\c; +\s;file handle = openfile("nazwapliku", "r"); +\n; +\c;"r"\n; tryb: otwarty do odczytu. +\c;"w"\n; tryb: otwarty do zapisu. + + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/pointer.txt b/help/P/cbot/pointer.txt new file mode 100644 index 00000000..89788d3b --- /dev/null +++ b/help/P/cbot/pointer.txt @@ -0,0 +1,53 @@ +\b;Wskaźniki (dla specjalistów) +CBOT używa odwołań do \l;klas\u cbot\class; i \l;tablic\u cbot\array;. Każda zmienna w rzeczywistości zawiera odwołanie do instancji. Instancja natomiast zawiera pola klasy. Wiele wskaźników może odwoływać się do tej samej instancji. Wskaźnik \c;\l;null\u cbot\null;\n; nie odwołuje się do niczego. Instancję można porównać do teczki, a wskaźnik do trzymającego. Za każdym razem gdy potrzebujemy nowej teczki, tworzymy nową instancję z trzymającym. Ale teczka może być trzymana przez więcej niż jedną osobę. Osoba nie trzymająca żadnej teczki to wskaźnik na \c;\l;null\u cbot\null;\n;. + +Przykład: +\c;\s;{ +\s; MojaKlasa item1();// utwórz nową instancję +\s; // wskazywaną przez item1 +\s; MojaKlasa item2; // utwórz wskaźnik null +\s; item2 = item1; // skopiuj wskaźnik, +\s; // item2 i item1 wskazują +\s; // teraz tę samą instancję +\s; item1.a = 12; // zmodyfikuj instancję +\s; // wskazywaną przez item1 (i item2) +\s; message(item2.a); // wyświetla liczbę 12 +\s;} +\n; +W przypadku przekazania instancji \l;klasy\u cbot\class; jako parametru funkcji, funkcja otrzymuje wskaźnik do tej instancji. Oznacza to, że w przypadku modyfikacji instancji wewnątrz funkcji, zostanie zmodyfikowana instancja podana przy wywołaniu funkcji jako parametr. + +\c;\s;void Test( MojaKlasa item ) +\s;{ +\s; item.a = 12; // zmodyfikuj oryginalną instancję +\s; item = new MojaKlasa(); // nowa instancja lokalna +\s; item.a = 33; // zmodyfikuj instancję lokalną +\s;} +\n; +Wywołanie funkcji \c;Test()\n;¦: +\c;\s;{ +\s; MojaKlasa toto(); +\s; Test(toto); +\s; message(toto.a); // wyświetla 12 +\s;} +\n; +Instancja zawierająca pole \c;a = 33\n; jest wskazywana tylko przez nowoutworzoną instancję \c;item\n; wewnątrz funkcji \c;Test\n;. Na końcu funkcji \c;Test\n; ta instancja wskazywana przez \c;item\n; jest automatycznie usuwana. + +Funkcja może zwrócić instancję¦: +\c;\s;MojaKlasa Test2( ) +\s;{ +\s; MojaKlasa item = new MojaKlasa(); +\s; item.x = 33; +\s; return item; +\s;} +\n; +W taki sposób należy wywoływać funkcję: +\c;\s;{ +\s; MojaKlasa toto; +\s; toto = Test2(); // toto będzie zawierać wskaźnik do +\s; // instancji utworzonej przez Test2() +\s; message(toto.a); // wyświetla 33 +\s;} +\n; +\t;Zobacz również +\c;\l;class\u cbot\class;\n;, \c;\l;new\u cbot\new;\n; +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/pointer.txt.bak b/help/P/cbot/pointer.txt.bak new file mode 100644 index 00000000..b7d6e3e7 --- /dev/null +++ b/help/P/cbot/pointer.txt.bak @@ -0,0 +1,53 @@ +\b;Wskaniki (dla specjalistw) +CBOT uywa odwoa do \l;klas\u cbot\class; i \l;tablic\u cbot\array;. Kada zmienna w rzeczywistoci zawiera odwoanie do instancji. Instancja natomiast zawiera pola klasy. Wiele wskanikw moe odwoywa si do tej samej instancji. Wskanik \c;\l;null\u cbot\null;\n; nie odwouje si do niczego. Instancj mona porwna do teczki, a wskanik do trzymajcego. Za kadym razem gdy potrzebujemy nowej teczki, tworzymy now instancj z trzymajcym. Ale teczka moe by trzymana przez wicej ni jedn osob. Osoba nie trzymajca adnej teczki to wskanik na \c;\l;null\u cbot\null;\n;. + +Przykad: +\c;\s;{ +\s; MojaKlasa item1();// utwrz now instancj +\s; // wskazywan przez item1 +\s; MojaKlasa item2; // utwrz wskanik null +\s; item2 = item1; // skopiuj wskanik, +\s; // item2 i item1 wskazuj +\s; // teraz t sam instancj +\s; item1.a = 12; // zmodyfikuj instancj +\s; // wskazywan przez item1 (i item2) +\s; message(item2.a); // wywietla liczb 12 +\s;} +\n; +W przypadku przekazania instancji \l;klasy\u cbot\class; jako parametru funkcji, funkcja otrzymuje wskanik do tej instancji. Oznacza to, e w przypadku modyfikacji instancji wewntrz funkcji, zostanie zmodyfikowana instancja podana przy wywoaniu funkcji jako parametr. + +\c;\s;void Test( MojaKlasa item ) +\s;{ +\s; item.a = 12; // zmodyfikuj oryginaln instancj +\s; item = new MojaKlasa(); // nowa instancja lokalna +\s; item.a = 33; // zmodyfikuj instancj lokaln +\s;} +\n; +Wywoanie funkcji \c;Test()\n;: +\c;\s;{ +\s; MojaKlasa toto(); +\s; Test(toto); +\s; message(toto.a); // wywietla 12 +\s;} +\n; +Instancja zawierajca pole \c;a = 33\n; jest wskazywana tylko przez nowoutworzon instancj \c;item\n; wewntrz funkcji \c;Test\n;. Na kocu funkcji \c;Test\n; ta instancja wskazywana przez \c;item\n; jest automatycznie usuwana. + +Funkcja moe zwrci instancj: +\c;\s;MojaKlasa Test2( ) +\s;{ +\s; MojaKlasa item = new MojaKlasa(); +\s; item.x = 33; +\s; return item; +\s;} +\n; +W taki sposb naley wywoywa funkcj: +\c;\s;{ +\s; MojaKlasa toto; +\s; toto = Test2(); // toto bdzie zawiera wskanik do +\s; // instancji utworzonej przez Test2() +\s; message(toto.a); // wywietla 33 +\s;} +\n; +\t;Zobacz rwnie +\c;\l;class\u cbot\class;\n;, \c;\l;new\u cbot\new;\n; +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/private.txt b/help/P/cbot/private.txt new file mode 100644 index 00000000..eea8b897 --- /dev/null +++ b/help/P/cbot/private.txt @@ -0,0 +1,19 @@ +\b;Instrukcja \c;private\n; (dla specjalistów) +Elementy \l;klasy\u cbot\class; mogą być \l;publiczne\u cbot\public; (domyślnie) lub prywatne. Aby zadeklarować element jako prywatny, należy umieścić instrukcję \c;private\n; przed deklaracją jego typu. Elementy prywatne nie są widoczne poza definicją klasy. +\c; +\s;public class MojaKlasa +\s;{ +\s; int b; // publiczna domyślnie +\s; public int a; // również publiczna +\s; private point position; // prywatna +\s;} +\s;void Test() +\s;{ +\s; MojaKlasa item; +\s; item.a = item.b = 12; // ok +\s; message( item.position ); // powoduje błąd +\s;} +\n; +\t;Zobacz również +\c;\l;class\u cbot\class;\n;, \c;\l;public\u cbot\public;\n; +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/private.txt.bak b/help/P/cbot/private.txt.bak new file mode 100644 index 00000000..631a980c --- /dev/null +++ b/help/P/cbot/private.txt.bak @@ -0,0 +1,19 @@ +\b;Instrukcja \c;private\n; (dla specjalistw) +Elementy \l;klasy\u cbot\class; mog by \l;publiczne\u cbot\public; (domylnie) lub prywatne. Aby zadeklarowa element jako prywatny, naley umieci instrukcj \c;private\n; przed deklaracj jego typu. Elementy prywatne nie s widoczne poza definicj klasy. +\c; +\s;public class MojaKlasa +\s;{ +\s; int b; // publiczna domylnie +\s; public int a; // rwnie publiczna +\s; private point position; // prywatna +\s;} +\s;void Test() +\s;{ +\s; MojaKlasa item; +\s; item.a = item.b = 12; // ok +\s; message( item.position ); // powoduje bd +\s;} +\n; +\t;Zobacz rwnie +\c;\l;class\u cbot\class;\n;, \c;\l;public\u cbot\public;\n; +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/public.txt b/help/P/cbot/public.txt new file mode 100644 index 00000000..2fd5b182 --- /dev/null +++ b/help/P/cbot/public.txt @@ -0,0 +1,51 @@ +\b;Instrukcja \c;public\n; (dla specjalistów) +Instrukcja ta ma dwa podstawowe zadania¦: + +1) Czyni funkcję dostępną dla innych robotów. +2) Sprawia, że element klasy jest widoczny poza definicją klasy. + +\b;Instrukcja \c;public\n; dla funkcji +Umieszczenie instrukcji \c;public\n; przed definicją \l;funkcji\u cbot\function; sprawi, że funkcja będzie dostępna dla innych robotów podczas tej misji. + +Na przykład pierwszy robot może zawierać¦: +\c; +\s;public void object::Segment(float odl, float kąt) +\s;{ +\s; move(odl); +\s; turn(kąt); +\s;} +\n; +A inny¦: +\c; +\s;extern void object::Kwadrat( ) +\s;{ +\s; for ( int i=0 ; i<4 ; i++ ) +\s; { +\s; Segment(10, 90); +\s; fire(1); +\s; } +\s;} +\n; +Jeśli funkcję zadeklarowano jako \c;public\n;, nie można zadeklarować funkcji o tej samej nazwie i parametrach w innym robocie podczas tej samej misji. + +Jeśli robot zawierający funkcję zadeklarowaną jako \c;public\n; zostanie zniszczony, inne roboty używające tej funkcji zatrzymają się sygnalizując wystąpienie błędu. + +\b;Instrukcja \c;public\n; dla klas +Elementy \l;klasy\u cbot\class; mogą być publiczne (domyślnie) lub \l;prywatne\u cbot\private;. Aby zadeklarować element jako prywatny, należy umieścić instrukcję \c;private\n; przed deklaracją jego typu. Elementy prywatne nie są dostępne poza definicją klasy. +\c; +\s;public class MojaKlasa +\s;{ +\s; int b; // publiczna domyślnie +\s; public int a; // również publiczna +\s; private point position; // prywatna +\s;} +\s;void Test() +\s;{ +\s; MojaKlasa item; +\s; item.a = item.b = 12; // ok +\s; message( item.position ); // powoduje błąd +\s;} +\n; +\t;Zobacz również +\c;\l;class\u cbot\class;\n;, \c;\l;private\u cbot\private;\n;, \c;\l;funkcje\u cbot\function;\n; +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/public.txt.bak b/help/P/cbot/public.txt.bak new file mode 100644 index 00000000..b03541f3 --- /dev/null +++ b/help/P/cbot/public.txt.bak @@ -0,0 +1,51 @@ +\b;Instrukcja \c;public\n; (dla specjalistw) +Instrukcja ta ma dwa podstawowe zadania: + +1) Czyni funkcj dostpn dla innych robotw. +2) Sprawia, e element klasy jest widoczny poza definicj klasy. + +\b;Instrukcja \c;public\n; dla funkcji +Umieszczenie instrukcji \c;public\n; przed definicj \l;funkcji\u cbot\function; sprawi, e funkcja bdzie dostpna dla innych robotw podczas tej misji. + +Na przykad pierwszy robot moe zawiera: +\c; +\s;public void object::Segment(float odl, float kt) +\s;{ +\s; move(odl); +\s; turn(kt); +\s;} +\n; +A inny: +\c; +\s;extern void object::Kwadrat( ) +\s;{ +\s; for ( int i=0 ; i<4 ; i++ ) +\s; { +\s; Segment(10, 90); +\s; fire(1); +\s; } +\s;} +\n; +Jeli funkcj zadeklarowano jako \c;public\n;, nie mona zadeklarowa funkcji o tej samej nazwie i parametrach w innym robocie podczas tej samej misji. + +Jeli robot zawierajcy funkcj zadeklarowan jako \c;public\n; zostanie zniszczony, inne roboty uywajce tej funkcji zatrzymaj si sygnalizujc wystpienie bdu. + +\b;Instrukcja \c;public\n; dla klas +Elementy \l;klasy\u cbot\class; mog by publiczne (domylnie) lub \l;prywatne\u cbot\private;. Aby zadeklarowa element jako prywatny, naley umieci instrukcj \c;private\n; przed deklaracj jego typu. Elementy prywatne nie s dostpne poza definicj klasy. +\c; +\s;public class MojaKlasa +\s;{ +\s; int b; // publiczna domylnie +\s; public int a; // rwnie publiczna +\s; private point position; // prywatna +\s;} +\s;void Test() +\s;{ +\s; MojaKlasa item; +\s; item.a = item.b = 12; // ok +\s; message( item.position ); // powoduje bd +\s;} +\n; +\t;Zobacz rwnie +\c;\l;class\u cbot\class;\n;, \c;\l;private\u cbot\private;\n;, \c;\l;funkcje\u cbot\function;\n; +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/readln.txt b/help/P/cbot/readln.txt new file mode 100644 index 00000000..60cb4c60 --- /dev/null +++ b/help/P/cbot/readln.txt @@ -0,0 +1,20 @@ +\b;Instrukcja \c;readln\n; +Wczytuje jedną linię z otwartego pliku w folderze files/. Jest to metoda klasy \c;\l;file\u cbot\file;\n;, dlatego też zawsze należy używać konstrukcji \c;handle.readln()\n;¦: +\c; +\s; s = handle.readln(); +\n; +Plik musi być otwarty do odczytu (\c;"r"\n;) przy użyciu instrukcji \c;\l;open\u cbot\open;\n;. Metoda \c;readln\n; zwraca cały wiersz ale bez znaków końca linii 0x0D (CR) i 0x0A (LF) + +Składnia¦: +\s;\c;string = handle.readln ( );\n; + +Przykład¦: +\c; +\s; string s; +\s; s = handle.readln(); +\s; if ( s == "abc" ) +\s; ... +\n; +\t;Zobacz również +\c;\l;file\u cbot\file;\n;, \c;\l;open\u cbot\open;\n;, \c;\l;close\u cbot\close;\n;, \c;\l;writeln\u cbot\writeln;\n; i \c;\l;eof\u cbot\eof;\n;. +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/readln.txt.bak b/help/P/cbot/readln.txt.bak new file mode 100644 index 00000000..e384e9e4 --- /dev/null +++ b/help/P/cbot/readln.txt.bak @@ -0,0 +1,20 @@ +\b;Instrukcja \c;readln\n; +Wczytuje jedn lini z otwartego pliku w folderze files/. Jest to metoda klasy \c;\l;file\u cbot\file;\n;, dlatego te zawsze naley uywa konstrukcji \c;handle.readln()\n;: +\c; +\s; s = handle.readln(); +\n; +Plik musi by otwarty do odczytu (\c;"r"\n;) przy uyciu instrukcji \c;\l;open\u cbot\open;\n;. Metoda \c;readln\n; zwraca cay wiersz ale bez znakw koca linii 0x0D (CR) i 0x0A (LF) + +Skadnia: +\s;\c;string = handle.readln ( );\n; + +Przykad: +\c; +\s; string s; +\s; s = handle.readln(); +\s; if ( s == "abc" ) +\s; ... +\n; +\t;Zobacz rwnie +\c;\l;file\u cbot\file;\n;, \c;\l;open\u cbot\open;\n;, \c;\l;close\u cbot\close;\n;, \c;\l;writeln\u cbot\writeln;\n; i \c;\l;eof\u cbot\eof;\n;. +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/send.txt b/help/P/cbot/send.txt new file mode 100644 index 00000000..e53dc19c --- /dev/null +++ b/help/P/cbot/send.txt @@ -0,0 +1,19 @@ +\b;Instrukcja \c;send\n; +Składnia¦: +\s;\c;send ( nazwa, wartość, moc );\n; + +Wysyła informację do najbliższej \l;stacji przekaźnikowej\u object\exchange;. + +\t;nazwa: \c;string\n; +Nazwa informacji wysyłanej do stacji przekaźnikowej. Jest to łańcuch, który powinien być zapisany w cudzysłowach "¦". +Jeśli nie ma informacji o podanej nazwie, tworzony jest nowy wpis, o ile ich liczba nie przekroczy 10. Jeśli istnieje już informacja o podanej nazwie, zastępowana jest ona nową wartością. + +\t;wartość: \c;float\n; +Wartość informacji do wysłania. + +\t;moc: \c;float\n; +Moc transmitera, odpowiadająca maksymalnej odległości gdzie ma być przesłana informacja. Domyślna wartość to 10 metrów. + +\t;Zobacz również +\c;\l;receive\u cbot\receive;\n;, \c;\l;testinfo\u cbot\testinfo;\n; i \c;\l;deleteinfo\u cbot\delinfo;\n;. +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/send.txt.bak b/help/P/cbot/send.txt.bak new file mode 100644 index 00000000..19d7d8e2 --- /dev/null +++ b/help/P/cbot/send.txt.bak @@ -0,0 +1,19 @@ +\b;Instrukcja \c;send\n; +Skadnia: +\s;\c;send ( nazwa, warto, moc );\n; + +Wysya informacj do najbliszej \l;stacji przekanikowej\u object\exchange;. + +\t;nazwa: \c;string\n; +Nazwa informacji wysyanej do stacji przekanikowej. Jest to acuch, ktry powinien by zapisany w cudzysowach "". +Jeli nie ma informacji o podanej nazwie, tworzony jest nowy wpis, o ile ich liczba nie przekroczy 10. Jeli istnieje ju informacja o podanej nazwie, zastpowana jest ona now wartoci. + +\t;warto: \c;float\n; +Warto informacji do wysania. + +\t;moc: \c;float\n; +Moc transmitera, odpowiadajca maksymalnej odlegoci gdzie ma by przesana informacja. Domylna warto to 10 metrw. + +\t;Zobacz rwnie +\c;\l;receive\u cbot\receive;\n;, \c;\l;testinfo\u cbot\testinfo;\n; i \c;\l;deleteinfo\u cbot\delinfo;\n;. +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/sizeof.txt b/help/P/cbot/sizeof.txt new file mode 100644 index 00000000..127ef02b --- /dev/null +++ b/help/P/cbot/sizeof.txt @@ -0,0 +1,22 @@ +\b;Instrukcja \c;sizeof\n; +Funkcja sizeof pozwala poznać ilość elementów zawartych w \l;tablicy\u cbot\array;. +Jest to indeks ostatniego elementu plus jeden (liczone są również "puste" elementy). +\c; +\s;{ +\s; int a[12]; +\s; a[5] = 345; +\s; message( sizeof(a) ); // wyświetli liczbę 6 +\s;} +\n; +W tym przykładzie po operacji \c;a[5]=345\n; tablica ma 6 elementów. Liczone są również następujące niezainicjalizowane elementy: \c;[0]\n;, \c;[1]\n;, \c;[2]\n;, \c;[3]\n; i \c;[4]\n;. + +W przypadku tablicy wielowymiarowej można otrzymać rozmiar podtablicy: +\c; +\s;float xy[][]; // tablica dwuwymiarowa +\s;xy[5][10] = 67; +\s;message( sizeof(xy) ); // wyświetli liczbę 6 +\s;message( sizeof(xy[5]) ); // wyświetli liczbę 11 +\s; +\n; +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/sizeof.txt.bak b/help/P/cbot/sizeof.txt.bak new file mode 100644 index 00000000..026b1792 --- /dev/null +++ b/help/P/cbot/sizeof.txt.bak @@ -0,0 +1,22 @@ +\b;Instrukcja \c;sizeof\n; +Funkcja sizeof pozwala pozna ilo elementw zawartych w \l;tablicy\u cbot\array;. +Jest to indeks ostatniego elementu plus jeden (liczone s rwnie "puste" elementy). +\c; +\s;{ +\s; int a[12]; +\s; a[5] = 345; +\s; message( sizeof(a) ); // wywietli liczb 6 +\s;} +\n; +W tym przykadzie po operacji \c;a[5]=345\n; tablica ma 6 elementw. Liczone s rwnie nastpujce niezainicjalizowane elementy: \c;[0]\n;, \c;[1]\n;, \c;[2]\n;, \c;[3]\n; i \c;[4]\n;. + +W przypadku tablicy wielowymiarowej mona otrzyma rozmiar podtablicy: +\c; +\s;float xy[][]; // tablica dwuwymiarowa +\s;xy[5][10] = 67; +\s;message( sizeof(xy) ); // wywietli liczb 6 +\s;message( sizeof(xy[5]) ); // wywietli liczb 11 +\s; +\n; +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/space.txt b/help/P/cbot/space.txt new file mode 100644 index 00000000..b1c13dfd --- /dev/null +++ b/help/P/cbot/space.txt @@ -0,0 +1,23 @@ +\b;Instrukcja \c;space\n; +Składnia: +\s;\c;space ( środek, rmin, rmaks, odl );\n; + +Określa pozycję najbliższego wolnego miejsca w pobliżu podanej pozycji. + +\t;środek: \c;\l;point\u cbot\point;\n; (domyślnie: pozycja robota) +Preferowana pozycja wolnego miejsca. + +\t;rmin: \c;\l;float\u cbot\float;\n; (domyślna wartość: \c;8\n;) +Minimalna odległość od żądanej pozycji. + +\t;rmaks: \c;\l;float\u cbot\float;\n; (domyślna wartość: \c;50\n;) +Maksymalna odległość od żądanej pozycji. + +\t;odl: \c;\l;float\u cbot\float;\n; (domyślna wartość: \c;4\n;) +Wymagana odległość między dwoma wolnymi miejscami. + +\t;Wynik: \c;\l;point\u cbot\point;\n; +Pozycja wolnego miejsca. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/space.txt.bak b/help/P/cbot/space.txt.bak new file mode 100644 index 00000000..8ede7c38 --- /dev/null +++ b/help/P/cbot/space.txt.bak @@ -0,0 +1,23 @@ +\b;Instrukcja \c;space\n; +Skadnia: +\s;\c;space ( rodek, rmin, rmaks, odl );\n; + +Okrela pozycj najbliszego wolnego miejsca w pobliu podanej pozycji. + +\t;rodek: \c;\l;point\u cbot\point;\n; (domylnie: pozycja robota) +Preferowana pozycja wolnego miejsca. + +\t;rmin: \c;\l;float\u cbot\float;\n; (domylna warto: \c;8\n;) +Minimalna odlego od danej pozycji. + +\t;rmaks: \c;\l;float\u cbot\float;\n; (domylna warto: \c;50\n;) +Maksymalna odlego od danej pozycji. + +\t;odl: \c;\l;float\u cbot\float;\n; (domylna warto: \c;4\n;) +Wymagana odlego midzy dwoma wolnymi miejscami. + +\t;Wynik: \c;\l;point\u cbot\point;\n; +Pozycja wolnego miejsca. + +\t;Zobacz rwnie +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/static.txt b/help/P/cbot/static.txt new file mode 100644 index 00000000..17372b8d --- /dev/null +++ b/help/P/cbot/static.txt @@ -0,0 +1,22 @@ +\b;Instrukcja \c;static\n; (dla specjalistów) +Elementy \l;klasy\u cbot\class; zadeklarowane jako \c;static\n; są współdzielone przez wszystkie instancje klasy. +\c; +\s;public class MojaKlasa +\s;{ +\s; static int nb = 1; +\s; static string [ ] list = null; +\s;} +\s;void Test () +\s;{ +\s; MojaKlasa item1(); +\s; MojaKlasa item2(); +\s; item1.nb = 3; +\s; item1.list[item1.nb] = "Cześć"; +\s; message( item2.list[item2.nb] ); // wyświetla komunikat "Cześć" +\s;} +\n; +Elementy \c;static\n; mogą być zadeklarowane jako \c;\l;private\u cbot\private;\n;, co spowoduje, że będą dostępne tylko dla elementów klasy (włączając konstruktory i destruktory). + +\t;Zobacz również +\c;\l;class\u cbot\class;\n;, \c;\l;synchronized\u cbot\synchro;\n; +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/static.txt.bak b/help/P/cbot/static.txt.bak new file mode 100644 index 00000000..34d193a6 --- /dev/null +++ b/help/P/cbot/static.txt.bak @@ -0,0 +1,22 @@ +\b;Instrukcja \c;static\n; (dla specjalistw) +Elementy \l;klasy\u cbot\class; zadeklarowane jako \c;static\n; s wspdzielone przez wszystkie instancje klasy. +\c; +\s;public class MojaKlasa +\s;{ +\s; static int nb = 1; +\s; static string [ ] list = null; +\s;} +\s;void Test () +\s;{ +\s; MojaKlasa item1(); +\s; MojaKlasa item2(); +\s; item1.nb = 3; +\s; item1.list[item1.nb] = "Cze"; +\s; message( item2.list[item2.nb] ); // wywietla komunikat "Cze" +\s;} +\n; +Elementy \c;static\n; mog by zadeklarowane jako \c;\l;private\u cbot\private;\n;, co spowoduje, e bd dostpne tylko dla elementw klasy (wczajc konstruktory i destruktory). + +\t;Zobacz rwnie +\c;\l;class\u cbot\class;\n;, \c;\l;synchronized\u cbot\synchro;\n; +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/strfind.txt b/help/P/cbot/strfind.txt new file mode 100644 index 00000000..2998a549 --- /dev/null +++ b/help/P/cbot/strfind.txt @@ -0,0 +1,20 @@ +\b;Instrukcja \c;strfind\n; +Znajduje podciąg w łańcuchu i zwraca pozycję pierwszego znalezionego podciągu lub wartość \l;nan\u cbot\nan; jeśli podciągu nie znaleziono. + +Składnia¦: +\s;\c;strfind ( łańcuch, sub );\n; + +\t;łańcuch: \c;\l;string\u cbot\string;\n; +Przeszukiwany łańcuch. + +\t;sub: \c;\l;string\u cbot\string;\n; +Podciąg, który ma zostać znaleziony. + +Przykłady¦: +\s;\c; int pos = strfind("abcdef", "ab"); // pos równe 0 +\s; int pos = strfind("abcdef", "de"); // pos równe 3 +\s; int pos = strfind("abcdef", "xy"); // pos równe \l;nan\u cbot\nan; +\n; +\t;Zobacz również +\c;\l;strlen\u cbot\strlen;\n;, \c;\l;strleft\u cbot\strleft;\n;, \c;\l;strright\u cbot\strright;\n;, \c;\l;strmid\u cbot\strmid;\n;, \c;\l;strval\u cbot\strval;\n;, \c;\l;strupper\u cbot\strupper;\n;, \c;\l;strlower\u cbot\strlower;\n; +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/strfind.txt.bak b/help/P/cbot/strfind.txt.bak new file mode 100644 index 00000000..1372745a --- /dev/null +++ b/help/P/cbot/strfind.txt.bak @@ -0,0 +1,20 @@ +\b;Instrukcja \c;strfind\n; +Znajduje podcig w acuchu i zwraca pozycj pierwszego znalezionego podcigu lub warto \l;nan\u cbot\nan; jeli podcigu nie znaleziono. + +Skadnia: +\s;\c;strfind ( acuch, sub );\n; + +\t;acuch: \c;\l;string\u cbot\string;\n; +Przeszukiwany acuch. + +\t;sub: \c;\l;string\u cbot\string;\n; +Podcig, ktry ma zosta znaleziony. + +Przykady: +\s;\c; int pos = strfind("abcdef", "ab"); // pos rwne 0 +\s; int pos = strfind("abcdef", "de"); // pos rwne 3 +\s; int pos = strfind("abcdef", "xy"); // pos rwne \l;nan\u cbot\nan; +\n; +\t;Zobacz rwnie +\c;\l;strlen\u cbot\strlen;\n;, \c;\l;strleft\u cbot\strleft;\n;, \c;\l;strright\u cbot\strright;\n;, \c;\l;strmid\u cbot\strmid;\n;, \c;\l;strval\u cbot\strval;\n;, \c;\l;strupper\u cbot\strupper;\n;, \c;\l;strlower\u cbot\strlower;\n; +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/strleft.txt b/help/P/cbot/strleft.txt new file mode 100644 index 00000000..67657d7c --- /dev/null +++ b/help/P/cbot/strleft.txt @@ -0,0 +1,16 @@ +\b;Instrukcja \c;strleft\n; +Wyodrębnia początkowe (najbardziej na lewo) znaki z łańcucha. + +Składnia¦: +\s;\c;strleft ( łańcuch, długość );\n; + +\t;długość: \c;\l;int\u cbot\int;\n; +Liczba znaków do wyodrębnienia. + +Przykłady¦: +\s;\c; string s = strleft("abcdef", 2); // s równe "ab" +\s; string s = strleft("abc", 10); // s równe "abc" +\n; +\t;Zobacz również +\c;\l;strlen\u cbot\strlen;\n;, \c;\l;strright\u cbot\strright;\n;, \c;\l;strmid\u cbot\strmid;\n;, \c;\l;strfind\u cbot\strfind;\n;, \c;\l;strval\u cbot\strval;\n;, \c;\l;strupper\u cbot\strupper;\n;, \c;\l;strlower\u cbot\strlower;\n; +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/strleft.txt.bak b/help/P/cbot/strleft.txt.bak new file mode 100644 index 00000000..19d09752 --- /dev/null +++ b/help/P/cbot/strleft.txt.bak @@ -0,0 +1,16 @@ +\b;Instrukcja \c;strleft\n; +Wyodrbnia pocztkowe (najbardziej na lewo) znaki z acucha. + +Skadnia: +\s;\c;strleft ( acuch, dugo );\n; + +\t;dugo: \c;\l;int\u cbot\int;\n; +Liczba znakw do wyodrbnienia. + +Przykady: +\s;\c; string s = strleft("abcdef", 2); // s rwne "ab" +\s; string s = strleft("abc", 10); // s rwne "abc" +\n; +\t;Zobacz rwnie +\c;\l;strlen\u cbot\strlen;\n;, \c;\l;strright\u cbot\strright;\n;, \c;\l;strmid\u cbot\strmid;\n;, \c;\l;strfind\u cbot\strfind;\n;, \c;\l;strval\u cbot\strval;\n;, \c;\l;strupper\u cbot\strupper;\n;, \c;\l;strlower\u cbot\strlower;\n; +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/strlen.txt b/help/P/cbot/strlen.txt new file mode 100644 index 00000000..552a7314 --- /dev/null +++ b/help/P/cbot/strlen.txt @@ -0,0 +1,14 @@ +\b;Instrukcja \c;strlen\n; +Podaje długość łańcucha. + +Składnia¦: +\s;\c;strlen ( łańcuch );\n; + +Przykłady¦: +\s;\c; int len = strlen("abc"); // len równe 3 +\s; int len = strlen(""); // len równe 0 +\s; if ( strlen(s) == 0 ) // czy łańcuch pusty? +\n; +\t;Zobacz również +\c;\l;strleft\u cbot\strleft;\n;, \c;\l;strright\u cbot\strright;\n;, \c;\l;strmid\u cbot\strmid;\n;, \c;\l;strfind\u cbot\strfind;\n;, \c;\l;strval\u cbot\strval;\n;, \c;\l;strupper\u cbot\strupper;\n;, \c;\l;strlower\u cbot\strlower;\n; +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/strlen.txt.bak b/help/P/cbot/strlen.txt.bak new file mode 100644 index 00000000..40f56cf7 --- /dev/null +++ b/help/P/cbot/strlen.txt.bak @@ -0,0 +1,14 @@ +\b;Instrukcja \c;strlen\n; +Podaje dugo acucha. + +Skadnia: +\s;\c;strlen ( acuch );\n; + +Przykady: +\s;\c; int len = strlen("abc"); // len rwne 3 +\s; int len = strlen(""); // len rwne 0 +\s; if ( strlen(s) == 0 ) // czy acuch pusty? +\n; +\t;Zobacz rwnie +\c;\l;strleft\u cbot\strleft;\n;, \c;\l;strright\u cbot\strright;\n;, \c;\l;strmid\u cbot\strmid;\n;, \c;\l;strfind\u cbot\strfind;\n;, \c;\l;strval\u cbot\strval;\n;, \c;\l;strupper\u cbot\strupper;\n;, \c;\l;strlower\u cbot\strlower;\n; +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/strlower.txt b/help/P/cbot/strlower.txt new file mode 100644 index 00000000..195d0658 --- /dev/null +++ b/help/P/cbot/strlower.txt @@ -0,0 +1,12 @@ +\b;Instrukcja \c;strlower\n; +Zamienia wszystkie znaki łańcucha na małe litery. + +Składnia¦: +\s;\c;strlower ( łańcuch );\n; + +Przykłady¦: +\s;\c; string s = strlower("Abc"); // s jest równe "abc" +\n; +\t;Zobacz również +\c;\l;strlen\u cbot\strlen;\n;, \c;\l;strleft\u cbot\strleft;\n;, \c;\l;strright\u cbot\strright;\n;, \c;\l;strmid\u cbot\strmid;\n;, \c;\l;strfind\u cbot\strfind;\n;, \c;\l;strval\u cbot\strval;\n;, \c;\l;strupper\u cbot\strupper;\n; +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/strlower.txt.bak b/help/P/cbot/strlower.txt.bak new file mode 100644 index 00000000..fe36a2c2 --- /dev/null +++ b/help/P/cbot/strlower.txt.bak @@ -0,0 +1,12 @@ +\b;Instrukcja \c;strlower\n; +Zamienia wszystkie znaki acucha na mae litery. + +Skadnia: +\s;\c;strlower ( acuch );\n; + +Przykady: +\s;\c; string s = strlower("Abc"); // s jest rwne "abc" +\n; +\t;Zobacz rwnie +\c;\l;strlen\u cbot\strlen;\n;, \c;\l;strleft\u cbot\strleft;\n;, \c;\l;strright\u cbot\strright;\n;, \c;\l;strmid\u cbot\strmid;\n;, \c;\l;strfind\u cbot\strfind;\n;, \c;\l;strval\u cbot\strval;\n;, \c;\l;strupper\u cbot\strupper;\n; +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/strmid.txt b/help/P/cbot/strmid.txt new file mode 100644 index 00000000..827bab49 --- /dev/null +++ b/help/P/cbot/strmid.txt @@ -0,0 +1,20 @@ +\b;Instrukcja \c;strmid\n; +Wyodrębnia z łańcucha podłańcuch o określonej długości i określonej pozycji początkowej. + +Składnia¦: +\s;\c;strmid ( łańcuch, pozycja, długość );\n; + +\t;pozycja: \c;\l;int\u cbot\int;\n; +Indeks pierwszego znaku, który powinien wystąpić w wyodrębnionym podłańcuchu. + +\t;długość: \c;\l;int\u cbot\int;\n; +Liczba znaków do wyodrębnienia. + +Przykłady¦: +\s;\c; string s = strmid("abcdef", 1, 2); // s równe "bc" +\s; string s = strmid("abcdef", 4, 5); // s równe "ef" +\s; string s = strmid("abcdef", 9, 2); // s równe "" +\n; +\t;Zobacz również +\c;\l;strlen\u cbot\strlen;\n;, \c;\l;strleft\u cbot\strleft;\n;, \c;\l;strright\u cbot\strright;\n;, \c;\l;strfind\u cbot\strfind;\n;, \c;\l;strval\u cbot\strval;\n;, \c;\l;strupper\u cbot\strupper;\n;, \c;\l;strlower\u cbot\strlower;\n; +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/strmid.txt.bak b/help/P/cbot/strmid.txt.bak new file mode 100644 index 00000000..400f5234 --- /dev/null +++ b/help/P/cbot/strmid.txt.bak @@ -0,0 +1,20 @@ +\b;Instrukcja \c;strmid\n; +Wyodrbnia z acucha podacuch o okrelonej dugoci i okrelonej pozycji pocztkowej. + +Skadnia: +\s;\c;strmid ( acuch, pozycja, dugo );\n; + +\t;pozycja: \c;\l;int\u cbot\int;\n; +Indeks pierwszego znaku, ktry powinien wystpi w wyodrbnionym podacuchu. + +\t;dugo: \c;\l;int\u cbot\int;\n; +Liczba znakw do wyodrbnienia. + +Przykady: +\s;\c; string s = strmid("abcdef", 1, 2); // s rwne "bc" +\s; string s = strmid("abcdef", 4, 5); // s rwne "ef" +\s; string s = strmid("abcdef", 9, 2); // s rwne "" +\n; +\t;Zobacz rwnie +\c;\l;strlen\u cbot\strlen;\n;, \c;\l;strleft\u cbot\strleft;\n;, \c;\l;strright\u cbot\strright;\n;, \c;\l;strfind\u cbot\strfind;\n;, \c;\l;strval\u cbot\strval;\n;, \c;\l;strupper\u cbot\strupper;\n;, \c;\l;strlower\u cbot\strlower;\n; +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/strright.txt b/help/P/cbot/strright.txt new file mode 100644 index 00000000..a0604b6d --- /dev/null +++ b/help/P/cbot/strright.txt @@ -0,0 +1,16 @@ +\b;Instrukcja \c;strright\n; +Wyodrębnia końcowe (najbardziej na prawo) znaki z łańcucha. + +Składnia¦: +\s;\c;strright ( łańcuch, długość );\n; + +\t;długość: \c;\l;int\u cbot\int;\n; +Liczba znaków do wyodrębnienia. + +Przykłady¦: +\s;\c; string s = strright("abcdef", 2); // s równe "ef" +\s; string s = strright("abc", 10); // s równe "abc" +\n; +\t;Zobacz również +\c;\l;strlen\u cbot\strlen;\n;, \c;\l;strleft\u cbot\strleft;\n;, \c;\l;strmid\u cbot\strmid;\n;, \c;\l;strfind\u cbot\strfind;\n;, \c;\l;strval\u cbot\strval;\n;, \c;\l;strupper\u cbot\strupper;\n;, \c;\l;strlower\u cbot\strlower;\n; +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/strright.txt.bak b/help/P/cbot/strright.txt.bak new file mode 100644 index 00000000..0ddab104 --- /dev/null +++ b/help/P/cbot/strright.txt.bak @@ -0,0 +1,16 @@ +\b;Instrukcja \c;strright\n; +Wyodrbnia kocowe (najbardziej na prawo) znaki z acucha. + +Skadnia: +\s;\c;strright ( acuch, dugo );\n; + +\t;dugo: \c;\l;int\u cbot\int;\n; +Liczba znakw do wyodrbnienia. + +Przykady: +\s;\c; string s = strright("abcdef", 2); // s rwne "ef" +\s; string s = strright("abc", 10); // s rwne "abc" +\n; +\t;Zobacz rwnie +\c;\l;strlen\u cbot\strlen;\n;, \c;\l;strleft\u cbot\strleft;\n;, \c;\l;strmid\u cbot\strmid;\n;, \c;\l;strfind\u cbot\strfind;\n;, \c;\l;strval\u cbot\strval;\n;, \c;\l;strupper\u cbot\strupper;\n;, \c;\l;strlower\u cbot\strlower;\n; +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/strupper.txt b/help/P/cbot/strupper.txt new file mode 100644 index 00000000..5c60bc39 --- /dev/null +++ b/help/P/cbot/strupper.txt @@ -0,0 +1,12 @@ +\b;Instrukcja \c;strupper\n; +Zamienia wszystkie znaki łańcucha na wielkie litery. + +Składnia¦: +\s;\c;strupper ( łańcuch );\n; + +Przykłady¦: +\s;\c; string s = strupper("Abc"); // s jest równe "ABC" +\n; +\t;Zobacz również +\c;\l;strlen\u cbot\strlen;\n;, \c;\l;strleft\u cbot\strleft;\n;, \c;\l;strright\u cbot\strright;\n;, \c;\l;strmid\u cbot\strmid;\n;, \c;\l;strfind\u cbot\strfind;\n;, \c;\l;strval\u cbot\strval;\n;, \c;\l;strlower\u cbot\strlower;\n; +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/strupper.txt.bak b/help/P/cbot/strupper.txt.bak new file mode 100644 index 00000000..e3e3cb86 --- /dev/null +++ b/help/P/cbot/strupper.txt.bak @@ -0,0 +1,12 @@ +\b;Instrukcja \c;strupper\n; +Zamienia wszystkie znaki acucha na wielkie litery. + +Skadnia: +\s;\c;strupper ( acuch );\n; + +Przykady: +\s;\c; string s = strupper("Abc"); // s jest rwne "ABC" +\n; +\t;Zobacz rwnie +\c;\l;strlen\u cbot\strlen;\n;, \c;\l;strleft\u cbot\strleft;\n;, \c;\l;strright\u cbot\strright;\n;, \c;\l;strmid\u cbot\strmid;\n;, \c;\l;strfind\u cbot\strfind;\n;, \c;\l;strval\u cbot\strval;\n;, \c;\l;strlower\u cbot\strlower;\n; +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/strval.txt b/help/P/cbot/strval.txt new file mode 100644 index 00000000..07dd44ae --- /dev/null +++ b/help/P/cbot/strval.txt @@ -0,0 +1,19 @@ +\b;Instrukcja \c;strval\n; +Zamienia łańcuch na liczbę. Nie należy mylić łańcucha \c;"45"\n;, zawierającego dwa znaki \c;4\n; i \c;5\n; oraz liczby \c;45\n;. + +Przykłady¦: +\s;\c; string s = "45"+"12"; // s zawiera "4512" +\s; float n = 45 + 12; // n zawiera 67 +\n; +Składnia¦: +\s;\c;strval ( łańcuch );\n; +\n; +Przykłady¦: +\s;\c; float n = strval("1.23"); // n równe 1,23 +\s; float n = strval("12abc45"); // n równe 12 +\s; float n = strval("abc"); // n równe 0 +\s; float n = strval("100")+2; // n równe 102 +\n; +\t;Zobacz również +\c;\l;strlen\u cbot\strlen;\n;, \c;\l;strleft\u cbot\strleft;\n;, \c;\l;strright\u cbot\strright;\n;, \c;\l;strmid\u cbot\strmid;\n;, \c;\l;strfind\u cbot\strfind;\n;, \c;\l;strupper\u cbot\strupper;\n;, \c;\l;strlower\u cbot\strlower;\n; +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/strval.txt.bak b/help/P/cbot/strval.txt.bak new file mode 100644 index 00000000..f377fcb8 --- /dev/null +++ b/help/P/cbot/strval.txt.bak @@ -0,0 +1,19 @@ +\b;Instrukcja \c;strval\n; +Zamienia acuch na liczb. Nie naley myli acucha \c;"45"\n;, zawierajcego dwa znaki \c;4\n; i \c;5\n; oraz liczby \c;45\n;. + +Przykady: +\s;\c; string s = "45"+"12"; // s zawiera "4512" +\s; float n = 45 + 12; // n zawiera 67 +\n; +Skadnia: +\s;\c;strval ( acuch );\n; +\n; +Przykady: +\s;\c; float n = strval("1.23"); // n rwne 1,23 +\s; float n = strval("12abc45"); // n rwne 12 +\s; float n = strval("abc"); // n rwne 0 +\s; float n = strval("100")+2; // n rwne 102 +\n; +\t;Zobacz rwnie +\c;\l;strlen\u cbot\strlen;\n;, \c;\l;strleft\u cbot\strleft;\n;, \c;\l;strright\u cbot\strright;\n;, \c;\l;strmid\u cbot\strmid;\n;, \c;\l;strfind\u cbot\strfind;\n;, \c;\l;strupper\u cbot\strupper;\n;, \c;\l;strlower\u cbot\strlower;\n; +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/synchro.txt b/help/P/cbot/synchro.txt new file mode 100644 index 00000000..3f967913 --- /dev/null +++ b/help/P/cbot/synchro.txt @@ -0,0 +1,25 @@ +\b;Instrukcja \c;synchronized\n; (dla specjalistów) +Metoda \l;klasy\u cbot\class; może być zadeklarowana jako \c;synchronized\n;. Dzięki temu można zapewnić, że metoda będzie uruchamiana nie więcej niż przez jednego robota w tym samym czasie. + +Następujący przykład pomoże zilustrować problem: +\c; +\s;class blokowanie +\s;{ +\s; static int nb = 33; +\s; synchronized int inc( ) +\s; { +\s; int val = nb; +\s; wait ( 2 ); // czekaj 2 sekundy +\s; nb = nb + 1; +\s; return val; +\s; } +\s;} +\n; +Co się dzieje, gdy dwa roboty wykonają metodę \c;inc\n; w tym samym czasie¦? +Oba wykonają polecenie \c;val=nb\n; i poczekają 2 sekundy, a więc oba otrzymają \c;val=33\n;. Gdy użyjemy instrukcji \c;synchronized\n; pierwszy robot rozpocznie wykonywanie z \c;val=33\n; poczeka 2 sekundy i wyjdzie z metody. Dopiero po zakończeniu wykonywania metody \c;inc\n; przez pierwszego robota, drugi robot będzie miał możliwość wykonania metody \c;inc\n;, wobec czego otrzyma on zawsze \c;val=34\n;. + +Można mieć więcej niż jedną zsynchronizowaną metodę w \l;klasie\u cbot\class; w celu zapobieżenia równoczesnemu wykonywaniu więcej niż jednej metody. Innymi słowy: tak długo, jak długo robot jest wewnątrz zsynchronizowanej metody, żaden inny robot nie może wykonywać żadnej zsynchronizowanej metody tej samej klasy. + +\t;Zobacz również +\c;\l;klasa\u cbot\class;\n;, \c;\l;static\u cbot\static;\n; +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/synchro.txt.bak b/help/P/cbot/synchro.txt.bak new file mode 100644 index 00000000..fe77d4ac --- /dev/null +++ b/help/P/cbot/synchro.txt.bak @@ -0,0 +1,25 @@ +\b;Instrukcja \c;synchronized\n; (dla specjalistw) +Metoda \l;klasy\u cbot\class; moe by zadeklarowana jako \c;synchronized\n;. Dziki temu mona zapewni, e metoda bdzie uruchamiana nie wicej ni przez jednego robota w tym samym czasie. + +Nastpujcy przykad pomoe zilustrowa problem: +\c; +\s;class blokowanie +\s;{ +\s; static int nb = 33; +\s; synchronized int inc( ) +\s; { +\s; int val = nb; +\s; wait ( 2 ); // czekaj 2 sekundy +\s; nb = nb + 1; +\s; return val; +\s; } +\s;} +\n; +Co si dzieje, gdy dwa roboty wykonaj metod \c;inc\n; w tym samym czasie? +Oba wykonaj polecenie \c;val=nb\n; i poczekaj 2 sekundy, a wic oba otrzymaj \c;val=33\n;. Gdy uyjemy instrukcji \c;synchronized\n; pierwszy robot rozpocznie wykonywanie z \c;val=33\n; poczeka 2 sekundy i wyjdzie z metody. Dopiero po zakoczeniu wykonywania metody \c;inc\n; przez pierwszego robota, drugi robot bdzie mia moliwo wykonania metody \c;inc\n;, wobec czego otrzyma on zawsze \c;val=34\n;. + +Mona mie wicej ni jedn zsynchronizowan metod w \l;klasie\u cbot\class; w celu zapobieenia rwnoczesnemu wykonywaniu wicej ni jednej metody. Innymi sowy: tak dugo, jak dugo robot jest wewntrz zsynchronizowanej metody, aden inny robot nie moe wykonywa adnej zsynchronizowanej metody tej samej klasy. + +\t;Zobacz rwnie +\c;\l;klasa\u cbot\class;\n;, \c;\l;static\u cbot\static;\n; +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/testinfo.txt b/help/P/cbot/testinfo.txt new file mode 100644 index 00000000..aa160ddd --- /dev/null +++ b/help/P/cbot/testinfo.txt @@ -0,0 +1,18 @@ +\b;Instrukcja \c;testinfo\n; +Składnia¦: +\s;\c;testinfo ( nazwa, moc );\n; + +Sprawdza czy istnieje żądana informacja w najbliższej \l;stacji przekaźnikowej\u object\exchange;. + +\t;nazwa: \c;string\n; +Nazwa informacji do sprawdzenia. Jest ona łańcuchem i powinna być zapisana w cudzysłowach "¦". + +\t;moc: \c;float\n; +Moc transmitera, odpowiadająca maksymalnej odległości pomiędzy transmiterem i stacją przekaźnikową. Jeśli odległość jest większa, funkcja zwraca wartość \c;false\n;. Domyślna wartość to 10 metrów. + +\t;Typ wyniku: \c;\l;bool\u cbot\bool;\n; +Daje w wyniku \c;true\n; jesli informacja istnieje, oraz \c;false\n; jeśli informacja nie istnieje lub odbiorca jest za daleko od stacji przekaźnikowej. + +\t;Zobacz również +\c;\l;receive\u cbot\receive;\n;, \c;\l;send\u cbot\send;\n; i \c;\l;deleteinfo\u cbot\delinfo;\n;. +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/testinfo.txt.bak b/help/P/cbot/testinfo.txt.bak new file mode 100644 index 00000000..f4284b56 --- /dev/null +++ b/help/P/cbot/testinfo.txt.bak @@ -0,0 +1,18 @@ +\b;Instrukcja \c;testinfo\n; +Skadnia: +\s;\c;testinfo ( nazwa, moc );\n; + +Sprawdza czy istnieje dana informacja w najbliszej \l;stacji przekanikowej\u object\exchange;. + +\t;nazwa: \c;string\n; +Nazwa informacji do sprawdzenia. Jest ona acuchem i powinna by zapisana w cudzysowach "". + +\t;moc: \c;float\n; +Moc transmitera, odpowiadajca maksymalnej odlegoci pomidzy transmiterem i stacj przekanikow. Jeli odlego jest wiksza, funkcja zwraca warto \c;false\n;. Domylna warto to 10 metrw. + +\t;Typ wyniku: \c;\l;bool\u cbot\bool;\n; +Daje w wyniku \c;true\n; jesli informacja istnieje, oraz \c;false\n; jeli informacja nie istnieje lub odbiorca jest za daleko od stacji przekanikowej. + +\t;Zobacz rwnie +\c;\l;receive\u cbot\receive;\n;, \c;\l;send\u cbot\send;\n; i \c;\l;deleteinfo\u cbot\delinfo;\n;. +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/this.txt b/help/P/cbot/this.txt new file mode 100644 index 00000000..754e92ed --- /dev/null +++ b/help/P/cbot/this.txt @@ -0,0 +1,54 @@ +\b;Instrukcja \c;this\n; +Czasami metoda \l;klasy\u cbot\class; potrzebuje wskaźnika do instancji, w której działa. Na przykład instancja może chcieć przekazać wskaźnik do samej siebie jako parametr dla innej funkcji. Odwołanie wprost poprzez \c;this\n; jest dostępne również dla metod; \c;this\n; jest odwołaniem do bieżącej instancji. +\c; +\s;public class MojaKlasa +\s;{ +\s; int m_int; +\s; string m_str; +\s; void MojaFunkcja() +\s; { +\s; InnaFunkcja(this); +\s; m_int = 2; +\s; } +\s;} +\s; +\s;void InnaFunkcja(MojaKlasa obj) +\s;{ +\s; message(obj.m_str); +\s;} +\s; +\s;extern void object::Test() +\s;{ +\s; MojaKlasa item(); +\s; item.m_str = "Cześć"; +\s; item.MojaFunkcja(); // wyświetla "Cześć" +\s;} +\n; +Można również umieścić \c;this\n; przed nazwą pola w metodzie, ale nie jest to konieczne. W powyższym przykładzie metody \c;MojaFunkcja()\n; następujące dwie linie mają identyczne znaczenie: +\c; +\s; m_int = 2; +\s; this.m_int = 2; // identyczne +\n; +Również w metodzie klasy \c;\l;object\u cbot\object;\n; można użyć \c;this.\n; przed nazwą pola. +\c; +\s;extern void object::Display() +\s;{ +\s; message(orientation); +\s; message(this.orientation); // to samo ale +\s; // bardziej jednoznacznie +\s;} +\n; +Jednakże jeśli nazwa pola jest ukryta poprzez deklarację parametru lub zmiennej, należy użyć \c;this\n;. W następującym przykładzie nazwa parametru \c;value\n; jest taka sama jak nazwa pola \c;value\n; w \l;klasie\u cbot\class; \c;MojaKlasa\n;, wobec tego w celu rozróżnienia pola od parametru, konieczne jest napisanie \c;this.value\n;. +\c; +\s;public class MojaKlasa +\s;{ +\s; int value; +\s; void Put( int value ) +\s; { +\s; this.value = value; +\s; } +\s;} +\n; +\t;Zobacz również +\c;\l;class\u cbot\class;\n; +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/this.txt.bak b/help/P/cbot/this.txt.bak new file mode 100644 index 00000000..3120fefa --- /dev/null +++ b/help/P/cbot/this.txt.bak @@ -0,0 +1,54 @@ +\b;Instrukcja \c;this\n; +Czasami metoda \l;klasy\u cbot\class; potrzebuje wskanika do instancji, w ktrej dziaa. Na przykad instancja moe chcie przekaza wskanik do samej siebie jako parametr dla innej funkcji. Odwoanie wprost poprzez \c;this\n; jest dostpne rwnie dla metod; \c;this\n; jest odwoaniem do biecej instancji. +\c; +\s;public class MojaKlasa +\s;{ +\s; int m_int; +\s; string m_str; +\s; void MojaFunkcja() +\s; { +\s; InnaFunkcja(this); +\s; m_int = 2; +\s; } +\s;} +\s; +\s;void InnaFunkcja(MojaKlasa obj) +\s;{ +\s; message(obj.m_str); +\s;} +\s; +\s;extern void object::Test() +\s;{ +\s; MojaKlasa item(); +\s; item.m_str = "Cze"; +\s; item.MojaFunkcja(); // wywietla "Cze" +\s;} +\n; +Mona rwnie umieci \c;this\n; przed nazw pola w metodzie, ale nie jest to konieczne. W powyszym przykadzie metody \c;MojaFunkcja()\n; nastpujce dwie linie maj identyczne znaczenie: +\c; +\s; m_int = 2; +\s; this.m_int = 2; // identyczne +\n; +Rwnie w metodzie klasy \c;\l;object\u cbot\object;\n; mona uy \c;this.\n; przed nazw pola. +\c; +\s;extern void object::Display() +\s;{ +\s; message(orientation); +\s; message(this.orientation); // to samo ale +\s; // bardziej jednoznacznie +\s;} +\n; +Jednake jeli nazwa pola jest ukryta poprzez deklaracj parametru lub zmiennej, naley uy \c;this\n;. W nastpujcym przykadzie nazwa parametru \c;value\n; jest taka sama jak nazwa pola \c;value\n; w \l;klasie\u cbot\class; \c;MojaKlasa\n;, wobec tego w celu rozrnienia pola od parametru, konieczne jest napisanie \c;this.value\n;. +\c; +\s;public class MojaKlasa +\s;{ +\s; int value; +\s; void Put( int value ) +\s; { +\s; this.value = value; +\s; } +\s;} +\n; +\t;Zobacz rwnie +\c;\l;class\u cbot\class;\n; +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/while.txt b/help/P/cbot/while.txt new file mode 100644 index 00000000..4d9704d1 --- /dev/null +++ b/help/P/cbot/while.txt @@ -0,0 +1,47 @@ +\b;Instrukcja \c;while\n; +Instrukcja \c;while () {}\n; jest używana do wielokrotnego powtarzania zbioru instrukcji. + +\b;Podstawowe użycie +Najczęstsze użycie instrukcji \c;while\n; polega na nieskończonym powtarzaniu zbioru instrukcji. Aby to osiągnąć, należy napisać \c;while (true) {}\n;, a instrukcje, które mają być powtarzane zapisać w nawiasach klamrowych \c;{}\n;. Oto przykładowy program powtarzający w nieskończoność następujące czynności: +o znajdź pająka, +o obróć się w jego stronę, +o strzelaj. +\c; +\s; while (true) +\s; { +\s; item = \l;radar\u cbot\radar;(AlienSpider); +\s; \l;turn\u cbot\turn;(direction(item.position)); +\s; \l;fire\u cbot\fire;(1); +\s; } +\n; +Wystarczy raz uruchomić ten program, a zabije on wszystkie pająki dookoła robota. + +\b;Dla specjalistów +Składnia: +\s;\c;while ( warunek ) +\s;{ +\s; \n;Instrukcje ...\c; +\s;} +\n; +Instrukcja ta pozwala na wielokrotne powtarzanie instrukcji wewnątrz \l;bloku\u cbot\bloc;. + +Nie należy mylić instrukcji \c;while( ) { }\n; z instrukcją \c;\l;do\u cbot\do; { } while( );\n;; ta druga sprawdza warunek dopiero po pierwszym wykonaniu instrukcji w bloku. + +\t;\c;warunek\n; +Instrukcje w bloku są wykonywane tak długo, jak długo prawdziwy jest \l;warunek\u cbot\cond;. + +Oto przykład: +\s;\c;int i = 0; +\s;while ( i < 10 ) +\s;{ +\s; \n;Instrukcje...\c; +\s; i = i+1; +\s;} +\n; +\t;Uwaga +Na końcu instrukcji \c;while ( )\n; nie należy umieszczać \l;średnika\u cbot\term;. + +Instrukcje \c;\l;break\u cbot\break;\n; i \c;\l;continue\u cbot\continue;\n; mogą być przydatne wewnątrz bloku instrukcji \c;while ( )\n;. + +\t;Zobacz również +\l;Instrukcje\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/while.txt.bak b/help/P/cbot/while.txt.bak new file mode 100644 index 00000000..d715a204 --- /dev/null +++ b/help/P/cbot/while.txt.bak @@ -0,0 +1,47 @@ +\b;Instrukcja \c;while\n; +Instrukcja \c;while () {}\n; jest uywana do wielokrotnego powtarzania zbioru instrukcji. + +\b;Podstawowe uycie +Najczstsze uycie instrukcji \c;while\n; polega na nieskoczonym powtarzaniu zbioru instrukcji. Aby to osign, naley napisa \c;while (true) {}\n;, a instrukcje, ktre maj by powtarzane zapisa w nawiasach klamrowych \c;{}\n;. Oto przykadowy program powtarzajcy w nieskoczono nastpujce czynnoci: +o znajd pajka, +o obr si w jego stron, +o strzelaj. +\c; +\s; while (true) +\s; { +\s; item = \l;radar\u cbot\radar;(AlienSpider); +\s; \l;turn\u cbot\turn;(direction(item.position)); +\s; \l;fire\u cbot\fire;(1); +\s; } +\n; +Wystarczy raz uruchomi ten program, a zabije on wszystkie pajki dookoa robota. + +\b;Dla specjalistw +Skadnia: +\s;\c;while ( warunek ) +\s;{ +\s; \n;Instrukcje ...\c; +\s;} +\n; +Instrukcja ta pozwala na wielokrotne powtarzanie instrukcji wewntrz \l;bloku\u cbot\bloc;. + +Nie naley myli instrukcji \c;while( ) { }\n; z instrukcj \c;\l;do\u cbot\do; { } while( );\n;; ta druga sprawdza warunek dopiero po pierwszym wykonaniu instrukcji w bloku. + +\t;\c;warunek\n; +Instrukcje w bloku s wykonywane tak dugo, jak dugo prawdziwy jest \l;warunek\u cbot\cond;. + +Oto przykad: +\s;\c;int i = 0; +\s;while ( i < 10 ) +\s;{ +\s; \n;Instrukcje...\c; +\s; i = i+1; +\s;} +\n; +\t;Uwaga +Na kocu instrukcji \c;while ( )\n; nie naley umieszcza \l;rednika\u cbot\term;. + +Instrukcje \c;\l;break\u cbot\break;\n; i \c;\l;continue\u cbot\continue;\n; mog by przydatne wewntrz bloku instrukcji \c;while ( )\n;. + +\t;Zobacz rwnie +\l;Instrukcje\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/writeln.txt b/help/P/cbot/writeln.txt new file mode 100644 index 00000000..c33c0ed7 --- /dev/null +++ b/help/P/cbot/writeln.txt @@ -0,0 +1,21 @@ +\b;Instrukcja \c;writeln\n; +Zapisuje linię tekstu do otwartego pliku w folderze files/. Jest to metoda klasy \c;\l;file\u cbot\file;\n;, dlatego też zawsze należy używać konstrukcji \c;handle.writeln()\n;¦: +\c; +\s; handle.writeln("abc"); +\n; +Plik musi być otwarty do zapisu (\c;"w"\n;) przy użyciu instrukcji \c;\l;open\u cbot\open;\n;. Zapisywany wiersz zostanie automatycznie zakończony znakami końca linii 0x0D (CR) i 0x0A (LF). + +Składnia¦: +\s;\c;handle.writeln ( string );\n; + +Przykłady¦: +\c; +\s; writeln("Linia tekstu"); + +\s; string s1 = "abc"; +\s; string s2 = "def"; +\s; writeln(s1 + " " + s2); +\n; +\t;Zobacz również +\c;\l;file\u cbot\file;\n;, \c;\l;open\u cbot\open;\n;, \c;\l;close\u cbot\close;\n;, \c;\l;readln\u cbot\readln;\n; i \c;\l;eof\u cbot\eof;\n;. +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/cbot/writeln.txt.bak b/help/P/cbot/writeln.txt.bak new file mode 100644 index 00000000..4cdaa5be --- /dev/null +++ b/help/P/cbot/writeln.txt.bak @@ -0,0 +1,21 @@ +\b;Instrukcja \c;writeln\n; +Zapisuje lini tekstu do otwartego pliku w folderze files/. Jest to metoda klasy \c;\l;file\u cbot\file;\n;, dlatego te zawsze naley uywa konstrukcji \c;handle.writeln()\n;: +\c; +\s; handle.writeln("abc"); +\n; +Plik musi by otwarty do zapisu (\c;"w"\n;) przy uyciu instrukcji \c;\l;open\u cbot\open;\n;. Zapisywany wiersz zostanie automatycznie zakoczony znakami koca linii 0x0D (CR) i 0x0A (LF). + +Skadnia: +\s;\c;handle.writeln ( string );\n; + +Przykady: +\c; +\s; writeln("Linia tekstu"); + +\s; string s1 = "abc"; +\s; string s2 = "def"; +\s; writeln(s1 + " " + s2); +\n; +\t;Zobacz rwnie +\c;\l;file\u cbot\file;\n;, \c;\l;open\u cbot\open;\n;, \c;\l;close\u cbot\close;\n;, \c;\l;readln\u cbot\readln;\n; i \c;\l;eof\u cbot\eof;\n;. +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/dexch1.txt b/help/P/dexch1.txt new file mode 100644 index 00000000..34405d59 --- /dev/null +++ b/help/P/dexch1.txt @@ -0,0 +1,19 @@ +\b;Ćwiczenie +Wzdłuż drogi stoi kilka \l;stacji przekaźnikowych informacji\u object\exchange;. Gdy robot jest wystarczająco blisko stacji, może odczytać przechowywane w niej informacje. \l;Stacje przekaźnikowe\u object\exchange; wzdłuż drogi zawierają kierunek i odległość do następnej stacji. Nie jest znana liczba stacji przekaźnikowych, wymaganych do dotarcia do celu. + +\b;Ogólny algorytm + Zawsze powtarzaj: + o Pobierz kierunek ze \l;stacji przekaźnikowej\u object\exchange;. + o Pobierz odległość ze \l;stacji przekaźnikowej\u object\exchange;. + o Jeśli nie ma żadnych informacji, zatrzymaj program. + o Wykonaj obrót. + o Idź do następnej stacji. + +\b;Przydatne instrukcje +\c;\l;while\u cbot\while;\n; powtarzanie instrukcji +\c;\l;receive\u cbot\receive;\n; pobieranie informacji ze stacji +\c;\l;move\u cbot\move;\n; poruszanie robotem +\c;\l;turn\u cbot\turn;\n; obracanie robota + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/dfollow1.txt b/help/P/dfollow1.txt new file mode 100644 index 00000000..68bb94e2 --- /dev/null +++ b/help/P/dfollow1.txt @@ -0,0 +1,20 @@ +\b;Ćwiczenie +Należy podążać za \l;robotem celem\u object\bottr; z urządzeniem wybuchowym; należy być ostrożnym, gdyż zderzenie z nim grozi wybuchem. Podczas każdego zatrzymania robota celu należy być odpowiednio blisko (mniej niż 10 metrów). Gdy uda się być w pobliżu robota 10 razy z rzędu, ćwiczenie zakończy się, wraz z jego dotarciem na platformę końcową. Przy każdym zatrzymaniu robot cel sprawdza, czy śledzący go robot jest odpowiednio blisko. Jeśli nie, liczenie zaczyna się od początku. + +\b;Ogólny algorytm +Powtarzaj w nieskończoność: +o Znajdź robot cel. +o Oblicz odległość do robota. +o Jeśli odległość jest mniejsza niż 5 m, cofnij się. +o W przeciwnym przypadku oblicz kierunek do robota celu i idź w jego kierunku. + +\b;Przydatne instrukcje +\c;\l;radar\u cbot\radar;\n; znajdowanie robota (kategoria \c;\l;TargetBot\u object\bottarg;\n;) +\c;\l;radar\u cbot\radar;\n; wykrywanie przeszkód +\c;\l;distance\u cbot\dist;\n; obliczanie odległości +\c;\l;direction\u cbot\direct;\n; obliczanie kierunku +\c;\l;if\u cbot\if;\n; sprawdzanie warunku +\c;\l;motor\u cbot\motor;\n; ustawianie prędkości silników + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/dfor.txt b/help/P/dfor.txt new file mode 100644 index 00000000..aa1bf66c --- /dev/null +++ b/help/P/dfor.txt @@ -0,0 +1,11 @@ +\b;Ćwiczenie +Zniszcz wszystkie cztery \l;cele\u object\bottarg; używając programu z pętlą \c;for\n;. Odległość pomiędzy celami jest równa 10 metrów. + +\b;Przydatne instrukcje +\c;\l;for\u cbot\for;\n; pętla powtarzająca instrukcje +\c;\l;move\u cbot\move;\n; poruszanie robotem +\c;\l;turn\u cbot\turn;\n; obracanie robota +\c;\l;fire\u cbot\fire;\n; strzelanie z działa + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/dhelp1.txt b/help/P/dhelp1.txt new file mode 100644 index 00000000..12de2b98 --- /dev/null +++ b/help/P/dhelp1.txt @@ -0,0 +1,15 @@ +\b;Ćwiczenie +Obroń się przed wrogimi atakami + +\b;Ogólny pomysł +Broń ma zasięg około 40 m. Kategoria wrogów to \c;AlienAnt\n;. Obróć się w stronę najbliższej mrówki, nawet jeśli jest dalej niż 40 m, ale strzelaj dopiero gdy znajdzie się w zasięgu, aby nie marnować energii. + +\b;Przydatne instrukcje +\c;\l;radar\u cbot\radar;\n; wykrywanie wrogów (kategoria \c;\l;AlienAnt\u object\ant;\n;) +\c;\l;direction\u cbot\direct;\n; obliczanie kierunku +\c;\l;distance\u cbot\dist;\n; obliczanie odległości +\c;\l;fire\u cbot\fire;\n; strzelanie z działa +\c;\l;wait\u cbot\wait;\n; czekanie + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/dlaby1.txt b/help/P/dlaby1.txt new file mode 100644 index 00000000..32ef6bf7 --- /dev/null +++ b/help/P/dlaby1.txt @@ -0,0 +1,11 @@ +\b;Ćwiczenie +Zaprogramuj robota tak, aby znajdował wyjście z labiryntu bez uderzania o ściany. Zakładamy, że układ labiryntu nie jest znany, ale nie ma w nim zapętleń ani ślepych korytarzy. Labirynt składa się z kwadratów o boku 5 m każdy. + +\b;Przydatne instrukcje +\c;\l;radar\u cbot\radar;\n; wykrywanie przeszkód +\c;\l;if\u cbot\if;\n; sprawdzanie warunku +\c;\l;move\u cbot\move;\n; poruszanie robotem +\c;\l;turn\u cbot\turn;\n; obracanie robota + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/dmove1.txt b/help/P/dmove1.txt new file mode 100644 index 00000000..7aa7aaba --- /dev/null +++ b/help/P/dmove1.txt @@ -0,0 +1,10 @@ +\b;Ćwiczenie +Zaprogramuj robota tak, aby dotarł na platformę końcową po przejściu przez trzy niebieskie plusy. +Odległości pomiędzy platformami i plusami wynoszą po 20 metrów. + +\b;Przydatne instrukcje +\c;\l;move\u cbot\move;\n; poruszanie robotem +\c;\l;turn\u cbot\turn;\n; obracanie robota + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/dproc1.txt b/help/P/dproc1.txt new file mode 100644 index 00000000..a35a43fb --- /dev/null +++ b/help/P/dproc1.txt @@ -0,0 +1,20 @@ +\b;Ćwiczenie +\l;Robot\u object\bottr; musi przejść przez wszystkie \l;niebieskie plusy\u object\waypoint; znajdujące się na ziemi. Jego droga składa się z dwóch kwadratów. Pierwszy ma 15, a drugi 25 metrów. + +\image tproc1a 8 8; +\b;Ogólny algorytm +Najbardziej efektywne rozwiązanie tego problemu polega na utworzeniu \l;funkcji\u cbot\function; polecającej robotowi poruszanie się po kwadracie o określonym rozmiarze. Znacznie upraszcza to główny program:\c; +\c; +\s; extern void object::Funkcja3( ) +\s; { +\s; Kwadrat(15); +\s; Kwadrat(25); +\s; } +\n; +\b;Przydatne instrukcje +\c;\l;for\u cbot\for;\n; pętla powtarzająca instrukcje +\c;\l;move\u cbot\move;\n; poruszanie robotem +\c;\l;turn\u cbot\turn;\n; obracanie robota + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/dproc2.txt b/help/P/dproc2.txt new file mode 100644 index 00000000..4d6d0f00 --- /dev/null +++ b/help/P/dproc2.txt @@ -0,0 +1,14 @@ +\b;Ćwiczenie +Idź drogą w kształcie spirali. Robot musi iść 2 razy po 25 m naprzód i skręcić, następnie 2 razy po 20 m i skręcić, itd. +\image tproc2 8 8; + +\b;Funkcja +Należy zauważyć, że droga składa się z pasujących do siebie "L"-kształtnych części. Pierwsza z nich (ciemno niebieska) ma długość dwa razy po 25 metrów. Druga (jasno niebieska) jest 5 metrów krótsza. Zacznijmy od napisania \l;funkcji\u cbot\function; poruszającej robotem po "L"-kształtnej części, której długość będzie podana jako parametr. + +\b;Przydatne instrukcje +\c;\l;for\u cbot\for;\n; pętla powtarzająca instrukcje +\c;\l;move\u cbot\move;\n; poruszanie robotem +\c;\l;turn\u cbot\turn;\n; obracanie robota + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/dradar1.txt b/help/P/dradar1.txt new file mode 100644 index 00000000..e3c69f1c --- /dev/null +++ b/help/P/dradar1.txt @@ -0,0 +1,14 @@ +\b;Ćwiczenie +W tym ćwiczeniu "szalony robot" zostawia za sobą wiele \l;niebieskich plusów\u object\waypoint;. Należy znaleźć je wszystkie. + +\b;Przydatne instrukcje +\c;\l;radar\u cbot\radar;\n; wykrywanie niebieskich plusów (kategoria \c;\l;WayPoint\u object\waypoint;\n;) +\c;\l;direction\u cbot\direct;\n; obliczanie kierunku +\c;\l;if\u cbot\if;\n; sprawdzanie warunku +\c;\l;motor\u cbot\motor;\n; ustawianie prędkości silników + +\t;Uwaga +Nie należy zwlekać zbyt długo, gdyż szalony robot rozpoczyna swoją pracę natychmiast. Na szczęście gra jest zatrzymywana podczas edytowania kodu programu. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/dremova1.txt b/help/P/dremova1.txt new file mode 100644 index 00000000..962e5979 --- /dev/null +++ b/help/P/dremova1.txt @@ -0,0 +1,35 @@ +\b;Ćwiczenie +Przetop nieco \l;rudy tytanu\u object\titanore; na \l;kostki tytanu\u object\titan; i dostarcz dwie z nich na platformy o następujących współrzędnych: +\c; + x=10, y=-60 + x=10, y=-65 +\n; +\image derrick 8 8; +\l;Kopalnia\u object\derrick; wydobywa rudę tytanu z podglebia; później wystarczy ją podnieść. + +\image convert 8 8; +\l;Huta\u object\convert; przetapia rudę tytanu na kostki tytanu. Wystarczy zostawić rudę tytanu na platformie, cofnąć się i chwilę poczekać. + +\b;Ogólny algorytm +Powtórz dwa razy: +o Poczekaj na pojawienie się rudy tytanu. +o Podejdź do rudy tytanu. +o Podnieś ją. +o Podejdź do huty. +o Zostaw rudę tytanu. +o Cofnij się o 2,5 metra. +o Poczekaj na kostkę tytanu. +o Podnieś kostkę tytanu. +o Wejdź na platformę. +o Zostaw kostkę tytanu. + +\b;Przydatne instrukcje +\c;\l;for\u cbot\for;\n; powtarzanie instrukcji +\c;\l;do - while\u cbot\do;\n; powtarzanie instrukcji +\c;\l;radar\u cbot\radar;\n; znajduje różne obiekty +\c;\l;goto\u cbot\goto;\n; poruszanie robotem +\c;\l;grab\u cbot\grab;\n; podnosi przedmiot +\c;\l;drop\u cbot\drop;\n; upuszcza przedmiot + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/dremova2.txt b/help/P/dremova2.txt new file mode 100644 index 00000000..3c2a31d6 --- /dev/null +++ b/help/P/dremova2.txt @@ -0,0 +1,11 @@ +\b;Ćwiczenie +Dostarcz \l;kostkę tytanu\u object\titan; na platformę końcową. Pozycja tytanu nie jest znana, natomiast współrzędne platformy to x=10, y=-60. + +\b;Przydatne instrukcje +\c;\l;radar\u cbot\radar;\n; znalezienie kostki tytanu (kategoria \c;\l;Titanium\u object\titan;\n;) +\c;\l;goto\u cbot\goto;\n; poruszanie robotem +\c;\l;grab\u cbot\grab;\n; podnosi przedmiot +\c;\l;drop\u cbot\drop;\n; upuszcza przedmiot + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/dtrap1.txt b/help/P/dtrap1.txt new file mode 100644 index 00000000..078a0566 --- /dev/null +++ b/help/P/dtrap1.txt @@ -0,0 +1,26 @@ +\b;Ćwiczenie +Zaprogramuj \l;robota\u object\bottr; tak, aby znalazł wszystkie \l;niebieskie plusy\u object\waypoint;, nie zbliżając się przy tym zanadto do \l;min\u object\mine;. Plus znika gdy przejdzie przez niego robot. Oto ogólna zasada działania: + + Powtarzaj w nieskończoność: + o Poszukaj miny + o Jeśli znaleziono minę, oblicz przeciwny kierunek + o Poszukaj plusa + o Jeśli nie znaleziono, zatrzymaj program + o Oblicz kierunek do plusa + o Oblicz średnią wartość tych dwóch kierunków + o Ustaw prędkości silników tak, aby robot kierował się na uśredniony kierunek + +\b;Instrukcja \c;radar\n; +Do znajdowania min przy pomocy \c;\l;radaru\u cbot\radar;\n;, polecane są następujące parametry: +\c;\s; radar(Mine, 0, 180, 0, 5);\n; +Z kątem widzenia 180 stopni nie będą wykrywane miny znajdujące się za robotem. Również miny będące dalej niż 5 metrów będą ignorowane. + +Aby znaleźć niebieski plus, wystarczy napisać: +\c;\s; radar(WayPoint);\n; +Niebieskie plusy można znaleźć wszędzie. + +Do obliczania kierunku służy instrukcja \c;\l;direction\u cbot\direct;\n;. +Do ustawiania prędkości silników służy instrukcja \c;\l;motor\u cbot\motor;\n;. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/dtrap2.txt b/help/P/dtrap2.txt new file mode 100644 index 00000000..5051b3fa --- /dev/null +++ b/help/P/dtrap2.txt @@ -0,0 +1,7 @@ +\b;Ćwiczenie +Zaprogramuj \l;robota\u object\bottr; tak, aby znalazł wszystkie \l;niebieskie plusy\u object\waypoint;, nie zbliżając się przy tym zanadto do \l;min\u object\mine;. + +Jeśli robot zbliży się do miny na odległość mniejszą niż 2 metry od jej środka (czyli pozycji zwracanej przez instrukcję radar), mina wybuchnie. Ponadto należy wziąć pod uwagę wymiary samego robota. Dla większego bezpieczeństwa odpowiedniejsza będzie odległość 3 do 3,5 metra. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/fglobal.txt b/help/P/fglobal.txt new file mode 100644 index 00000000..36577d28 --- /dev/null +++ b/help/P/fglobal.txt @@ -0,0 +1,5 @@ +\b;Zadanie +W tej misji możesz grać bez określonego konkretnego celu. Możesz robić co chcesz, poznawać okolicę, budować bazę i roboty, wykonywać programy badawcze, zabijać ewentualnych wrogów, itp. + +\t;Zobacz również +\l;Sterowanie\u command;. diff --git a/help/P/licences.txt b/help/P/licences.txt new file mode 100644 index 00000000..94fb2dd3 --- /dev/null +++ b/help/P/licences.txt @@ -0,0 +1,3 @@ +Fotografia mgławicy NGC3606 oświetlająca niebo Orfenii oraz programu instalacyjnego została zrobiona teleskopem kosmicznym Hubble. Została ona użyta za zgodą autorów, którymi są: Wolfgang Brandner (JPL/IPAC), Eva K. Grebel (Washington University), You-Hua Chu (Illinois Urbana-Champaign University) oraz NASA. + +Dźwięk grzmotu na Orfenii został użyty za ograniczoną zgodą firmy CREATIVE. diff --git a/help/P/mhcent1.txt b/help/P/mhcent1.txt new file mode 100644 index 00000000..fcbfde7a --- /dev/null +++ b/help/P/mhcent1.txt @@ -0,0 +1,11 @@ +\b;Z Centrum Kontroli Misji +Znajdź nieco \l;materii organicznej\u object\bullet; i po wykonaniu odpowiedniego programu badawczego w \l;laboratorium\u object\labo;, powinno \l;Ci\u object\human; się udać samodzielnie zbudować działo organiczne. + +Zbuduj \l;działo organiczne na nogach\u object\botos; i dostarcz je na \l;statek kosmiczny\u object\base;. + +Pamiętaj, że na tej planecie jest bardzo mało zasobów energetycznych. + +Naciśnięcie klawisza \key;\key help;\norm; pozwala ponownie przejrzeć te instrukcje na Twoim osobistym komunikatorze SatCom \button 63;. + +\t;Zobacz również +\l;Sterowanie\u command; i \l;Język CBOT\u cbot; diff --git a/help/P/mhcent2.txt b/help/P/mhcent2.txt new file mode 100644 index 00000000..6be9ad80 --- /dev/null +++ b/help/P/mhcent2.txt @@ -0,0 +1,7 @@ +\b;Z Centrum Kontroli Misji +Nadszedł czas na kolejne poprawienie \l;Twoich\u object\human; umiejętności strzeleckich. W tym ćwiczeniu należy zniszczyć wszystkie \l;ładunki wybuchowe\u object\tnt;, ale uwaga: \l;działo organiczne\u object\botoj; ma bardzo mało energii, zaledwie tyle, ile potrzeba na wykonanie tego ćwiczenia. + +Naciśnięcie klawisza \key;\key help;\norm; pozwala ponownie przejrzeć te instrukcje na Twoim osobistym komunikatorze SatCom \button 63;. + +\t;Zobacz również +\l;Sterowanie\u command; i \l;Język CBOT\u cbot; diff --git a/help/P/mhcent3.txt b/help/P/mhcent3.txt new file mode 100644 index 00000000..a5fa3bee --- /dev/null +++ b/help/P/mhcent3.txt @@ -0,0 +1,9 @@ +\b;Z Centrum Kontroli Misji +Zbuduj \l;radar\u object\radar; na najwyższym wzniesieniu i upewnij się, że nie zostanie on zniszczony po opuszczeniu przez \l;Ciebie\u object\human; planety. + +Zniszczenie poprzedniego radaru zbudowanego przez pierwszą ekspedycję było prawdopodobną przyczyną zerwania łączności, co doprowadziło do zupełnej utraty kontaktu. + +Naciśnięcie klawisza \key;\key help;\norm; pozwala ponownie przejrzeć te instrukcje na Twoim osobistym komunikatorze SatCom \button 63;. + +\t;Zobacz również +\l;Sterowanie\u command; i \l;Język CBOT\u cbot; diff --git a/help/P/mhcent4.txt b/help/P/mhcent4.txt new file mode 100644 index 00000000..71ca4318 --- /dev/null +++ b/help/P/mhcent4.txt @@ -0,0 +1,19 @@ +\b;Kilka słów o nowych wytycznych +Bardzo nam przykro, że musimy zwracać Ci na to uwagę, ale wydaje nam się, że nadszedł odpowiedni czas na zapoznanie Cię z naszymi obecnymi troskami. Silna reakcja opinii publicznej oraz Kongresu, dotycząca systematycznego wyniszczania "rdzennych mieszkańców" odwiedzanych przez Ciebie planet spowodowała, że Kongres postanowił okazać swoją wrażliwość na troski większości ludności. + +Niniejszym ogłaszamy nowe wytyczne obligujące Cię do ograniczenia ofiar i humanitarnego postępowania. Innymi słowy, rób wszystko co tylko możliwe, aby od teraz oszczędzać napotkane formy życia. Twoja misja nie powinna oczywiście zostać przez to narażona na żadne niebezpieczeństwo. + +\b;Z Centrum Kontroli Misji +Tym razem Twoje zasoby energetyczne są niebezpiecznie ograniczone, podobnie jak Twój arsenał, lecz musisz zlokalizować i odzyskać \l;czarną skrzynkę\u object\bbox; z poprzedniej ekspedycji, aby móc udać się na następną planetę. + +Poprzez satelitę obserwacyjnego otrzymaliśmy fragmenty informacji od Twoich poprzedników, dotyczące nowego typu broni, wynalezionej przez nich dokładnie w tym celu. + +Ta nowa broń oferuje możliwość okazania współczucia wobec \l;rdzennych gatunków\u object\ant;, gdyż nie jest to broń masowej zagłady. Oferuje ona w zamian, według naszej wiedzy, możliwość ich chwilowego unieszkodliwienia. Jeśli rzeczywiście tak jest, musisz działać szybko, zanim będą miały one szansę ponownie stać się groźne. + +\b;Procedura +Wykonaj \l;program badawczy\u object\research; przeprowadź niezbędne eksperymenty, lecz pamiętaj o dostarczeniu tej nowej broni na pokład. Bardzo nam zależy na zbadaniu tego urządzenia. + +Naciśnięcie klawisza \key;\key help;\norm; pozwala ponownie przejrzeć te instrukcje na Twoim osobistym komunikatorze SatCom \button 63;. + +\t;Zobacz również +\l;Sterowanie\u command; i \l;Język CBOT\u cbot; diff --git a/help/P/mhcent5.txt b/help/P/mhcent5.txt new file mode 100644 index 00000000..a127c6b0 --- /dev/null +++ b/help/P/mhcent5.txt @@ -0,0 +1,9 @@ +\b;Z Centrum Kontroli Misji +Jesteś atakowany i tym razem nie ma miejsca na litość... + +Nowy robot, \l;uderzacz\u object\bottump; może być bardzo pomocny. Jednakże chcielibyśmy podkreślić, że nie należy ryzykować startu, dopóki są jeszcze jakiekolwiek żywe mrówki w pobliżu statku kosmicznego. + +Naciśnięcie klawisza \key;\key help;\norm; pozwala ponownie przejrzeć te instrukcje na Twoim osobistym komunikatorze SatCom \button 63;. + +\t;Zobacz również +\l;Sterowanie\u command; i \l;Język CBOT\u cbot; diff --git a/help/P/mhcrys1.txt b/help/P/mhcrys1.txt new file mode 100644 index 00000000..58b2ac3c --- /dev/null +++ b/help/P/mhcrys1.txt @@ -0,0 +1,13 @@ +\b;Z Centrum Kontroli Misji +Zbuduj \l;radar\u object\radar; na najwyższym punkcie w okolicy. Upewnij się, że działanie radaru nie będzie zagrożone nawet po Twoim opuszczeniu planety. \l;Centrum badawcze\u object\research; powinno pomóc w znalezieniu odpowiedniego rozwiązania. + +Możliwe, że wykryte organizmy są w rzeczywistości \l;robalami\u object\worm; wspomnianymi przez pierwszą ekspedycję. Jeśli to prawda, nie należy zbytnio się niepokoić: nie są one groźne dla żywych organizmów, jednak mogą spowodować nieprawidłowe działanie robotów i budynków, zarażając je wirusami. + +Radary nie tylko dostarczają dokładne informacje o obiektach i organizmach występujących w regionie, ale również przekazują informacje pomiędzy Ziemią po Twoim odlocie na inne planety. Jest bardzo prawdopodobne, że problemy z łącznością, których się tak obawiamy, były spowodowane problemami ze stacjami radarowymi zbudowanymi przez pierwszą ekspedycję. + +Aby pomóc Ci w nudnym zadaniu zbierania niezbędnych surowców, napisaliśmy program, dzięki któremu \l;transporter na kołach\u object\botgr; będzie samodzielnie szukał \l;rudy tytanu\u object\titanore; (zobacz podręcznik programowania \button 53;). + +Naciśnięcie klawisza \key;\key help;\norm; pozwala ponownie przejrzeć te instrukcje na Twoim osobistym komunikatorze SatCom \button 63;. + +\t;Zobacz również +\l;Sterowanie\u command; i \l;Język CBOT\u cbot; diff --git a/help/P/mhcrys2.txt b/help/P/mhcrys2.txt new file mode 100644 index 00000000..73ef7698 --- /dev/null +++ b/help/P/mhcrys2.txt @@ -0,0 +1,11 @@ +\b;Z Centrum Kontroli Misji +Oczyść teren ze wszystkich wrogich organizmów. Sposób wykonania zadania (\l;wieża obronna\u object\tower; lub \l;działo latające\u object\botfj;) zależy od Ciebie. + +Wygląda na to, że radar jest idealnie przystosowany do wykrywania robali. Należy jednak pamiętać, że widoczne są tylko te przebywające na powierzchni. + +Przesłaliśmy transmisję do Twojej \l;fabryki robotów\u object\factory;. Dotyczy ona robota zaprojektowanego do wykrywania surowców w podglebiu: źródeł energii i rudy. Dla uproszczenia nazwaliśmy go \l;szperaczem\u object\botsr;. Na podstawie wstępnych analiz przypuszczamy, że występowanie rudy tytanu na Krystalii jest ściśle związane z występowaniem wielkich niebieskich kryształów. Jeśli to prawda, informacja ta pozwoli Ci zaoszczędzić nieco cennego czasu. Oczywiście do wydobycia rudy niezbędna jest \l;kopalnia\u object\derrick;. + +Naciśnięcie klawisza \key;\key help;\norm; pozwala ponownie przejrzeć te instrukcje na Twoim osobistym komunikatorze SatCom \button 63;. + +\t;Zobacz również +\l;Sterowanie\u command; i \l;Język CBOT\u cbot; diff --git a/help/P/mhcrys3.txt b/help/P/mhcrys3.txt new file mode 100644 index 00000000..05a16fad --- /dev/null +++ b/help/P/mhcrys3.txt @@ -0,0 +1,9 @@ +\b;Z Centrum Kontroli Misji +Właśnie otrzymaliśmy ostrzeżenie z satelity obserwacyjnego: niesforny robot z poprzedniej ekspedycji wykradł czarną skrzynkę z Twojego statku kosmicznego. + +Zamierzamy później zbadać ten incydent, lecz teraz najważniejszą sprawą jest jak najszybsze odzyskanie czarnej skrzynki. + +Naciśnięcie klawisza \key;\key help;\norm; pozwala ponownie przejrzeć te instrukcje na Twoim osobistym komunikatorze SatCom \button 63;. + +\t;Zobacz również +\l;Sterowanie\u command; i \l;Język CBOT\u cbot; diff --git a/help/P/mhcrys4.txt b/help/P/mhcrys4.txt new file mode 100644 index 00000000..fdaa7a19 --- /dev/null +++ b/help/P/mhcrys4.txt @@ -0,0 +1,11 @@ +\b;Z Centrum Kontroli Misji +Ta planeta okazała się nieodpowiednim kandydatem do przyszłej kolonizacji. Lepiej opuścić ją na dobre. Znajdź \l;czarną skrzynkę\u object\bbox; z poprzedniej ekspedycji i skieruj się na następną planetę. + +Z danych satelity obserwacyjnego wynika, że znajduje się ona na dnie doliny. Jednakże, z uwagi na warstwy przenikliwego smogu elektromagnetycznego, nie można do końca polegać na danych satelitarnych. + +Bądź w pogotowiu. + +Naciśnięcie klawisza \key;\key help;\norm; pozwala ponownie przejrzeć te instrukcje na Twoim osobistym komunikatorze SatCom \button 63;. + +\t;Zobacz również +\l;Sterowanie\u command; i \l;Język CBOT\u cbot; diff --git a/help/P/mhlune1.txt b/help/P/mhlune1.txt new file mode 100644 index 00000000..1d89d696 --- /dev/null +++ b/help/P/mhlune1.txt @@ -0,0 +1,22 @@ +\b;Z Centrum Kontroli Misji +Zbierz 4 porcje \l;rudy tytanu\u object\titanore; i dostarcz je na pokład \l;statku kosmicznego\u object\base;. Zbuduj niezbędne do tego celu urządzenia (\l;transportery latające\u object\botgj;). + +Zamiast ryzykować coraz bardziej, zawsze sprawdzaj raport satelitarny \button 186;. + +Przesłaliśmy do Twojego \l;statku kosmicznego\u object\base; program, który może Ci pomóc w tym zadaniu; zobacz odpowiednią stronę na Twoim komunikatorze SatCom, naciskając przycisk \button 53;. + +\b;Procedura +1) Aby dodać transportery latające do listy robotów, które mogą być produkowane w fabryce, należy wykonać wcześniej odpowiedni \l;program badawczy\u object\research;. Badania umożliwią ponadto uruchomienie reaktora w Twoim zestawie przetrwania. + +2) Zbuduj \l;transporter latający\u object\botgj; i zbierz 4 kawałki \l;rudy tytanu\u object\titanore;. + +3) Zabierz ze sobą \l;transporter latający\u object\botgj; oraz \l;transporter na kołach\u object\botgr; i odleć. + +Uważaj, aby Twojemu transporterowi latającemu nie skończyła się energia daleko od bazy. Jeśli będzie to konieczne, wymień \l;ogniwo elektryczne\u object\power; przed opuszczeniem statku kosmicznego. Możesz zrobić to osobiście lub wykonując załączony program dostarczony z Houston \button 53;. + +Aby nie zgubić się w ogromie kraterów na powierzchni Księżyca, skorzystaj z mapki, którą możesz znaleźć w prawej dolnej części ekranu. + +Naciśnięcie klawisza \key;\key help;\norm; pozwala ponownie przejrzeć te instrukcje na Twoim osobistym komunikatorze SatCom \button 63;. + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/mhlune2.txt b/help/P/mhlune2.txt new file mode 100644 index 00000000..eca89c6c --- /dev/null +++ b/help/P/mhlune2.txt @@ -0,0 +1,17 @@ +\b;Z Centrum Kontroli Misji +Ta aparatura została ustawiona przez poprzednią ekspedycję do testowania i trenowania możliwości robotów latających. + +\b;Zadanie +Użyj tych ćwiczeń dla zwiększenia swojej przewagi. Twoja zdolność do przetrwania krytycznych sytuacji w przyszłości może zależeć od zręczności, którą pomogą Ci one rozwinąć. + +\b;Procedura +Przeleć przez wszystkie cele jak najszybciej. Postaraj się to zrobić bez przegrzania silnika. Jeśli to za trudne, po prostu wyląduj na chwilę aby ochłodzić silnik. + +Do sterowania robotem używaj klawiszy strzałek na klawiaturze, ale jedną rękę trzymaj na myszy. Mysz nie jest potrzebna w tym ćwiczeniu ale będzie istotna w późniejszych misjach. + +Może być przydatne powrócenie do tego ćwiczenia za jakiś czas, w celu poprawy refleksu. + +Naciśnięcie klawisza \key;\key help;\norm; pozwala ponownie przejrzeć te instrukcje na Twoim osobistym komunikatorze SatCom \button 63;. + +\t;Zobacz również +\l;Sterowanie\u command; i \l;Język CBOT\u cbot; diff --git a/help/P/mhlune3.txt b/help/P/mhlune3.txt new file mode 100644 index 00000000..0365bfc9 --- /dev/null +++ b/help/P/mhlune3.txt @@ -0,0 +1,7 @@ +\b;Z Centrum Kontroli Misji +Ćwiczenie podobne do poprzedniego, z tą tylko różnicą, że tym razem dostępny jest jedynie widok z kamery pokładowej. + +Naciśnięcie klawisza \key;\key help;\norm; pozwala ponownie przejrzeć te instrukcje na Twoim osobistym komunikatorze SatCom \button 63;. + +\t;Zobacz również +\l;Sterowanie\u command; i \l;Język CBOT\u cbot; diff --git a/help/P/mhlune4.txt b/help/P/mhlune4.txt new file mode 100644 index 00000000..5f6bc673 --- /dev/null +++ b/help/P/mhlune4.txt @@ -0,0 +1,20 @@ +\b;Z Centrum Kontroli Misji +Nie mamy możliwości ustalenia dokąd udała się poprzednia ekspedycja po opuszczeniu powierzchni Księżyca, ani dlaczego wybrała miejsce, w które się udała. + +Znajdź \l;czarną skrzynkę\u object\bbox; zostawioną przez poprzednią ekspedycję i dostarcz ją na pokład Twojego statku. Powinna ona zawierać współrzędne następnej planety, do której zmierzała ekspedycja. + +\l;Ogniwa elektryczne\u object\power; Twoich robotów są prawie zupełnie puste. Naładowanie ich jest priorytetem. Z danych satelity obserwacyjnego wynika, że podglebie w tej okolicy naładowane jest energią, wobec czego budowa działającej \l;stacji energetycznej\u object\station; możliwa jest na każdej płaskiej powierzchni. + +Opracowaliśmy program ładujący \l;ogniwa elektryczne\u object\power; robota. Więcej informacji znajdziesz na stronie z programami w Twoim komunikatorze SatCom \button 53;. + +\b;Procedura +1) Na początek zbuduj \l;hutę\u object\convert;, w której przetopisz posiadane już kawałki rudy tytanu w użyteczne \l;kostki tytanu\u object\titan;. + +2) Następnie zbuduj \l;stację energetyczną\u object\station; oraz \l;radar\u object\radar;, który wskaże na mapce lokalizację czarnej skrzynki. + +3) Z naładowanym w pełni ogniwem elektrycznym zdobądź czarną skrzynkę. Aby móc odlecieć, musisz dostarczyć ją na pokład \l;statku kosmicznego\u object\base;. + +Naciśnięcie klawisza \key;\key help;\norm; pozwala ponownie przejrzeć te instrukcje na Twoim osobistym komunikatorze SatCom \button 63;. + +\t;Zobacz również +\l;Sterowanie\u command; i \l;Język CBOT\u cbot; diff --git a/help/P/mhorph1.txt b/help/P/mhorph1.txt new file mode 100644 index 00000000..cf571b53 --- /dev/null +++ b/help/P/mhorph1.txt @@ -0,0 +1,13 @@ +\b;Z Centrum Kontroli Misji +Jest już chyba oczywiste, że planeta ta nie będzie rajem dla ludzkości. + +Zbuduj radar, który będzie przekazywał przyszłe transmisje. + +Ponadto... niestety musimy poinformować Cię, że będziesz musiał unicestwić wszystkie wrogie organizmy. + +Pierwsza ekspedycja odkryła pokłady \l;rudy tytanu\u object\titanore; pod powierzchnią Orfenii. Miejsce to zostało oznaczone niebieską \l;flagą\u object\flag;. + +Naciśnięcie klawisza \key;\key help;\norm; pozwala ponownie przejrzeć te instrukcje na Twoim osobistym komunikatorze SatCom \button 63;. + +\t;Zobacz również +\l;Sterowanie\u command; i \l;Język CBOT\u cbot; diff --git a/help/P/mhorph2.txt b/help/P/mhorph2.txt new file mode 100644 index 00000000..81a6f359 --- /dev/null +++ b/help/P/mhorph2.txt @@ -0,0 +1,11 @@ +\b;Z Centrum Kontroli Misji +Odzyskaj czarną skrzynkę. + +Pioruny uderzają jeszcze częściej niż poprzednio. Musisz zabezpieczyć swoje wyposażenie. + +Warto zauważyć, że statek kosmiczny również jest naturalnym odgromnikiem, a nasi inżynierowie zapewniają, że Twój skafander kosmiczny nie przyciąga piorunów. + +Naciśnięcie klawisza \key;\key help;\norm; pozwala ponownie przejrzeć te instrukcje na Twoim osobistym komunikatorze SatCom \button 63;. + +\t;Zobacz również +\l;Sterowanie\u command; i \l;Język CBOT\u cbot; diff --git a/help/P/mhsaari1.txt b/help/P/mhsaari1.txt new file mode 100644 index 00000000..f53eb6cf --- /dev/null +++ b/help/P/mhsaari1.txt @@ -0,0 +1,7 @@ +\b;Z Centrum Kontroli Misji +Satelita obserwacyjny wykrył porcję \l;rudy uranu\u object\uranore; na szczycie głównego wzniesienia. Twoim zadaniem jest dostarczenie jej na statek kosmiczny. + +Naciśnięcie klawisza \key;\key help;\norm; pozwala ponownie przejrzeć te instrukcje na Twoim osobistym komunikatorze SatCom \button 63;. + +\t;Zobacz również +\l;Sterowanie\u command; i \l;Język CBOT\u cbot; diff --git a/help/P/mhsaari2.txt b/help/P/mhsaari2.txt new file mode 100644 index 00000000..ff3cca6b --- /dev/null +++ b/help/P/mhsaari2.txt @@ -0,0 +1,11 @@ +\b;Z Centrum Kontroli Misji +Wyeliminuj wszystkich wrogów obecnych w okolicy. + +Twoja obecna sytuacja skrajnie nas niepokoi. Satelita wykrył bardzo dużą aktywność wroga, zbliżającego się do Twojego statku kosmicznego ze wszystkich kierunków. Musisz prawidłowo ocenić sytuację i wybrać najszybszą i najskuteczniejszą obronę: \l;wieże\u object\tower; lub\l;działa\u object\botfr;. + +Aby zwiększyć Twoje szanse przetrwania, opracowaliśmy program, który będzie bronił Twojej zachodniej flanki, jeśli uruchomisz go na \l;dziale na kołach\u object\botfr;; zobacz stronę programu \button 53;. + +Naciśnięcie klawisza \key;\key help;\norm; pozwala ponownie przejrzeć te instrukcje na Twoim osobistym komunikatorze SatCom \button 63;. + +\t;Zobacz również +\l;Sterowanie\u command; i \l;Język CBOT\u cbot; diff --git a/help/P/mhsaari3.txt b/help/P/mhsaari3.txt new file mode 100644 index 00000000..41ca28c7 --- /dev/null +++ b/help/P/mhsaari3.txt @@ -0,0 +1,9 @@ +\b;Z Centrum Kontroli Misji +Twój satelita zlokalizował pozostałości poprzedniej ekspedycji. W pobliżu powinna też być \l;czarna skrzynka\u object\bbox; ze współrzędnymi Twojego następnego celu. + +Zlikwiduj kilka pozostałych mrówek. Zauważyliśmy, że Twoje działo neutronowe przestało działać, wobec czego nie będzie możliwa budowa nowych robotów. Jesteśmy jednak przekonani, że znajdziesz odpowiednie rozwiązanie wykorzystując jedynie posiadane przez Ciebie zasoby. + +Naciśnięcie klawisza \key;\key help;\norm; pozwala ponownie przejrzeć te instrukcje na Twoim osobistym komunikatorze SatCom \button 63;. + +\t;Zobacz również +\l;Sterowanie\u command; i \l;Język CBOT\u cbot; diff --git a/help/P/mhterra1.txt b/help/P/mhterra1.txt new file mode 100644 index 00000000..44ef7e53 --- /dev/null +++ b/help/P/mhterra1.txt @@ -0,0 +1,15 @@ +\b;Z Centrum Kontroli Misji +Właśnie dotarła do nas wiadomość, że pierwsza ekspedycja zbudowała zupełnie nowy typ broni, od użycia na Nowej Ziemi. W celu ochrony przed dostępem wroga, została ona bezpiecznie zamknięta w \l;skrytce\u object\safe;. Dostęp do niej można uzyskać przy pomocy czterech \l;kluczy\u object\key;. Są one rozproszone na lub pod powierzchnią planety. + +Satelita obserwacyjny zlokalizował jeden z tych kluczy (A) na północ od Twojej obecnej pozycji. + +Zgodnie z wytycznymi Kongresu, nasi inżynierowie opracowali kolejny model ściśle "obronnego" robota, nazwanego \l;osłaniaczem\u object\botshld;, który umożliwia odpowiednie zabezpieczenie o określonych parametrach. Dane zostały przesłane do \l;centrum badawczego\u object\research; razem z paroma przydatnymi programami. + +Jak zapewne wiesz, ruda uranu w podglebiu jest skutecznym nawozem, przyśpieszającym wzrost rozmaitych grzybów. Ponadto warto zauważyć, że \l;rudę tytanu\u object\titanore; na tej planecie można często znaleźć na dnie jezior. + +Po zakończeniu misji, przed odlotem, zabierz na pokład statku kosmicznego robota \l;osłaniacza\u object\botshld; oraz \l;nurka\u object\botsub;. + +Naciśnięcie klawisza \key;\key help;\norm; pozwala ponownie przejrzeć te instrukcje na Twoim osobistym komunikatorze SatCom \button 63;. + +\t;Zobacz również +\l;Sterowanie\u command; i \l;Język CBOT\u cbot; diff --git a/help/P/mhterra2.txt b/help/P/mhterra2.txt new file mode 100644 index 00000000..e544465e --- /dev/null +++ b/help/P/mhterra2.txt @@ -0,0 +1,9 @@ +\b;Z Centrum Kontroli Misji +Zdobądź drugi \l;klucz\u object\key; (B). Powinien on być w pobliżu Twojej obecnej pozycji. + +Po zakończeniu misji, przed odlotem, zabierz na pokład statku kosmicznego robota \l;osłaniacza\u object\botshld; oraz \l;nurka\u object\botsub;. + +Naciśnięcie klawisza \key;\key help;\norm; pozwala ponownie przejrzeć te instrukcje na Twoim osobistym komunikatorze SatCom \button 63;. + +\t;Zobacz również +\l;Sterowanie\u command; i \l;Język CBOT\u cbot; diff --git a/help/P/mhterra3.txt b/help/P/mhterra3.txt new file mode 100644 index 00000000..b9703c02 --- /dev/null +++ b/help/P/mhterra3.txt @@ -0,0 +1,9 @@ +\b;Z Centrum Kontroli Misji +Trzeci \l;klucz\u object\key; (C) zakopany jest na terenie opanowanym przez grzyby. Do jego znalezienia użyj \l;szperacza\u object\botss;, a następnie wydobądź go, używając do tego \l;kopalni\u object\derrick;. + +Po zakończeniu misji, przed odlotem, zabierz na pokład statku kosmicznego robota \l;osłaniacza\u object\botshld; oraz \l;nurka\u object\botsub;. + +Naciśnięcie klawisza \key;\key help;\norm; pozwala ponownie przejrzeć te instrukcje na Twoim osobistym komunikatorze SatCom \button 63;. + +\t;Zobacz również +\l;Sterowanie\u command; i \l;Język CBOT\u cbot; diff --git a/help/P/mhterra4.txt b/help/P/mhterra4.txt new file mode 100644 index 00000000..ff6ea177 --- /dev/null +++ b/help/P/mhterra4.txt @@ -0,0 +1,13 @@ +\b;Z Centrum Kontroli Misji +Za pomocą czwartego \l;klucza\u object\key; (D), który możesz znaleźć w pobliżu, uzyskasz ostatecznie dostęp do \l;skrytki\u object\safe;. Ten przełomowy robot, którego znajdziesz wewnątrz został nazwany "\l;działem fazowym\u object\botphaz;". + +W załączeniu przesyłamy program umożliwiający współpracę \l;działa fazowego\u object\botphaz; z robotem \l;osłaniaczem\u object\botshld;. + +Wkrótce będziesz miał okazję przetestować nową broń. Twoją ostatnią misją jest zlikwidowanie \l;Królowej obcych\u object\mother; składającej jaja, odpowiedzialnej za pojawianie się kolejnych owadów na Nowej Ziemi. Działo fazowe może być jedyną bronią zdolną wykonać to zadanie. + +Nie będzie już dalszych przeszkód w ludzkiej kolonizacji tej wspaniałej planety i wkrótce będzie można powiadomić Ziemię o zakończeniu misji. + +Naciśnięcie klawisza \key;\key help;\norm; pozwala ponownie przejrzeć te instrukcje na Twoim osobistym komunikatorze SatCom \button 63;. + +\t;Zobacz również +\l;Sterowanie\u command; i \l;Język CBOT\u cbot; diff --git a/help/P/mhterre1.txt b/help/P/mhterre1.txt new file mode 100644 index 00000000..983c85a9 --- /dev/null +++ b/help/P/mhterre1.txt @@ -0,0 +1,27 @@ +\b;Z Centrum Szkoleniowego NASA +Miło nam poinformować, że zostałeś wybrany do misji eksploracji kosmosu, nazwanej Colobot. + +Twój profil psychologiczny został został uznany za korzystny w ponad 98,84%, a Twoje uzdolnienia podczas okresu obszernych badań były niezaprzeczalne. Szczegółowe wyniki są do Twojej dyspozycji w komputerze centralnym pod przypisanym Ci numerem rejestracyjnym. + +W sprawie wskazówek dotyczących Twoich nadchodzących misji, zgłoś się do\l; Centrum Kontroli Misji Houston\u object\Huston;. + +\b;Z Centrum Kontroli Misji Houston +Jak wiesz, Ziemię czeka nieuchronna zagłada, spowodowanego rosnącym zanieczyszczeniem atmosfery. + +\l;Twoja\u object\human; misja polega na zbadaniu sąsiednich galaktyk z nadzieją znalezienia planety odpowiedniej dla człowieka i mogącej służyć jako przyszłe schronienie dla ludzkości. Podczas misji możesz liczyć tylko na siebie, choć na Twoim statku kosmicznym będzie też kilka robotów. + +Osiem miesięcy temu została wysłana ekspedycja mająca ten sam cel, składająca się jedynie z robotów. Napotkała ona wiele przeszkód na swej drodze, zwykle lądując na planetach nieodpowiednich do kolonizacji, a nawet wyraźnie wrogich. Całkiem niedawno łączność została zupełnie zerwana. + +Powody niepowodzenia tamtej misji wciąż są nieznane, głównie z powodu powtarzających się problemów z transmisją. Mamy jednak nadzieję, że uda Ci się wykorzystać część zebranych przez nią danych. + +\b;Bezpośredni cel +Pustynia Nevada wre aktywnością. Roboty budują stację kosmiczną, która będzie troszczyć się o zaspokojenie Twoich specyficznych potrzeb. + +Aby zapoznać Cię ze skafandrem i wyposażeniem, przygotowaliśmy kilka ćwiczeń treningowych. + +W pierwszym ćwiczeniu musisz znaleźć swój zestaw przetrwania, zawierający wszystkie narzędzia niezbędne do stawienia czoła zimnej przestrzeni kosmicznej. Jest on łatwy do zauważenia, gdyż zawiera dwa pojemniki: pomarańczowy i niebieski. + +Naciśnięcie klawisza \key;\key help;\norm; pozwala ponownie przejrzeć te instrukcje na Twoim osobistym komunikatorze SatCom \button 63;. + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/mhterre2.txt b/help/P/mhterre2.txt new file mode 100644 index 00000000..cc294ea0 --- /dev/null +++ b/help/P/mhterre2.txt @@ -0,0 +1,14 @@ +\b;Z Centrum Kontroli Misji +To \l;Twoje\u object\human; drugie ćwiczenie. Powinieneś zapoznać się z obsługą podstawowego wyposażenia. Może to być bardzo przydatne podczas Twojej przyszłej ekspedycji. + +Konstrukcja budynków oraz wytwarzanie robotów wymaga użycia \l;tytanu\u object\titan;. Tytan jest minerałem, który można znaleźć na większości systemów słonecznych we wszechświecie. + +\b;Procedura +1) Zbliż się do pierwszej \l;kostki tytanu\u object\titan;. +2) Zbuduj \l;centrum badawcze\u object\research; \button 163;. Zwróć uwagę, że jedynie \l;Ty\u object\human; możesz cokolwiek zbudować; roboty nie mogą Cię w tym zastąpić. +3) Drugą \l;kostkę tytanu\u object\titan; przeznacz na wybudowanie \l;fabryki robotów\u object\factory; \button 160;. + +Naciśnięcie klawisza \key;\key help;\norm; pozwala ponownie przejrzeć te instrukcje na Twoim osobistym komunikatorze SatCom \button 63;. + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/mhterre3.txt b/help/P/mhterre3.txt new file mode 100644 index 00000000..57bd0efc --- /dev/null +++ b/help/P/mhterre3.txt @@ -0,0 +1,24 @@ +\b;Z Centrum Kontroli Misji +Twój \l;statek kosmiczny\u object\base; znajduje się już na płycie wyrzutni rakietowej, gotowy do startu. + +\l;Twoje\u object\human; ostatnie ćwiczenie przed wyruszeniem w podróż polega na zaopatrzeniu statku kosmicznego w \l;czarną skrzynkę\u object\bbox;. Jedyną drogą do \l;czarnej skrzynki\u object\bbox; jest stroma ścieżka, którą może wspiąć się tylko \l;transporter na gąsienicach\u object\botgc;, którego musisz wcześniej zbudować. + +Niestety \l;fabryka robotów\u object\factory;, nie potrafi jeszcze składać robotów tego typu. Musisz zażądać od \l;centrum badawczego\u object\research; planów tego szczególnego napędu. + +\b;Procedura +1) Zasil centrum badawcze przy pomocy jednego z zielonych \l;ogniw elektrycznych\u object\power;. +2) Kliknij na przycisku \button 64;. +3) Zostaw \l;kostkę tytanu\u object\titan; pośrodku \l;fabryki robotów\u object\factory; i zbuduj \l;transporter na gąsienicach\u object\botgc;. +4) Zasil i wyślij \l;transporter na gąsienicach\u object\botgc; na szczyt góry na południowym zachodzie. +5) Dostarcz czarną skrzynkę na pokład statku kosmicznego. +6) Nie zapomnij również zabrać \l;transportera na kołach\u object\botgr;. Roboty te mogą okazać się bardzo przydatne w przyszłości. +7) Wejdź na pokład \l;statku kosmicznego\u object\base;. +8) Zaznacz \l;statek kosmiczny\u object\base; i odleć \button 28;. + + +Uwaga: Dla zwiększenia efektywności możesz użyć \l;transportera na kołach\u object\botgr;. + +Naciśnięcie klawisza \key;\key help;\norm; pozwala ponownie przejrzeć te instrukcje na Twoim osobistym komunikatorze SatCom \button 63;. + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/mhtropi1.txt b/help/P/mhtropi1.txt new file mode 100644 index 00000000..35ed82a8 --- /dev/null +++ b/help/P/mhtropi1.txt @@ -0,0 +1,10 @@ +\b;Z Centrum Kontroli Misji +Satelita obserwacyjny wykrył nowy rodzaj materiałów wybuchowych, zaprojektowany przez poprzednią ekspedycję. Musisz go znaleźć i dostarczyć na \l;statek kosmiczny\u object\base;. + +\b;Procedura +Lokalizacja materiałów wybuchowych jest zaznaczona na mapce czerwonym plusem. + +Naciśnięcie klawisza \key;\key help;\norm; pozwala ponownie przejrzeć te instrukcje na Twoim osobistym komunikatorze SatCom \button 63;. + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/mhtropi2.txt b/help/P/mhtropi2.txt new file mode 100644 index 00000000..50e795ec --- /dev/null +++ b/help/P/mhtropi2.txt @@ -0,0 +1,18 @@ +\b;Z Centrum Kontroli Misji +Mamy nadzieję, że dotrze do Ciebie nasza wiadomość. + +Transmisja z satelity obserwacyjnego przed kilkoma godzinami powiadomiła nas, że wędrujesz sobie niepokojąco beztrosko. Twój komunikator SatCom zaprzestał nadawania. Twoje reaktory zostały prawdopodobnie uszkodzone a hełm zaginął na dnie jeziora. Jeśli tak jest w rzeczywistości, nie próbuj go odzyskać, nie wchodź do wody! Woda na planecie Tropice jest niezwykle toksyczna. Możesz tego nie przeżyć. + +Wróć na statek najszybciej jak to możliwe i spróbuj przekazać informację o prawdopodobnej przyczynie tej katastrofy. Informacje z satelity nie są możliwe do odszyfrowania. Rozważaliśmy istnienie nieznanego czynnika już od czasu zaginięcia pierwszej ekspedycji. Wygląda na to, że właśnie się z nim spotkałeś. + +Nie możemy pomóc Ci bardziej, ale pamiętaj że podążasz śladami poprzedniej ekspedycji. Jeśli przydarzyło im się to samo co teraz Tobie, są szanse, że zostawili jakieś wskazówki podczas swojego powrotu do statku kosmicznego, który znajdziesz w pobliżu obecnej pozycji Twojego statku. Skorzystaj z tych wskazówek. + +Warte rozważenia jest rozstawienie flag. Określają one kierunek wiatru, przez co mogą być pomocne w orientacji w terenie. + +To wszystko co możemy teraz powiedzieć... +Powodzenia... + +Naciśnięcie klawisza \key;\key help;\norm; pozwala ponownie przejrzeć te instrukcje na Twoim osobistym komunikatorze SatCom \button 63;. + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/mhtropi3.txt b/help/P/mhtropi3.txt new file mode 100644 index 00000000..eccef971 --- /dev/null +++ b/help/P/mhtropi3.txt @@ -0,0 +1,16 @@ +\b;Z Centrum Kontroli Misji +Wyeliminuj wszystkie wrogie formy życia. +Przeprowadź niezbędne \l;badania\u object\research; w celu rozwinięcia systemu broni ofensywnej. + +Satelita wykrył źródło energii w punkcie oznaczonym przez poprzednią ekspedycję niebieską flagą (niebieski plus na mapce). + +Nie zapomnij zajrzeć do raportu z satelity \button 186; zanim przedsięweźmiesz jakiekolwiek decyzje; podejrzewamy, że nie zawsze o tym pamiętasz. + +Udoskonaliliśmy program ładujący ogniwa. Zobacz stronę \button 53;. + +Ostrzeżenie: roboty nie mogą się zanurzać. W razie wątpliwości sprawdź sam, czy poziom wody nie jest wyższy niż do kolan, jeśli zamierzasz zdalnie kierować nielatające roboty przez wodę. + +Naciśnięcie klawisza \key;\key help;\norm; pozwala ponownie przejrzeć te instrukcje na Twoim osobistym komunikatorze SatCom \button 63;. + +\t;Zobacz również +\l;Sterowanie\u command; i \l;Język CBOT\u cbot; diff --git a/help/P/mhtropi4.txt b/help/P/mhtropi4.txt new file mode 100644 index 00000000..3e16d0dd --- /dev/null +++ b/help/P/mhtropi4.txt @@ -0,0 +1,13 @@ +\b;Z Centrum Kontroli Misji +Oto kolejny kurs szkoleniowy przygotowany przez Twoich poprzedników i przeznaczony tym razem do sprawdzenia możliwości strzeleckich \l;robotów latających\u object\botfj;. Dzięki niemu oswoisz się ze strzelaniem podczas latania. + +Przeleć szybko przez wszystkie cele i zestrzel 10 ładunków wybuchowych rozrzuconych wzdłuż trasy lotu. Spróbuj wykonać to ćwiczenie bez lądowania. Uważaj jednak na reaktor: jeśli się przegrzeje, wystarczy wylądować i poczekać aż ostygnie. + +Używaj jednej ręki do kierowanie robotem używając klawiatury, a drugiej do celowania i strzelania (lewym klawiszem) myszą. + +Możesz wrócić do tego ćwiczenia za jakiś czas, aby poprawić swój refleks. + +Naciśnięcie klawisza \key;\key help;\norm; pozwala ponownie przejrzeć te instrukcje na Twoim osobistym komunikatorze SatCom \button 63;. + +\t;Zobacz również +\l;Sterowanie\u command; i \l;Język CBOT\u cbot; diff --git a/help/P/mhtropi5.txt b/help/P/mhtropi5.txt new file mode 100644 index 00000000..e4109920 --- /dev/null +++ b/help/P/mhtropi5.txt @@ -0,0 +1,9 @@ +\b;Z Centrum Kontroli Misji +Znajdź i odzyskaj kolejną \l;czarną skrzynkę\u object\bbox; zostawioną przez poprzednią ekspedycję. + +Z danych satelity obserwacyjnego wynika, że znajduje się ona pod wodą. Woda jest nieszkodliwa, o ile masz założony hełm, ale pamiętaj, że nie możesz nosić pod wodą żadnych przedmiotów. W tym przypadku pomocny może być robot \l;nurek\u object\botsub;. + +Naciśnięcie klawisza \key;\key help;\norm; pozwala ponownie przejrzeć te instrukcje na Twoim osobistym komunikatorze SatCom \button 63;. + +\t;Zobacz również +\l;Sterowanie\u command; i \l;Język CBOT\u cbot; diff --git a/help/P/mhvolca1.txt b/help/P/mhvolca1.txt new file mode 100644 index 00000000..42034499 --- /dev/null +++ b/help/P/mhvolca1.txt @@ -0,0 +1,13 @@ +\b;Z Centrum Kontroli Misji +Twoim zadaniem jest odzyskanie \l;ładunku wybuchowego\u object\tnt;, znajdującego się w głębokiej dolinie, w pobliżu jeziora wrzącej lawy. + +Z powodu wysokiej temperatury, reaktory przestały działać, wobec czego nie jest możliwe latanie. Masz przed sobą długą drogę, dlatego roboty należy tym razem zaopatrzyć w \l;atomowe ogniwa elektryczne\u object\atomic;. Atomowe ogniwa elektryczne wytwarzane są z \l;rudy uranu\u object\uranore;. + +Do tej wiadomości został dołączony nieco skuteczniejszy program do zbierania surowców. + +Ostrzeżenie: ładunek wybuchowy jest niezwykle czuły. Zachowaj ostrożność. + +Naciśnięcie klawisza \key;\key help;\norm; pozwala ponownie przejrzeć te instrukcje na Twoim osobistym komunikatorze SatCom \button 63;. + +\t;Zobacz również +\l;Sterowanie\u command; i \l;Język CBOT\u cbot; diff --git a/help/P/mhvolca2.txt b/help/P/mhvolca2.txt new file mode 100644 index 00000000..622a559e --- /dev/null +++ b/help/P/mhvolca2.txt @@ -0,0 +1,17 @@ +\b;Z Centrum Kontroli Misji +Poprzednia ekspedycja dostarczyła pewnych informacji o \l;materii organicznej\u object\bullet; produkowanej prawdopodobnie przez \l;mrówki\u object\ant;. Otwiera ona przed Tobą nowe możliwości. Niewątpliwie pozwala na stworzenie nowego typu hybrydowego robota o zwiększonej wydajności, dzięki zastosowaniu fragmentów owadzich. + +Twoja misja polega na eksperymentowaniu z pierwszym praktycznym zastosowaniem "zielonego złota". Zbuduj \l;transporter na nogach\u object\botgs;, dostarcz go na statek kosmiczny i odleć. + +\b;Procedura +Zdobądź próbkę materii organicznej z gniazda olbrzymich mrówek. Jej analiza zostanie wykonana w \l;laboratorium\u object\labo;, które przeprowadzi również odpowiednie badania umożliwiające praktyczne zastosowanie. + +W celu poprawienia zdolności obronnych, przesłaliśmy program dla \l;robotów transporterów\u object\botgr;, który zajmie się wymianą i ładowaniem ogniwa elektrycznego \l;wieży obronnej\u object\tower; (zobacz \button 53; ). + +\b;Uwaga +Wobec znacznego spadku temperatury, latanie powinno już być możliwe. + +Naciśnięcie klawisza \key;\key help;\norm; pozwala ponownie przejrzeć te instrukcje na Twoim osobistym komunikatorze SatCom \button 63;. + +\t;Zobacz również +\l;Sterowanie\u command; i \l;Język CBOT\u cbot; diff --git a/help/P/mhvolca3.txt b/help/P/mhvolca3.txt new file mode 100644 index 00000000..8f1bf150 --- /dev/null +++ b/help/P/mhvolca3.txt @@ -0,0 +1,7 @@ +\b;Z Centrum Kontroli Misji +Ta planeta z pewnością nie nadaje się na kolonizację. Znajdź \l;czarną skrzynkę\u object\bbox; zostawioną przez poprzednią ekspedycję i odleć. + +Naciśnięcie klawisza \key;\key help;\norm; pozwala ponownie przejrzeć te instrukcje na Twoim osobistym komunikatorze SatCom \button 63;. + +\t;Zobacz również +\l;Sterowanie\u command; i \l;Język CBOT\u cbot; diff --git a/help/P/mhvolca4.txt b/help/P/mhvolca4.txt new file mode 100644 index 00000000..7e9a188d --- /dev/null +++ b/help/P/mhvolca4.txt @@ -0,0 +1,9 @@ +\b;Pilna wiadomość z Centrum Kontroli Misji +Podczas Twoich przygotowań do odlotu, otrzymaliśmy z satelity następującą informację: na Wulkanii został wykryty robot nieznanego typu. Spróbuj dostarczyć go na statek kosmiczny do dalszych badań. + +Nasi inżynierowie na Ziemi ostatnio znaleźli rozwiązanie, które umożliwi choć krótkie działanie reaktorów pomimo wysokiej temperatury. Dane te zostały przesłane do Ciebie. + +Naciśnięcie klawisza \key;\key help;\norm; pozwala ponownie przejrzeć te instrukcje na Twoim osobistym komunikatorze SatCom \button 63;. + +\t;Zobacz również +\l;Sterowanie\u command; i \l;Język CBOT\u cbot; diff --git a/help/P/mhvolca5.txt b/help/P/mhvolca5.txt new file mode 100644 index 00000000..15a98cd8 --- /dev/null +++ b/help/P/mhvolca5.txt @@ -0,0 +1,11 @@ +\b;Z Centrum Kontroli Misji +Jak zwykle gratulujemy dobrej roboty. + +Ta nowa broń jest kolejnym praktycznym zastosowaniem "zielonego złota", czyli \l;materii organicznej\u object\bullet; wytwarzanej przez owady. Nowy robot został nazwany \l;działem organicznym\u object\botoj;, bądź też robotem wyposażonym w działko organiczne. + +Na pewno będzie ono pomocne podczas Twojego powrotu na \l;statek kosmiczny\u object\base;. + +Naciśnięcie klawisza \key;\key help;\norm; pozwala ponownie przejrzeć te instrukcje na Twoim osobistym komunikatorze SatCom \button 63;. + +\t;Zobacz również +\l;Sterowanie\u command; i \l;Język CBOT\u cbot; diff --git a/help/P/mhvolca6.txt b/help/P/mhvolca6.txt new file mode 100644 index 00000000..e54e443f --- /dev/null +++ b/help/P/mhvolca6.txt @@ -0,0 +1,7 @@ +\b;Z Centrum Kontroli Misji +Przed opuszczeniem tej planety musisz odeprzeć ostatni atak mrówek. + +Naciśnięcie klawisza \key;\key help;\norm; pozwala ponownie przejrzeć te instrukcje na Twoim osobistym komunikatorze SatCom \button 63;. + +\t;Zobacz również +\l;Sterowanie\u command; i \l;Język CBOT\u cbot; diff --git a/help/P/micent1.txt b/help/P/micent1.txt new file mode 100644 index 00000000..55001066 --- /dev/null +++ b/help/P/micent1.txt @@ -0,0 +1,20 @@ +\b;Raport z satelity +Obecnie na orbicie geostacjonarnej planety Centuria. +\c; +\s;-> POWIERZCHNIA\c; +\tab;Temperatura: 23,4C +\tab;Atmosfera: tlen, azot, amoniak +\tab;Wiatr: 1,2 m/s +\tab;Ruda tytanu: trochę +\tab;Ruda uranu: trochę + +\s;-> PODGLEBIE\c; +\tab;Źródło energii: brak +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> DODATKOWE INFORMACJE\c; +\tab;Wykryto: olbrzymie mrówki +\tab; - Zagrożenie: niebezpośrednie +\tab;Wykryto: użyteczne pozostałości +\n; diff --git a/help/P/micent2.txt b/help/P/micent2.txt new file mode 100644 index 00000000..6adb1f77 --- /dev/null +++ b/help/P/micent2.txt @@ -0,0 +1,15 @@ +\b;Raport z satelity +Obecnie na orbicie geostacjonarnej planety Centuria. +\c; +\s;-> POWIERZCHNIA\c; +\tab;Temperatura: 25,4C +\tab;Atmosfera: tlen, azot, amoniak +\tab;Wiatr: 1,2 m/s +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> PODGLEBIE\c; +\tab;Źródło energii: brak +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak +\n; diff --git a/help/P/micent3.txt b/help/P/micent3.txt new file mode 100644 index 00000000..62c3d85c --- /dev/null +++ b/help/P/micent3.txt @@ -0,0 +1,22 @@ +\b;Raport z satelity +Obecnie na orbicie geostacjonarnej planety Centuria. +\c; +\s;-> POWIERZCHNIA\c; +\tab;Temperatura: 25,4C +\tab;Atmosfera: tlen, azot, amoniak +\tab;Wiatr: 0,7 m/s +\tab;Ruda tytanu: trochę +\tab;Ruda uranu: trochę + +\s;-> PODGLEBIE\c; +\tab;Źródło energii: brak +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> DODATKOWE INFORMACJE\c; +\tab;Wykryto: olbrzymie mrówki +\tab; - Zagrożenie: niebezpośrednie +\tab;Wykryto: pająki +\tab; - Zagrożenie: niebezpośrednie +\tab;Wykryto: użyteczne pozostałości +\n; diff --git a/help/P/micent4.txt b/help/P/micent4.txt new file mode 100644 index 00000000..5f127190 --- /dev/null +++ b/help/P/micent4.txt @@ -0,0 +1,20 @@ +\b;Raport z satelity +Obecnie na orbicie geostacjonarnej planety Centuria. +\c; +\s;-> POWIERZCHNIA\c; +\tab;Temperatura: 21,3C +\tab;Atmosfera: tlen, azot, amoniak +\tab;Wiatr: 1,9 m/s +\tab;Ruda tytanu: trochę +\tab;Ruda uranu: brak + +\s;-> PODGLEBIE\c; +\tab;Źródło energii: brak +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> DODATKOWE INFORMACJE\c; +\tab;Wykryto: olbrzymie mrówki +\tab; - Zagrożenie: niebezpośrednie +\tab;Wykryto: niezbyt użyteczne pozostałości +\n; diff --git a/help/P/micent5.txt b/help/P/micent5.txt new file mode 100644 index 00000000..d39b3e88 --- /dev/null +++ b/help/P/micent5.txt @@ -0,0 +1,19 @@ +\b;Raport z satelity +Obecnie na orbicie geostacjonarnej planety Centuria. +\c; +\s;-> POWIERZCHNIA\c; +\tab;Temperatura: 21,3C +\tab;Atmosfera: tlen, azot, amoniak +\tab;Wiatr: 1,9 m/s +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> PODGLEBIE\c; +\tab;Źródło energii: brak +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> DODATKOWE INFORMACJE\c; +\tab;Wykryto: olbrzymie mrówki +\tab; - Zagrożenie: bezpośrednie +\n; diff --git a/help/P/micrys1.txt b/help/P/micrys1.txt new file mode 100644 index 00000000..7a6425d3 --- /dev/null +++ b/help/P/micrys1.txt @@ -0,0 +1,19 @@ +\b;Raport z satelity +Obecnie na orbicie geostacjonarnej planety Krystalia. +\c; +\s;-> POWIERZCHNIA\c; +\tab;Temperatura: 5,4C +\tab;Atmosfera: azot +\tab;Wiatr: 0,0 m/s +\tab;Ruda tytanu: trochę +\tab;Ruda uranu: brak + +\s;-> PODGLEBIE\c; +\tab;Źródło energii: brak +\tab;Ruda tytanu: brak danych +\tab;Ruda uranu: brak + +\s;-> DODATKOWE INFORMACJE\c; +\tab;Wykryto: niezidentyfikowane organizmy +\tab; - Zagrożenie: ? +\n; diff --git a/help/P/micrys2.txt b/help/P/micrys2.txt new file mode 100644 index 00000000..79af3a3b --- /dev/null +++ b/help/P/micrys2.txt @@ -0,0 +1,19 @@ +\b;Raport z satelity +Obecnie na orbicie geostacjonarnej planety Krystalia. +\c; +\s;-> POWIERZCHNIA\c; +\tab;Temperatura: 3,2C +\tab;Atmosfera: azot +\tab;Wiatr: 0,0 m/s +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> PODGLEBIE\c; +\tab;Źródło energii: odizolowane (blisko statku kosmicznego) +\tab;Ruda tytanu: rozproszona +\tab;Ruda uranu: brak + +\s;-> DODATKOWE INFORMACJE\c; +\tab;Wykryto: robale +\tab; - Zagrożenie: nie +\n; diff --git a/help/P/micrys3.txt b/help/P/micrys3.txt new file mode 100644 index 00000000..d0b6b431 --- /dev/null +++ b/help/P/micrys3.txt @@ -0,0 +1,21 @@ +\b;Raport z satelity +Obecnie na orbicie geostacjonarnej planety Krystalia. +\c; +\s;-> POWIERZCHNIA\c; +\tab;Temperatura: 4,3C +\tab;Atmosfera: azot +\tab;Wiatr: 0,0 m/s +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> PODGLEBIE\c; +\tab;Źródło energii: brak +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> DODATKOWE INFORMACJE\c; +\tab;Wykryto: olbrzymie mrówki +\tab; - Zagrożenie: niebezpośrednie +\tab;Wykryto: nieznane organizmy +\tab; - Zagrożenie: ? +\n; diff --git a/help/P/micrys4.txt b/help/P/micrys4.txt new file mode 100644 index 00000000..1c32f5ca --- /dev/null +++ b/help/P/micrys4.txt @@ -0,0 +1,19 @@ +\b;Raport z satelity +Obecnie na orbicie geostacjonarnej planety Krystalia. +\c; +\s;-> POWIERZCHNIA\c; +\tab;Temperatura: 1,2C +\tab;Atmosfera: azot +\tab;Wiatr: 0,0 m/s +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> PODGLEBIE\c; +\tab;Źródło energii: brak +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> DODATKOWE INFORMACJE\c; +\tab;Wykryto: smog elektromagnetyczny +\tab;Wykryto: użyteczne pozostałości +\n; diff --git a/help/P/milune1.txt b/help/P/milune1.txt new file mode 100644 index 00000000..c9ac0e07 --- /dev/null +++ b/help/P/milune1.txt @@ -0,0 +1,18 @@ +\b;Raport z satelity +Obecnie na orbicie geostacjonarnej Księżyca. +\c; +\s;-> POWIERZCHNIA\c; +\tab;Temperatura: -53,1C +\tab;Atmosfera: brak +\tab;Wiatr: 0,0 m/s +\tab;Ruda tytanu: trochę +\tab;Ruda uranu: brak + +\s;-> PODGLEBIE\c; +\tab;Źródło energii: brak +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> DODATKOWE INFORMACJE\c; +\tab;W niektórych miejscach teren jest zbyt nierówny dla robotów na kołach. +\n; diff --git a/help/P/milune2.txt b/help/P/milune2.txt new file mode 100644 index 00000000..5bfde7cc --- /dev/null +++ b/help/P/milune2.txt @@ -0,0 +1,15 @@ +\b;Raport z satelity +Obecnie na orbicie geostacjonarnej Księżyca. +\c; +\s;-> POWIERZCHNIA\c; +\tab;Temperatura: -51,0C +\tab;Atmosfera: brak +\tab;Wiatr: 0,0 m/s +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> PODGLEBIE\c; +\tab;Źródło energii: brak +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak +\n; diff --git a/help/P/milune3.txt b/help/P/milune3.txt new file mode 100644 index 00000000..8b0ae2df --- /dev/null +++ b/help/P/milune3.txt @@ -0,0 +1,15 @@ +\b;Raport z satelity +Obecnie na orbicie geostacjonarnej Księżyca. +\c; +\s;-> POWIERZCHNIA\c; +\tab;Temperatura: -58,9C +\tab;Atmosfera: brak +\tab;Wiatr: 0,0 m/s +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> PODGLEBIE\c; +\tab;Źródło energii: brak +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak +\n; diff --git a/help/P/milune4.txt b/help/P/milune4.txt new file mode 100644 index 00000000..47923ced --- /dev/null +++ b/help/P/milune4.txt @@ -0,0 +1,15 @@ +\b;Raport z satelity +Obecnie na orbicie geostacjonarnej Księżyca. +\c; +\s;-> POWIERZCHNIA\c; +\tab;Temperatura: -38,2C +\tab;Atmosfera: brak +\tab;Wiatr: 0,0 m/s +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> PODGLEBIE\c; +\tab;Źródło energii: wszędzie +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak +\n; diff --git a/help/P/miorph1.txt b/help/P/miorph1.txt new file mode 100644 index 00000000..80448b77 --- /dev/null +++ b/help/P/miorph1.txt @@ -0,0 +1,20 @@ +\b;Raport z satelity +Obecnie na orbicie geostacjonarnej planety Orfenia. +\c; +\s;-> POWIERZCHNIA\c; +\tab;Temperatura: -72,8C +\tab;Atmosfera: brak +\tab;Wiatr: 0,0 m/s +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> PODGLEBIE\c; +\tab;Źródło energii: brak +\tab;Ruda tytanu: trochę (niebieska flaga) +\tab;Ruda uranu: brak + +\s;-> DODATKOWE INFORMACJE\c; +\tab;Wykryto: olbrzymie mrówki +\tab; - Zagrożenie: niebezpośrednie +\tab;Wykryto: gwałtowne burze elektromagnetyczne +\n; diff --git a/help/P/miorph2.txt b/help/P/miorph2.txt new file mode 100644 index 00000000..5e6df9b4 --- /dev/null +++ b/help/P/miorph2.txt @@ -0,0 +1,20 @@ +\b;Raport z satelity +Obecnie na orbicie geostacjonarnej planety Orfenia. +\c; +\s;-> POWIERZCHNIA\c; +\tab;Temperatura: -64,7C +\tab;Atmosfera: brak +\tab;Wiatr: 0,0 m/s +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> PODGLEBIE\c; +\tab;Źródło energii: brak +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> DODATKOWE INFORMACJE\c; +\tab;Wykryto: olbrzymie mrówki +\tab; - Zagrożenie: niebezpośrednie +\tab;Wykryto: gwałtowne burze elektromagnetyczne +\n; diff --git a/help/P/misaari1.txt b/help/P/misaari1.txt new file mode 100644 index 00000000..146dc35a --- /dev/null +++ b/help/P/misaari1.txt @@ -0,0 +1,20 @@ +\b;Raport z satelity +Obecnie na orbicie geostacjonarnej planety Saari. +\c; +\s;-> POWIERZCHNIA\c; +\tab;Temperatura: 41,3C +\tab;Atmosfera: CO2, tlen, azot +\tab;Wiatr: 2,3 m/s +\tab;Ruda tytanu: brak +\tab;Ruda uranu: trochę (wierzchołek góry) + +\s;-> PODGLEBIE\c; +\tab;Źródło energii: wszędzie +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> DODATKOWE INFORMACJE\c; +\tab;Wykryto: użyteczne pozostałości +\tab;Wykryto: olbrzymie mrówki +\tab; - Zagrożenie: niebezpośrednie +\n; diff --git a/help/P/misaari2.txt b/help/P/misaari2.txt new file mode 100644 index 00000000..9b530c89 --- /dev/null +++ b/help/P/misaari2.txt @@ -0,0 +1,19 @@ +\b;Raport z satelity +Obecnie na orbicie geostacjonarnej planety Saari. +\c; +\s;-> POWIERZCHNIA\c; +\tab;Temperatura: 38,4C +\tab;Atmosfera: CO2, tlen, azot +\tab;Wiatr: 1,4 m/s +\tab;Ruda tytanu: trochę +\tab;Ruda uranu: brak + +\s;-> PODGLEBIE\c; +\tab;Źródło energii: wszędzie +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> DODATKOWE INFORMACJE\c; +\tab;Wykryto: zbliżające się olbrzymie mrówki +\tab; - Zagrożenie: tak, bezpośrednie +\n; diff --git a/help/P/misaari3.txt b/help/P/misaari3.txt new file mode 100644 index 00000000..fde72a4b --- /dev/null +++ b/help/P/misaari3.txt @@ -0,0 +1,20 @@ +\b;Raport z satelity +Obecnie na orbicie geostacjonarnej planety Saari. +\c; +\s;-> POWIERZCHNIA\c; +\tab;Temperatura: 44,3C +\tab;Atmosfera: CO2, tlen, azot +\tab;Wiatr: 2,3 m/s +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> PODGLEBIE\c; +\tab;Źródło energii: brak +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> DODATKOWE INFORMACJE\c; +\tab;Wykryto: użyteczne pozostałości +\tab;Wykryto: olbrzymie mrówki +\tab; - Zagrożenie: ? +\n; diff --git a/help/P/miterra1.txt b/help/P/miterra1.txt new file mode 100644 index 00000000..75883423 --- /dev/null +++ b/help/P/miterra1.txt @@ -0,0 +1,22 @@ +\b;Raport z satelity +Obecnie na orbicie geostacjonarnej Nowej Ziemi. +\c; +\s;-> POWIERZCHNIA\c; +\tab;Temperatura: 24,8C +\tab;Atmosfera: tlen +\tab;Wiatr: 0,7 m/s +\tab;Ruda tytanu: pod wodą +\tab;Ruda uranu: brak + +\s;-> PODGLEBIE\c; +\tab;Źródło energii: w niektórych miejscach +\tab;Ruda tytanu: brak +\tab;Ruda uranu: trochę + +\s;-> DODATKOWE INFORMACJE\c; +\tab;Wykryto: olbrzymie mrówki +\tab; - Zagrożenie: bezpośrednie +\tab;Wykryto: olbrzymie osy +\tab; - Zagrożenie: niebezpośrednie +\tab;Wykryto: użyteczne pozostałości +\n; diff --git a/help/P/miterra2.txt b/help/P/miterra2.txt new file mode 100644 index 00000000..38d9c9b9 --- /dev/null +++ b/help/P/miterra2.txt @@ -0,0 +1,19 @@ +\b;Raport z satelity +Obecnie na orbicie geostacjonarnej Nowej Ziemi. +\c; +\s;-> POWIERZCHNIA\c; +\tab;Temperatura: 24,3C +\tab;Atmosfera: tlen +\tab;Wiatr: 0,8 m/s +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> PODGLEBIE\c; +\tab;Źródło energii: brak +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> DODATKOWE INFORMACJE\c; +\tab;Wykryto: olbrzymie mrówki +\tab; - Zagrożenie: bezpośrednie +\n; diff --git a/help/P/miterra3.txt b/help/P/miterra3.txt new file mode 100644 index 00000000..2e659f21 --- /dev/null +++ b/help/P/miterra3.txt @@ -0,0 +1,21 @@ +\b;Raport z satelity +Obecnie na orbicie geostacjonarnej Nowej Ziemi. +\c; +\s;-> POWIERZCHNIA\c; +\tab;Temperatura: 26,1C +\tab;Atmosfera: tlen +\tab;Wiatr: 0,4 m/s +\tab;Ruda tytanu: trochę +\tab;Ruda uranu: trochę + +\s;-> PODGLEBIE\c; +\tab;Źródło energii: brak +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> DODATKOWE INFORMACJE\c; +\tab;Wykryto: olbrzymie mrówki +\tab; - Zagrożenie: bezpośrednie +\tab;Wykryto: olbrzymie osy +\tab; - Zagrożenie: bezpośrednie +\n; diff --git a/help/P/miterra4.txt b/help/P/miterra4.txt new file mode 100644 index 00000000..475ee441 --- /dev/null +++ b/help/P/miterra4.txt @@ -0,0 +1,21 @@ +\b;Raport z satelity +Obecnie na orbicie geostacjonarnej Nowej Ziemi. +\c; +\s;-> POWIERZCHNIA\c; +\tab;Temperatura: 23,7C +\tab;Atmosfera: tlen +\tab;Wiatr: 0,5 m/s +\tab;Ruda tytanu: trochę +\tab;Ruda uranu: trochę + +\s;-> PODGLEBIE\c; +\tab;Źródło energii: w niektórych miejscach (statek kosmiczny) +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> DODATKOWE INFORMACJE\c; +\tab;Wykryto: olbrzymie mrówki +\tab; - Zagrożenie: bezpośrednie +\tab;Wykryto: gniazdo olbrzymich jaj +\tab; - Zagrożenie: ? +\n; diff --git a/help/P/mitropi1.txt b/help/P/mitropi1.txt new file mode 100644 index 00000000..b76a8345 --- /dev/null +++ b/help/P/mitropi1.txt @@ -0,0 +1,21 @@ +\b;Raport z satelity +Obecnie na orbicie geostacjonarnej planety Tropika. +\c; +\s;-> POWIERZCHNIA\c; +\tab;Temperatura: 32,4C +\tab;Atmosfera: hel, tlen +\tab;Wiatr: 1,2 m/s +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> PODGLEBIE\c; +\tab;Źródło energii: brak +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> DODATKOWE INFORMACJE\c; +\tab;Wykryto: materiały wybuchowe +\tab; - Typ: nieznany +\tab;Wykryto: niezidentyfikowane organizmy +\tab; - Zagrożenie: ? +\n; diff --git a/help/P/mitropi3.txt b/help/P/mitropi3.txt new file mode 100644 index 00000000..02014e52 --- /dev/null +++ b/help/P/mitropi3.txt @@ -0,0 +1,20 @@ +\b;Raport z satelity +Obecnie na orbicie geostacjonarnej planety Tropika. +\c; +\s;-> POWIERZCHNIA\c; +\tab;Temperatura: 29,6C +\tab;Atmosfera: hel, tlen +\tab;Wiatr: 1,5 m/s +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> PODGLEBIE\c; +\tab;Źródło energii: odizolowane (niebieska flaga) +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> DODATKOWE INFORMACJE\c; +\tab;Wykryto: olbrzymie mrówki +\tab; - Zagrożenie: niebezpośrednie +\tab;Wykryto: użyteczne pozostałości +\n; diff --git a/help/P/mitropi4.txt b/help/P/mitropi4.txt new file mode 100644 index 00000000..9b2db09b --- /dev/null +++ b/help/P/mitropi4.txt @@ -0,0 +1,15 @@ +\b;Raport z satelity +Obecnie na orbicie geostacjonarnej planety Tropika. +\c; +\s;-> POWIERZCHNIA\c; +\tab;Temperatura: 32,2C +\tab;Atmosfera: hel, tlen +\tab;Wiatr: 0,7 m/s +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> PODGLEBIE\c; +\tab;Źródło energii: brak +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak +\n; diff --git a/help/P/mitropi5.txt b/help/P/mitropi5.txt new file mode 100644 index 00000000..939c139b --- /dev/null +++ b/help/P/mitropi5.txt @@ -0,0 +1,21 @@ +\b;Raport z satelity +Obecnie na orbicie geostacjonarnej planety Tropika. +\c; +\s;-> POWIERZCHNIA\c; +\tab;Temperatura: 29,4C +\tab;Atmosfera: hel, tlen +\tab;Wiatr: 0,3 m/s +\tab;Ruda tytanu: trochę +\tab;Ruda uranu: brak + +\s;-> PODGLEBIE\c; +\tab;Źródło energii: brak +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> DODATKOWE INFORMACJE\c; +\tab;Wykryto: rudę tytanu +\tab; - Wymagana: huta +\tab;Wykryto: rozproszone pozostałości +\tab;Wykryto: czarną skrzynkę (pod wodą) +\n; diff --git a/help/P/mivolca1.txt b/help/P/mivolca1.txt new file mode 100644 index 00000000..f1b74ac9 --- /dev/null +++ b/help/P/mivolca1.txt @@ -0,0 +1,20 @@ +\b;Raport z satelity +Obecnie na orbicie geostacjonarnej planety Wulkania. +\c; +\s;-> POWIERZCHNIA\c; +\tab;Temperatura: 84,6C +\tab;Atmosfera: CO2, SO2, HCN, HS, CH4, NH3 +\tab;Wiatr: 2,2 m/s +\tab;Ruda tytanu: wszędzie +\tab;Ruda uranu: trochę + +\s;-> PODGLEBIE\c; +\tab;Źródło energii: wszędzie +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> DODATKOWE INFORMACJE\c; +\tab;Wykryto: użyteczne pozostałości +\tab;Wykryto: nieznane organizmy +\tab; - Zagrożenie: ? +\n; diff --git a/help/P/mivolca2.txt b/help/P/mivolca2.txt new file mode 100644 index 00000000..0e552745 --- /dev/null +++ b/help/P/mivolca2.txt @@ -0,0 +1,21 @@ +\b;Raport z satelity +Obecnie na orbicie geostacjonarnej planety Wulkania. +\c; +\s;-> POWIERZCHNIA\c; +\tab;Temperatura: 53,1C +\tab;Atmosfera: CO2, SO2, HCN, HS, CH4, NH3 +\tab;Wiatr: 0,3 m/s +\tab;Ruda tytanu: trochę +\tab;Ruda uranu: mało + +\s;-> PODGLEBIE\c; +\tab;Źródło energii: wszędzie +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> DODATKOWE INFORMACJE\c; +\tab;Wykryto: olbrzymie mrówki +\tab; - Zagrożenie: niebezpośrednie +\tab;Wykryto: nieznane organizmy latające +\tab; - Zagrożenie: tak, bezpośrednie +\n; diff --git a/help/P/mivolca3.txt b/help/P/mivolca3.txt new file mode 100644 index 00000000..4f506c82 --- /dev/null +++ b/help/P/mivolca3.txt @@ -0,0 +1,19 @@ +\b;Raport z satelity +Obecnie na orbicie geostacjonarnej planety Wulkania. +\c; +\s;-> POWIERZCHNIA\c; +\tab;Temperatura: 83,5C +\tab;Atmosfera: CO2, SO2, HCN, HS, CH4, NH3 +\tab;Wiatr: 3,4 m/s +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> PODGLEBIE\c; +\tab;Źródło energii: wszędzie +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> DODATKOWE INFORMACJE\c; +\tab;Wykryto: olbrzymie mrówki +\tab; - Zagrożenie: niebezpośrednie +\n; diff --git a/help/P/mivolca4.txt b/help/P/mivolca4.txt new file mode 100644 index 00000000..b5951445 --- /dev/null +++ b/help/P/mivolca4.txt @@ -0,0 +1,21 @@ +\b;Raport z satelity +Obecnie na orbicie geostacjonarnej planety Wulkania. +\c; +\s;-> POWIERZCHNIA\c; +\tab;Temperatura: 96,7C +\tab;Atmosfera: CO2, SO2, HCN, HS, CH4, NH3 +\tab;Wiatr: 2,8 m/s +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> PODGLEBIE\c; +\tab;Źródło energii: brak +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> DODATKOWE INFORMACJE\c; +\tab;Wykryto: robot +\tab; - Typ: nieznany +\tab;Wykryto: olbrzymie mrówki +\tab; - Zagrożenie: niebezpośrednie +\n; diff --git a/help/P/mivolca5.txt b/help/P/mivolca5.txt new file mode 100644 index 00000000..6f885f02 --- /dev/null +++ b/help/P/mivolca5.txt @@ -0,0 +1,21 @@ +\b;Raport z satelity +Obecnie na orbicie geostacjonarnej planety Wulkania. +\c; +\s;-> POWIERZCHNIA\c; +\tab;Temperatura: 96,6C +\tab;Atmosfera: CO2, SO2, HCN, HS, CH4, NH3 +\tab;Wiatr: 2,7 m/s +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> PODGLEBIE\c; +\tab;Źródło energii: brak +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> DODATKOWE INFORMACJE\c; +\tab;Wykryto: olbrzymie mrówki +\tab; - Zagrożenie: bezpośrednie +\tab;Wykryto: olbrzymie pająki +\tab; - Zagrożenie: niebezpośrednie +\n; diff --git a/help/P/mivolca6.txt b/help/P/mivolca6.txt new file mode 100644 index 00000000..46aaa5dc --- /dev/null +++ b/help/P/mivolca6.txt @@ -0,0 +1,19 @@ +\b;Raport z satelity +Obecnie na orbicie geostacjonarnej planety Wulkania. +\c; +\s;-> POWIERZCHNIA\c; +\tab;Temperatura: 96,6C +\tab;Atmosfera: CO2, SO2, HCN, HS, CH4, NH3 +\tab;Wiatr: 2,7 m/s +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> PODGLEBIE\c; +\tab;Źródło energii: brak +\tab;Ruda tytanu: brak +\tab;Ruda uranu: brak + +\s;-> DODATKOWE INFORMACJE\c; +\tab;Wykryto: olbrzymie mrówki +\tab; - Zagrożenie: bezpośrednie +\n; diff --git a/help/P/mlcent1.txt b/help/P/mlcent1.txt new file mode 100644 index 00000000..945ce924 --- /dev/null +++ b/help/P/mlcent1.txt @@ -0,0 +1,15 @@ +\b;Programy przysłane z Houston +Nie napisaliśmy żadnego programu specjalnie dla tej misji. Jednakże możesz napisać własny program, jeśli uważasz, że przyda się on podczas tej misji. + +\b;Archiwum +Lista programów przysłanych w poprzednich misjach: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/P/mlcent2.txt b/help/P/mlcent2.txt new file mode 100644 index 00000000..945ce924 --- /dev/null +++ b/help/P/mlcent2.txt @@ -0,0 +1,15 @@ +\b;Programy przysłane z Houston +Nie napisaliśmy żadnego programu specjalnie dla tej misji. Jednakże możesz napisać własny program, jeśli uważasz, że przyda się on podczas tej misji. + +\b;Archiwum +Lista programów przysłanych w poprzednich misjach: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/P/mlcent3.txt b/help/P/mlcent3.txt new file mode 100644 index 00000000..945ce924 --- /dev/null +++ b/help/P/mlcent3.txt @@ -0,0 +1,15 @@ +\b;Programy przysłane z Houston +Nie napisaliśmy żadnego programu specjalnie dla tej misji. Jednakże możesz napisać własny program, jeśli uważasz, że przyda się on podczas tej misji. + +\b;Archiwum +Lista programów przysłanych w poprzednich misjach: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/P/mlcent4.txt b/help/P/mlcent4.txt new file mode 100644 index 00000000..945ce924 --- /dev/null +++ b/help/P/mlcent4.txt @@ -0,0 +1,15 @@ +\b;Programy przysłane z Houston +Nie napisaliśmy żadnego programu specjalnie dla tej misji. Jednakże możesz napisać własny program, jeśli uważasz, że przyda się on podczas tej misji. + +\b;Archiwum +Lista programów przysłanych w poprzednich misjach: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/P/mlcent5.txt b/help/P/mlcent5.txt new file mode 100644 index 00000000..945ce924 --- /dev/null +++ b/help/P/mlcent5.txt @@ -0,0 +1,15 @@ +\b;Programy przysłane z Houston +Nie napisaliśmy żadnego programu specjalnie dla tej misji. Jednakże możesz napisać własny program, jeśli uważasz, że przyda się on podczas tej misji. + +\b;Archiwum +Lista programów przysłanych w poprzednich misjach: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/P/mlcrys1.txt b/help/P/mlcrys1.txt new file mode 100644 index 00000000..7b4c2a34 --- /dev/null +++ b/help/P/mlcrys1.txt @@ -0,0 +1,29 @@ +\b;Programy przysłane z Houston +Poniżej znajdziesz jeden z programów napisanych przez naszych inżynierów. +Poleca on \l;transporterowi\u object\botgr; wziąć najbliższą porcję \l;rudy \u object\titanore; i dostarczyć ją do \l;huty\u object\convert;. + +Aby uruchomić ten program, zaznacz program \c;CollectTitanium1\n; na liście dostępnych dla robota programów (w lewej dolnej części ekranu), a następnie kliknij symbol strzałki \button 21;. W każdej chwili można zatrzymać program i przejąć nad nim kontrolę, klikając przycisk stop \button 8;. +\c; +\s;extern void object::CollectTitanium1() +\s;{ +\s; // 1) Definicja zmiennej +\s; \l;object\u cbot\type; item; // informacja o obiekcie +\s; +\s; // 2) Idź do rudy tytanu i podnieś ją +\s; item = \l;radar\u cbot\radar;(\l;TitaniumOre\u cbot\category;);// znajdź rudę tytanu +\s; \l;goto\u cbot\goto;(item.position); // idź do pozycji +\s; \l;grab\u cbot\grab;(); // podnieś porcję rudy +\s; +\s; // 3) Idź do huty i zostaw rudę +\s; item = \l;radar\u cbot\radar;(\l;Converter\u cbot\category;); // znajdź hutę +\s; \l;goto\u cbot\goto;(item.position); // idź do pozycji +\s; \l;drop\u cbot\drop;(); // zostaw rudę +\s; \l;move\u cbot\move;(-2.5); // cofnij się o 2,5 m +\s;} +\n; +\b;Archiwum +Lista programów przysłanych w poprzednich misjach: + +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/P/mlcrys2.txt b/help/P/mlcrys2.txt new file mode 100644 index 00000000..2be9df8f --- /dev/null +++ b/help/P/mlcrys2.txt @@ -0,0 +1,38 @@ +\b;Programy przysłane z Houston +Poniżej znajdziesz jeden z programów napisanych przez naszych inżynierów. +Poprzedni program został usprawniony: jeśli to konieczne \l;transporter\u object\botgr; w drodze powrotnej odwiedza \l;stację energetyczną\u object\station; w celu naładowania ogniwa elektrycznego. + +Program ten działa również na \l;transporterze latającym\u object\botgj;, co może być konieczne jeśli \l;kopalnia\u object\derrick; jest na innej wyspie niż \l;huta\u object\convert;. +\c; +\s;extern void object::CollectTitanium2() +\s;{ +\s; // 1) Definicja zmiennej +\s; \l;object\u cbot\type; item; // informacja o obiekcie +\s; +\s; // 2) Idź do rudy tytanu i podnieś ją +\s; item = \l;radar\u cbot\radar;(\l;TitaniumOre\u cbot\category;);// znajdź rudę tytanu +\s; \l;goto\u cbot\goto;(item.position); // idź do pozycji +\s; \l;grab\u cbot\grab;(); // podnieś porcję rudy +\s; +\s; // 3) Idź do huty i zostaw rudę +\s; item = \l;radar\u cbot\radar;(\l;Converter\u cbot\category;); // znajdź hutę +\s; \l;goto\u cbot\goto;(item.position); // idź do pozycji +\s; \l;drop\u cbot\drop;(); // zostaw rudę +\s; \l;move\u cbot\move;(-2.5); // cofnij się o 2,5 m +\s; +\s; // 4) Naładuj ogniwo elektryczne, jeśli jest w połowie zużyte +\s; if ( energyCell.energyLevel < 0.5 ) +\s; { // jeśli tak: +\s; item = \l;radar\u cbot\radar;(\l;PowerStation\u cbot\category;); // znajdź stację energetyczną +\s; \l;goto\u cbot\goto;(item.position); // idź tam +\s; \l;wait\u cbot\wait;(5); // poczekaj +\s; } +\s;} +\n; +\b;Archiwum +Lista programów przysłanych w poprzednich misjach: + +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/P/mlcrys3.txt b/help/P/mlcrys3.txt new file mode 100644 index 00000000..127c7088 --- /dev/null +++ b/help/P/mlcrys3.txt @@ -0,0 +1,11 @@ +\b;Programy przysłane z Houston +Nie napisaliśmy żadnego programu specjalnie dla tej misji. Jednakże możesz napisać własny program, jeśli uważasz, że przyda się on podczas tej misji. + +\b;Archiwum +Lista programów przysłanych w poprzednich misjach: + +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/P/mlcrys4.txt b/help/P/mlcrys4.txt new file mode 100644 index 00000000..127c7088 --- /dev/null +++ b/help/P/mlcrys4.txt @@ -0,0 +1,11 @@ +\b;Programy przysłane z Houston +Nie napisaliśmy żadnego programu specjalnie dla tej misji. Jednakże możesz napisać własny program, jeśli uważasz, że przyda się on podczas tej misji. + +\b;Archiwum +Lista programów przysłanych w poprzednich misjach: + +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/P/mllune1.txt b/help/P/mllune1.txt new file mode 100644 index 00000000..c116dd9d --- /dev/null +++ b/help/P/mllune1.txt @@ -0,0 +1,17 @@ +\b;Programy przysłane z Houston +Poniżej znajdziesz jeden z programów napisanych przez naszych inżynierów. Umożliwia on prostszą wymianę \l;ogniw elektrycznych\u object\power;. Naładowane ogniwo elektryczne powinno znajdować się przed robotem, na ziemi. + +Aby uruchomić ten program, zaznacz program \c;SwitchCell1\n; na liście dostępnych dla robota programów (w lewej dolnej części ekranu), a następnie kliknij symbol strzałki \button 21;. +\c; +\s;extern void object::SwitchCell1() +\s;{ +\s; \l;grab\u cbot\grab;(InFront); // podnieś nowe ogniwo z przodu +\s; \l;drop\u cbot\drop;(Behind); // i zostaw je z tyłu +\s; +\s; \l;grab\u cbot\grab;(EnergyCell); // wyjmij ogniwo z robota +\s; \l;drop\u cbot\drop;(InFront); // i zostaw je z przodu +\s; +\s; \l;grab\u cbot\grab;(Behind); // podnieś nowe ogniwo +\s; \l;drop\u cbot\drop;(EnergyCell); // i włóż je do robota +\s;} +\n; diff --git a/help/P/mllune2.txt b/help/P/mllune2.txt new file mode 100644 index 00000000..35bf533e --- /dev/null +++ b/help/P/mllune2.txt @@ -0,0 +1,7 @@ +\b;Programy przysłane z Houston +Nie napisaliśmy żadnego programu specjalnie dla tej misji. Jednakże możesz napisać własny program, jeśli uważasz, że przyda się on podczas tej misji. + +\b;Archiwum +Lista programów przysłanych w poprzednich misjach: + +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/P/mllune3.txt b/help/P/mllune3.txt new file mode 100644 index 00000000..35bf533e --- /dev/null +++ b/help/P/mllune3.txt @@ -0,0 +1,7 @@ +\b;Programy przysłane z Houston +Nie napisaliśmy żadnego programu specjalnie dla tej misji. Jednakże możesz napisać własny program, jeśli uważasz, że przyda się on podczas tej misji. + +\b;Archiwum +Lista programów przysłanych w poprzednich misjach: + +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/P/mllune4.txt b/help/P/mllune4.txt new file mode 100644 index 00000000..8e5919ff --- /dev/null +++ b/help/P/mllune4.txt @@ -0,0 +1,23 @@ +\b;Programy przysłane z Houston +Poniżej znajdziesz jeden z programów napisanych przez naszych inżynierów. Umożliwia on naładowanie \l;ogniwa elektrycznego\u object\power; robota: idzie on do najbliższej \l;stacji energetycznej\u object\station;, czeka 5 sekund, a następnie wraca do pozycji wyjściowej. + +Wskazówka: Kliknięcie elementu programu podkreślonego na niebiesko spowoduje wyświetlenie tekstu opisującego ten element na komunikatorze SatCom. Teksty po podwójnych ukośnikach \c;//\n; nie są częścią programu ale komentarzem pozwalającym na lepsze zrozumienie programu. +\c; +\s;extern void object::Recharge1() +\s;{ +\s; \l;point\u cbot\type; start; // zmienna pozycji startowej +\s; \l;object\u cbot\type; item; // informacja o stacji energetycznej +\s; +\s; start = position; // zachowaj pozycję startową +\s; +\s; item = \l;radar\u cbot\radar;(\l;PowerStation\u cbot\category;); // znajdź stację +\s; \l;goto\u cbot\goto;(item.position); // idź do stacji +\s; \l;wait\u cbot\wait;(5); // poczekaj 5 sekund +\s; +\s; \l;goto\u cbot\goto;(start); // wróć do pozycji startowej +\s;} +\n; +\b;Archiwum +Lista programów przysłanych w poprzednich misjach: + +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/P/mlnull.txt b/help/P/mlnull.txt new file mode 100644 index 00000000..b68188cd --- /dev/null +++ b/help/P/mlnull.txt @@ -0,0 +1,3 @@ +\b;Programy przysłane z Houston +Nie przysłano żadnego programu. +Jeśli uważasz, że napisanie programu pomoże Ci w wypełnieniu tej misji, nie krępuj się, ale możesz liczyć tylko na siebie. diff --git a/help/P/mlorph1.txt b/help/P/mlorph1.txt new file mode 100644 index 00000000..945ce924 --- /dev/null +++ b/help/P/mlorph1.txt @@ -0,0 +1,15 @@ +\b;Programy przysłane z Houston +Nie napisaliśmy żadnego programu specjalnie dla tej misji. Jednakże możesz napisać własny program, jeśli uważasz, że przyda się on podczas tej misji. + +\b;Archiwum +Lista programów przysłanych w poprzednich misjach: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/P/mlorph2.txt b/help/P/mlorph2.txt new file mode 100644 index 00000000..24ff19e3 --- /dev/null +++ b/help/P/mlorph2.txt @@ -0,0 +1,14 @@ +\b;Programy przysłane z Houston +Nie napisaliśmy żadnego programu specjalnie dla tej misji. Jednakże możesz napisać własny program, jeśli uważasz, że przyda się on podczas tej misji. + +\b;Archiwum +Lista programów przysłanych w poprzednich misjach: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/P/mlsaari1.txt b/help/P/mlsaari1.txt new file mode 100644 index 00000000..127c7088 --- /dev/null +++ b/help/P/mlsaari1.txt @@ -0,0 +1,11 @@ +\b;Programy przysłane z Houston +Nie napisaliśmy żadnego programu specjalnie dla tej misji. Jednakże możesz napisać własny program, jeśli uważasz, że przyda się on podczas tej misji. + +\b;Archiwum +Lista programów przysłanych w poprzednich misjach: + +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/P/mlsaari2.txt b/help/P/mlsaari2.txt new file mode 100644 index 00000000..2f564bb0 --- /dev/null +++ b/help/P/mlsaari2.txt @@ -0,0 +1,31 @@ +\b;Programy przysłane z Houston +Uruchom natychmiast program \c;KillAnt1\n; na Twoim \l;dziale na kołach\u object\botfr;, zabezpieczy on Twoją zachodnią flankę. W międzyczasie możesz opracować strategię obrony. +\c; +\s;extern void object::KillAnt1() +\s;{ +\s; \l;object\u cbot\type; item; // informacja o obiekcie +\s; +\s; \l;goto\u cbot\goto;(-30, 0); // idź na zachód +\s; \l;aim\u cbot\aim;(0); // celuj w poziomie +\s; +\s; \l;while\u cbot\while; ( true ) // powtarzaj w nieskończoność: +\s; { +\s; item = \l;radar\u cbot\radar;(\l;AlienAnt\u cbot\category;, 0, 360, 0, 40); +\s; \l;if\u cbot\if; ( item != null ) // wykryto mrówkę? +\s; { +\s; \l;turn\u cbot\turn;(\l;direction\u cbot\direct;(item.position)); +\s; \l;fire\u cbot\fire;(0.5); // strzelaj przez 0,5 s +\s; } +\s; \l;wait\u cbot\wait;(1); // czekaj 1 sekundę +\s; } +\s;} +\n; +\b;Archiwum +Lista programów przysłanych w poprzednich misjach: + +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/P/mlsaari3.txt b/help/P/mlsaari3.txt new file mode 100644 index 00000000..0aea594d --- /dev/null +++ b/help/P/mlsaari3.txt @@ -0,0 +1,12 @@ +\b;Programy przysłane z Houston +Nie napisaliśmy żadnego programu specjalnie dla tej misji. Jednakże możesz napisać własny program, jeśli uważasz, że przyda się on podczas tej misji. + +\b;Archiwum +Lista programów przysłanych w poprzednich misjach: + +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/P/mlterra1.txt b/help/P/mlterra1.txt new file mode 100644 index 00000000..d1b12c2f --- /dev/null +++ b/help/P/mlterra1.txt @@ -0,0 +1,30 @@ +\b;Programy przysłane z Houston +Zgodnie z danymi dostarczonymi przez satelitę, nasi inżynierowie napisali dwa programy. Pierwszy z nich prowadzi \l;robota osłaniacza\u object\botshld; przez wąską dolinę na północ, w pobliże klucza. Możesz za nim iść nie obawiając się żadnego ataku: +\c; +\s;extern void object::Outward() +\s;{ +\s; \l;shield\u cbot\shield;(1,15); // uaktywnij osłonę +\s; \l;goto\u cbot\goto;(6,160); // podejdź do klucza +\s; \l;shield\u cbot\shield;(0,15); // wyłącz osłonę +\s;} +\n; +Drugi program kieruje \l;robota osłaniacza\u object\botshld; z powrotem do \l;statku kosmicznego\u object\base;: +\c; +\s;extern void object::Return() +\s;{ +\s; \l;shield\u cbot\shield;(1,15); // uaktywnij osłonę +\s; \l;goto\u cbot\goto;(8,60); // wróć na statek kosmiczny +\s; \l;shield\u cbot\shield;(0,15); // wyłącz osłonę +\s;} +\n; +\b;Archiwum +Lista programów przysłanych w poprzednich misjach: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/P/mlterra2.txt b/help/P/mlterra2.txt new file mode 100644 index 00000000..24ff19e3 --- /dev/null +++ b/help/P/mlterra2.txt @@ -0,0 +1,14 @@ +\b;Programy przysłane z Houston +Nie napisaliśmy żadnego programu specjalnie dla tej misji. Jednakże możesz napisać własny program, jeśli uważasz, że przyda się on podczas tej misji. + +\b;Archiwum +Lista programów przysłanych w poprzednich misjach: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/P/mlterra3.txt b/help/P/mlterra3.txt new file mode 100644 index 00000000..24ff19e3 --- /dev/null +++ b/help/P/mlterra3.txt @@ -0,0 +1,14 @@ +\b;Programy przysłane z Houston +Nie napisaliśmy żadnego programu specjalnie dla tej misji. Jednakże możesz napisać własny program, jeśli uważasz, że przyda się on podczas tej misji. + +\b;Archiwum +Lista programów przysłanych w poprzednich misjach: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/P/mlterra4.txt b/help/P/mlterra4.txt new file mode 100644 index 00000000..6076c65f --- /dev/null +++ b/help/P/mlterra4.txt @@ -0,0 +1,50 @@ +\b;Programy przysłane z Houston +Poniżej znajdziesz jeden z programów napisanych przez naszych inżynierów. + +Poleca on \l;osłaniaczowi\u object\botshld; śledzenie i ochronę \l;działa fazowego\u object\botphaz;. +\c; +\s;extern void object::FollowPhazer() +\s;{ +\s; \l;object\u cbot\type; item; // informacje o dziale fazowym +\s; \l;point\u cbot\type; dest; // pozycja docelowa +\s; \l;float\u cbot\type; dist; // odległość do działa fazowego +\s; +\s; item = \l;radar\u cbot\radar;(\l;PhazerShooter\u cbot\category;); +\s; \l;if\u cbot\if; ( item == null ) +\s; { +\s; \l;message\u cbot\message;("Nie znaleziono działa fazowego"); +\s; \l;return\u cbot\return;; // zatrzymaj program +\s; } +\s; \l;shield\u cbot\shield;(1, 25); // aktywuj osłonę +\s; +\s; \l;while\u cbot\while; ( true ) // powtarzaj w nieskończoność +\s; { +\s; item = \l;radar\u cbot\radar;(PhazerShooter);// znajdź działo fazowe +\s; \l;if\u cbot\if; ( item == null ) break; +\s; +\s; dist = \l;distance\u cbot\dist;(item.position, position); +\s; \l;if\u cbot\if; ( dist < 5 ) +\s; { // jeśli jest bliżej niż 5 m: +\s; \l;wait\u cbot\wait;(1); // czekaj +\s; } +\s; \l;else\u cbot\if; // w przeciwnym przypadku: +\s; { // Oblicz pozycję 5 m przed działem fazowym +\s; dest.x = (item.position.x-position.x)*((dist-5)/dist)+position.x; +\s; dest.y = (item.position.y-position.y)*((dist-5)/dist)+position.y; +\s; dest.z = (item.position.z-position.z)*((dist-5)/dist)+position.z; +\s; \l;goto\u cbot\goto;(dest, 0, 1, 1); // i idź tam +\s; } +\s; } +\s;} +\n; +\b;Archiwum +Lista programów przysłanych w poprzednich misjach: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/P/mltropi1.txt b/help/P/mltropi1.txt new file mode 100644 index 00000000..8013d6b8 --- /dev/null +++ b/help/P/mltropi1.txt @@ -0,0 +1,8 @@ +\b;Programy przysłane z Houston +Nie napisaliśmy żadnego programu specjalnie dla tej misji. Jednakże możesz napisać własny program, jeśli uważasz, że przyda się on podczas tej misji. + +\b;Archiwum +Lista programów przysłanych w poprzednich misjach: + +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/P/mltropi3.txt b/help/P/mltropi3.txt new file mode 100644 index 00000000..ac157ff4 --- /dev/null +++ b/help/P/mltropi3.txt @@ -0,0 +1,27 @@ +\b;Programy przysłane z Houston +Usprawniliśmy program ładowania ogniw. Po dotarciu do \l;stacji energetycznej\u object\station; robot nie czeka już dokładnie 5 sekund, ale tylko do czasu pełnego naładowania \l;ogniwa elektrycznego\u object\power;. Po powrocie na pozycję wyjściową robot wyświetla komunikat na ekranie. +\c; +\s;extern void object::Recharge2() +\s;{ +\s; \l;point\u cbot\type; start; // zmienna pozycji startowej +\s; \l;object\u cbot\type; item; // informacja o stacji energetycznej +\s; +\s; start = position; // zachowaj pozycję startową +\s; +\s; item = \l;radar\u cbot\radar;(\l;PowerStation\u cbot\category;); // znajdź stację +\s; \l;goto\u cbot\goto;(item.position); // idź do stacji energetycznej +\s; +\s; \l;while\u cbot\while; ( \l;energyCell.energyLevel\u cbot\object; < 1 ) +\s; { +\s; \l;wait\u cbot\wait;(1); // poczekaj aż się naładuje +\s; } +\s; +\s; \l;goto\u cbot\goto;(start); // wróć do pozycji startowej +\s; \l;message\u cbot\message;("Ładowanie zakończone"); +\s;} +\n; +\b;Archiwum +Lista programów przysłanych w poprzednich misjach: + +o \c;\l;SwitchCell1\u mllune1;\n; +o \c;\l;Recharge1\u mllune4;\n; diff --git a/help/P/mltropi4.txt b/help/P/mltropi4.txt new file mode 100644 index 00000000..ef901579 --- /dev/null +++ b/help/P/mltropi4.txt @@ -0,0 +1,9 @@ +\b;Programy przysłane z Houston +Nie napisaliśmy żadnego programu specjalnie dla tej misji. Jednakże możesz napisać własny program, jeśli uważasz, że przyda się on podczas tej misji. + +\b;Archiwum +Lista programów przysłanych w poprzednich misjach: + +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/P/mltropi5.txt b/help/P/mltropi5.txt new file mode 100644 index 00000000..ef901579 --- /dev/null +++ b/help/P/mltropi5.txt @@ -0,0 +1,9 @@ +\b;Programy przysłane z Houston +Nie napisaliśmy żadnego programu specjalnie dla tej misji. Jednakże możesz napisać własny program, jeśli uważasz, że przyda się on podczas tej misji. + +\b;Archiwum +Lista programów przysłanych w poprzednich misjach: + +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/P/mlvolca1.txt b/help/P/mlvolca1.txt new file mode 100644 index 00000000..5a1289b4 --- /dev/null +++ b/help/P/mlvolca1.txt @@ -0,0 +1,61 @@ +\b;Programy przysłane z Houston +Ponieważ w tej misji potrzebne będzie mnóstwo tytanu, po raz kolejny usprawniliśmy program \c;CollectTitanium\n;. Gromadzi on całą serię kostek tytanu na wolnej powierzchni, więc możesz mu już pozwolić pracować zupełnie samodzielnie. Ładuje on również swoje ogniwo elektryczne w \l;stacji energetycznej\u object\station; jeśli jest to konieczne. +\c; +\s;extern void object::CollectTitanium3() +\s;{ +\s; // 1) Deklaracje zmiennych. +\s; \l;object\u cbot\type; item; // informacja o obiekcie +\s; +\s; \l;while\u cbot\while; (true) // informacja o obiekcie +\s; { +\s; +\s; // 2) Idź do rudy tytanu i podnieś ją +\s; item = \l;radar\u cbot\radar;(\l;TitaniumOre\u cbot\category;);// znajdź rudę tytanu +\s; \l;goto\u cbot\goto;(item.position); // idź do pozycji +\s; \l;grab\u cbot\grab;(); // podnieś porcję rudy +\s; +\s; // 3) Idź do huty i zostaw rudę +\s; item = \l;radar\u cbot\radar;(\l;Converter\u cbot\category;); // znajdź hutę +\s; \l;goto\u cbot\goto;(item.position); // idź do pozycji +\s; \l;drop\u cbot\drop;(); // zostaw rudę +\s; \l;move\u cbot\move;(-2.5); // cofnij się o 2,5 m +\s; +\s; // 4) Poczekaj na przetopienie rudy i zabierz tytan +\s; \l;do\u cbot\do; +\s; { +\s; \l;wait\u cbot\wait;(1); // poczekaj na kostkę tytanu +\s; item = \l;radar\u cbot\radar;(\l;Titanium\u cbot\category;, 0, 45, 0, 5); +\s; } +\s; \l;while\u cbot\while; ( item == null ); +\s; \l;goto\u cbot\goto;(item.position); +\s; \l;grab\u cbot\grab;(); // weź ją +\s; +\s; // 5) Idź do wolnego miejsca i zostaw ją +\s; \l;goto\u cbot\goto;(\l;space\u cbot\space;(position)); // idź do wolnego miejsca +\s; \l;drop\u cbot\drop;(); // zostaw tytan +\s; +\s; // 6) Naładuj ogniwo elektryczne, jeśli jest w połowie zużyte +\s; \l;if\u cbot\if; ( energyCell.energyLevel < 0.5 ) +\s; { // jeśli tak: +\s; item = \l;radar\u cbot\radar;(\l;PowerStation\u cbot\category;); +\s; \l;if\u cbot\if; ( item != null ) // czy znaleziono stację +\s; { +\s; \l;goto\u cbot\goto;(item.position); // idź tam +\s; \l;while\u cbot\while; ( energyCell.energyLevel < 1 ) +\s; { // do czasu naładowania: +\s; \l;wait\u cbot\wait;(1); // czekaj +\s; } +\s; } +\s; } +\s; } +\s;} +\n; +\b;Archiwum +Lista programów przysłanych w poprzednich misjach: + +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; diff --git a/help/P/mlvolca2.txt b/help/P/mlvolca2.txt new file mode 100644 index 00000000..6aa428d8 --- /dev/null +++ b/help/P/mlvolca2.txt @@ -0,0 +1,53 @@ +\b;Programy przysłane z Houston +Napisaliśmy program zajmujący się ładowaniem ogniwa elektrycznego \l;wieży obronnej\u object\tower;: + +1) Idź do \l;wieży obronnej\u object\tower;. +2) Poczekaj aż \l;ogniwo elektryczne\u object\power; będzie w 80% puste. +3) Zabierz \l;ogniwo elektryczne\u object\power; i doładuj je w \l;stacji energetycznej\u object\station;. +4) Odnieś je do \l;wieży obronnej\u object\tower;. + +W celu zredukowania czasu gdy wieża pozostaje bez zasilania, zbuduj \l;stację energetyczną\u object\station; możliwie najbliżej wieży. Przydatną sztuczką jest zostawienie ogniwa elektrycznego na ziemi przed wieżą. Osy będą atakowały ogniwo i jeśli pierwszy strzał będzie niecelny lub osa przybędzie gdy wieża będzie bez zasilania, zniszczone zostanie tylko ogniw, a nie wieża obronna. +\c; +\s;extern void object::ServiceTower1() +\s;{ +\s; \l;object\u cbot\object; tower; // informacje o wieży +\s; \l;object\u cbot\object; station; // informacje o stacji +\s; +\s; // 1) idź do wieży obronnej +\s; tower = \l;radar\u cbot\radar;(DefenseTower); // znajdź wieżę +\s; \l;goto\u cbot\goto;(tower.position); // i idź tam +\s; +\s; \l;while\u cbot\while; ( true ) // powtarzaj w nieskończoność +\s; { +\s; // 2) poczekaj na wyczerpanie ogniwa elektrycznego +\s; \l;while\u cbot\while; ( tower.energyCell.energyLevel > 0.2 ) +\s; { +\s; \l;wait\u cbot\wait;(2); +\s; } +\s; \l;grab\u cbot\grab;(); // weź ogniwo elektryczne +\s; +\s; // 3) idź do elektrowni i naładuj je +\s; station = \l;radar\u cbot\radar;(PowerStation); +\s; \l;goto\u cbot\goto;(station.position); // idź tam +\s; \l;while\u cbot\while; ( load.energyLevel < 1 ) +\s; { +\s; \l;wait\u cbot\wait;(1); // poczekaj aż się naładuje +\s; } +\s; +\s; // 4) wróć do wieży obronnej +\s; \l;goto\u cbot\goto;(tower.position); // idź do wieży +\s; \l;drop\u cbot\drop;(); // zostaw ogniwo elektryczne +\s; } +\s;} +\n; +\b;Archiwum +Lista programów przysłanych w poprzednich misjach: + +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/P/mlvolca3.txt b/help/P/mlvolca3.txt new file mode 100644 index 00000000..945ce924 --- /dev/null +++ b/help/P/mlvolca3.txt @@ -0,0 +1,15 @@ +\b;Programy przysłane z Houston +Nie napisaliśmy żadnego programu specjalnie dla tej misji. Jednakże możesz napisać własny program, jeśli uważasz, że przyda się on podczas tej misji. + +\b;Archiwum +Lista programów przysłanych w poprzednich misjach: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/P/mlvolca4.txt b/help/P/mlvolca4.txt new file mode 100644 index 00000000..945ce924 --- /dev/null +++ b/help/P/mlvolca4.txt @@ -0,0 +1,15 @@ +\b;Programy przysłane z Houston +Nie napisaliśmy żadnego programu specjalnie dla tej misji. Jednakże możesz napisać własny program, jeśli uważasz, że przyda się on podczas tej misji. + +\b;Archiwum +Lista programów przysłanych w poprzednich misjach: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/P/mlvolca5.txt b/help/P/mlvolca5.txt new file mode 100644 index 00000000..945ce924 --- /dev/null +++ b/help/P/mlvolca5.txt @@ -0,0 +1,15 @@ +\b;Programy przysłane z Houston +Nie napisaliśmy żadnego programu specjalnie dla tej misji. Jednakże możesz napisać własny program, jeśli uważasz, że przyda się on podczas tej misji. + +\b;Archiwum +Lista programów przysłanych w poprzednich misjach: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/P/mlvolca6.txt b/help/P/mlvolca6.txt new file mode 100644 index 00000000..945ce924 --- /dev/null +++ b/help/P/mlvolca6.txt @@ -0,0 +1,15 @@ +\b;Programy przysłane z Houston +Nie napisaliśmy żadnego programu specjalnie dla tej misji. Jednakże możesz napisać własny program, jeśli uważasz, że przyda się on podczas tej misji. + +\b;Archiwum +Lista programów przysłanych w poprzednich misjach: + +o \c;\l;ServiceTower1\u mlvolca2;\n; +o \c;\l;CollectTitanium3\u mlvolca1;\n; +o \c;\l;KillAnt1\u mlsaari2;\n; +o \c;\l;CollectTitanium2\u mlcrys2;\n; +o \c;\l;CollectTitanium1\u mlcrys1;\n; +o \c;\l;Recharge2\u mltropi3;\n; +o \c;\l;Recharge1\u mllune4;\n; +o \c;\l;SwitchCell1\u mllune1;\n; + diff --git a/help/P/mscent1.txt b/help/P/mscent1.txt new file mode 100644 index 00000000..9fc4d2b2 --- /dev/null +++ b/help/P/mscent1.txt @@ -0,0 +1,20 @@ +\b;Rozwiązanie +W małej dolinie na północnym wschodzie znajdziesz kilka przydatnych przedmiotów: +o \l;Recykler\u object\botrecy; umożliwiający wytworzenie pierwszej \l;kostki tytanu\u object\titan;. +o \l;Transporter na nogach\u object\botgs;, bardzo przydatny we wspinaniu się po stromych zboczach. +o Prawie pełne \l;atomowe ogniwo elektryczne\u object\atomic;. + +1) Zasil \l;transporter na nogach\u object\botgs; \l;atomowym ogniwem elektrycznym\u object\atomic; i użyj go do dostarczenia \l;kostki tytanu\u object\titan; na \l;statek kosmiczny\u object\base;. Wybierz bezpośrednią drogę przez góry. + +2) Użyj tytanu do zbudowania \l;huty\u object\convert;. Aby otrzymać mnóstwo tytanu, uruchom program \c;CollectTitanium3\n; na \l;transporterze na nogach\u object\botgs;. + +3) Zatrzymaj program i użyj transportera do zbierania \l;rudy uranu\u object\uranore; w drugiej małej dolinie na wschodzie. I tym razem nie idź przez dolinę pełną pełzających mrówek, ale wybierz bezpośrednią drogę przez góry. + +4) Zbuduj \l;działo latające\u object\botfj; i zasil je \l;atomowym ogniwem elektrycznym\u object\atomic;. Jeśli polecisz na południowy wschód, dotrzesz w pobliże gniazda mrówek. Zabij je wszystkie i dostarcz kulę \l;materii organicznej\u object\bullet; na \l;statek kosmiczny\u object\base;. + +5) Zbuduj \l;laboratorium\u object\labo;, umieść \l;materię organiczną\u object\bullet; na jego platformie i kliknij przycisk \button 110;, aby otrzymać plany działka strzelającego materią organiczną. + +6) Zbuduj \l;działo organiczne na nogach\u object\botos;, dostarcz je na pokład statku kosmicznego i odleć. + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/mscent2.txt b/help/P/mscent2.txt new file mode 100644 index 00000000..62753e54 --- /dev/null +++ b/help/P/mscent2.txt @@ -0,0 +1,5 @@ +\b;Rozwiązanie +Podjedź \l;działem organicznym na nogach\u object\botos; do każdej z platform przed celami i zestrzel wszystkie widoczne cele jedną serią, poruszając myszą w trakcie strzelania. Do zniszczenia wszystkich celów muszą wystarczyć tylko 4 serie strzałów. + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/mscent3.txt b/help/P/mscent3.txt new file mode 100644 index 00000000..7e9a05c2 --- /dev/null +++ b/help/P/mscent3.txt @@ -0,0 +1,11 @@ +\b;Rozwiązanie +Do zabicia wszystkich mrówek i pająków na tym rozległym, górzystym terenie, potrzebne będzie \l;latające działo organiczne\u object\botfj; zasilone \l;atomowym ogniwem elektrycznym\u object\atomic;. W małej dolinie na południowym wschodzie znajdziesz wszystkie potrzebne rzeczy: \l;kostki tytanu\u object\titanium;, \l;ogniwa elektryczne\u object\power; a nawet sprawny \l;transporter latające\u object\botgj;. + +1) Zbuduj i zasil \l;radar\u object\radar; oraz \l;działo latające\u object\botfj;. Zabij mrówkę pilnującą \l;rudy uranu\u object\uranore; na północy. + +2) Użyj porzuconej \l;elektrowni atomowej\u object\nuclear; na wzgórzu powyżej oraz \l;transportera latającego\u object\botgj; do wyprodukowania kilku \l;atomowych ogniw elektrycznych\u object\atomic;, następnie jednym z nich zasil \l;działo latające\u object\botfj;. + +3) Pozbądź się wszystkich owadów w okolicy. Jedna z mrówek ukrywa się w jamie na północnym zachodzie: najłatwiej ją trafić zbliżając się z zachodu, poprzez głęboką dolinę, . + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/mscent4.txt b/help/P/mscent4.txt new file mode 100644 index 00000000..4306c899 --- /dev/null +++ b/help/P/mscent4.txt @@ -0,0 +1,12 @@ +\b;Rozwiązanie +1) Znajdź \l;tytan\u object\titan;. +2) Zbuduj \l;hutę\u object\convert;. +3) Zbuduj \l;centrum badawcze\u object\research;. +4) Uruchom \button 66;. +5) Zbuduj robota \l;uderzacza\u object\bottump;. +6) Umieść uderzacza w pobliżu pozostałości statku kosmicznego i "uderz" w ziemię. +7) Szybko zabierz \l;czarną skrzynkę\u object\bbox; i przynieś ją na pokład \l;statku kosmicznego\u object\base;. +8) Zabierz ze sobą robota uderzacza i odleć. + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/mscent5.txt b/help/P/mscent5.txt new file mode 100644 index 00000000..10671f9b --- /dev/null +++ b/help/P/mscent5.txt @@ -0,0 +1,8 @@ +\b;Rozwiązanie +1) Uderz w pokład \l;statku kosmicznego\u object\base;. Nie musisz nigdzie się ruszać robotem \l;uderzaczem\u object\bottump;. +2) Znajdź \l;działo organiczne\u object\botoj; około 70 metrów na wschód. +3) Zabij wszystkie \l;mrówki\u object\ant;, póki jeszcze leżą na plecach. +4) Odleć. + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/mscrys1.txt b/help/P/mscrys1.txt new file mode 100644 index 00000000..89819c2e --- /dev/null +++ b/help/P/mscrys1.txt @@ -0,0 +1,12 @@ +\b;Rozwiązanie +1) Zbuduj \l;fabrykę robotów\u object\factory;. +2) Zbuduj \l;transporter latający\u object\botgj;. +3) Zanieś \l;kostkę tytanu\u object\titan; na najwyższy punkt. +4) Zbuduj tam \l;radar\u object\radar;. +5) Zbuduj \l;centrum badawcze\u object\research; obok statku kosmicznego. +6) Rozpocznij \button 68;. +7) Zbuduj \l;wieżę obronną\u object\tower; obok radaru. +8) Gdy zostaną zniszczone wszystkie robale możesz wrócić na statek kosmiczny i odlecieć. + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/mscrys2.txt b/help/P/mscrys2.txt new file mode 100644 index 00000000..3ea43353 --- /dev/null +++ b/help/P/mscrys2.txt @@ -0,0 +1,17 @@ +\b;Rozwiązanie +1) Zbuduj \l;fabrykę robotów\u object\factory;. +2) Zbuduj \l;szperacza latającego\u object\botsj;. +3) Przebadaj ziemię w pobliżu ogromnych kryształów, aż pojawi się \l;czerwony plus\u object\stonspot;. +4) Zbuduj \l;kopalnię\u object\derrick; w pobliżu czerwonego plusa. +5) Zbuduj \l;hutę\u object\convert;. + +Zbudowanie pary kopalni i huty zapewnia nieograniczone zaopatrzenie w \l;tytan\u object\titan;. Aby zostawić to zadanie robotowi, uruchom program \c;CollectTitanium2\n;. + +6) Przebadaj obszar w pobliżu statku kosmicznego. \l;Zielony plus\u object\enerspot; oznacza miejsce, w którym można zbudować \l;stację energetyczną\u object\station;. +7) Zbuduj \l;radar\u object\radar;. +8) Zbuduj \l;działo latające\u object\botfj;. +9) Zabij wszystkie robale. +10) Wróć na statek i odleć. + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/mscrys3.txt b/help/P/mscrys3.txt new file mode 100644 index 00000000..9edd91f0 --- /dev/null +++ b/help/P/mscrys3.txt @@ -0,0 +1,7 @@ +\b;Rozwiązanie +Jeśli zgubisz robota, zostawi on czarną skrzynkę gdzieś na południowy zachód od Twojego statku kosmicznego, w obszarze otoczonym przez kryształy. + +Jeśli skończy Ci się energia przed odzyskaniem czarnej skrzynki, możesz użyć drugiego transportera, który jest na statku kosmicznym. + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/mscrys4.txt b/help/P/mscrys4.txt new file mode 100644 index 00000000..63a4cb13 --- /dev/null +++ b/help/P/mscrys4.txt @@ -0,0 +1,7 @@ +\b;Rozwiązanie +Gdzieś na północnym wschodzie w samej dolinie, znajduje się w pełni sprawna \l;stacja energetyczna\u object\station;. Na południowym zachodzie możesz znaleźć kilka \l;ogniw energetycznych\u object\power;. + +Kilka sprawnych dział zostało porzuconych w dolinie i w jej pobliżu; użyj ich do zabicia wszystkich mrówek. Używając \l;transportera latającego\u object\botgj; możesz odzyskać \l;czarną skrzynkę\u object\bbox; znajdującą się za wrakiem statku kosmicznego i odlecieć. + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/mslune1.txt b/help/P/mslune1.txt new file mode 100644 index 00000000..7043a1fb --- /dev/null +++ b/help/P/mslune1.txt @@ -0,0 +1,15 @@ +\b;Rozwiązanie +Aby zbudować \l;centrum badawcze\u object\research;, połóż \l;kostkę tytanu\u object\titan; na płaskiej powierzchni w pobliżu statku kosmicznego. Możesz \l;sam\u object\human; nieść kostkę lub użyć dostępnego\l;transportera\u object\botgr;. + +Jeśli użyjesz robota, odsuń go od kostki, aby nie przeszkadzał podczas budowy. Aby przenieść zaznaczenie z robota na siebie (pamiętaj, że tylko Ty możesz budować), naciśnij klawisz \key;\key human;\norm;. + +Stań w pobliżu \l;kostki tytanu\u object\titan; i zbuduj \l;centrum badawcze\u object\research; \button 163;. Zasil je \l;ogniwem elektrycznym\u object\power;, zaznacz budynek i kliknij symbol \button 65; aby wykonać . + +W ten sam sposób zbuduj \l;fabrykę robotów\u object\factory; i zanieś do jej środka \l;kostkę tytanu\u object\titan;. Zbuduj \l;transporter latający\u object\botgj; klikając symbol \button 139; a następnie zasil go \l;ogniwem elektrycznym\u object\power;. + +Możesz sam zwiedzać okolicę jeśli chcesz oszczędzać energię. Na dnie kilku kraterów na północ od statku kosmicznego znajdziesz kawałki rudy tytanu. Postawienie \l;flagi\u object\flag; może przyspieszyć znalezienie tego miejsca w przyszłości. + +Zbierz 4 kawałki \l;rudy tytanu\u object\titanore; i dostarcz je na pokład \l;statku kosmicznego\u object\base;. Zabierz ze sobą \l;transporter latający\u object\botgj; oraz \l;transporter na kołach\u object\botgr; i odleć \button 28;. + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/mslune2.txt b/help/P/mslune2.txt new file mode 100644 index 00000000..e3001860 --- /dev/null +++ b/help/P/mslune2.txt @@ -0,0 +1,7 @@ +\b;Rozwiązanie +Jeśli Twój robot nagle wybuchnie, oznacza to, że za dużo razy uderzył w stalowe elementy. Leć trochę wolniej, a wtedy robot nie zostanie uszkodzony, nawet jeśli wpadnie na przeszkodę. + +Jeśli nie możesz wystartować po wykonaniu ćwiczenia, nie wszystkie cele zostały zaliczone. Przeleć przez okręgi oznaczone plusem w środku. + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/mslune3.txt b/help/P/mslune3.txt new file mode 100644 index 00000000..e3001860 --- /dev/null +++ b/help/P/mslune3.txt @@ -0,0 +1,7 @@ +\b;Rozwiązanie +Jeśli Twój robot nagle wybuchnie, oznacza to, że za dużo razy uderzył w stalowe elementy. Leć trochę wolniej, a wtedy robot nie zostanie uszkodzony, nawet jeśli wpadnie na przeszkodę. + +Jeśli nie możesz wystartować po wykonaniu ćwiczenia, nie wszystkie cele zostały zaliczone. Przeleć przez okręgi oznaczone plusem w środku. + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/mslune4.txt b/help/P/mslune4.txt new file mode 100644 index 00000000..520f6431 --- /dev/null +++ b/help/P/mslune4.txt @@ -0,0 +1,19 @@ +\b;Rozwiązanie +1) Z jedynej dostępnej kostki tytanu zbuduj hutę \button 162;. + +2) Umieść porcję rudy tytanu na środku platformy huty. + +3) Z powstałej kostki tytanu zbuduj stację energetyczną \button 164;. + +4) Jeśli nie chcesz sam szukać czarnej skrzynki, zbuduj radar \button 168; a pojawi się ona na mapce, na północ od Ciebie, na dnie krateru, obok wraku statku kosmicznego i szczątków poprzedniej ekspedycji. + +5) Umieść transportery na środku platformy stacji energetycznej aby je doładować. Energia w ich ogniwach powinna wystarczyć na wysłanie ich na platformę. + +6) Użyj transportera latającego do dostarczenia czarną skrzynkę na statek kosmiczny. + +7) Zabierz ze sobą na statek kosmiczny transportery i czarną skrzynkę. + +8) Odleć. + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/msorph1.txt b/help/P/msorph1.txt new file mode 100644 index 00000000..f6cf5c5b --- /dev/null +++ b/help/P/msorph1.txt @@ -0,0 +1,15 @@ +\b;Rozwiązanie +1) Szybko zbuduj \l;stację odgromnikową\u object\captor; w pobliżu niebieskiej flagi. +Wszystkie pozostałe budynki powinny znaleźć się w jej \button 41;. +2) Zanieś puste \l;ogniwa elektryczne\u object\power; pod stację odgromnikową. Zostaną one naładowane po uderzeniu pioruna. +3) Zbuduj \l;kopalnię\u object\derrick;. +4) Zbuduj \l;hutę\u object\convert;. +5) Uruchom program \c;CollectTitanium3\n;, aby rozpocząć produkcję \l;tytanu\u object\titan;. +6) Zbuduj \l;fabrykę robotów\u object\factory;. +7) Zbuduj \l;latające działo organiczne\u object\botoj;. +8) Zbuduj \l;radar\u object\radar;. +9) Znajdź i zniszcz wszystkie \l;mrówki\u object\ant;. +10) Wróć na \l;statek kosmiczny\u object\base; i odleć. + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/msorph2.txt b/help/P/msorph2.txt new file mode 100644 index 00000000..de0f3cd1 --- /dev/null +++ b/help/P/msorph2.txt @@ -0,0 +1,9 @@ +\b;Rozwiązanie +W dolinie na południe od statku kosmicznego znajdziesz \l;radar\u object\radar;, \l;stację odgromnikową\u object\captor;, \l;ogniwo elektryczne\u object\power; oraz \l;latające działo organiczne\u object\botoj;. Korzystając z tego możesz zabić mrówki w pobliżu statku i znaleźć \l;czarną skrzynkę\u object\bbox; w pobliżu szczątków statku kosmicznego pierwszej ekspedycji na północy. + +Zbuduj szereg \l;stacji odgromnikowych\u object\captor; wzdłuż naturalnej ścieżki północnych szczytów gór. 5 lub 6 odgromników powinno zapewnić wystarczającą ochronę przed piorunami. + +Dostarcz czarną skrzynkę na pokład \l;statku kosmicznego\u object\base; i odleć. + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/mssaari1.txt b/help/P/mssaari1.txt new file mode 100644 index 00000000..e50e6629 --- /dev/null +++ b/help/P/mssaari1.txt @@ -0,0 +1,22 @@ +\b;Rozwiązanie +1) W zniszczonej fabryce robotów znajdziesz \l;kostkę tytanu\u object\titan;. Wykorzystaj ją do budowy \l;stacji energetycznej\u object\station;. + +2) \l;Recykler\u object\botrecy; jest zaprojektowany to przetapiania wraków robotów z powrotem na użyteczne kostki tytanu. + +3) Zbuduj \l;warsztat\u object\repair; i \l;radar\u object\radar;. + +4) Naładuj jedno z dostępnych \l;ogniw elektrycznych\u object\power; i zasil nim \l;działo latające\u object\botfj;. + +5) Zabij wszystkie \l;mrówki\u object\ant;. Pamiętaj o regularnym naprawianiu i ładowaniu ogniwa działa. Sprawdzaj poziom osłon i energii. + +6) Naładuj ogniwo elektryczne \l;transportera\u object\botgr; i wyślij go na szczyt... + a) Na pierwszy poziom wjedź rampą od wschodu; + b) Na pierwszym poziomie jedź na wschód do drugiej rampy; + c) Na drugim poziomie jedź na południe do trzeciej rampy; + d) Na trzecim poziomie jedź na zachód aby dotrzeć na szczyt; +...następnie, z rudą, jedź bezpośrednią trasą prosto do statku kosmicznego, aby zaoszczędzić pozostałą energię. + +7) Wróć na pokład statku kosmicznego i odleć. + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/mssaari2.txt b/help/P/mssaari2.txt new file mode 100644 index 00000000..1920cc8b --- /dev/null +++ b/help/P/mssaari2.txt @@ -0,0 +1,9 @@ +\b;Rozwiązanie +Uruchom natychmiast program \c;KillAnt1\n; na Twoim \l;dziale na kołach\u object\botfr; a zajmie się on pierwszą falą ataku mrówek zmierzających z zachodu. + +Następnie zbuduj dwie \l;wieże obronne\u object\tower;, jedną na północ od \l;statku kosmicznego\u object\base;, drugą na południu (musisz zrobić to BARDZO szybko). Podczas budowania, użyj \l;transportera\u object\botgr; do zdobycia \l;ogniwa elektrycznego\u object\power;. + +Jak tylko poradzisz sobie z kolejnymi falami ataków około piętnastu \l;mrówek\u object\ant;, zajmij się pozostałymi mrówkami, które nie zaatakowały. W celu ich wykrycia zbuduj \l;radar\u object\radar; a także \l;hutę\u object\convert;, \l;fabrykę robotów \u object\factory;, \l;stację energetyczną\u object\station; i \l;działo latające\u object\botfj; aby się ich pozbyć... + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/mssaari3.txt b/help/P/mssaari3.txt new file mode 100644 index 00000000..e1e1205b --- /dev/null +++ b/help/P/mssaari3.txt @@ -0,0 +1,9 @@ +\b;Rozwiązanie +Na początku zbuduj \l;radar\u object\radar;. + +Wygląda na to, że \l;mrówki\u object\ant; uciekają od Ciebie. Spróbuj krążyć dookoła każdej z nich aż znajdą się pomiędzy Tobą a \l;miną\u object\mine;. Pójdą wtedy w stronę miny, która wybuchnie i je zabije. + +Następnie przynieś \l;czarną skrzynkę\u object\bbox; na pokład statku. Możesz ją znaleźć obok porzuconego statku kosmicznego. + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/msterra1.txt b/help/P/msterra1.txt new file mode 100644 index 00000000..86e4e699 --- /dev/null +++ b/help/P/msterra1.txt @@ -0,0 +1,6 @@ +\b;Rozwiązanie +Niestety nie jest dostępne rozwiązanie dla tej misji. +Teraz wszystko zależy tylko od Ciebie... + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/msterra2.txt b/help/P/msterra2.txt new file mode 100644 index 00000000..86e4e699 --- /dev/null +++ b/help/P/msterra2.txt @@ -0,0 +1,6 @@ +\b;Rozwiązanie +Niestety nie jest dostępne rozwiązanie dla tej misji. +Teraz wszystko zależy tylko od Ciebie... + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/msterra3.txt b/help/P/msterra3.txt new file mode 100644 index 00000000..86e4e699 --- /dev/null +++ b/help/P/msterra3.txt @@ -0,0 +1,6 @@ +\b;Rozwiązanie +Niestety nie jest dostępne rozwiązanie dla tej misji. +Teraz wszystko zależy tylko od Ciebie... + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/msterra4.txt b/help/P/msterra4.txt new file mode 100644 index 00000000..86e4e699 --- /dev/null +++ b/help/P/msterra4.txt @@ -0,0 +1,6 @@ +\b;Rozwiązanie +Niestety nie jest dostępne rozwiązanie dla tej misji. +Teraz wszystko zależy tylko od Ciebie... + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/msterre1.txt b/help/P/msterre1.txt new file mode 100644 index 00000000..b567bf81 --- /dev/null +++ b/help/P/msterre1.txt @@ -0,0 +1,11 @@ +\b;Rozwiązanie +Aby znaleźć zestaw przetrwania: + +1) Idź drogą na południe. +2) Skręć na wschód (w lewo) na pierwszym skrzyżowaniu. +3) Zestaw przetrwania leży pomiędzy północną ścianą Centrum Kontroli Misji a pierwszym drzewem po prawej stronie drogi. + +Wystarczy, że zbliżysz się do niego, aby ukończyć to ćwiczenie. + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/msterre2.txt b/help/P/msterre2.txt new file mode 100644 index 00000000..feefb08d --- /dev/null +++ b/help/P/msterre2.txt @@ -0,0 +1,11 @@ +\b;Rozwiązanie +Idź w dół ulicą biegnącą obok \l;Centrum Kontroli Misji\u object\Huston;. Po lewej stronie drogi, zaraz za \l;transporterem\u object\botgr; znajdziesz \l;kostkę tytanu\u object\titan;. + +1) Zbliż się do kostki. Kliknij na pierwszym przycisku w lewej dolnej części ekranu: \button 163; . +2) Idź dalej tą drogą. Druga kostka jest po prawej stronie, zaraz za czterema zielonymi \l;ogniwami elektrycznymi\u object\power;. +3) Powtórz punkt 1) ale kliknij na drugim przycisku: \button 160; . + +Po ukończeniu obu budynków misja jest wypełniona. + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/msterre3.txt b/help/P/msterre3.txt new file mode 100644 index 00000000..cca26d8b --- /dev/null +++ b/help/P/msterre3.txt @@ -0,0 +1,28 @@ +\b;Rozwiązanie +Przed odlotem na pokładzie statku kosmicznego powinny się znaleźć: + +1) \l;Czarna skrzynka\u object\bbox;. +2) Transportery \l;na kołach\u object\botgr; i \l;na gąsienicach\u object\botgc;. +3) \l;Ty\u object\human;. + +Oto szczegółowy plan działania: +1) Zasil \l;centrum badawcze\u object\research; jednym z zielonych \l;ogniw elektrycznych\u object\power;. +2) Zaznacz \l;centrum badawcze\u object\research; i kliknij przycisk \button 64; . +3) Umieść \l;kostkę tytanu\u object\titan; wewnątrz \l;fabryki robotów\u object\factory;. +4) Cofnij się i zaznacz \l;fabrykę robotów\u object\factory;. +5) Kliknij przycisk \button 138; . +6) Zasil \l;transporter na gąsienicach\u object\botgc; nowym \l;ogniwem elektrycznym\u object\power;. +7) Wyślij \l;transporter na gąsienicach\u object\botgc; na szczyt góry na południowym zachodzie. +8) Dostarcz \l;czarną skrzynkę\u object\bbox; na pokład \l;statku kosmicznego\u object\base;. +9) Wyślij transportery \l;na gąsienicach\u object\botgc; oraz \l;na kołach\u object\botgr; na pokład statku kosmicznego. +10) Wejdź na pokład \l;statku kosmicznego\u object\base;. +11) Odleć! + +Aby wystartować, zaznacz \l;statek kosmiczny\u object\base; poprzez kliknięcie na nim, o ile jest widoczny. Jeśli nie, kliknij jeden z przycisków w lewej górnej części ekranu. Niebieski trójkąt \button 130; umożliwia przełączanie pomiędzy symbolami robotów a symbolami budynków. Kliknij przycisk aby uaktywnić ich listę. Pojawi się przycisk \button 171; . Kliknij ten przycisk, aby zaznaczyć statek kosmiczny. + +Gdy statek kosmiczny jest już zaznaczony, kliknij duży przycisk \button 28; w dolnej części ekranu. Jeśli Ty oraz przedmioty wspomniane powyżej znajdują się na pokładzie, statek kosmiczny wystartuje. + +Żaden przedmiot ani robot nie powinny przeszkadzać w zamykaniu ośmiu wielkich paneli drzwi. + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/mstropi1.txt b/help/P/mstropi1.txt new file mode 100644 index 00000000..3a0167fc --- /dev/null +++ b/help/P/mstropi1.txt @@ -0,0 +1,5 @@ +\b;Rozwiązanie +Idź ścieżką pokazaną na mapce. Ładunek wybuchowy znajdziesz na dnie małej doliny zasiedlonej przez olbrzymie mrówki. Prawdopodobnie Cię zaatakują i stracisz przytomność. Niestety nic na to nie poradzisz. + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/mstropi2.txt b/help/P/mstropi2.txt new file mode 100644 index 00000000..5dcb78f2 --- /dev/null +++ b/help/P/mstropi2.txt @@ -0,0 +1,21 @@ +\b;Rozwiązanie +Oto kolejne kroki powrotu na statek kosmiczny. + +1) Idź dookoła jeziora, kierując się w stronę zielonej opalizującej kuli. Kula ta jest generowana przez grawi-roślinę, która uniemożliwia latanie wewnątrz kuli. + +2) Podążaj lewą stroną doliny, mijając sadzawkę po prawej stronie i wejdź na niewielką skarpę. Na szczycie spotkasz kilka ogromnych mrówek: biegnij jak najszybciej w kierunku kolejnej grawi-rośliny trochę dalej po prawej stronie, czas na leczenie ran przyjdzie później. + +3) Użyj reaktora i przeleć nad jeziorem przed grawi-rośliną po prawej. + +4) Gdy opuścisz grawi-roślinę, trzymaj się lewej strony jeziora i idź wzdłuż brzegu aż dojdziesz do półwyspu ozdobionego podobnymi do paproci roślinami. + +5) Większe jeziora pokonuj przeskakując po wyspach. Celuj w drzewa, aby nie spaść do wody po drugiej stronie wyspy. Ostatnia wyspa jest 50 cm pod wodą, ale możesz na niej bezpiecznie wylądować nie ryzykując zanurzenia głowy. + +6) Dalej ścieżka biegnie w lewo. Czeka tam ogromna mrówka, która jednak nie uszkodzi Cię zbytnio. + +7) Pozwól reaktorowi ochłodzić się, następnie przeleć nad małym jeziorem. Spróbuj wylądować jak najwyżej po prawej stronie, aby nie wpaść do drugiego jeziora. + +8) Przekrocz drugie jezioro, wejdź na pokład statku kosmicznego i odleć. + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/mstropi3.txt b/help/P/mstropi3.txt new file mode 100644 index 00000000..d46a9147 --- /dev/null +++ b/help/P/mstropi3.txt @@ -0,0 +1,13 @@ +\b;Rozwiązanie +1) Na zachód od Twojej obecnej pozycji znajdziesz \l;kostkę tytanu\u object\titan;, w pobliżu niebieskiej flagi/niebieskiego plusa na mapce. Nie przenoś tytanu ale właśnie tam zbuduj \l;stację energetyczną\u object\station;. + +2) Użyj kostki tytanu ze statku kosmicznego do zbudowania \l;centrum badawczego\u object\research;, a następnie wykonaj \button 67;. + +3) Zbuduj \l;fabrykę robotów\u object\factory; oraz \l;działo latające\u object\botfj;. Jeśli robot ten zostanie zniszczony przez ogień wroga, kilka dodatkowych \l;kostek tytanu\u object\titan; znajdziesz w małej mglistej dolinie na północny zachód od statku kosmicznego. Możesz je przywieźć \l;transporterem latającym\u object\botgj;\n;. + +4) Zbuduj \l;radar\u object\radar;, aby poznać pozycje mrówek na mapce i rozpocząć polowanie. Uważaj, aby robot nie został bez energii ani nie przegrzał reaktora nad wodą. Jeśli spadnie do głębokiej wody, wybuchnie. + +5) Gdy zabijesz wszystkie mrówki, wróć na pokład i odleć. + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/mstropi4.txt b/help/P/mstropi4.txt new file mode 100644 index 00000000..99000e27 --- /dev/null +++ b/help/P/mstropi4.txt @@ -0,0 +1,7 @@ +\b;Rozwiązanie +Jeśli Twój robot nagle wybuchnie, oznacza to, że za dużo razy uderzył w stalowe elementy. Leć trochę wolniej, a wtedy robot nie zostanie uszkodzony, nawet jeśli wpadnie na przeszkodę. + +Jeśli nie możesz odlecieć po wykonaniu ćwiczenia, nie wszystkie cele zostały zaliczone. Zrób jeszcze jedną rundę i sprawdź, czy nie zostały żadne materiały wybuchowe ani plusy pośrodku stalowych struktur. + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/mstropi5.txt b/help/P/mstropi5.txt new file mode 100644 index 00000000..342b6d51 --- /dev/null +++ b/help/P/mstropi5.txt @@ -0,0 +1,15 @@ +\b;Rozwiązanie +1) Znajdź \l;czarną skrzynkę\u object\bbox; osobiście. Możesz ją dostrzec z góry, korzystając z silnika odrzutowego lub nurkując w wodzie. +2) Zbuduj \l;hutę\u object\convert; w pobliżu kawałków rudy tytanu. Znajdziesz je obok statku kosmicznego, na wschodzie. +3) Wyprodukuj dwie \l;kostki tytanu\u object\titan;. +4) Zbuduj \l;fabrykę robotów\u object\factory; w pobliżu czarnej skrzynki. +5) Zbuduj robota \l;nurka\u object\botsub;. +6) Dostarcz czarną skrzynkę na pokład. +7) Odleć. + +Czarna skrzynka leży na dnie małego jeziora, na północny wschód od statku kosmicznego. + +Fabrykę robotów możesz zbudować tuż przy jeziorze, na jego południowym brzegu. + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/msvolca1.txt b/help/P/msvolca1.txt new file mode 100644 index 00000000..98db24d8 --- /dev/null +++ b/help/P/msvolca1.txt @@ -0,0 +1,15 @@ +\b;Rozwiązanie +1) Zacznij od naładowania \l;zwykłego ogniwa elektrycznego\u object\power; i zasilenia \l;centrum badawczego\u object\research;. Użyj go do opracowania technologii budowy \l;elektrowni atomowej\u object\nuclear; \button 170;. + +2) Zbuduj \l;działo na kołach\u object\botgr;. + +3) Na północnym zachodzie znajdziesz nieco \l;rudy uranu\u object\uranore;. Elektrownia atomowa przetworzy ją w \l;atomowe ogniwa elektryczne\u object\atomic;, działające dłużej od zwykłych. + +4) Zasil \l;działo na kołach\u object\botfr; w jedno z nowych ogniw atomowych. Wyślij je i zabij wszystkie \l;pająki\u object\spider; wzdłuż trasy. + +5) Użycie \l;radaru\u object\radar; nie jest konieczne, ale może być pomocne w oznaczeniu pozycji pająków na mapce. + +6) Transporter na kołach powinien być częścią ekspedycji. Oczyści on drogę z porozrzucanych kawałków \l;rudy tytanu\u object\titanore; oraz dostarczy \l;ładunek wybuchowy\u object\tnt; na statek. + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/msvolca2.txt b/help/P/msvolca2.txt new file mode 100644 index 00000000..7ff7a0b9 --- /dev/null +++ b/help/P/msvolca2.txt @@ -0,0 +1,19 @@ + \b;Rozwiązanie +1) Szybko zbuduj \l;wieżę obronną\u object\tower; na północ od statku kosmicznego. Po jej \l;zasileniu\u object\power; na jednym z \l;transporterów\u object\botgr; uruchom program \c;ServiceTower1\n;, który zajmie się ładowaniem baterii, gdy ta będzie pusta. Umieść drugie ogniwo elektryczne 2 m na północ od wieży, jako pierwszy cel dla atakujących os. + +2) Zbuduj \l;stację energetyczną\u object\station; w pobliżu wieży obronnej. + +3) Zbuduj \l;hutę\u object\convert; na południe od statku kosmicznego a w celu wyprodukowania \l;kostek tytanu\u object\titan; uruchom na drugim \l;transporterze\u object\botgr; program \c;CollectTitanium3\n;. + +4) Zbuduj \l;fabrykę robotów\u object\factory;, a następnie \l;działo latające\u object\botfj;, które pozwoli Ci wyeliminować \l;mrówki\u object\ant;. + +5) Użyj \l;transportera latającego\u object\botgj; do dostarczenia \l;materii organicznej\u object\bullet; z wyspy pośrodku jeziora lawy. + +6) Zbuduj \l;laboratorium\u object\labo;, umieść \l;materię organiczną\u object\bullet; na jego platformie i kliknij przycisk \button 109;, aby otrzymać plany robotów na nogach. + +7) Jak tylko materia organiczna zostanie zanalizowana zbuduj \l;transporter na nogach\u object\botgs; i dostarcz go na pokład statku kosmicznego. + +8) Odleć. + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/msvolca3.txt b/help/P/msvolca3.txt new file mode 100644 index 00000000..26d0980f --- /dev/null +++ b/help/P/msvolca3.txt @@ -0,0 +1,11 @@ +\b;Rozwiązanie +1) Zasil \l;działo na nogach\u object\botfs;. Za \l;fabryką robotów\u object\factory; znajdziesz nawet \l;atomowe ogniwo elektryczne\u object\atomic;. + +2) Wejdź na północne urwisko i zabij kilka \l;mrówek\u object\ant;. Najlepszy dostęp jest od wschodu. + +3) Idź dalej, aż pozbędziesz się wszystkich mrówek. + +4) Wejdź na północne urwisko \l;transporterem na nogach\u object\botgs; i zdobądź \l;czarną skrzynkę\u object\bbox;, którą znajdziesz w ruinach fabryki robotów. + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/msvolca4.txt b/help/P/msvolca4.txt new file mode 100644 index 00000000..778c3670 --- /dev/null +++ b/help/P/msvolca4.txt @@ -0,0 +1,13 @@ +\b;Rozwiązanie +Szczelina w północno zachodniej górze prowadzi do jeziora wrzącej lawy. + +Wystarczy skakać z jednej skalistej wyspy na drugą. Często sprawdzaj reaktor i pozwól mu zupełnie ostygnąć przed kolejnym startem. W znalezieniu najbliższej wyspy może być pomocna mapka. + +Nie martw się zbytnio atakiem mrówek. Poczekaj, aż reaktor ostygnie, nie zwlekając jednak dłużej niż to konieczne, a Twoja wbudowana osłona powinna spełnić swoją rolę. Jednakże zalecane jest zapisanie gry co jakiś czas (klawisz Esc, następnie "Zapisz"), aby nie zaczynać gry od początku w przypadku wylądowania w jeziorze lawy. + +Robot znajduje się w najbardziej wysuniętym na zachód punkcie, jednak możesz tam dotrzeć tylko okrężną drogą. W pobliżu znajdziesz \l;atomowe ogniwo elektryczne\u object\atomic;. + +Nie musisz w drodze powrotnej kierować robota tą samą drogą, gdyż jego reaktor ma większy zasięg niż Twój. Wciąż może być potrzebny jedne lub dwa przystanki, uważaj również na mrówki. + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/msvolca5.txt b/help/P/msvolca5.txt new file mode 100644 index 00000000..1c8dd332 --- /dev/null +++ b/help/P/msvolca5.txt @@ -0,0 +1,11 @@ +\b;Rozwiązanie +Wszystko dookoła Ciebie wybucha. Musisz opuścić starą bazę jak najszybciej. Wycofaj się drogą przybycia. + +Dosyć łatwo można uniknąć \l;mrówek\u object\ant;. Jeśli jednak poważnie Cię trafią, znajdź spokojne miejsce i poczekaj aż Twoja osłona się zregeneruje. + +Z \l;pająkami\u object\spider; jest gorzej, ale są one głupsze. Jak tylko Cię zobaczą, ich odwłok wybucha, a pająk przy tym umiera. Jeśli choć jeden fragment Cię trafi, również umrzesz. Ryzykownym ale skutecznym sposobem pozbycia się pająków, jest zbliżenie się do pająka, a gdy jego odwłok zaczyna się nadymać, szybki odlot na bezpieczną odległość. + +Po dotarciu do spokojnej wyspy, możesz użyć \l;latającego działa organicznego\u object\botoj; do oczyszczenia drogi z wrogich owadów. Postępuj ostrożnie, aby go nie stracić, gdyż od tego zależy powodzenie misji. + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/msvolca6.txt b/help/P/msvolca6.txt new file mode 100644 index 00000000..329d5de3 --- /dev/null +++ b/help/P/msvolca6.txt @@ -0,0 +1,9 @@ +\b;Rozwiązanie +Bezpieczniej będzie jeśli zostaniesz na \l;statku kosmicznym\u object\base;. Możesz oberwać kilka razy, ale nie śmiertelnie. + +Nie marnuj już więcej czasu i użyj nowego \l;latającego działa organicznego\u object\botoj;. Najpierw zabij mrówki po prawej stronie, a następnie dookoła statku kosmicznego zgodnie z ruchem wskazówek zegara, lecąc na niskiej wysokości. + +Jeśli to się nie uda, umieść \l;latające działo organiczne\u object\botoj; w bezpiecznym miejscu na północ od statku kosmicznego, następnie sam uciekaj. Później możesz zabijać mrówki pojedynczo; nie mogą one uszkodzić statku kosmicznego ani czarnej skrzynki. + +\t;Zobacz również +\l;Sterowanie\u command; diff --git a/help/P/navig.txt b/help/P/navig.txt new file mode 100644 index 00000000..1add2896 --- /dev/null +++ b/help/P/navig.txt @@ -0,0 +1,22 @@ +\b;Nawigacja +Trzy przyciski w lewej górnej części ekranu pozwalają na nawigację po różnych stronach pliku pomocy: + +\button 30; Dom +Wraca do strony głównej, czyli wyświetlonej na początku, na przykład po naciśnięciu klawisza \key;\key help;\norm; lub \key;\key prog;\norm;. + +\button 55; Poprzedni +Wraca do poprzedniej strony, czyli tej która była wyświetlana przed kliknięciem łącza. + +\button 48; Następny +Wyświetla ponownie następną stronę, wyświetlaną przed użyciem przycisku "Dom" lub "Poprzedni". + +\t;Uwaga +Jeśli przycisk jest szary, oznacza to, że w danej chwili nie może być użyty. Na przykład na stronie głównej przycisk "Dom" jest szary, gdyż jego użycie nie miałoby sensu. + +Uwaga ta dotyczy wszystkich przycisków w grze COLOBOT. + +\t;Przewijanie tekstu +Jeśli mysz jest wyposażona w kółko, można go używać do przewijania tekstu w górę i w dół. Jeśli nie, można użyć klawiszy strzałek oraz paska przewijania po prawej stronie ekranu. + +\t;Wielkość czcionki +Wskaźnik w górnej części ekranu umożliwia zmianę wielkości czcionki tekstu. diff --git a/help/P/object/STONSPOT.TXT b/help/P/object/STONSPOT.TXT new file mode 100644 index 00000000..67573048 --- /dev/null +++ b/help/P/object/STONSPOT.TXT @@ -0,0 +1,14 @@ +\b;Podziemne złoże tytanu +\image stonspot 4 4; +Czerwony plus oznacza występowanie w podglebiu pokładów \l;rudy tytanu\u object\titanore;. Można ją wydobyć używając \l;kopalni\u object\derrick;. + +Robot \l;szperacz\u object\botsr; zostawia czerwony plus w miejscu odkrycia złoża. \l;Robot szperacz\u object\botsr; może również wykrywać obecność \l;rudy uranu\u object\uranore; oznaczonej \l;żółtym kółkiem\u object\uranspot; oraz energii oznaczonej \l;zielonym plusem\u object\enerspot;. + +\t;Transport +Niemożliwy. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;TitaniumSite\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/STONSPOT.TXT.bak b/help/P/object/STONSPOT.TXT.bak new file mode 100644 index 00000000..9aae1f72 --- /dev/null +++ b/help/P/object/STONSPOT.TXT.bak @@ -0,0 +1,14 @@ +\b;Podziemne zoe tytanu +\image stonspot 4 4; +Czerwony plus oznacza wystpowanie w podglebiu pokadw \l;rudy tytanu\u object\titanore;. Mona j wydoby uywajc \l;kopalni\u object\derrick;. + +Robot \l;szperacz\u object\botsr; zostawia czerwony plus w miejscu odkrycia zoa. \l;Robot szperacz\u object\botsr; moe rwnie wykrywa obecno \l;rudy uranu\u object\uranore; oznaczonej \l;tym kkiem\u object\uranspot; oraz energii oznaczonej \l;zielonym plusem\u object\enerspot;. + +\t;Transport +Niemoliwy. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;TitaniumSite\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/TITAN.TXT b/help/P/object/TITAN.TXT new file mode 100644 index 00000000..20dbc783 --- /dev/null +++ b/help/P/object/TITAN.TXT @@ -0,0 +1,14 @@ +\b;Tytan +\image titan 4 4; +Tytan jest niezastąpiony przy konstrukcji budynków, \l;robotów\u object\factory; oraz \l;zwykłych ogniw elektrycznych\u object\energy;. Zwykle jego niewielkie ilości można znaleźć na \l;statku kosmicznym\u object\base; na początku każdej misji. + +Jeśli potrzeba więcej, należy \l;przetopić\u object\convert; kawałki \l;rudy tytanu\u object\titanore; w użyteczne kostki tytanu. + +\t;Transport +Wszystkie \l;transportery\u object\botgr; oraz \l;astronauta\u object\human;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;Titanium\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/TITAN.TXT.bak b/help/P/object/TITAN.TXT.bak new file mode 100644 index 00000000..e1b39748 --- /dev/null +++ b/help/P/object/TITAN.TXT.bak @@ -0,0 +1,14 @@ +\b;Tytan +\image titan 4 4; +Tytan jest niezastpiony przy konstrukcji budynkw, \l;robotw\u object\factory; oraz \l;zwykych ogniw elektrycznych\u object\energy;. Zwykle jego niewielkie iloci mona znale na \l;statku kosmicznym\u object\base; na pocztku kadej misji. + +Jeli potrzeba wicej, naley \l;przetopi\u object\convert; kawaki \l;rudy tytanu\u object\titanore; w uyteczne kostki tytanu. + +\t;Transport +Wszystkie \l;transportery\u object\botgr; oraz \l;astronauta\u object\human;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;Titanium\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/TITANORE.TXT b/help/P/object/TITANORE.TXT new file mode 100644 index 00000000..7568c51f --- /dev/null +++ b/help/P/object/TITANORE.TXT @@ -0,0 +1,14 @@ +\b;Ruda tytanu +\image titanore 4 4; +\l;Tytan\u object\titan; jest niezastąpiony przy konstrukcji budynków, \l;robotów\u object\factory; oraz \l;zwykłych ogniw elektrycznych\u object\energy;. Tytan widziany przez \l;astronautę\u object\human; w jego użytkowej, sześciennej postaci powstał przez \l;przetopienie\u object\convert; surowych kawałków rudy tytanu. + +Rudę tytanu można znaleźć na powierzchni lub w podglebiu. W drugim przypadku najpierw należy ją zlokalizować i zidentyfikować przy pomocy robota \l;szperacza\u object\botsr;, a następnie wydobyć używając \l;kopalni\u object\derrick;. W miejscu znalezienia rudy tytanu robot szperacz pozostawia \l;czerwony plus\u object\stonspot;. + +\t;Transport +Wszystkie \l;transportery\u object\botgr; oraz \l;astronauta\u object\human;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;TitaniumOre\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/TITANORE.TXT.bak b/help/P/object/TITANORE.TXT.bak new file mode 100644 index 00000000..00ccf202 --- /dev/null +++ b/help/P/object/TITANORE.TXT.bak @@ -0,0 +1,14 @@ +\b;Ruda tytanu +\image titanore 4 4; +\l;Tytan\u object\titan; jest niezastpiony przy konstrukcji budynkw, \l;robotw\u object\factory; oraz \l;zwykych ogniw elektrycznych\u object\energy;. Tytan widziany przez \l;astronaut\u object\human; w jego uytkowej, szeciennej postaci powsta przez \l;przetopienie\u object\convert; surowych kawakw rudy tytanu. + +Rud tytanu mona znale na powierzchni lub w podglebiu. W drugim przypadku najpierw naley j zlokalizowa i zidentyfikowa przy pomocy robota \l;szperacza\u object\botsr;, a nastpnie wydoby uywajc \l;kopalni\u object\derrick;. W miejscu znalezienia rudy tytanu robot szperacz pozostawia \l;czerwony plus\u object\stonspot;. + +\t;Transport +Wszystkie \l;transportery\u object\botgr; oraz \l;astronauta\u object\human;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;TitaniumOre\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/TNT.TXT b/help/P/object/TNT.TXT new file mode 100644 index 00000000..55434cb7 --- /dev/null +++ b/help/P/object/TNT.TXT @@ -0,0 +1,12 @@ +\b; Ładunek wybuchowy (TNT) +\image tnt 4 4; +Ładunek TNT jest bardzo czuły. Należy zbliżać się do niego bardzo ostrożnie, aby nie uderzyć go ani nie narażać na jakiekolwiek wstrząsy. Po chwyceniu ładunku przez ramię \l;transportera\u object\botgr; ryzyko jest już minimalne. + +\t;Transport +Wszystkie \l;transportery\u object\botgr; oraz \l;astronauta\u object\human;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;TNT\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/TNT.TXT.bak b/help/P/object/TNT.TXT.bak new file mode 100644 index 00000000..86282a74 --- /dev/null +++ b/help/P/object/TNT.TXT.bak @@ -0,0 +1,12 @@ +\b; adunek wybuchowy (TNT) +\image tnt 4 4; +adunek TNT jest bardzo czuy. Naley zblia si do niego bardzo ostronie, aby nie uderzy go ani nie naraa na jakiekolwiek wstrzsy. Po chwyceniu adunku przez rami \l;transportera\u object\botgr; ryzyko jest ju minimalne. + +\t;Transport +Wszystkie \l;transportery\u object\botgr; oraz \l;astronauta\u object\human;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;TNT\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/TOWER.TXT b/help/P/object/TOWER.TXT new file mode 100644 index 00000000..906ef375 --- /dev/null +++ b/help/P/object/TOWER.TXT @@ -0,0 +1,22 @@ +\b;\button 165; Wieża obronna +\image tower 8 8; +Wieża umożliwia najlepszą obronę przeciwko atakom \l;wrogów\u object\mother;, zarówno naziemnych, jak i powietrznych. + +Do działania wieży potrzebne jest \l;zwykłe\u object\power; lub \l;atomowe\u object\atomic; ogniwo elektryczne. Zwykłe ogniwo elektryczne umożliwia oddanie 8 strzałów. Oczywiście dużo lepsze jest ogniwo atomowe. Gdy skończy się energia, wieża sygnalizuje to miganiem. + +Wieża ma zasięg 40 metrów. Aby go wyświetlić na powierzchni planety, należy zaznaczyć wieżę i nacisnąć przycisk \button 41;. Czerwone kropki wyróżnią kolistą strefę przez 20 sekund. + +\t;Wymagania +Płaska powierzchnia szeroka na minimum 3,5 metra. + +\t;Źródło zasilania +Zwykłe lub atomowe ogniwo elektryczne. + +\t;Czas działania +1 sekunda. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;DefenseTower\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/TOWER.TXT.bak b/help/P/object/TOWER.TXT.bak new file mode 100644 index 00000000..6a74cb4d --- /dev/null +++ b/help/P/object/TOWER.TXT.bak @@ -0,0 +1,22 @@ +\b;\button 165; Wiea obronna +\image tower 8 8; +Wiea umoliwia najlepsz obron przeciwko atakom \l;wrogw\u object\mother;, zarwno naziemnych, jak i powietrznych. + +Do dziaania wiey potrzebne jest \l;zwyke\u object\power; lub \l;atomowe\u object\atomic; ogniwo elektryczne. Zwyke ogniwo elektryczne umoliwia oddanie 8 strzaw. Oczywicie duo lepsze jest ogniwo atomowe. Gdy skoczy si energia, wiea sygnalizuje to miganiem. + +Wiea ma zasig 40 metrw. Aby go wywietli na powierzchni planety, naley zaznaczy wie i nacisn przycisk \button 41;. Czerwone kropki wyrni kolist stref przez 20 sekund. + +\t;Wymagania +Paska powierzchnia szeroka na minimum 3,5 metra. + +\t;rdo zasilania +Zwyke lub atomowe ogniwo elektryczne. + +\t;Czas dziaania +1 sekunda. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;DefenseTower\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/URANORE.TXT b/help/P/object/URANORE.TXT new file mode 100644 index 00000000..c4234f73 --- /dev/null +++ b/help/P/object/URANORE.TXT @@ -0,0 +1,16 @@ +\b;Ruda uranu +\image uranore 4 4; +Uran jest niezbędny do produkcji \l;atomowych ogniw elektrycznych\u object\atomic;. + +Rudę uranu można znaleźć na powierzchni lub w podglebiu. W drugim przypadku, najpierw należy ją zlokalizować i zidentyfikować przy pomocy robota \l;szperacza\u object\botsr;, a następnie wydobyć używając \l;kopalni\u object\derrick;. W miejscu znalezienia rudy uranu robot szperacz pozostawia \l;żółte kółko\u object\uranspot;. + +\l;Elektrownia atomowa\u object\nuclear; może przetwarzać rudę uranu na nowe, w pełni naładowane\l;atomowe ogniwa elektryczne\u object\atomic;. + +\t;Transport +Wszystkie \l;transportery\u object\botgr;. \l;Astronauta\u object\human; nie może przenosić rudy uranu z powodu jej radioaktywności. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;UraniumOre\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/URANORE.TXT.bak b/help/P/object/URANORE.TXT.bak new file mode 100644 index 00000000..4488ca46 --- /dev/null +++ b/help/P/object/URANORE.TXT.bak @@ -0,0 +1,16 @@ +\b;Ruda uranu +\image uranore 4 4; +Uran jest niezbdny do produkcji \l;atomowych ogniw elektrycznych\u object\atomic;. + +Rud uranu mona znale na powierzchni lub w podglebiu. W drugim przypadku, najpierw naley j zlokalizowa i zidentyfikowa przy pomocy robota \l;szperacza\u object\botsr;, a nastpnie wydoby uywajc \l;kopalni\u object\derrick;. W miejscu znalezienia rudy uranu robot szperacz pozostawia \l;te kko\u object\uranspot;. + +\l;Elektrownia atomowa\u object\nuclear; moe przetwarza rud uranu na nowe, w peni naadowane\l;atomowe ogniwa elektryczne\u object\atomic;. + +\t;Transport +Wszystkie \l;transportery\u object\botgr;. \l;Astronauta\u object\human; nie moe przenosi rudy uranu z powodu jej radioaktywnoci. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;UraniumOre\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/URANSPOT.TXT b/help/P/object/URANSPOT.TXT new file mode 100644 index 00000000..251d6eff --- /dev/null +++ b/help/P/object/URANSPOT.TXT @@ -0,0 +1,15 @@ +\b; Podziemne złoże uranu +\image uranspot 4 4; +Żółte kółko oznacza występowanie w podglebiu pokładów \l;rudy uranu\u object\uranore;. Można ją wydobyć używając \l;kopalni\u object\derrick;. + +Robot \l;szperacz\u object\botsr; zostawia żółte kółko w miejscu odkrycia złoża. \l;Robot szperacz\u object\botsr; może również wykrywać obecność \l;rudy tytanu\u object\titanore; oznaczonej \l;czerwonym plusem\u object\stonspot; oraz energii oznaczonej \l;zielonym plusem\u object\enerspot;. + + +\t;Transport +Niemożliwy. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;UraniumSite\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/URANSPOT.TXT.bak b/help/P/object/URANSPOT.TXT.bak new file mode 100644 index 00000000..20e8bb3b --- /dev/null +++ b/help/P/object/URANSPOT.TXT.bak @@ -0,0 +1,15 @@ +\b; Podziemne zoe uranu +\image uranspot 4 4; +te kko oznacza wystpowanie w podglebiu pokadw \l;rudy uranu\u object\uranore;. Mona j wydoby uywajc \l;kopalni\u object\derrick;. + +Robot \l;szperacz\u object\botsr; zostawia te kko w miejscu odkrycia zoa. \l;Robot szperacz\u object\botsr; moe rwnie wykrywa obecno \l;rudy tytanu\u object\titanore; oznaczonej \l;czerwonym plusem\u object\stonspot; oraz energii oznaczonej \l;zielonym plusem\u object\enerspot;. + + +\t;Transport +Niemoliwy. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;UraniumSite\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/WASP.TXT b/help/P/object/WASP.TXT new file mode 100644 index 00000000..3814a47f --- /dev/null +++ b/help/P/object/WASP.TXT @@ -0,0 +1,11 @@ +\b;Osa +\image wasp 8 8; +Osy są obcą formą wrogiego życia, bardzo trudną do zestrzelenia z powodu częstych zmian kierunku lotu. Osy przenoszą kule \l;materii organicznej\u object\bullet;, które zrzucają z góry na roboty, budynki i astronautę. + +Najłatwiej pozbyć się ich budując \l;wieżę obronną\u object\tower;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;AlienWasp\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/WASP.TXT.bak b/help/P/object/WASP.TXT.bak new file mode 100644 index 00000000..af397ada --- /dev/null +++ b/help/P/object/WASP.TXT.bak @@ -0,0 +1,11 @@ +\b;Osa +\image wasp 8 8; +Osy s obc form wrogiego ycia, bardzo trudn do zestrzelenia z powodu czstych zmian kierunku lotu. Osy przenosz kule \l;materii organicznej\u object\bullet;, ktre zrzucaj z gry na roboty, budynki i astronaut. + +Najatwiej pozby si ich budujc \l;wie obronn\u object\tower;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;AlienWasp\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/WAYPOINT.TXT b/help/P/object/WAYPOINT.TXT new file mode 100644 index 00000000..f2838fea --- /dev/null +++ b/help/P/object/WAYPOINT.TXT @@ -0,0 +1,12 @@ +\b;Punkt kontrolny +\image waypoint 4 4; +W ćwiczeniach niebieskie plusy oznaczają pozycje, które należy zaliczyć. Znikają one natychmiast po przejściu przez nie \l;robota treningowego\u object\bottr;. + +\t;Transport +Niemożliwy. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;WayPoint\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/WAYPOINT.TXT.bak b/help/P/object/WAYPOINT.TXT.bak new file mode 100644 index 00000000..d6199cd7 --- /dev/null +++ b/help/P/object/WAYPOINT.TXT.bak @@ -0,0 +1,12 @@ +\b;Punkt kontrolny +\image waypoint 4 4; +W wiczeniach niebieskie plusy oznaczaj pozycje, ktre naley zaliczy. Znikaj one natychmiast po przejciu przez nie \l;robota treningowego\u object\bottr;. + +\t;Transport +Niemoliwy. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;WayPoint\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/WORM.TXT b/help/P/object/WORM.TXT new file mode 100644 index 00000000..c9237605 --- /dev/null +++ b/help/P/object/WORM.TXT @@ -0,0 +1,11 @@ +\b;Robal +\image worm 8 8; +Robale zarażają wirusami zaprogramowane roboty. Wirusy modyfikują programy w stopniu uniemożliwiającym ich prawidłowe działanie lub powodującym przerwanie ich działania. + +Robale żyją w podglebiu, choć czasem wychodzą i pełzają po powierzchni. Gdy są pod ziemią są niewykrywalne i niezniszczalne. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;AlienWorm\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/WORM.TXT.bak b/help/P/object/WORM.TXT.bak new file mode 100644 index 00000000..70200d79 --- /dev/null +++ b/help/P/object/WORM.TXT.bak @@ -0,0 +1,11 @@ +\b;Robal +\image worm 8 8; +Robale zaraaj wirusami zaprogramowane roboty. Wirusy modyfikuj programy w stopniu uniemoliwiajcym ich prawidowe dziaanie lub powodujcym przerwanie ich dziaania. + +Robale yj w podglebiu, cho czasem wychodz i pezaj po powierzchni. Gdy s pod ziemi s niewykrywalne i niezniszczalne. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;AlienWorm\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/WRECK.TXT b/help/P/object/WRECK.TXT new file mode 100644 index 00000000..f68139ae --- /dev/null +++ b/help/P/object/WRECK.TXT @@ -0,0 +1,10 @@ +\b;Pozostałości robota +Wrak robota to pozostałości po robocie uszkodzonym przez \l;pająka\u object\spider; lub ogień własnych robotów. + +Z wraku robota można odzyskać pełnowartościową \l;kostkę tytanu\u object\titan; przy użyciu robota \l;recyklera\u object\botrecy;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;Wreck\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/WRECK.TXT.bak b/help/P/object/WRECK.TXT.bak new file mode 100644 index 00000000..1bfd486d --- /dev/null +++ b/help/P/object/WRECK.TXT.bak @@ -0,0 +1,10 @@ +\b;Pozostaoci robota +Wrak robota to pozostaoci po robocie uszkodzonym przez \l;pajka\u object\spider; lub ogie wasnych robotw. + +Z wraku robota mona odzyska penowartociow \l;kostk tytanu\u object\titan; przy uyciu robota \l;recyklera\u object\botrecy;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;Wreck\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/ant.txt b/help/P/object/ant.txt new file mode 100644 index 00000000..5a428fbe --- /dev/null +++ b/help/P/object/ant.txt @@ -0,0 +1,11 @@ +\b;Mrówka +\image ant 8 8; +Mrówki strzelają małymi żrącymi kulkami które wgryzają się w osłony ochronne robotów i budynków, powodując ich zniszczenie. + +\l;Człowiek\u object\human; może znacznie dłużej wytrzymać ich ataki niż większość budynków i robotów, gdyż Twoja osłona ochronna odnawia się, gdy goją się jego rany. Jednkaże, jeśli zostaniesz zbyt długo w ich zasięgu lub gdy jest ich zbyt dużo, Twoje życie może być w wielkim niebezpieczeństwie. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;AlienAnt\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/ant.txt.bak b/help/P/object/ant.txt.bak new file mode 100644 index 00000000..2fb18884 --- /dev/null +++ b/help/P/object/ant.txt.bak @@ -0,0 +1,11 @@ +\b;Mrwka +\image ant 8 8; +Mrwki strzelaj maymi rcymi kulkami ktre wgryzaj si w osony ochronne robotw i budynkw, powodujc ich zniszczenie. + +\l;Czowiek\u object\human; moe znacznie duej wytrzyma ich ataki ni wikszo budynkw i robotw, gdy Twoja osona ochronna odnawia si, gdy goj si jego rany. Jednkae, jeli zostaniesz zbyt dugo w ich zasigu lub gdy jest ich zbyt duo, Twoje ycie moe by w wielkim niebezpieczestwie. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;AlienAnt\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/atomic.txt b/help/P/object/atomic.txt new file mode 100644 index 00000000..a49e4b61 --- /dev/null +++ b/help/P/object/atomic.txt @@ -0,0 +1,15 @@ +\b;Atomowe ogniwo elektryczne +\image atomic 4 4; +Atomowe ogniwo elektryczne dostarcza energii robotom i niektórym budynkom. +Jego pojemność jest 100 razy większa od pojemnośći \l;zwykłego ogniwa elektrycznego\u object\power;. + +Atomowe ogniwa elektryczne nie mogą być jednak ponownie ładowane ani przetwarzane. Do wytworzenia nowego, w pełni naładowanego atomowego ogniwa elektrycznego potrzebna jest \l;elektrownia atomowa\u object\nuclear; oraz nieco \l;rudy uranu\u object\uranore;. + +\t;Transport +Wszystkie \l;transportery\u object\botgr; oraz \l;astronauta\u object\human;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;NuclearCell\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;.. diff --git a/help/P/object/atomic.txt.bak b/help/P/object/atomic.txt.bak new file mode 100644 index 00000000..04f2e55c --- /dev/null +++ b/help/P/object/atomic.txt.bak @@ -0,0 +1,15 @@ +\b;Atomowe ogniwo elektryczne +\image atomic 4 4; +Atomowe ogniwo elektryczne dostarcza energii robotom i niektrym budynkom. +Jego pojemno jest 100 razy wiksza od pojemnoi \l;zwykego ogniwa elektrycznego\u object\power;. + +Atomowe ogniwa elektryczne nie mog by jednak ponownie adowane ani przetwarzane. Do wytworzenia nowego, w peni naadowanego atomowego ogniwa elektrycznego potrzebna jest \l;elektrownia atomowa\u object\nuclear; oraz nieco \l;rudy uranu\u object\uranore;. + +\t;Transport +Wszystkie \l;transportery\u object\botgr; oraz \l;astronauta\u object\human;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;NuclearCell\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;.. diff --git a/help/P/object/barrier.txt b/help/P/object/barrier.txt new file mode 100644 index 00000000..5b8ba2cc --- /dev/null +++ b/help/P/object/barrier.txt @@ -0,0 +1,8 @@ +\b;Bariera +Bariera to nic innego niż używana w ćwiczeniach przeszkoda. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;Barrier\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;.. diff --git a/help/P/object/barrier.txt.bak b/help/P/object/barrier.txt.bak new file mode 100644 index 00000000..73c9a212 --- /dev/null +++ b/help/P/object/barrier.txt.bak @@ -0,0 +1,8 @@ +\b;Bariera +Bariera to nic innego ni uywana w wiczeniach przeszkoda. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;Barrier\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;.. diff --git a/help/P/object/base.txt b/help/P/object/base.txt new file mode 100644 index 00000000..e73cee6f --- /dev/null +++ b/help/P/object/base.txt @@ -0,0 +1,11 @@ +\b;\button 171; Statek kosmiczny +\image base 8 8; +\l;Twój\u object\human; środek transportu pomiędzy planetami, jedyny sposób bezpiecznego podróżowania w kosmosie i wypełnienia misji. + +Poza astronautą, statek kosmiczny może przewozić roboty oraz surowce. Po zakończeniu misji, należy zanaczyć statek kosmiczny, a następnie kliknąć polecenie odlotu \button 28;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;SpaceShip\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;.. diff --git a/help/P/object/base.txt.bak b/help/P/object/base.txt.bak new file mode 100644 index 00000000..8d0c97a7 --- /dev/null +++ b/help/P/object/base.txt.bak @@ -0,0 +1,11 @@ +\b;\button 171; Statek kosmiczny +\image base 8 8; +\l;Twj\u object\human; rodek transportu pomidzy planetami, jedyny sposb bezpiecznego podrowania w kosmosie i wypenienia misji. + +Poza astronaut, statek kosmiczny moe przewozi roboty oraz surowce. Po zakoczeniu misji, naley zanaczy statek kosmiczny, a nastpnie klikn polecenie odlotu \button 28;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;SpaceShip\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;.. diff --git a/help/P/object/bbox.txt b/help/P/object/bbox.txt new file mode 100644 index 00000000..40ded42a --- /dev/null +++ b/help/P/object/bbox.txt @@ -0,0 +1,14 @@ +\b;Czarna skrzynka +\image bbox 4 4; +Czarna skrzynka tak naprawdę jest pomarańczowa, żeby łatwiej można ją było rozpoznać i znaleźć. Każdy \l;statek kosmiczny\u object\base; wyposażony jest w czarną skrzynkę zapisującą i przechowującą informacje o przebiegu lotu. + +Czarna skrzynka może być także użyta do pozostawienia ważnych informacji. Pierwsza ekspedycja zostawiła na każdej z planet czarną skrzynkę zawierającą współrzędne planety, do której zmierzała w następnej kolejności. + +\t;Transport +Wszystkie \l;transportery\u object\botgr; oraz \l;astronauta\u object\human;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;BlackBox\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;.. diff --git a/help/P/object/bbox.txt.bak b/help/P/object/bbox.txt.bak new file mode 100644 index 00000000..c1022ec0 --- /dev/null +++ b/help/P/object/bbox.txt.bak @@ -0,0 +1,14 @@ +\b;Czarna skrzynka +\image bbox 4 4; +Czarna skrzynka tak naprawd jest pomaraczowa, eby atwiej mona j byo rozpozna i znale. Kady \l;statek kosmiczny\u object\base; wyposaony jest w czarn skrzynk zapisujc i przechowujc informacje o przebiegu lotu. + +Czarna skrzynka moe by take uyta do pozostawienia wanych informacji. Pierwsza ekspedycja zostawia na kadej z planet czarn skrzynk zawierajc wsprzdne planety, do ktrej zmierzaa w nastpnej kolejnoci. + +\t;Transport +Wszystkie \l;transportery\u object\botgr; oraz \l;astronauta\u object\human;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;BlackBox\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;.. diff --git a/help/P/object/botfc.txt b/help/P/object/botfc.txt new file mode 100644 index 00000000..23ca4734 --- /dev/null +++ b/help/P/object/botfc.txt @@ -0,0 +1,20 @@ +\b;\button 144; Działo na gąsienicach +\image botfc 8 8; +Robot na gąsienicach strzelający kulami ognia. + +Działko strzelające kulami ognia jest skuteczną bronią przeciwko większości \l;wrogów\u object\mother;. Należy używać go z rozwagą, z uwagi na duże zużycie energii. \l;Zwykłe ogniwo elektryczne\u object\power; wystarcza na oddanie tylko 4 serii strzałów. + +Porada: poruszanie myszą podczas strzelania spowoduje ogarnięcie strzałami większego obszaru. + +Roboty na gąsienicach mogą pokonywać strome pochyłości ale są raczej powolne i zużywają mnóstwo energii. Na płaskim terenie na krótszych dystansach lepszym wyborem jest \l;działo na kołach\u object\botfr;. Gdy jest to możliwe, zbudowanie \l;robota latającego\u object\botfj; jest najlepszym sposobem pokonywania dużych odległości. + +\t;Programowanie +Do zaprogramowania poruszania robotem można używać następujących instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania działka strzelającego kulami ognia służy instrukcja \c;\l;fire\u cbot\fire;\n;. Lufę można podnieść lub opuścić używając instrukcji \c;\l;aim\u cbot\aim;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;TrackedShooter\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/botfc.txt.bak b/help/P/object/botfc.txt.bak new file mode 100644 index 00000000..ae403f37 --- /dev/null +++ b/help/P/object/botfc.txt.bak @@ -0,0 +1,20 @@ +\b;\button 144; Dziao na gsienicach +\image botfc 8 8; +Robot na gsienicach strzelajcy kulami ognia. + +Dziako strzelajce kulami ognia jest skuteczn broni przeciwko wikszoci \l;wrogw\u object\mother;. Naley uywa go z rozwag, z uwagi na due zuycie energii. \l;Zwyke ogniwo elektryczne\u object\power; wystarcza na oddanie tylko 4 serii strzaw. + +Porada: poruszanie mysz podczas strzelania spowoduje ogarnicie strzaami wikszego obszaru. + +Roboty na gsienicach mog pokonywa strome pochyoci ale s raczej powolne i zuywaj mnstwo energii. Na paskim terenie na krtszych dystansach lepszym wyborem jest \l;dziao na koach\u object\botfr;. Gdy jest to moliwe, zbudowanie \l;robota latajcego\u object\botfj; jest najlepszym sposobem pokonywania duych odlegoci. + +\t;Programowanie +Do zaprogramowania poruszania robotem mona uywa nastpujcych instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania dziaka strzelajcego kulami ognia suy instrukcja \c;\l;fire\u cbot\fire;\n;. Luf mona podnie lub opuci uywajc instrukcji \c;\l;aim\u cbot\aim;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;TrackedShooter\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/botfj.txt b/help/P/object/botfj.txt new file mode 100644 index 00000000..ee57d12d --- /dev/null +++ b/help/P/object/botfj.txt @@ -0,0 +1,22 @@ +\b;\button 145; Działo latające +\image botfj 8 8; +Latający robot z napędem odrzutowym wyposażony w działko strzelające kulami ognia. + +Działko strzelające kulami ognia jest skuteczną bronią przeciwko większości \l;wrogów\u object\mother;. Należy używać go z rozwagą, z uwagi na duże zużycie energii. \l;Zwykłe ogniwo elektryczne\u object\power; wystarcza na oddanie tylko 4 serii strzałów. + +Porada: poruszanie myszą podczas strzelania spowoduje ogarnięcie strzałami większego obszaru. + +Wyświetlacz na dole ekranu pokazuje temperaturę reaktora. Należy zwracać na niego uwagę. Jeśli reaktor się przegrzeje, silnik się zatrzyma i robot spadnie. + +Roboty latające mogą przemieszczać się ponad naturalnymi przeszkodami, takimi jak góry lub jeziora ale ich zapas energii szybko się zużywa. Na ziemi są one powolne. Na krótkich odległościach, nie wymagających latania, polecane jest użycie \l;działa na kołach\u object\botfr;. + +\t;Programowanie +Do zaprogramowania poruszania robotem można używać następujących instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;jet\u cbot\jet;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania działka strzelającego kulami ognia służy instrukcja \c;\l;fire\u cbot\fire;\n;. Lufę można podnieść lub opuścić używając instrukcji \c;\l;aim\u cbot\aim;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;WingedShooter\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/botfj.txt.bak b/help/P/object/botfj.txt.bak new file mode 100644 index 00000000..8583bdad --- /dev/null +++ b/help/P/object/botfj.txt.bak @@ -0,0 +1,22 @@ +\b;\button 145; Dziao latajce +\image botfj 8 8; +Latajcy robot z napdem odrzutowym wyposaony w dziako strzelajce kulami ognia. + +Dziako strzelajce kulami ognia jest skuteczn broni przeciwko wikszoci \l;wrogw\u object\mother;. Naley uywa go z rozwag, z uwagi na due zuycie energii. \l;Zwyke ogniwo elektryczne\u object\power; wystarcza na oddanie tylko 4 serii strzaw. + +Porada: poruszanie mysz podczas strzelania spowoduje ogarnicie strzaami wikszego obszaru. + +Wywietlacz na dole ekranu pokazuje temperatur reaktora. Naley zwraca na niego uwag. Jeli reaktor si przegrzeje, silnik si zatrzyma i robot spadnie. + +Roboty latajce mog przemieszcza si ponad naturalnymi przeszkodami, takimi jak gry lub jeziora ale ich zapas energii szybko si zuywa. Na ziemi s one powolne. Na krtkich odlegociach, nie wymagajcych latania, polecane jest uycie \l;dziaa na koach\u object\botfr;. + +\t;Programowanie +Do zaprogramowania poruszania robotem mona uywa nastpujcych instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;jet\u cbot\jet;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania dziaka strzelajcego kulami ognia suy instrukcja \c;\l;fire\u cbot\fire;\n;. Luf mona podnie lub opuci uywajc instrukcji \c;\l;aim\u cbot\aim;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;WingedShooter\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/botfr.txt b/help/P/object/botfr.txt new file mode 100644 index 00000000..5f15e959 --- /dev/null +++ b/help/P/object/botfr.txt @@ -0,0 +1,20 @@ +\b;\button 143; Działo na kołach +\image botfr 8 8; +Robot na kołach strzelający ognistymi kulami. + +Działko strzelające kulami ognia jest skuteczną bronią przeciwko większości \l;wrogów\u object\mother;. Należy używać go z rozwagą, z uwagi na duże zużycie energii. \l;Zwykłe ogniwo elektryczne\u object\power; wystarcza na oddanie tylko 4 serii strzałów. + +Porada: poruszanie myszą podczas strzelania spowoduje ogarnięcie strzałami większego obszaru. + +Koła to standardowy, szybki i energooszczędny sposób napędu, idealny do poruszania się po relatywnie płaskich powierzchniach. Na pochyłym terenie polecane jest użycie \l;działa latającego\u object\botfj;, a jeśli jest to niemożliwe, \l;działa na gąsienicach\u object\botfc;. + +\t;Programowanie +Do zaprogramowania poruszania robotem można używać następujących instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania działka strzelającego kulami ognia służy instrukcja \c;\l;fire\u cbot\fire;\n;. Lufę można podnieść lub opuścić używając instrukcji \c;\l;aim\u cbot\aim;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;WheeledShooter\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/botfr.txt.bak b/help/P/object/botfr.txt.bak new file mode 100644 index 00000000..92f0a2a6 --- /dev/null +++ b/help/P/object/botfr.txt.bak @@ -0,0 +1,20 @@ +\b;\button 143; Dziao na koach +\image botfr 8 8; +Robot na koach strzelajcy ognistymi kulami. + +Dziako strzelajce kulami ognia jest skuteczn broni przeciwko wikszoci \l;wrogw\u object\mother;. Naley uywa go z rozwag, z uwagi na due zuycie energii. \l;Zwyke ogniwo elektryczne\u object\power; wystarcza na oddanie tylko 4 serii strzaw. + +Porada: poruszanie mysz podczas strzelania spowoduje ogarnicie strzaami wikszego obszaru. + +Koa to standardowy, szybki i energooszczdny sposb napdu, idealny do poruszania si po relatywnie paskich powierzchniach. Na pochyym terenie polecane jest uycie \l;dziaa latajcego\u object\botfj;, a jeli jest to niemoliwe, \l;dziaa na gsienicach\u object\botfc;. + +\t;Programowanie +Do zaprogramowania poruszania robotem mona uywa nastpujcych instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania dziaka strzelajcego kulami ognia suy instrukcja \c;\l;fire\u cbot\fire;\n;. Luf mona podnie lub opuci uywajc instrukcji \c;\l;aim\u cbot\aim;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;WheeledShooter\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/botfs.txt b/help/P/object/botfs.txt new file mode 100644 index 00000000..86160c90 --- /dev/null +++ b/help/P/object/botfs.txt @@ -0,0 +1,20 @@ +\b;\button 151; Działko na nogach +\image botfs 8 8; +Robot pełzający na mrówczych odnóżach, strzelający kulami ognia. + +Działko strzelające kulami ognia jest skuteczną bronią przeciwko większości \l;wrogów\u object\mother;. Należy używać go z rozwagą, z uwagi na duże zużycie energii. \l;Zwykłe ogniwo elektryczne\u object\power; wystarcza na oddanie tylko 4 serii strzałów. + +Porada: poruszanie myszą podczas strzelania spowoduje ogarnięcie strzałami większego obszaru. + +Podczas poruszania się, działo na nogach zużywa o połowę mniej energii od \l;działa na kołach\u object\botfr;. Robot na nogach jest też idealnie przystosowany do wspinania się nawet po najbardziej stromych pochyłościach. + +\t;Programowanie +Do zaprogramowania poruszania robotem można używać następujących instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania działka strzelającego kulami ognia służy instrukcja \c;\l;fire\u cbot\fire;\n;. Lufę można podnieść lub opuścić używając instrukcji \c;\l;aim\u cbot\aim;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;LeggedShooter\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/botfs.txt.bak b/help/P/object/botfs.txt.bak new file mode 100644 index 00000000..a7dba8df --- /dev/null +++ b/help/P/object/botfs.txt.bak @@ -0,0 +1,20 @@ +\b;\button 151; Dziako na nogach +\image botfs 8 8; +Robot pezajcy na mrwczych odnach, strzelajcy kulami ognia. + +Dziako strzelajce kulami ognia jest skuteczn broni przeciwko wikszoci \l;wrogw\u object\mother;. Naley uywa go z rozwag, z uwagi na due zuycie energii. \l;Zwyke ogniwo elektryczne\u object\power; wystarcza na oddanie tylko 4 serii strzaw. + +Porada: poruszanie mysz podczas strzelania spowoduje ogarnicie strzaami wikszego obszaru. + +Podczas poruszania si, dziao na nogach zuywa o poow mniej energii od \l;dziaa na koach\u object\botfr;. Robot na nogach jest te idealnie przystosowany do wspinania si nawet po najbardziej stromych pochyociach. + +\t;Programowanie +Do zaprogramowania poruszania robotem mona uywa nastpujcych instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania dziaka strzelajcego kulami ognia suy instrukcja \c;\l;fire\u cbot\fire;\n;. Luf mona podnie lub opuci uywajc instrukcji \c;\l;aim\u cbot\aim;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;LeggedShooter\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/botgc.txt b/help/P/object/botgc.txt new file mode 100644 index 00000000..8fae9bea --- /dev/null +++ b/help/P/object/botgc.txt @@ -0,0 +1,33 @@ +\b;\button 138; Transporter na gąsienicach +\image botgc 8 8; +Robot na gąsienicach wyposażony w ramię chwytające. + +\button 32; Chwyta przedmiot lub odkłada go, w miejscu określonym przez jedną z następujących opcji: +\button 33; Przedmiot leżący przed robotem, na ziemi lub z tyłu innego robota. +\button 35; Własne ogniwo elektryczne robota. +\button 34; Przedmiot leżący za robotem, na ziemi. + +Następujące przedmioty mogą być przenoszone: +o \l;Ruda tytanu\u object\titanore;. +o \l;Ruda uranu\u object\uranore;. +o \l;Kostka tytanu\u object\titan;. +o \l;Zwykłe ogniwo elektryczne\u object\power;. +o \l;Atomowe ogniwo elektryczne\u object\atomic;. +o \l;Czarna skrzynka\u object\bbox;. +o \l;Klucze A, B, C i D\u object\key;. +o \l;Materia organiczna\u object\bullet;. + +Roboty na gąsienicach mogą pokonywać strome pochyłości ale są raczej powolne i zużywają mnóstwo energii. Na płaskim terenie, na krótszych dystansach lepszym wyborem jest \l;transporter na kołach\u object\botgr;. Gdy jest to możliwe, zbudowanie \l;robota latającego\u object\botgj; jest najlepszym sposobem pokonywania dużych odległości. + +Transporter nie działa pod wodą. Zamiast niego należy użyć robota \l;nurka\u object\botsub;. + +\t;Programowanie +Do zaprogramowania poruszania robotem można używać następujących instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania ramienia chwytającego można używać instrukcji \c;\l;grab\u cbot\grab;\n; i \c;\l;drop\u cbot\drop;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;TrackedGrabber\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/botgc.txt.bak b/help/P/object/botgc.txt.bak new file mode 100644 index 00000000..bab8f409 --- /dev/null +++ b/help/P/object/botgc.txt.bak @@ -0,0 +1,33 @@ +\b;\button 138; Transporter na gsienicach +\image botgc 8 8; +Robot na gsienicach wyposaony w rami chwytajce. + +\button 32; Chwyta przedmiot lub odkada go, w miejscu okrelonym przez jedn z nastpujcych opcji: +\button 33; Przedmiot lecy przed robotem, na ziemi lub z tyu innego robota. +\button 35; Wasne ogniwo elektryczne robota. +\button 34; Przedmiot lecy za robotem, na ziemi. + +Nastpujce przedmioty mog by przenoszone: +o \l;Ruda tytanu\u object\titanore;. +o \l;Ruda uranu\u object\uranore;. +o \l;Kostka tytanu\u object\titan;. +o \l;Zwyke ogniwo elektryczne\u object\power;. +o \l;Atomowe ogniwo elektryczne\u object\atomic;. +o \l;Czarna skrzynka\u object\bbox;. +o \l;Klucze A, B, C i D\u object\key;. +o \l;Materia organiczna\u object\bullet;. + +Roboty na gsienicach mog pokonywa strome pochyoci ale s raczej powolne i zuywaj mnstwo energii. Na paskim terenie, na krtszych dystansach lepszym wyborem jest \l;transporter na koach\u object\botgr;. Gdy jest to moliwe, zbudowanie \l;robota latajcego\u object\botgj; jest najlepszym sposobem pokonywania duych odlegoci. + +Transporter nie dziaa pod wod. Zamiast niego naley uy robota \l;nurka\u object\botsub;. + +\t;Programowanie +Do zaprogramowania poruszania robotem mona uywa nastpujcych instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania ramienia chwytajcego mona uywa instrukcji \c;\l;grab\u cbot\grab;\n; i \c;\l;drop\u cbot\drop;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;TrackedGrabber\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/botgj.txt b/help/P/object/botgj.txt new file mode 100644 index 00000000..9dc7d8c1 --- /dev/null +++ b/help/P/object/botgj.txt @@ -0,0 +1,35 @@ +\b;\button 139; Transporter latający +\image botgj 8 8; +Latający robot z napędem odrzutowym wyposażony w ramię chwytające. + +\button 32; Chwyta przedmiot lub odkłada go, w miejscu określonym przez jedną z następujących opcji: +\button 33; Przedmiot leżący przed robotem, na ziemi lub z tyłu innego robota. +\button 35; Własne ogniwo elektryczne robota. +\button 34; Przedmiot leżący za robotem, na ziemi. + +Następujące przedmioty mogą być przenoszone: +o \l;Ruda tytanu\u object\titanore;. +o \l;Ruda uranu\u object\uranore;. +o \l;Kostka tytanu\u object\titan;. +o \l;Zwykłe ogniwo elektryczne\u object\power;. +o \l;Atomowe ogniwo elektryczne\u object\atomic;. +o \l;Czarna skrzynka\u object\bbox;. +o \l;Klucze A, B, C i D\u object\key;. +o \l;Materia organiczna\u object\bullet;. + +Wyświetlacz na dole ekranu pokazuje temperaturę reaktora. Należy zwracać na niego uwagę. Jeśli reaktor się przegrzeje, silnik się zatrzyma i robot spadnie. + +Roboty latające mogą przemieszczać się ponad naturalnymi przeszkodami, takimi jak góry lub jeziora ale ich zapas energii szybko się zużywa. Na ziemi są one powolne. Na krótkich odległościach, nie wymagających latania, polecane jest użycie \l;transportera na kołach\u object\botgr;. + +Transporter nie działa pod wodą. Zamiast niego należy użyć robota \l;nurka\u object\botsub;. + +\t;Programowanie +Do zaprogramowania poruszania robotem można używać następujących instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania ramienia chwytającego można używać instrukcji \c;\l;grab\u cbot\grab;\n; i \c;\l;drop\u cbot\drop;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;WingedGrabber\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/botgj.txt.bak b/help/P/object/botgj.txt.bak new file mode 100644 index 00000000..6a4830fe --- /dev/null +++ b/help/P/object/botgj.txt.bak @@ -0,0 +1,35 @@ +\b;\button 139; Transporter latajcy +\image botgj 8 8; +Latajcy robot z napdem odrzutowym wyposaony w rami chwytajce. + +\button 32; Chwyta przedmiot lub odkada go, w miejscu okrelonym przez jedn z nastpujcych opcji: +\button 33; Przedmiot lecy przed robotem, na ziemi lub z tyu innego robota. +\button 35; Wasne ogniwo elektryczne robota. +\button 34; Przedmiot lecy za robotem, na ziemi. + +Nastpujce przedmioty mog by przenoszone: +o \l;Ruda tytanu\u object\titanore;. +o \l;Ruda uranu\u object\uranore;. +o \l;Kostka tytanu\u object\titan;. +o \l;Zwyke ogniwo elektryczne\u object\power;. +o \l;Atomowe ogniwo elektryczne\u object\atomic;. +o \l;Czarna skrzynka\u object\bbox;. +o \l;Klucze A, B, C i D\u object\key;. +o \l;Materia organiczna\u object\bullet;. + +Wywietlacz na dole ekranu pokazuje temperatur reaktora. Naley zwraca na niego uwag. Jeli reaktor si przegrzeje, silnik si zatrzyma i robot spadnie. + +Roboty latajce mog przemieszcza si ponad naturalnymi przeszkodami, takimi jak gry lub jeziora ale ich zapas energii szybko si zuywa. Na ziemi s one powolne. Na krtkich odlegociach, nie wymagajcych latania, polecane jest uycie \l;transportera na koach\u object\botgr;. + +Transporter nie dziaa pod wod. Zamiast niego naley uy robota \l;nurka\u object\botsub;. + +\t;Programowanie +Do zaprogramowania poruszania robotem mona uywa nastpujcych instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania ramienia chwytajcego mona uywa instrukcji \c;\l;grab\u cbot\grab;\n; i \c;\l;drop\u cbot\drop;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;WingedGrabber\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/botgr.txt b/help/P/object/botgr.txt new file mode 100644 index 00000000..69449085 --- /dev/null +++ b/help/P/object/botgr.txt @@ -0,0 +1,33 @@ +\b;\button 137; Transporter na kołach +\image botgr 8 8; +Robot na kołach wyposażony w ramię chwytające. + +\button 32; Chwyta przedmiot lub odkłada go, w miejscu określonym przez jedną z następujących opcji: +\button 33; Przedmiot leżący przed robotem, na ziemi lub z tyłu innego robota. +\button 35; Własne ogniwo elektryczne robota. +\button 34; Przedmiot leżący za robotem, na ziemi. + +Następujące przedmioty mogą być przenoszone: +o \l;Ruda tytanu\u object\titanore;. +o \l;Ruda uranu\u object\uranore;. +o \l;Kostka tytanu\u object\titan;. +o \l;Zwykłe ogniwo elektryczne\u object\power;. +o \l;Atomowe ogniwo elektryczne\u object\atomic;. +o \l;Czarna skrzynka\u object\bbox;. +o \l;Klucze A, B, C i D\u object\key;. +o \l;Materia organiczna\u object\bullet;. + +Koła to standardowy, szybki i energooszczędny sposób napędu, idealny do poruszania się po relatywnie płaskich powierzchniach. Na pochyłym terenie polecane jest użycie \l;działa latającego\u object\botfj;, a jeśli jest to niemożliwe, \l;działa na gąsienicach\u object\botfc;. + +Transporter nie działa pod wodą. Zamiast niego należy użyć robota \l;nurka\u object\botsub;. + +\t;Programowanie +Do zaprogramowania poruszania robotem można używać następujących instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania ramienia chwytającego można używać instrukcji \c;\l;grab\u cbot\grab;\n; i \c;\l;drop\u cbot\drop;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;WheeledGrabber\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/botgr.txt.bak b/help/P/object/botgr.txt.bak new file mode 100644 index 00000000..6c4f54fe --- /dev/null +++ b/help/P/object/botgr.txt.bak @@ -0,0 +1,33 @@ +\b;\button 137; Transporter na koach +\image botgr 8 8; +Robot na koach wyposaony w rami chwytajce. + +\button 32; Chwyta przedmiot lub odkada go, w miejscu okrelonym przez jedn z nastpujcych opcji: +\button 33; Przedmiot lecy przed robotem, na ziemi lub z tyu innego robota. +\button 35; Wasne ogniwo elektryczne robota. +\button 34; Przedmiot lecy za robotem, na ziemi. + +Nastpujce przedmioty mog by przenoszone: +o \l;Ruda tytanu\u object\titanore;. +o \l;Ruda uranu\u object\uranore;. +o \l;Kostka tytanu\u object\titan;. +o \l;Zwyke ogniwo elektryczne\u object\power;. +o \l;Atomowe ogniwo elektryczne\u object\atomic;. +o \l;Czarna skrzynka\u object\bbox;. +o \l;Klucze A, B, C i D\u object\key;. +o \l;Materia organiczna\u object\bullet;. + +Koa to standardowy, szybki i energooszczdny sposb napdu, idealny do poruszania si po relatywnie paskich powierzchniach. Na pochyym terenie polecane jest uycie \l;dziaa latajcego\u object\botfj;, a jeli jest to niemoliwe, \l;dziaa na gsienicach\u object\botfc;. + +Transporter nie dziaa pod wod. Zamiast niego naley uy robota \l;nurka\u object\botsub;. + +\t;Programowanie +Do zaprogramowania poruszania robotem mona uywa nastpujcych instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania ramienia chwytajcego mona uywa instrukcji \c;\l;grab\u cbot\grab;\n; i \c;\l;drop\u cbot\drop;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;WheeledGrabber\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/botgs.txt b/help/P/object/botgs.txt new file mode 100644 index 00000000..a8291e91 --- /dev/null +++ b/help/P/object/botgs.txt @@ -0,0 +1,34 @@ +\b;\button 150; Transporter na nogach +\image botgs 8 8; +Robot pełzający na mrówczych odnóżach, wyposażony w ramię chwytające. + +\button 32; Chwyta przedmiot lub odkłada go, w miejscu określonym przez jedną z następujących opcji: +\button 33; Przedmiot leżący przed robotem, na ziemi lub z tyłu innego robota. +\button 35; Własne ogniwo elektryczne robota. +\button 34; Przedmiot leżący za robotem, na ziemi. + +Następujące przedmioty mogą być przenoszone: +o \l;Ruda tytanu\u object\titanore;. +o \l;Ruda uranu\u object\uranore;. +o \l;Kostka tytanu\u object\titan;. +o \l;Zwykłe ogniwo elektryczne\u object\power;. +o \l;Atomowe ogniwo elektryczne\u object\atomic;. +o \l;Czarna skrzynka\u object\bbox;. +o \l;Klucze A, B, C i D\u object\key;. +o \l;Materia organiczna\u object\bullet;. + +Podczas poruszania się, transporter na nogach zużywa o połowę mniej energii od \l;transportera na kołach\u object\botgr;. Robot na nogach jest też idealnie przystosowany do wspinania się nawet po najbardziej stromych pochyłościach. + +Transporter nie działa pod wodą. Zamiast niego należy użyć robota \l;nurka\u object\botsub;. + +\t;Programowanie +Do zaprogramowania poruszania robotem można używać następujących instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania ramienia chwytającego można używać instrukcji \c;\l;grab\u cbot\grab;\n; i \c;\l;drop\u cbot\drop;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;LeggedGrabber\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. + diff --git a/help/P/object/botgs.txt.bak b/help/P/object/botgs.txt.bak new file mode 100644 index 00000000..0247331d --- /dev/null +++ b/help/P/object/botgs.txt.bak @@ -0,0 +1,34 @@ +\b;\button 150; Transporter na nogach +\image botgs 8 8; +Robot pezajcy na mrwczych odnach, wyposaony w rami chwytajce. + +\button 32; Chwyta przedmiot lub odkada go, w miejscu okrelonym przez jedn z nastpujcych opcji: +\button 33; Przedmiot lecy przed robotem, na ziemi lub z tyu innego robota. +\button 35; Wasne ogniwo elektryczne robota. +\button 34; Przedmiot lecy za robotem, na ziemi. + +Nastpujce przedmioty mog by przenoszone: +o \l;Ruda tytanu\u object\titanore;. +o \l;Ruda uranu\u object\uranore;. +o \l;Kostka tytanu\u object\titan;. +o \l;Zwyke ogniwo elektryczne\u object\power;. +o \l;Atomowe ogniwo elektryczne\u object\atomic;. +o \l;Czarna skrzynka\u object\bbox;. +o \l;Klucze A, B, C i D\u object\key;. +o \l;Materia organiczna\u object\bullet;. + +Podczas poruszania si, transporter na nogach zuywa o poow mniej energii od \l;transportera na koach\u object\botgr;. Robot na nogach jest te idealnie przystosowany do wspinania si nawet po najbardziej stromych pochyociach. + +Transporter nie dziaa pod wod. Zamiast niego naley uy robota \l;nurka\u object\botsub;. + +\t;Programowanie +Do zaprogramowania poruszania robotem mona uywa nastpujcych instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania ramienia chwytajcego mona uywa instrukcji \c;\l;grab\u cbot\grab;\n; i \c;\l;drop\u cbot\drop;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;LeggedGrabber\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. + diff --git a/help/P/object/botoc.txt b/help/P/object/botoc.txt new file mode 100644 index 00000000..7fbb01bb --- /dev/null +++ b/help/P/object/botoc.txt @@ -0,0 +1,18 @@ +\b;\button 154; Działo organiczne na gąsienicach +\image botoc 8 8; +Robot na gąsienicach strzelający kulami organicznymi. + +Działko organiczne jest efektywniejsze od \l;działka ogniowego\u object\botfc;. Strzela ono małymi kulkami żrącej \l;materii organicznej\u object\bullet;. \l;Zwykłe ogniwo elektryczne\u object\power; wystarcza na oddanie 11 serii strzałów. + +Roboty na gąsienicach mogą pokonywać strome pochyłości ale są raczej powolne i zużywają mnóstwo energii. Na płaskim terenie na krótszych dystansach lepszym wyborem jest \l;działo organiczne na kołach\u object\botor;. Gdy jest to możliwe, zbudowanie \l;robota latającego\u object\botoj; jest najlepszym sposobem pokonywania dużych odległości. + +\t;Programowanie +Do zaprogramowania poruszania robotem można używać następujących instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania działka strzelającego kulami organicznymi służy instrukcja \c;\l;fire\u cbot\fire;\n;. Lufę można podnieść lub opuścić używając instrukcji \c;\l;aim\u cbot\aim;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;TrackedOrgaShooter\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/botoc.txt.bak b/help/P/object/botoc.txt.bak new file mode 100644 index 00000000..c11e419f --- /dev/null +++ b/help/P/object/botoc.txt.bak @@ -0,0 +1,18 @@ +\b;\button 154; Dziao organiczne na gsienicach +\image botoc 8 8; +Robot na gsienicach strzelajcy kulami organicznymi. + +Dziako organiczne jest efektywniejsze od \l;dziaka ogniowego\u object\botfc;. Strzela ono maymi kulkami rcej \l;materii organicznej\u object\bullet;. \l;Zwyke ogniwo elektryczne\u object\power; wystarcza na oddanie 11 serii strzaw. + +Roboty na gsienicach mog pokonywa strome pochyoci ale s raczej powolne i zuywaj mnstwo energii. Na paskim terenie na krtszych dystansach lepszym wyborem jest \l;dziao organiczne na koach\u object\botor;. Gdy jest to moliwe, zbudowanie \l;robota latajcego\u object\botoj; jest najlepszym sposobem pokonywania duych odlegoci. + +\t;Programowanie +Do zaprogramowania poruszania robotem mona uywa nastpujcych instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania dziaka strzelajcego kulami organicznymi suy instrukcja \c;\l;fire\u cbot\fire;\n;. Luf mona podnie lub opuci uywajc instrukcji \c;\l;aim\u cbot\aim;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;TrackedOrgaShooter\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/botoj.txt b/help/P/object/botoj.txt new file mode 100644 index 00000000..b63cf2bc --- /dev/null +++ b/help/P/object/botoj.txt @@ -0,0 +1,20 @@ +\b;\button 155; Latające działo organiczne +\image botoj 8 8; +Latający robot z napędem odrzutowym wyposażony w działko strzelające kulami organicznymi. + +Działko organiczne jest efektywniejsze od \l;działka ogniowego\u object\botfj;. Strzela ono małymi kulkami żrącej \l;materii organicznej\u object\bullet;. \l;Zwykłe ogniwo elektryczne\u object\power; wystarcza na oddanie 11 serii strzałów. + +Wyświetlacz na dole ekranu pokazuje temperaturę reaktora. Należy zwracać na niego uwagę. Jeśli reaktor się przegrzeje, silnik się zatrzyma i robot spadnie. + +Roboty latające mogą przemieszczać się ponad naturalnymi przeszkodami, takimi jak góry lub jeziora ale ich zapas energii szybko się zużywa. Na ziemi są one powolne. Na krótkich odległościach, nie wymagających latania, polecane jest użycie \l;działa organicznego na kołach\u object\botor;. + +\t;Programowanie +Do zaprogramowania poruszania robotem można używać następujących instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;jet\u cbot\jet;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania działka strzelającego kulami organicznymi służy instrukcja \c;\l;fire\u cbot\fire;\n;. Lufę można podnieść lub opuścić używając instrukcji \c;\l;aim\u cbot\aim;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;WingedOrgaShooter\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/botoj.txt.bak b/help/P/object/botoj.txt.bak new file mode 100644 index 00000000..b4da5716 --- /dev/null +++ b/help/P/object/botoj.txt.bak @@ -0,0 +1,20 @@ +\b;\button 155; Latajce dziao organiczne +\image botoj 8 8; +Latajcy robot z napdem odrzutowym wyposaony w dziako strzelajce kulami organicznymi. + +Dziako organiczne jest efektywniejsze od \l;dziaka ogniowego\u object\botfj;. Strzela ono maymi kulkami rcej \l;materii organicznej\u object\bullet;. \l;Zwyke ogniwo elektryczne\u object\power; wystarcza na oddanie 11 serii strzaw. + +Wywietlacz na dole ekranu pokazuje temperatur reaktora. Naley zwraca na niego uwag. Jeli reaktor si przegrzeje, silnik si zatrzyma i robot spadnie. + +Roboty latajce mog przemieszcza si ponad naturalnymi przeszkodami, takimi jak gry lub jeziora ale ich zapas energii szybko si zuywa. Na ziemi s one powolne. Na krtkich odlegociach, nie wymagajcych latania, polecane jest uycie \l;dziaa organicznego na koach\u object\botor;. + +\t;Programowanie +Do zaprogramowania poruszania robotem mona uywa nastpujcych instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;jet\u cbot\jet;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania dziaka strzelajcego kulami organicznymi suy instrukcja \c;\l;fire\u cbot\fire;\n;. Luf mona podnie lub opuci uywajc instrukcji \c;\l;aim\u cbot\aim;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;WingedOrgaShooter\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/botor.txt b/help/P/object/botor.txt new file mode 100644 index 00000000..1a192a20 --- /dev/null +++ b/help/P/object/botor.txt @@ -0,0 +1,19 @@ +\b;\button 153; Działo organiczne na kołach +\image botor 8 8; +Robot na kołach strzelający kulami organicznymi. + +Działko organiczne jest efektywniejsze od \l;działka ogniowego\u object\botfr;. Strzela ono małymi kulkami żrącej \l;materii organicznej\u object\bullet;. \l;Zwykłe ogniwo elektryczne\u object\power; wystarcza na oddanie 11 serii strzałów. + +Koła to standardowy, szybki i energooszczędny sposób napędu, idealny do poruszania się po relatywnie płaskich powierzchniach. Na pochyłym terenie polecane jest użycie \l;latającego działa organicznego\u object\botoj;, a jeśli jest to niemożliwe, \l;działa organicznego na gąsienicach\u object\botoc;. + +\t;Programowanie +Do zaprogramowania poruszania robotem można używać następujących instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania działka strzelającego kulami organicznymi służy instrukcja \c;\l;fire\u cbot\fire;\n;. Lufę można podnieść lub opuścić używając instrukcji \c;\l;aim\u cbot\aim;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;WheeledOrgaShooter\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. + diff --git a/help/P/object/botor.txt.bak b/help/P/object/botor.txt.bak new file mode 100644 index 00000000..5a63f089 --- /dev/null +++ b/help/P/object/botor.txt.bak @@ -0,0 +1,19 @@ +\b;\button 153; Dziao organiczne na koach +\image botor 8 8; +Robot na koach strzelajcy kulami organicznymi. + +Dziako organiczne jest efektywniejsze od \l;dziaka ogniowego\u object\botfr;. Strzela ono maymi kulkami rcej \l;materii organicznej\u object\bullet;. \l;Zwyke ogniwo elektryczne\u object\power; wystarcza na oddanie 11 serii strzaw. + +Koa to standardowy, szybki i energooszczdny sposb napdu, idealny do poruszania si po relatywnie paskich powierzchniach. Na pochyym terenie polecane jest uycie \l;latajcego dziaa organicznego\u object\botoj;, a jeli jest to niemoliwe, \l;dziaa organicznego na gsienicach\u object\botoc;. + +\t;Programowanie +Do zaprogramowania poruszania robotem mona uywa nastpujcych instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania dziaka strzelajcego kulami organicznymi suy instrukcja \c;\l;fire\u cbot\fire;\n;. Luf mona podnie lub opuci uywajc instrukcji \c;\l;aim\u cbot\aim;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;WheeledOrgaShooter\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. + diff --git a/help/P/object/botos.txt b/help/P/object/botos.txt new file mode 100644 index 00000000..434cde1f --- /dev/null +++ b/help/P/object/botos.txt @@ -0,0 +1,18 @@ +\b;\button 156; Działo organiczne na nogach +\image botos 8 8; +Robot pełzający na mrówczych odnóżach, strzelający kulami organicznymi. + +Działko organiczne jest efektywniejsze od \l;działka ogniowego\u object\botfs;. Strzela ono małymi kulkami żrącej \l;materii organicznej\u object\bullet;. \l;Zwykłe ogniwo elektryczne\u object\power; wystarcza na oddanie 11 serii strzałów. + +Podczas poruszania się, działo organiczne na nogach zużywa o połowę mniej energii od \l;działa organicznego na kołach\u object\botor;. Robot na nogach jest też idealnie przystosowany do wspinania się nawet po najbardziej stromych pochyłościach. + +\t;Programowanie +Do zaprogramowania poruszania robotem można używać następujących instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania działka strzelającego kulami organicznymi służy instrukcja \c;\l;fire\u cbot\fire;\n;. Lufę można podnieść lub opuścić używając instrukcji \c;\l;aim\u cbot\aim;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;LeggedOrgaShooter\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/botos.txt.bak b/help/P/object/botos.txt.bak new file mode 100644 index 00000000..206b64f4 --- /dev/null +++ b/help/P/object/botos.txt.bak @@ -0,0 +1,18 @@ +\b;\button 156; Dziao organiczne na nogach +\image botos 8 8; +Robot pezajcy na mrwczych odnach, strzelajcy kulami organicznymi. + +Dziako organiczne jest efektywniejsze od \l;dziaka ogniowego\u object\botfs;. Strzela ono maymi kulkami rcej \l;materii organicznej\u object\bullet;. \l;Zwyke ogniwo elektryczne\u object\power; wystarcza na oddanie 11 serii strzaw. + +Podczas poruszania si, dziao organiczne na nogach zuywa o poow mniej energii od \l;dziaa organicznego na koach\u object\botor;. Robot na nogach jest te idealnie przystosowany do wspinania si nawet po najbardziej stromych pochyociach. + +\t;Programowanie +Do zaprogramowania poruszania robotem mona uywa nastpujcych instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania dziaka strzelajcego kulami organicznymi suy instrukcja \c;\l;fire\u cbot\fire;\n;. Luf mona podnie lub opuci uywajc instrukcji \c;\l;aim\u cbot\aim;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;LeggedOrgaShooter\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/botphaz.txt b/help/P/object/botphaz.txt new file mode 100644 index 00000000..70b0e1d7 --- /dev/null +++ b/help/P/object/botphaz.txt @@ -0,0 +1,14 @@ +\b;\button 147; Działo fazowe +\image botphaz 8 8; +Robot na gąsienicach wyposażony w bardzo silne działko fazowe, skuteczne przeciwko większości wrogów. Wycelowane w górę ma zasięg do 60 metrów. Jest to jedyna broń, z której można zabić \l;Królową obcych\u object\mother;. + +\t;Programowanie +Do zaprogramowania poruszania robotem można używać następujących instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania działka fazowego służy instrukcja \c;\l;fire\u cbot\fire;\n;. Lufę można podnieść lub opuścić używając instrukcji \c;\l;aim\u cbot\aim;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;PhazerShooter\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/botphaz.txt.bak b/help/P/object/botphaz.txt.bak new file mode 100644 index 00000000..184e2177 --- /dev/null +++ b/help/P/object/botphaz.txt.bak @@ -0,0 +1,14 @@ +\b;\button 147; Dziao fazowe +\image botphaz 8 8; +Robot na gsienicach wyposaony w bardzo silne dziako fazowe, skuteczne przeciwko wikszoci wrogw. Wycelowane w gr ma zasig do 60 metrw. Jest to jedyna bro, z ktrej mona zabi \l;Krlow obcych\u object\mother;. + +\t;Programowanie +Do zaprogramowania poruszania robotem mona uywa nastpujcych instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania dziaka fazowego suy instrukcja \c;\l;fire\u cbot\fire;\n;. Luf mona podnie lub opuci uywajc instrukcji \c;\l;aim\u cbot\aim;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;PhazerShooter\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/botrecy.txt b/help/P/object/botrecy.txt new file mode 100644 index 00000000..b073d021 --- /dev/null +++ b/help/P/object/botrecy.txt @@ -0,0 +1,14 @@ +\b;\button 148; Recykler +\image botrecy 8 8; +Robot na gąsienicach zaprojektowany do przetwarzania \l;wraków robotów\u object\wreck; na użyteczne \l;kostki tytanu\u object\titan;. + +\t;Programowanie +Do zaprogramowania poruszania robotem, można używać następujących instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +Aby zaprogramować odzyskanie surowców z pozostałości robota, należy użyć instrukcji \c;\l;recycle\u cbot\recycle;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;RecyclerBot\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/botrecy.txt.bak b/help/P/object/botrecy.txt.bak new file mode 100644 index 00000000..5bc81ed3 --- /dev/null +++ b/help/P/object/botrecy.txt.bak @@ -0,0 +1,14 @@ +\b;\button 148; Recykler +\image botrecy 8 8; +Robot na gsienicach zaprojektowany do przetwarzania \l;wrakw robotw\u object\wreck; na uyteczne \l;kostki tytanu\u object\titan;. + +\t;Programowanie +Do zaprogramowania poruszania robotem, mona uywa nastpujcych instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +Aby zaprogramowa odzyskanie surowcw z pozostaoci robota, naley uy instrukcji \c;\l;recycle\u cbot\recycle;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;RecyclerBot\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/botsc.txt b/help/P/object/botsc.txt new file mode 100644 index 00000000..9091a8d4 --- /dev/null +++ b/help/P/object/botsc.txt @@ -0,0 +1,20 @@ +\b;\button 141; Szperacz na gąsienicach +\image botsc 8 8; +Robot na gąsienicach przystosowany do badania struktury geologicznej podglebia. Gdy znajdzie coś użytecznego, zostawia na ziemi następujące znaczniki: + +- \l;czerwony plus\u object\stonspot; -> \l;ruda tytanu\u object\titanore;. +- \l;żółte kółko\u object\uranspot; -> \l;ruda uranu\u object\uranore;. +- \l;zielony plus\u object\enerspot; -> źródło energii, niezbędne dla \l;stacji energetycznej\u object\station; lub \l;elektrowni\u object\energy;. + +Roboty na gąsienicach mogą pokonywać strome pochyłości ale są raczej powolne i zużywają mnóstwo energii. Na płaskim terenie na krótszych dystansach lepszym wyborem jest \l;szperacz na kołach\u object\botsr;. Gdy jest to możliwe, zbudowanie \l;robota latającego\u object\botsj; jest najlepszym sposobem pokonywania dużych odległości. + +\t;Programowanie +Do zaprogramowania poruszania robotem można używać następujących instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania ramienia detekcyjnego można użyć instrukcji \c;\l;sniff\u cbot\sniff;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;TrackedSniffer\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/botsc.txt.bak b/help/P/object/botsc.txt.bak new file mode 100644 index 00000000..702e63ac --- /dev/null +++ b/help/P/object/botsc.txt.bak @@ -0,0 +1,20 @@ +\b;\button 141; Szperacz na gsienicach +\image botsc 8 8; +Robot na gsienicach przystosowany do badania struktury geologicznej podglebia. Gdy znajdzie co uytecznego, zostawia na ziemi nastpujce znaczniki: + +- \l;czerwony plus\u object\stonspot; -> \l;ruda tytanu\u object\titanore;. +- \l;te kko\u object\uranspot; -> \l;ruda uranu\u object\uranore;. +- \l;zielony plus\u object\enerspot; -> rdo energii, niezbdne dla \l;stacji energetycznej\u object\station; lub \l;elektrowni\u object\energy;. + +Roboty na gsienicach mog pokonywa strome pochyoci ale s raczej powolne i zuywaj mnstwo energii. Na paskim terenie na krtszych dystansach lepszym wyborem jest \l;szperacz na koach\u object\botsr;. Gdy jest to moliwe, zbudowanie \l;robota latajcego\u object\botsj; jest najlepszym sposobem pokonywania duych odlegoci. + +\t;Programowanie +Do zaprogramowania poruszania robotem mona uywa nastpujcych instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania ramienia detekcyjnego mona uy instrukcji \c;\l;sniff\u cbot\sniff;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;TrackedSniffer\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/botshld.txt b/help/P/object/botshld.txt new file mode 100644 index 00000000..4fa26048 --- /dev/null +++ b/help/P/object/botshld.txt @@ -0,0 +1,18 @@ +\b;\button 157; Osłaniacz +\image botshld 8 8; +Robot na gąsienicach zaprojektowany do obrony przed wszelkimi możliwymi atakami \l;wrogów\u object\mother; w strefie od 10 do 25 metrów. Jego działanie powoduje regenerację osobistych osłon robotów i budynków. Użycie tego robota to jedyna możliwość przedostania się przez wąskie przejścia pomiędzy trującymi zielonymi grzybami. + +\l;Zwykłe ogniwo elektryczne\u object\power; pozwala na 20 sekundowe działanie osłony o promieniu 25 metrów, co jest zwykle za krótkim czasem. Bardziej odpowiednie dla tego robota jest \l;atomowe ogniwo elektryczne\u object\atomic;. + +Zużycie energii jest wprost proporcjonalne do promienia strefy ochronnej. Z promieniem powłoki ochronnej równym 10 metrów robot może pracować 2,5 raza dłużej, niż przy maksymalnym promieniu równym 25 metrów. + +\t;Programowanie +Do zaprogramowania poruszania robotem, można używać następujących instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do programowego użycia osłony, przeznaczona jest instrukcja \c;\l;shield\u cbot\shield;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;Shielder\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/botshld.txt.bak b/help/P/object/botshld.txt.bak new file mode 100644 index 00000000..8f0d48e6 --- /dev/null +++ b/help/P/object/botshld.txt.bak @@ -0,0 +1,18 @@ +\b;\button 157; Osaniacz +\image botshld 8 8; +Robot na gsienicach zaprojektowany do obrony przed wszelkimi moliwymi atakami \l;wrogw\u object\mother; w strefie od 10 do 25 metrw. Jego dziaanie powoduje regeneracj osobistych oson robotw i budynkw. Uycie tego robota to jedyna moliwo przedostania si przez wskie przejcia pomidzy trujcymi zielonymi grzybami. + +\l;Zwyke ogniwo elektryczne\u object\power; pozwala na 20 sekundowe dziaanie osony o promieniu 25 metrw, co jest zwykle za krtkim czasem. Bardziej odpowiednie dla tego robota jest \l;atomowe ogniwo elektryczne\u object\atomic;. + +Zuycie energii jest wprost proporcjonalne do promienia strefy ochronnej. Z promieniem powoki ochronnej rwnym 10 metrw robot moe pracowa 2,5 raza duej, ni przy maksymalnym promieniu rwnym 25 metrw. + +\t;Programowanie +Do zaprogramowania poruszania robotem, mona uywa nastpujcych instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do programowego uycia osony, przeznaczona jest instrukcja \c;\l;shield\u cbot\shield;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;Shielder\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/botsj.txt b/help/P/object/botsj.txt new file mode 100644 index 00000000..2995d441 --- /dev/null +++ b/help/P/object/botsj.txt @@ -0,0 +1,22 @@ +\b;\button 142; Szperacz latający +\image botsj 8 8; +Robot latający z napędem odrzutowym przystosowany do badania struktury geologicznej podglebia. Gdy znajdzie coś użytecznego, zostawia na ziemi następujące znaczniki: + +- \l;czerwony plus\u object\stonspot; -> \l;ruda tytanu\u object\titanore;. +- \l;żółte kółko\u object\uranspot; -> \l;ruda uranu\u object\uranore;. +- \l;zielony plus\u object\enerspot; -> źródło energii, niezbędne dla \l;stacji energetycznej\u object\station; lub \l;elektrowni\u object\energy;. + +Wyświetlacz na dole ekranu pokazuje temperaturę reaktora. Należy zwracać na niego uwagę. Jeśli reaktor się przegrzeje, silnik się zatrzyma i robot spadnie. + +Roboty latające mogą przemieszczać się ponad naturalnymi przeszkodami, takimi jak góry lub jeziora ale ich zapas energii szybko się zużywa. Na ziemi są one powolne. Na krótkich odległościach, nie wymagających latania, polecane jest użycie \l;szperacza na kołach\u object\botsr;. + +\t;Programowanie +Do zaprogramowania poruszania robotem można używać następujących instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;jet\u cbot\jet;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania ramienia detekcyjnego można użyć instrukcji \c;\l;sniff\u cbot\sniff;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;WingedSniffer\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/botsj.txt.bak b/help/P/object/botsj.txt.bak new file mode 100644 index 00000000..84c23b26 --- /dev/null +++ b/help/P/object/botsj.txt.bak @@ -0,0 +1,22 @@ +\b;\button 142; Szperacz latajcy +\image botsj 8 8; +Robot latajcy z napdem odrzutowym przystosowany do badania struktury geologicznej podglebia. Gdy znajdzie co uytecznego, zostawia na ziemi nastpujce znaczniki: + +- \l;czerwony plus\u object\stonspot; -> \l;ruda tytanu\u object\titanore;. +- \l;te kko\u object\uranspot; -> \l;ruda uranu\u object\uranore;. +- \l;zielony plus\u object\enerspot; -> rdo energii, niezbdne dla \l;stacji energetycznej\u object\station; lub \l;elektrowni\u object\energy;. + +Wywietlacz na dole ekranu pokazuje temperatur reaktora. Naley zwraca na niego uwag. Jeli reaktor si przegrzeje, silnik si zatrzyma i robot spadnie. + +Roboty latajce mog przemieszcza si ponad naturalnymi przeszkodami, takimi jak gry lub jeziora ale ich zapas energii szybko si zuywa. Na ziemi s one powolne. Na krtkich odlegociach, nie wymagajcych latania, polecane jest uycie \l;szperacza na koach\u object\botsr;. + +\t;Programowanie +Do zaprogramowania poruszania robotem mona uywa nastpujcych instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;jet\u cbot\jet;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania ramienia detekcyjnego mona uy instrukcji \c;\l;sniff\u cbot\sniff;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;WingedSniffer\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/botsr.txt b/help/P/object/botsr.txt new file mode 100644 index 00000000..3459fd59 --- /dev/null +++ b/help/P/object/botsr.txt @@ -0,0 +1,20 @@ +\b;\button 140; Szperacz na kołach +\image botsr 8 8; +Robot na kołach przystosowany do badania struktury geologicznej podglebia. Gdy znajdzie coś użytecznego, zostawia na ziemi następujące znaczniki: + +- \l;czerwony plus\u object\stonspot; -> \l;ruda tytanu\u object\titanore;. +- \l;żółte kółko\u object\uranspot; -> \l;ruda uranu\u object\uranore;. +- \l;zielony plus\u object\enerspot; -> źródło energii, niezbędne dla \l;stacji energetycznej\u object\station; lub \l;elektrowni\u object\energy;. + +Koła to standardowy, szybki i energooszczędny sposób napędu, idealny do poruszania się po relatywnie płaskich powierzchniach. Na pochyłym terenie polecane jest użycie \l;szperacza latającego\u object\botsj;, a jeśli jest to niemożliwe, \l;szperacza na gąsienicach\u object\botsc;. + +\t;Programowanie +Do zaprogramowania poruszania robotem można używać następujących instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania ramienia detekcyjnego można użyć instrukcji \c;\l;sniff\u cbot\sniff;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;WheeledSniffer\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/botsr.txt.bak b/help/P/object/botsr.txt.bak new file mode 100644 index 00000000..bc4ec30c --- /dev/null +++ b/help/P/object/botsr.txt.bak @@ -0,0 +1,20 @@ +\b;\button 140; Szperacz na koach +\image botsr 8 8; +Robot na koach przystosowany do badania struktury geologicznej podglebia. Gdy znajdzie co uytecznego, zostawia na ziemi nastpujce znaczniki: + +- \l;czerwony plus\u object\stonspot; -> \l;ruda tytanu\u object\titanore;. +- \l;te kko\u object\uranspot; -> \l;ruda uranu\u object\uranore;. +- \l;zielony plus\u object\enerspot; -> rdo energii, niezbdne dla \l;stacji energetycznej\u object\station; lub \l;elektrowni\u object\energy;. + +Koa to standardowy, szybki i energooszczdny sposb napdu, idealny do poruszania si po relatywnie paskich powierzchniach. Na pochyym terenie polecane jest uycie \l;szperacza latajcego\u object\botsj;, a jeli jest to niemoliwe, \l;szperacza na gsienicach\u object\botsc;. + +\t;Programowanie +Do zaprogramowania poruszania robotem mona uywa nastpujcych instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania ramienia detekcyjnego mona uy instrukcji \c;\l;sniff\u cbot\sniff;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;WheeledSniffer\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/botss.txt b/help/P/object/botss.txt new file mode 100644 index 00000000..ebd99b1d --- /dev/null +++ b/help/P/object/botss.txt @@ -0,0 +1,20 @@ +\b;\button 152; Szperacz na nogach +\image botss 8 8; +Robot pełzający na mrówczych odnóżach, przystosowany do badania struktury geologicznej podglebia. Gdy znajdzie coś użytecznego, zostawia na ziemi następujące znaczniki: + +- \l;czerwony plus\u object\stonspot; -> \l;ruda tytanu\u object\titanore;. +- \l;żółte kółko\u object\uranspot; -> \l;ruda uranu\u object\uranore;. +- \l;zielony plus\u object\enerspot; -> źródło energii, niezbędne dla \l;stacji energetycznej\u object\station; lub \l;elektrowni\u object\energy;. + +Podczas poruszania się, szperacz na nogach zużywa o połowę mniej energii od \l;szperacza na kołach\u object\botsr;. Robot na nogach jest też idealnie przystosowany do wspinania się nawet po najbardziej stromych pochyłościach. + +\t;Programowanie +Do zaprogramowania poruszania robotem można używać następujących instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania ramienia detekcyjnego można użyć instrukcji \c;\l;sniff\u cbot\sniff;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;LeggedSniffer\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/botss.txt.bak b/help/P/object/botss.txt.bak new file mode 100644 index 00000000..dc64330d --- /dev/null +++ b/help/P/object/botss.txt.bak @@ -0,0 +1,20 @@ +\b;\button 152; Szperacz na nogach +\image botss 8 8; +Robot pezajcy na mrwczych odnach, przystosowany do badania struktury geologicznej podglebia. Gdy znajdzie co uytecznego, zostawia na ziemi nastpujce znaczniki: + +- \l;czerwony plus\u object\stonspot; -> \l;ruda tytanu\u object\titanore;. +- \l;te kko\u object\uranspot; -> \l;ruda uranu\u object\uranore;. +- \l;zielony plus\u object\enerspot; -> rdo energii, niezbdne dla \l;stacji energetycznej\u object\station; lub \l;elektrowni\u object\energy;. + +Podczas poruszania si, szperacz na nogach zuywa o poow mniej energii od \l;szperacza na koach\u object\botsr;. Robot na nogach jest te idealnie przystosowany do wspinania si nawet po najbardziej stromych pochyociach. + +\t;Programowanie +Do zaprogramowania poruszania robotem mona uywa nastpujcych instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania ramienia detekcyjnego mona uy instrukcji \c;\l;sniff\u cbot\sniff;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;LeggedSniffer\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/botsub.txt b/help/P/object/botsub.txt new file mode 100644 index 00000000..db6bd018 --- /dev/null +++ b/help/P/object/botsub.txt @@ -0,0 +1,16 @@ +\b;\button 149; Nurek +\image botsub 8 8; +Robot-amfibia na gąsienicach wyposażony w zacisk chwytający. Jest on jedynym robotem zdolnym do poruszania się i działania pod wodą. + +Przed zanurzeniem należy sprawdzić wskaźniki poziomu naładowania \l;ogniwa elektrycznego\u object\power;, gdyż jego wymiana ani doładowanie pod wodą nie jest możliwe. Robot nurek może podnosić przedmioty jedynie z ziemi, w odróżnieniu od np. baterii z tyłu innego robota. + +\t;Programowanie +Do zaprogramowania poruszania robotem można używać następujących instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania zacisku chwytającego można używać instrukcji \c;\l;grab\u cbot\grab;\n; i \c;\l;drop\u cbot\drop;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;Subber\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/botsub.txt.bak b/help/P/object/botsub.txt.bak new file mode 100644 index 00000000..2c60b352 --- /dev/null +++ b/help/P/object/botsub.txt.bak @@ -0,0 +1,16 @@ +\b;\button 149; Nurek +\image botsub 8 8; +Robot-amfibia na gsienicach wyposaony w zacisk chwytajcy. Jest on jedynym robotem zdolnym do poruszania si i dziaania pod wod. + +Przed zanurzeniem naley sprawdzi wskaniki poziomu naadowania \l;ogniwa elektrycznego\u object\power;, gdy jego wymiana ani doadowanie pod wod nie jest moliwe. Robot nurek moe podnosi przedmioty jedynie z ziemi, w odrnieniu od np. baterii z tyu innego robota. + +\t;Programowanie +Do zaprogramowania poruszania robotem mona uywa nastpujcych instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania zacisku chwytajcego mona uywa instrukcji \c;\l;grab\u cbot\grab;\n; i \c;\l;drop\u cbot\drop;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;Subber\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/bottarg.txt b/help/P/object/bottarg.txt new file mode 100644 index 00000000..13ba1023 --- /dev/null +++ b/help/P/object/bottarg.txt @@ -0,0 +1,11 @@ +\b;\button 173; Robot cel +\image bottarg 8 8; +Robot na kołach wykorzystywany w ćwiczeniach strzeleckich. Jest on samodzielny, a jego sposób poruszania się jest zależny od rodzaju ćwiczenia. + +Należy zwrócić uwagę, że gdy robot cel przenosi \l;TNT\u object\tnt; jest wyjątkowo wrażliwy na wstrząsy. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;TargetBot\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/bottarg.txt.bak b/help/P/object/bottarg.txt.bak new file mode 100644 index 00000000..2c16d856 --- /dev/null +++ b/help/P/object/bottarg.txt.bak @@ -0,0 +1,11 @@ +\b;\button 173; Robot cel +\image bottarg 8 8; +Robot na koach wykorzystywany w wiczeniach strzeleckich. Jest on samodzielny, a jego sposb poruszania si jest zaleny od rodzaju wiczenia. + +Naley zwrci uwag, e gdy robot cel przenosi \l;TNT\u object\tnt; jest wyjtkowo wraliwy na wstrzsy. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;TargetBot\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/bottr.txt b/help/P/object/bottr.txt new file mode 100644 index 00000000..9663bd74 --- /dev/null +++ b/help/P/object/bottr.txt @@ -0,0 +1,12 @@ +\b;\button 158; Robot treningowy +\image bottr 8 8; +Robot na kołach używany głównie w ćwiczeniach. Jego jedynym zadaniem jest pomoc w nauce programowania różnorodnych sposobów poruszania się robotów. + +\t;Instrukcje +Do zaprogramowania poruszania robotem, można używać następujących instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;PracticeBot\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/bottr.txt.bak b/help/P/object/bottr.txt.bak new file mode 100644 index 00000000..8dc27d2b --- /dev/null +++ b/help/P/object/bottr.txt.bak @@ -0,0 +1,12 @@ +\b;\button 158; Robot treningowy +\image bottr 8 8; +Robot na koach uywany gwnie w wiczeniach. Jego jedynym zadaniem jest pomoc w nauce programowania rnorodnych sposobw poruszania si robotw. + +\t;Instrukcje +Do zaprogramowania poruszania robotem, mona uywa nastpujcych instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;PracticeBot\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/bottump.txt b/help/P/object/bottump.txt new file mode 100644 index 00000000..6435998f --- /dev/null +++ b/help/P/object/bottump.txt @@ -0,0 +1,18 @@ +\b;\button 146; Uderzacz +\image bottump 8 8; +Robot na gąsienicach zaprojektowany do uderzania w ziemią z ogromną siłą. Celem tego działania jest przewrócenie wszystkich \l;mrówek\u object\ant; i \l;pająków\u object\spider; w promieniu 100 metrów do góry brzuchem. Przewrócony owad nie jest martwy i będzie starał się stanąć na nogi. Zajmuje mu to około 60 sekund. + +Aby wyświetlić strefę jego działania, należy kliknąć przycisk \button 41;. Czerwone kropki otoczą kolistą strefę na 20 sekund. + +Robot ten zużywa bardzo duże ilości energii. Jedno uderzenie pochłania 2/5 pojemności \l;zwykłego ogniwa elektrycznego\u object\power;. + +\t;Instrukcje +Do zaprogramowania poruszania robotem można używać następujących instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania uderzenia należy użyć instrukcji \c;\l;thump\u cbot\thump;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;Thumper\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/bottump.txt.bak b/help/P/object/bottump.txt.bak new file mode 100644 index 00000000..40e93c33 --- /dev/null +++ b/help/P/object/bottump.txt.bak @@ -0,0 +1,18 @@ +\b;\button 146; Uderzacz +\image bottump 8 8; +Robot na gsienicach zaprojektowany do uderzania w ziemi z ogromn si. Celem tego dziaania jest przewrcenie wszystkich \l;mrwek\u object\ant; i \l;pajkw\u object\spider; w promieniu 100 metrw do gry brzuchem. Przewrcony owad nie jest martwy i bdzie stara si stan na nogi. Zajmuje mu to okoo 60 sekund. + +Aby wywietli stref jego dziaania, naley klikn przycisk \button 41;. Czerwone kropki otocz kolist stref na 20 sekund. + +Robot ten zuywa bardzo due iloci energii. Jedno uderzenie pochania 2/5 pojemnoci \l;zwykego ogniwa elektrycznego\u object\power;. + +\t;Instrukcje +Do zaprogramowania poruszania robotem mona uywa nastpujcych instrukcji: \c;\l;move\u cbot\move;\n;, \c;\l;turn\u cbot\turn;\n;, \c;\l;motor\u cbot\motor;\n;, \c;\l;goto\u cbot\goto;\n;. + +Do zaprogramowania uderzenia naley uy instrukcji \c;\l;thump\u cbot\thump;\n;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;Thumper\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/bullet.txt b/help/P/object/bullet.txt new file mode 100644 index 00000000..b99dfd98 --- /dev/null +++ b/help/P/object/bullet.txt @@ -0,0 +1,12 @@ +\b;Materia organiczna +\image bullet 4 4; +Materia organiczna jest sekretem owadów. Kulki materii organicznej są często używane do bombardowań przez \l;osy\u object\wasp;. Musisz ją zdobyć, aby umożliwić po odpowiedniej \l;analizie\u object\labo;, odkrycie nowych, niesamowitych technologii poprawiających efektywność robotów. + +\t;Transport +Wszystkie \l;transportery\u object\botgr; oraz \l;astronauta\u object\human;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;OrgaMatter\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/bullet.txt.bak b/help/P/object/bullet.txt.bak new file mode 100644 index 00000000..8ab1b40f --- /dev/null +++ b/help/P/object/bullet.txt.bak @@ -0,0 +1,12 @@ +\b;Materia organiczna +\image bullet 4 4; +Materia organiczna jest sekretem owadw. Kulki materii organicznej s czsto uywane do bombardowa przez \l;osy\u object\wasp;. Musisz j zdoby, aby umoliwi po odpowiedniej \l;analizie\u object\labo;, odkrycie nowych, niesamowitych technologii poprawiajcych efektywno robotw. + +\t;Transport +Wszystkie \l;transportery\u object\botgr; oraz \l;astronauta\u object\human;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;OrgaMatter\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/captor.txt b/help/P/object/captor.txt new file mode 100644 index 00000000..df6b1f61 --- /dev/null +++ b/help/P/object/captor.txt @@ -0,0 +1,25 @@ +\b;\button 174; Stacja odgromnikowa +\image captor 8 8; +Stacja odgromnikowa spełnia rolę przewodnika wyładowań jak i przetwornika energii. +Zapewnia ochronę przed wyładowaniami elektrycznymi podczas burz magnetycznych w promieniu 50 metrów. Dodatkowo, w chwili uderzenia pioruna, ładowane są wszystkie roboty i \l;ogniwa elektryczne\u object\power; umieszczone pod nim, oczywiście z wyjątkiem \l;atomowych ogniw elektrycznych\u object\atomic;. + +Aby wyświetlić strefę, która jest zabezpieczona przez stację odgromnikową, należy ją zaznaczyć i kliknąć przycisk \button 41;. Czerwone kropki otoczą kolistą strefę na 20 sekund. + +W całym kosmosie, tylko na kilku planetach występują burze magnetyczne. Wśród odwiedzanych planet ten fenomen występuje jedynie na Orfenii. + +\l;Statek kosmiczny\u object\base; również działa jak przewodnik wyładowań, jednakże nie ładuje on ogniw elektrycznych. + +\t;Wymagania +Płaska powierzchnia szeroka na minimum 10 metrów. + +\t;Źródło zasilania +Wyładowania elektryczne. + +\t;Czas działania +1 sekunda. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;PowerCaptor\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/captor.txt.bak b/help/P/object/captor.txt.bak new file mode 100644 index 00000000..f5ab9d71 --- /dev/null +++ b/help/P/object/captor.txt.bak @@ -0,0 +1,25 @@ +\b;\button 174; Stacja odgromnikowa +\image captor 8 8; +Stacja odgromnikowa spenia rol przewodnika wyadowa jak i przetwornika energii. +Zapewnia ochron przed wyadowaniami elektrycznymi podczas burz magnetycznych w promieniu 50 metrw. Dodatkowo, w chwili uderzenia pioruna, adowane s wszystkie roboty i \l;ogniwa elektryczne\u object\power; umieszczone pod nim, oczywicie z wyjtkiem \l;atomowych ogniw elektrycznych\u object\atomic;. + +Aby wywietli stref, ktra jest zabezpieczona przez stacj odgromnikow, naley j zaznaczy i klikn przycisk \button 41;. Czerwone kropki otocz kolist stref na 20 sekund. + +W caym kosmosie, tylko na kilku planetach wystpuj burze magnetyczne. Wrd odwiedzanych planet ten fenomen wystpuje jedynie na Orfenii. + +\l;Statek kosmiczny\u object\base; rwnie dziaa jak przewodnik wyadowa, jednake nie aduje on ogniw elektrycznych. + +\t;Wymagania +Paska powierzchnia szeroka na minimum 10 metrw. + +\t;rdo zasilania +Wyadowania elektryczne. + +\t;Czas dziaania +1 sekunda. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;PowerCaptor\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/convert.txt b/help/P/object/convert.txt new file mode 100644 index 00000000..50ebbacc --- /dev/null +++ b/help/P/object/convert.txt @@ -0,0 +1,24 @@ +\b;\button 162; Huta +\image convert 8 8; +Ten budynek został zaprojektowany do przetapiania \l;rudy tytan\u object\titanore; na \l;kostki tytanu\u object\titan;. Wszystko, co trzeba zrobić, to umieścić porcję rudy tytanu na środku platformy i cofnąć się. Ruda zostanie przetopiona na tytan. + +\t;Wymagania +Płaska powierzchnia szeroka na minimum 6 metrów. + +\t;Wejście +Ruda tytanu. + +\t;Wyjście +Tytan. + +\t;Źródło zasilania +Brak. + +\t;Czas działania +15 sekund. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;Converter\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/convert.txt.bak b/help/P/object/convert.txt.bak new file mode 100644 index 00000000..11ace0f3 --- /dev/null +++ b/help/P/object/convert.txt.bak @@ -0,0 +1,24 @@ +\b;\button 162; Huta +\image convert 8 8; +Ten budynek zosta zaprojektowany do przetapiania \l;rudy tytan\u object\titanore; na \l;kostki tytanu\u object\titan;. Wszystko, co trzeba zrobi, to umieci porcj rudy tytanu na rodku platformy i cofn si. Ruda zostanie przetopiona na tytan. + +\t;Wymagania +Paska powierzchnia szeroka na minimum 6 metrw. + +\t;Wejcie +Ruda tytanu. + +\t;Wyjcie +Tytan. + +\t;rdo zasilania +Brak. + +\t;Czas dziaania +15 sekund. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;Converter\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/derrick.txt b/help/P/object/derrick.txt new file mode 100644 index 00000000..c4a97634 --- /dev/null +++ b/help/P/object/derrick.txt @@ -0,0 +1,29 @@ +\b;\button 161; Kopalnia +\image derrick 8 8; +Kopalnia umożliwia wydobywanie surowców. + +Do określenia najlepszego miejsca na wybudowanie kopalni należy użyć \l;szperacza\u object\botsr;, który zbada podglebie. Pozostawione przez niego znaczniki określają jakie surowce mogą być wydobyte: + +- \l;czerwony plus\u object\stonspot; -> \l;ruda tytanu\u object\titanore;. +- \l;żółte kółko\u object\uranspot; -> \l;ruda uranu\u object\uranore;. + +\t;Wymagania +Płaska powierzchnia z odpowiednimi warunkami geologicznymi szeroka na minimum 2,5 metra. + +\t;Wejście +Ruda tytanu lub uranu w podglebiu. + +\t;Wyjście +Kawałki rudy tytanu lub uranu. + +\t;Źródło zasilania +Brak. + +\t;Czas działania +10 sekund dla tytanu i 30 dla uranu. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;Derrick\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/derrick.txt.bak b/help/P/object/derrick.txt.bak new file mode 100644 index 00000000..1b8d0a38 --- /dev/null +++ b/help/P/object/derrick.txt.bak @@ -0,0 +1,29 @@ +\b;\button 161; Kopalnia +\image derrick 8 8; +Kopalnia umoliwia wydobywanie surowcw. + +Do okrelenia najlepszego miejsca na wybudowanie kopalni naley uy \l;szperacza\u object\botsr;, ktry zbada podglebie. Pozostawione przez niego znaczniki okrelaj jakie surowce mog by wydobyte: + +- \l;czerwony plus\u object\stonspot; -> \l;ruda tytanu\u object\titanore;. +- \l;te kko\u object\uranspot; -> \l;ruda uranu\u object\uranore;. + +\t;Wymagania +Paska powierzchnia z odpowiednimi warunkami geologicznymi szeroka na minimum 2,5 metra. + +\t;Wejcie +Ruda tytanu lub uranu w podglebiu. + +\t;Wyjcie +Kawaki rudy tytanu lub uranu. + +\t;rdo zasilania +Brak. + +\t;Czas dziaania +10 sekund dla tytanu i 30 dla uranu. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;Derrick\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/egg.txt b/help/P/object/egg.txt new file mode 100644 index 00000000..eb4e18d6 --- /dev/null +++ b/help/P/object/egg.txt @@ -0,0 +1,8 @@ +\b;Jajo obcych +Jaja składane są przez \l;Królową Obcych\u object\mother;. Po krótkim czasie wykluwają się z nich \l;mrówki\u object\ant;, \l;osy\u object\wasp;, \l;pająki\u object\spider; lub \l;robale\u object\worm;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;AlienEgg\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/egg.txt.bak b/help/P/object/egg.txt.bak new file mode 100644 index 00000000..fe6c07a1 --- /dev/null +++ b/help/P/object/egg.txt.bak @@ -0,0 +1,8 @@ +\b;Jajo obcych +Jaja skadane s przez \l;Krlow Obcych\u object\mother;. Po krtkim czasie wykluwaj si z nich \l;mrwki\u object\ant;, \l;osy\u object\wasp;, \l;pajki\u object\spider; lub \l;robale\u object\worm;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;AlienEgg\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/energy.txt b/help/P/object/energy.txt new file mode 100644 index 00000000..cf034ef9 --- /dev/null +++ b/help/P/object/energy.txt @@ -0,0 +1,28 @@ +\b;\button 167; Elektrownia +\image energy 8 8; +Elektrownia jest fabryką \l;ogniw elektrycznych\u object\power;. Przetwarza ona \l;kostki tytanu\u object\titan; na zwykłe, całkowicie naładowane i gotowe do użycia ogniwa elektryczne. + +Elektrownia wymaga pewnego źródła energii w podglebiu. Jeśli z raportu satelitarnego wynika, że energia dostępna jest tylko w niektórych miejscach, należy wcześniej przebadać podglebie przy użyciu \l;robota szperacza\u object\botsr;. Pozostawione przez niego oznaczenia informują o rodzaju znalezionego surowca: \l;zielony plus\u object\enerspot; oznacza znajdujące się pod ziemią źródło energii, wymagane przy budowie elektrowni lub \l;stacji energetycznej\u object\station;. + +Jeśli duże ogniwo elektryczny u podstawy elektrowni pozostaje czerwone po jej wybudowaniu, oznacza to, że w wybranym miejscu nie ma odpowiednich warunków geologicznych. + +\t;Wymagania +Płaska powierzchnia z odpowiednimi warunkami geologicznymi szeroka na minimum 4 metry. + +\t;Wejście +Tytan. + +\t;Wyjście +Zwykłe ogniwo elektryczne. + +\t;Źródło zasilania +Podziemne źródło energii. + +\t;Czas działania +12 sekund. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;PowerPlant\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/energy.txt.bak b/help/P/object/energy.txt.bak new file mode 100644 index 00000000..82715723 --- /dev/null +++ b/help/P/object/energy.txt.bak @@ -0,0 +1,28 @@ +\b;\button 167; Elektrownia +\image energy 8 8; +Elektrownia jest fabryk \l;ogniw elektrycznych\u object\power;. Przetwarza ona \l;kostki tytanu\u object\titan; na zwyke, cakowicie naadowane i gotowe do uycia ogniwa elektryczne. + +Elektrownia wymaga pewnego rda energii w podglebiu. Jeli z raportu satelitarnego wynika, e energia dostpna jest tylko w niektrych miejscach, naley wczeniej przebada podglebie przy uyciu \l;robota szperacza\u object\botsr;. Pozostawione przez niego oznaczenia informuj o rodzaju znalezionego surowca: \l;zielony plus\u object\enerspot; oznacza znajdujce si pod ziemi rdo energii, wymagane przy budowie elektrowni lub \l;stacji energetycznej\u object\station;. + +Jeli due ogniwo elektryczny u podstawy elektrowni pozostaje czerwone po jej wybudowaniu, oznacza to, e w wybranym miejscu nie ma odpowiednich warunkw geologicznych. + +\t;Wymagania +Paska powierzchnia z odpowiednimi warunkami geologicznymi szeroka na minimum 4 metry. + +\t;Wejcie +Tytan. + +\t;Wyjcie +Zwyke ogniwo elektryczne. + +\t;rdo zasilania +Podziemne rdo energii. + +\t;Czas dziaania +12 sekund. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;PowerPlant\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/enerspot.txt b/help/P/object/enerspot.txt new file mode 100644 index 00000000..53e9886f --- /dev/null +++ b/help/P/object/enerspot.txt @@ -0,0 +1,17 @@ +\b;Podziemne źródło energii +\image enerspot 4 4; +Gdy robot \l;szperacz\u object\botsr; odkryje źródło energii w podglebiu, zostawia w tym miejscu zielony plus. W pobliżu mogą być postawione następujące budynki: + +o \l;Stacja energetyczna\u object\station; +o \l;Elektrownia\u object\energy; + +Do przebadania podglebia niezbędny jest \l;robot szperacz\u object\botsr;, wykrywający również złoże \l;rudy tytanu\u object\titanore; (oznaczone \l;czerwonym plusem\u object\stonspot;) lub złoże \l;rudy uranu\u object\uranore; (oznaczone \l;żółtym kółkiem\u object\uranspot;). + +\t;Transport +Niemożliwy. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;EnergySite\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/enerspot.txt.bak b/help/P/object/enerspot.txt.bak new file mode 100644 index 00000000..5553286d --- /dev/null +++ b/help/P/object/enerspot.txt.bak @@ -0,0 +1,17 @@ +\b;Podziemne rdo energii +\image enerspot 4 4; +Gdy robot \l;szperacz\u object\botsr; odkryje rdo energii w podglebiu, zostawia w tym miejscu zielony plus. W pobliu mog by postawione nastpujce budynki: + +o \l;Stacja energetyczna\u object\station; +o \l;Elektrownia\u object\energy; + +Do przebadania podglebia niezbdny jest \l;robot szperacz\u object\botsr;, wykrywajcy rwnie zoe \l;rudy tytanu\u object\titanore; (oznaczone \l;czerwonym plusem\u object\stonspot;) lub zoe \l;rudy uranu\u object\uranore; (oznaczone \l;tym kkiem\u object\uranspot;). + +\t;Transport +Niemoliwy. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;EnergySite\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/exchange.txt b/help/P/object/exchange.txt new file mode 100644 index 00000000..6e98f38e --- /dev/null +++ b/help/P/object/exchange.txt @@ -0,0 +1,31 @@ +\b;\button 172; Stacja przekaźnikowa informacji +\image info 8 8; +Budynek ten przechowuje cyfrowe informacje. Stacja może przechowywać do 10 porcji informacji, do każdej z nich można odwoływać się poprzez jej nazwę. +Na przykład stacja może przechowywać 3 informacje¦:\c; +\tab;"Pozycja.x" 23.45 +\tab;"Pozycja.y" -102.70 +\tab;"Ilość" 3.00 +\n; +Do umieszczenia nowej informacji służy polecenie \c;\l;send\u cbot\send;\n;. +Do odczytania informacji ze stacji służy polecenie \c;\l;receive\u cbot\receive;\n;. + +\t;Wymagania +Płaska powierzchnia szeroka na minimum 2,5 metra. + +\t;Wejście +Brak. + +\t;Wyjście +Cyfrowe informacje. + +\t;Źródło zasilania +Brak. + +\t;Czas działania +1 sekunda. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;ExchangePost\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/exchange.txt.bak b/help/P/object/exchange.txt.bak new file mode 100644 index 00000000..016a82f7 --- /dev/null +++ b/help/P/object/exchange.txt.bak @@ -0,0 +1,31 @@ +\b;\button 172; Stacja przekanikowa informacji +\image info 8 8; +Budynek ten przechowuje cyfrowe informacje. Stacja moe przechowywa do 10 porcji informacji, do kadej z nich mona odwoywa si poprzez jej nazw. +Na przykad stacja moe przechowywa 3 informacje:\c; +\tab;"Pozycja.x" 23.45 +\tab;"Pozycja.y" -102.70 +\tab;"Ilo" 3.00 +\n; +Do umieszczenia nowej informacji suy polecenie \c;\l;send\u cbot\send;\n;. +Do odczytania informacji ze stacji suy polecenie \c;\l;receive\u cbot\receive;\n;. + +\t;Wymagania +Paska powierzchnia szeroka na minimum 2,5 metra. + +\t;Wejcie +Brak. + +\t;Wyjcie +Cyfrowe informacje. + +\t;rdo zasilania +Brak. + +\t;Czas dziaania +1 sekunda. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;ExchangePost\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/factory.txt b/help/P/object/factory.txt new file mode 100644 index 00000000..0c719902 --- /dev/null +++ b/help/P/object/factory.txt @@ -0,0 +1,33 @@ +\b;\button 160; Fabryka robotów +\image factory 8 8; +Ten budynek jest przeznaczony do wytwarzania robotów z \l;tytanu\u object\titan;. + +1) Umieść kostkę tytanu w fabryce. +2) Cofnij się. +3) Zaznacz fabrykę. +4) Kliknij przycisk odpowiadający symbolowi robota, który ma zostać złożony (np.\button 137; dla \l;transportera na kołach\u object\botgr;). + +Gotowy robot nie ma na pokładzie \l;ogniwa elektrycznego\u object\power;. Aby mógł opuścić fabrykę, należy go w nie wyposażyć. + +Lista dostępnych robotów zależy od postępu prac badawczych w \l;centrum badawczym\u object\research;. + +\t;Wymagania +Płaska powierzchnia szeroka na minimum 7,5 metra. + +\t;Wejście +Tytan. + +\t;Wyjście +Gotowy robot. + +\t;Źródło zasilania +Brak. + +\t;Czas działania +15 sekund. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;BotFactory\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/factory.txt.bak b/help/P/object/factory.txt.bak new file mode 100644 index 00000000..07de4b55 --- /dev/null +++ b/help/P/object/factory.txt.bak @@ -0,0 +1,33 @@ +\b;\button 160; Fabryka robotw +\image factory 8 8; +Ten budynek jest przeznaczony do wytwarzania robotw z \l;tytanu\u object\titan;. + +1) Umie kostk tytanu w fabryce. +2) Cofnij si. +3) Zaznacz fabryk. +4) Kliknij przycisk odpowiadajcy symbolowi robota, ktry ma zosta zoony (np.\button 137; dla \l;transportera na koach\u object\botgr;). + +Gotowy robot nie ma na pokadzie \l;ogniwa elektrycznego\u object\power;. Aby mg opuci fabryk, naley go w nie wyposay. + +Lista dostpnych robotw zaley od postpu prac badawczych w \l;centrum badawczym\u object\research;. + +\t;Wymagania +Paska powierzchnia szeroka na minimum 7,5 metra. + +\t;Wejcie +Tytan. + +\t;Wyjcie +Gotowy robot. + +\t;rdo zasilania +Brak. + +\t;Czas dziaania +15 sekund. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;BotFactory\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/flag.txt b/help/P/object/flag.txt new file mode 100644 index 00000000..1ea26697 --- /dev/null +++ b/help/P/object/flag.txt @@ -0,0 +1,22 @@ +\b;Kolorowa flaga +\image flag 4 4; +Kolorowe flagi mogą być pomocne w zaznaczeniu strategicznych lokacji lub pozycji, które \l;astronauta\u object\human; będzie musiał ponownie znaleźć. Flagi pojawiają się na mapce jako plusy w tym samym kolorze co kolor flagi. + +Do ustawiania i usuwania flag służą przyciski \button 118; i \button 119;, kolor wybierany jest przyciskami powyżej nich. + +Gdy nie działa mapka, fakt że flagi orientują się zgodnie z wiatrem, może być pomocny w znalezieniu drogi i zapobieżeniu chodzenia w kółko. + +Podczas programowania można użyć flag jako punktów odniesienia dla robota: instrukcja \c;\l;radar\u cbot\radar;\n; umożliwia robotowi poznanie dokładnej pozycji flagi określonego koloru. + +\t;Transport +Niemożliwy. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;BlueFlag\n; +\c;RedFlag\n; +\c;GreenFlag\n; +\c;YellowFlag\n; +\c;VioletFlag\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/flag.txt.bak b/help/P/object/flag.txt.bak new file mode 100644 index 00000000..00002835 --- /dev/null +++ b/help/P/object/flag.txt.bak @@ -0,0 +1,22 @@ +\b;Kolorowa flaga +\image flag 4 4; +Kolorowe flagi mog by pomocne w zaznaczeniu strategicznych lokacji lub pozycji, ktre \l;astronauta\u object\human; bdzie musia ponownie znale. Flagi pojawiaj si na mapce jako plusy w tym samym kolorze co kolor flagi. + +Do ustawiania i usuwania flag su przyciski \button 118; i \button 119;, kolor wybierany jest przyciskami powyej nich. + +Gdy nie dziaa mapka, fakt e flagi orientuj si zgodnie z wiatrem, moe by pomocny w znalezieniu drogi i zapobieeniu chodzenia w kko. + +Podczas programowania mona uy flag jako punktw odniesienia dla robota: instrukcja \c;\l;radar\u cbot\radar;\n; umoliwia robotowi poznanie dokadnej pozycji flagi okrelonego koloru. + +\t;Transport +Niemoliwy. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;BlueFlag\n; +\c;RedFlag\n; +\c;GreenFlag\n; +\c;YellowFlag\n; +\c;VioletFlag\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/goal.txt b/help/P/object/goal.txt new file mode 100644 index 00000000..9e9979a7 --- /dev/null +++ b/help/P/object/goal.txt @@ -0,0 +1,8 @@ +\b;Platforma końcowa +Platforma końcowa jest celem, do którego trzeba dotrzeć w niektórych ćwiczeniach. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;GoalArea\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/goal.txt.bak b/help/P/object/goal.txt.bak new file mode 100644 index 00000000..c344c488 --- /dev/null +++ b/help/P/object/goal.txt.bak @@ -0,0 +1,8 @@ +\b;Platforma kocowa +Platforma kocowa jest celem, do ktrego trzeba dotrze w niektrych wiczeniach. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;GoalArea\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/human.txt b/help/P/object/human.txt new file mode 100644 index 00000000..e8a3c47f --- /dev/null +++ b/help/P/object/human.txt @@ -0,0 +1,19 @@ +\b;\button 136; Astronauta +\image human 8 8; +Astronautą w trakcie gry jesteś Ty. + +Jeśli umrzesz, misja kończy się niepowodzeniem. + +Za pomocą działa neutronowego umieszczonego w zestawie przetrwania można wznosić budynki. Zestaw przetrwania umożliwia, w większości misji, latanie dzięki umieszczonemu pod nim reaktorowi oraz pływanie bez ograniczenia czasowego. Można też przenosić większość obiektów, ale ich ciężar znacząco zmniejsza prędkość poruszania się. Również latanie, pływanie i chodzenie pod wodą jest niemożliwe w trakcie niesienia przedmiotu. Do tych zadań polecane jest używanie robota \l;transportera\u object\botgr; lub robota \l;nurka\u object\botsub;. + +Przenoszenie \l;rudy uranu\u object\uranore; nie jest możliwe z powodu jej radioaktywności. + +Specjalny przycisk \button 111; umożliwia sprawdzenie, czy okoliczny grunt jest płaski. Jest to ważne, gdyż budynki mogą stać jedynie na płaskiej powierzchni. Płaska powierzchnia jest zaznaczona na zielono, a pochyłości na czerwono. + +Przycisk \button 118; umożliwia zaznaczenie pozycji za pomocą różnokolorowych \l;flag\u object\flag;. Może zapobiec zgubieniu się, może być również pomocne jeśli konieczne jest ponowne znalezienie ważnego miejsca lub oznaczenie pozycji robota. Do dyspozycji jest po 5 flag w 5 różnych kolorach. Flagę można usunąć przyciskiem \button 119; i zachować do późniejszego użycia. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;Me\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/human.txt.bak b/help/P/object/human.txt.bak new file mode 100644 index 00000000..8e7cf8f4 --- /dev/null +++ b/help/P/object/human.txt.bak @@ -0,0 +1,19 @@ +\b;\button 136; Astronauta +\image human 8 8; +Astronaut w trakcie gry jeste Ty. + +Jeli umrzesz, misja koczy si niepowodzeniem. + +Za pomoc dziaa neutronowego umieszczonego w zestawie przetrwania mona wznosi budynki. Zestaw przetrwania umoliwia, w wikszoci misji, latanie dziki umieszczonemu pod nim reaktorowi oraz pywanie bez ograniczenia czasowego. Mona te przenosi wikszo obiektw, ale ich ciar znaczco zmniejsza prdko poruszania si. Rwnie latanie, pywanie i chodzenie pod wod jest niemoliwe w trakcie niesienia przedmiotu. Do tych zada polecane jest uywanie robota \l;transportera\u object\botgr; lub robota \l;nurka\u object\botsub;. + +Przenoszenie \l;rudy uranu\u object\uranore; nie jest moliwe z powodu jej radioaktywnoci. + +Specjalny przycisk \button 111; umoliwia sprawdzenie, czy okoliczny grunt jest paski. Jest to wane, gdy budynki mog sta jedynie na paskiej powierzchni. Paska powierzchnia jest zaznaczona na zielono, a pochyoci na czerwono. + +Przycisk \button 118; umoliwia zaznaczenie pozycji za pomoc rnokolorowych \l;flag\u object\flag;. Moe zapobiec zgubieniu si, moe by rwnie pomocne jeli konieczne jest ponowne znalezienie wanego miejsca lub oznaczenie pozycji robota. Do dyspozycji jest po 5 flag w 5 rnych kolorach. Flag mona usun przyciskiem \button 119; i zachowa do pniejszego uycia. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;Me\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/huston.txt b/help/P/object/huston.txt new file mode 100644 index 00000000..5704881a --- /dev/null +++ b/help/P/object/huston.txt @@ -0,0 +1,11 @@ +\b;\button 176; Centrum Kontroli Misji +\image huston 8 8; +Ziemskie centrum kontroli wszystkich \l;Twoich\u object\human; misji. Pomimo takiej samej nazwy jak ogólnie znana stacja kontroli misji z dawnych czasów, "Houston" mieści się w rzeczywistości pośrodku pustyni Nevada, w nowym centrum koordynacji eksploracji kosmosu. + +Centrum Kontroli Misji nieustannie nadzoruje Twoją misję, a cały zespół naukowców i inżynierów bardzo ciężko pracuje nad znalezieniem rozwiązań dla wszystkich napotkanych problemów. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;Houston\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/huston.txt.bak b/help/P/object/huston.txt.bak new file mode 100644 index 00000000..d8400170 --- /dev/null +++ b/help/P/object/huston.txt.bak @@ -0,0 +1,11 @@ +\b;\button 176; Centrum Kontroli Misji +\image huston 8 8; +Ziemskie centrum kontroli wszystkich \l;Twoich\u object\human; misji. Pomimo takiej samej nazwy jak oglnie znana stacja kontroli misji z dawnych czasw, "Houston" mieci si w rzeczywistoci porodku pustyni Nevada, w nowym centrum koordynacji eksploracji kosmosu. + +Centrum Kontroli Misji nieustannie nadzoruje Twoj misj, a cay zesp naukowcw i inynierw bardzo ciko pracuje nad znalezieniem rozwiza dla wszystkich napotkanych problemw. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;Houston\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/key.txt b/help/P/object/key.txt new file mode 100644 index 00000000..9ee53784 --- /dev/null +++ b/help/P/object/key.txt @@ -0,0 +1,17 @@ +\b;Klucze A, B, C i D +\image key 4 4; +Dzięki kluczom, \l;astronauta\u object\human; może uzyskać dostęp do \l;skrytki\u object\safe;. Potrzebne są to tego cztery klucze: + +o Klucz A, niebieski, trójkątny +o Klucz B, czerwony, pięciokątny +o Klucz C, zielony, w kształcie sześcioramiennej gwiazdy +o Klucz D, żółty, okrągły + +\t;Transport +Wszystkie \l;transportery\u object\botgr; oraz \l;astronauta\u object\human;. + +\t;\l;Kategorie \u cbot\category; obiektów +\c;KeyA\n;, \c;KeyB\n;, \c;KeyC\n; i \c;KeyD\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/key.txt.bak b/help/P/object/key.txt.bak new file mode 100644 index 00000000..a3655377 --- /dev/null +++ b/help/P/object/key.txt.bak @@ -0,0 +1,17 @@ +\b;Klucze A, B, C i D +\image key 4 4; +Dziki kluczom, \l;astronauta\u object\human; moe uzyska dostp do \l;skrytki\u object\safe;. Potrzebne s to tego cztery klucze: + +o Klucz A, niebieski, trjktny +o Klucz B, czerwony, picioktny +o Klucz C, zielony, w ksztacie szecioramiennej gwiazdy +o Klucz D, ty, okrgy + +\t;Transport +Wszystkie \l;transportery\u object\botgr; oraz \l;astronauta\u object\human;. + +\t;\l;Kategorie \u cbot\category; obiektw +\c;KeyA\n;, \c;KeyB\n;, \c;KeyC\n; i \c;KeyD\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/labo.txt b/help/P/object/labo.txt new file mode 100644 index 00000000..072155e3 --- /dev/null +++ b/help/P/object/labo.txt @@ -0,0 +1,24 @@ +\b;\button 166; Laboratorium +\image labo 8 8; +Laboratorium jest przeznaczone do analizy \l;materii organicznej\u object\bullet;. Dzięki niemu \l;ludzie\u object\human; mogą poznać technologię owadów, a nawet użyć jej dla zwiększenia swojej przewagi. Fragment \l;materii organicznej\u object\bullet; należy umieścić na platformie, zaznaczyć laboratorium i kliknąć przycisk odpowiadający żądanemu programowi badawczemu. + +\t;Wymagania +Płaska powierzchnia szeroka na minimum 6 metrów. + +\t;Wejście +Materia organiczna. + +\t;Wyjście +Nowe, ulepszone technologie. + +\t;Źródło zasilania +Brak. + +\t;Czas działania +20 sekund. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;AutoLab\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/labo.txt.bak b/help/P/object/labo.txt.bak new file mode 100644 index 00000000..eb399ad1 --- /dev/null +++ b/help/P/object/labo.txt.bak @@ -0,0 +1,24 @@ +\b;\button 166; Laboratorium +\image labo 8 8; +Laboratorium jest przeznaczone do analizy \l;materii organicznej\u object\bullet;. Dziki niemu \l;ludzie\u object\human; mog pozna technologi owadw, a nawet uy jej dla zwikszenia swojej przewagi. Fragment \l;materii organicznej\u object\bullet; naley umieci na platformie, zaznaczy laboratorium i klikn przycisk odpowiadajcy danemu programowi badawczemu. + +\t;Wymagania +Paska powierzchnia szeroka na minimum 6 metrw. + +\t;Wejcie +Materia organiczna. + +\t;Wyjcie +Nowe, ulepszone technologie. + +\t;rdo zasilania +Brak. + +\t;Czas dziaania +20 sekund. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;AutoLab\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/lrv.txt b/help/P/object/lrv.txt new file mode 100644 index 00000000..45e8f85f --- /dev/null +++ b/help/P/object/lrv.txt @@ -0,0 +1,9 @@ +\b;Pojazd Księżycowy Apollo + + + +\c;< zdjęcie archiwalne nie jest dostępne >\n; + + + +Pojazd księżycowy (LRV - Lunar Roving Vehicle) został przewieziony na Księżyc 30 lipca 1971 roku przez astronautów Davida Scotta i Jima Irwina z misji Apollo 15. Jego akumulatory są wciąż częściowo naładowane, umożliwiając jego zdalną kontrolę, jednak ta przestarzała już technologia nie będzie przydatna w obecnych misjach. diff --git a/help/P/object/lrv.txt.bak b/help/P/object/lrv.txt.bak new file mode 100644 index 00000000..fb5d10eb --- /dev/null +++ b/help/P/object/lrv.txt.bak @@ -0,0 +1,9 @@ +\b;Pojazd Ksiycowy Apollo + + + +\c;< zdjcie archiwalne nie jest dostpne >\n; + + + +Pojazd ksiycowy (LRV - Lunar Roving Vehicle) zosta przewieziony na Ksiyc 30 lipca 1971 roku przez astronautw Davida Scotta i Jima Irwina z misji Apollo 15. Jego akumulatory s wci czciowo naadowane, umoliwiajc jego zdaln kontrol, jednak ta przestarzaa ju technologia nie bdzie przydatna w obecnych misjach. diff --git a/help/P/object/mine.txt b/help/P/object/mine.txt new file mode 100644 index 00000000..efcb5544 --- /dev/null +++ b/help/P/object/mine.txt @@ -0,0 +1,14 @@ +\b;Mina +\image mine 8 8; +Miny były systemem broni defensywnej używanej przez pierwszą ekspedycję. Ponieważ były one niebezpieczne dla samej misji, nie są już obecnie używane. W niektórych ćwiczeniach miny służą do nauki unikania przeszkód. Nie jest możliwe ich usunięcie ani wytworzenie nowych. + +\l;Robot treningowy\u object\bottr; nie powinien zbliżać się do nich na odległość mniejszą niż 2 metry od pozycji podawanej przez instrukcję \l;radar\u cbot\radar;. + +\t;Transport +Niemożliwy. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;Mine\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/mine.txt.bak b/help/P/object/mine.txt.bak new file mode 100644 index 00000000..7f91e31c --- /dev/null +++ b/help/P/object/mine.txt.bak @@ -0,0 +1,14 @@ +\b;Mina +\image mine 8 8; +Miny byy systemem broni defensywnej uywanej przez pierwsz ekspedycj. Poniewa byy one niebezpieczne dla samej misji, nie s ju obecnie uywane. W niektrych wiczeniach miny su do nauki unikania przeszkd. Nie jest moliwe ich usunicie ani wytworzenie nowych. + +\l;Robot treningowy\u object\bottr; nie powinien zblia si do nich na odlego mniejsz ni 2 metry od pozycji podawanej przez instrukcj \l;radar\u cbot\radar;. + +\t;Transport +Niemoliwy. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;Mine\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/mother.txt b/help/P/object/mother.txt new file mode 100644 index 00000000..d6bcb987 --- /dev/null +++ b/help/P/object/mother.txt @@ -0,0 +1,15 @@ +\b;Królowa obcych +\image mother 8 8; +Ten olbrzymi owad jest matką wszystkich obcych. Składa ona \l;jaja\u object\egg;, z których wysiaduje różne rodzaje owadów, z którymi musi walczyć \l;astronauta\u object\human;. Są bardzo groźne, zarówno dla astronauty, jak i dla całej misji. Osłona ochronna królowej jest odporna na większość ataków. + +Daje ona życie następującym organizmom: +o \l;mrówkom\u object\ant; +o \l;pająkom\u object\spider; +o \l;osom\u object\wasp; +o \l;robalom\u object\worm; + +\t;\l;Kategoria\u cbot\category; obiektu +\c;AlienQueen\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/mother.txt.bak b/help/P/object/mother.txt.bak new file mode 100644 index 00000000..e40534fe --- /dev/null +++ b/help/P/object/mother.txt.bak @@ -0,0 +1,15 @@ +\b;Krlowa obcych +\image mother 8 8; +Ten olbrzymi owad jest matk wszystkich obcych. Skada ona \l;jaja\u object\egg;, z ktrych wysiaduje rne rodzaje owadw, z ktrymi musi walczy \l;astronauta\u object\human;. S bardzo grone, zarwno dla astronauty, jak i dla caej misji. Osona ochronna krlowej jest odporna na wikszo atakw. + +Daje ona ycie nastpujcym organizmom: +o \l;mrwkom\u object\ant; +o \l;pajkom\u object\spider; +o \l;osom\u object\wasp; +o \l;robalom\u object\worm; + +\t;\l;Kategoria\u cbot\category; obiektu +\c;AlienQueen\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/nest.txt b/help/P/object/nest.txt new file mode 100644 index 00000000..3d696029 --- /dev/null +++ b/help/P/object/nest.txt @@ -0,0 +1,8 @@ +\b;Gniazdo +Gniazdo obcych jest niespotykaną wcześniej konstrukcją, z której regularnie wydobywa się \l;materia organiczna\u object\bullet;. Jest ono często odwiedzane przez \l;osy\u object\wasp;, które uzupełniają tu amunicję używaną do bombardowania robotów, budynków i astronauty. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;AlienNest\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/nest.txt.bak b/help/P/object/nest.txt.bak new file mode 100644 index 00000000..025fe93c --- /dev/null +++ b/help/P/object/nest.txt.bak @@ -0,0 +1,8 @@ +\b;Gniazdo +Gniazdo obcych jest niespotykan wczeniej konstrukcj, z ktrej regularnie wydobywa si \l;materia organiczna\u object\bullet;. Jest ono czsto odwiedzane przez \l;osy\u object\wasp;, ktre uzupeniaj tu amunicj uywan do bombardowania robotw, budynkw i astronauty. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;AlienNest\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/nuclear.txt b/help/P/object/nuclear.txt new file mode 100644 index 00000000..9fd77e58 --- /dev/null +++ b/help/P/object/nuclear.txt @@ -0,0 +1,24 @@ +\b;\button 170; Elektrownia atomowa +\image nuclear 8 8; +Elektrownia atomowa to fabryka \l;atomowych ogniw elektrycznych\u object\atomic;. Przetwarza ona porcję \l;rudy uranu\u object\uranore; na w pełni naładowane i gotowe do użycia \l;atomowe ogniwo elektryczne\u object\atomic;. + +\t;Wymagania +Płaska powierzchnia szeroka na minimum 10 metrów. + +\t;Wejście +Ruda uranu. + +\t;Wyjście +Atomowe ogniwo elektryczne + +\t;Źródło zasilania +Brak. + +\t;Czas działania +30 sekund. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;NuclearPlant\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/nuclear.txt.bak b/help/P/object/nuclear.txt.bak new file mode 100644 index 00000000..8b58f05c --- /dev/null +++ b/help/P/object/nuclear.txt.bak @@ -0,0 +1,24 @@ +\b;\button 170; Elektrownia atomowa +\image nuclear 8 8; +Elektrownia atomowa to fabryka \l;atomowych ogniw elektrycznych\u object\atomic;. Przetwarza ona porcj \l;rudy uranu\u object\uranore; na w peni naadowane i gotowe do uycia \l;atomowe ogniwo elektryczne\u object\atomic;. + +\t;Wymagania +Paska powierzchnia szeroka na minimum 10 metrw. + +\t;Wejcie +Ruda uranu. + +\t;Wyjcie +Atomowe ogniwo elektryczne + +\t;rdo zasilania +Brak. + +\t;Czas dziaania +30 sekund. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;NuclearPlant\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/power.txt b/help/P/object/power.txt new file mode 100644 index 00000000..e927922b --- /dev/null +++ b/help/P/object/power.txt @@ -0,0 +1,16 @@ +\b;Zwykłe ogniwo elektryczne +\image power 4 4; +Ogniwo elektryczne dostarcza energii robotom i niektórym budynkom. + +Całkowicie czerwone ogniwo elektryczne jest wyładowane. Część zielona oznacza pozostałą energię. Może być ono naładowane w \l;stacji energetycznej\u object\station;. Do produkcji nowych, w pełni naładowanych ogniw elektrycznych potrzebna jest \l;elektrownia\u object\energy;. + +Pojemność zwykłego ogniwa elektrycznego jest 100 razy mniejsza od pojemności \l;atomowego ogniwa elektrycznego\u object\atomic; wytwarzanego przez \l;elektrownię atomową\u object\nuclear; z \l;rudy uranu\u object\uranore;. + +\t;Transport +Wszystkie \l;transportery\u object\botgr; oraz \l;astronauta\u object\human;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;PowerCell\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/power.txt.bak b/help/P/object/power.txt.bak new file mode 100644 index 00000000..4e905bdf --- /dev/null +++ b/help/P/object/power.txt.bak @@ -0,0 +1,16 @@ +\b;Zwyke ogniwo elektryczne +\image power 4 4; +Ogniwo elektryczne dostarcza energii robotom i niektrym budynkom. + +Cakowicie czerwone ogniwo elektryczne jest wyadowane. Cz zielona oznacza pozosta energi. Moe by ono naadowane w \l;stacji energetycznej\u object\station;. Do produkcji nowych, w peni naadowanych ogniw elektrycznych potrzebna jest \l;elektrownia\u object\energy;. + +Pojemno zwykego ogniwa elektrycznego jest 100 razy mniejsza od pojemnoci \l;atomowego ogniwa elektrycznego\u object\atomic; wytwarzanego przez \l;elektrowni atomow\u object\nuclear; z \l;rudy uranu\u object\uranore;. + +\t;Transport +Wszystkie \l;transportery\u object\botgr; oraz \l;astronauta\u object\human;. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;PowerCell\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/radar.txt b/help/P/object/radar.txt new file mode 100644 index 00000000..0fab3edb --- /dev/null +++ b/help/P/object/radar.txt @@ -0,0 +1,26 @@ +\b;\button 168; Radar +\image radar 8 8; +Radar określa kierunek najbliższego \l;wroga\u object\mother;. Co więcej, informacje uzyskane dzięki radarowi umożliwiają pokazanie pozycji wszystkich robotów, budynków i wrogów, jako małych różnokolorowych kwadratów i trójkątów na mapce, znajdującej się w prawej dolnej części ekranu. + +Stacje radarowe spełniają również rolę stacji przekaźnikowych w komunikacji pomiędzy Ziemią i odległymi planetami. + +\t;Wymagania +Płaska powierzchnia szeroka na minimum 2,5 metra. + +\t;Wejście +Brak. + +\t;Wyjście +Informacje na mapce. + +\t;Źródło zasilania +Brak. + +\t;Czas działania +Stały. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;RadarStation\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/radar.txt.bak b/help/P/object/radar.txt.bak new file mode 100644 index 00000000..9fdcbe96 --- /dev/null +++ b/help/P/object/radar.txt.bak @@ -0,0 +1,26 @@ +\b;\button 168; Radar +\image radar 8 8; +Radar okrela kierunek najbliszego \l;wroga\u object\mother;. Co wicej, informacje uzyskane dziki radarowi umoliwiaj pokazanie pozycji wszystkich robotw, budynkw i wrogw, jako maych rnokolorowych kwadratw i trjktw na mapce, znajdujcej si w prawej dolnej czci ekranu. + +Stacje radarowe speniaj rwnie rol stacji przekanikowych w komunikacji pomidzy Ziemi i odlegymi planetami. + +\t;Wymagania +Paska powierzchnia szeroka na minimum 2,5 metra. + +\t;Wejcie +Brak. + +\t;Wyjcie +Informacje na mapce. + +\t;rdo zasilania +Brak. + +\t;Czas dziaania +Stay. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;RadarStation\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/repair.txt b/help/P/object/repair.txt new file mode 100644 index 00000000..5d7a8300 --- /dev/null +++ b/help/P/object/repair.txt @@ -0,0 +1,24 @@ +\b;\button 169; Warsztat +\image repair 8 8; +W warsztacie można zregenerować uszkodzone osłony robotów. Osłona robota wchłania pewną ilość strzałów \l;wroga\u object\mother;. Brak osłony oznacza, że robot zostanie zniszczony przy następnym ataku. + +\t;Wymagania +Płaska powierzchnia szeroka na minimum 6 metrów. + +\t;Wejście +Uszkodzony robot. + +\t;Wyjście +Naprawiony robot ze zregenerowaną osłoną. + +\t;Źródło zasilania +Brak. + +\t;Czas działania +Kilka sekund, w zależności od stopnia uszkodzenia robota. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;RepairCenter\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/repair.txt.bak b/help/P/object/repair.txt.bak new file mode 100644 index 00000000..1de47726 --- /dev/null +++ b/help/P/object/repair.txt.bak @@ -0,0 +1,24 @@ +\b;\button 169; Warsztat +\image repair 8 8; +W warsztacie mona zregenerowa uszkodzone osony robotw. Osona robota wchania pewn ilo strzaw \l;wroga\u object\mother;. Brak osony oznacza, e robot zostanie zniszczony przy nastpnym ataku. + +\t;Wymagania +Paska powierzchnia szeroka na minimum 6 metrw. + +\t;Wejcie +Uszkodzony robot. + +\t;Wyjcie +Naprawiony robot ze zregenerowan oson. + +\t;rdo zasilania +Brak. + +\t;Czas dziaania +Kilka sekund, w zalenoci od stopnia uszkodzenia robota. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;RepairCenter\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/research.txt b/help/P/object/research.txt new file mode 100644 index 00000000..5f506246 --- /dev/null +++ b/help/P/object/research.txt @@ -0,0 +1,28 @@ +\b;\button 163; Centrum badawcze +\image research 8 8; +Centrum badawcze to ogromny komputer. Jego najbardziej użyteczną funkcją jest możliwość odkrywania nowych technologii oraz ulepszeń istniejącej, w szczególności dotyczącej budynków i robotów. + +Zawiera 65536 procesorów i zużywa bardzo duże ilości energii. +Każdy program badawczy potrzebuje nowego, w pełni naładowanego \l;ogniwa elektrycznego\u object\power; + +\t;Wymagania +Płaska powierzchnia szeroka na minimum 5 metrów. + +\t;Wejście +Żądanie rozpoczęcia badań. + +\t;Wyjście +Nowe, ulepszone technologie. + +\t;Źródło zasilania +Zwykłe lub atomowe ogniwo elektryczne. + +\t;Czas działania +Od 9 sekund do 1 minuty, w zależności od programu badawczego. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;ResearchCenter\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. + diff --git a/help/P/object/research.txt.bak b/help/P/object/research.txt.bak new file mode 100644 index 00000000..99a641c9 --- /dev/null +++ b/help/P/object/research.txt.bak @@ -0,0 +1,28 @@ +\b;\button 163; Centrum badawcze +\image research 8 8; +Centrum badawcze to ogromny komputer. Jego najbardziej uyteczn funkcj jest moliwo odkrywania nowych technologii oraz ulepsze istniejcej, w szczeglnoci dotyczcej budynkw i robotw. + +Zawiera 65536 procesorw i zuywa bardzo due iloci energii. +Kady program badawczy potrzebuje nowego, w peni naadowanego \l;ogniwa elektrycznego\u object\power; + +\t;Wymagania +Paska powierzchnia szeroka na minimum 5 metrw. + +\t;Wejcie +danie rozpoczcia bada. + +\t;Wyjcie +Nowe, ulepszone technologie. + +\t;rdo zasilania +Zwyke lub atomowe ogniwo elektryczne. + +\t;Czas dziaania +Od 9 sekund do 1 minuty, w zalenoci od programu badawczego. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;ResearchCenter\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. + diff --git a/help/P/object/safe.txt b/help/P/object/safe.txt new file mode 100644 index 00000000..a47abfb9 --- /dev/null +++ b/help/P/object/safe.txt @@ -0,0 +1,9 @@ +\b;\button 175; Skrytka +\image safe 8 8; +Ten kopulasty budynek został skonstruowany przez pierwszą ekspedycję. Jego celem była ochrona nowego typu zaawansowanego robota. W celu zabezpieczenia przed wrogimi atakami, skrytka została zamknięta czterema \l;kluczami\u object\key;. Dostęp do robota można uzyskać po znalezieniu 4 kluczy i umieszczeniu ich w odpowiednich zamkach. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;Vault\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/safe.txt.bak b/help/P/object/safe.txt.bak new file mode 100644 index 00000000..f648e7ed --- /dev/null +++ b/help/P/object/safe.txt.bak @@ -0,0 +1,9 @@ +\b;\button 175; Skrytka +\image safe 8 8; +Ten kopulasty budynek zosta skonstruowany przez pierwsz ekspedycj. Jego celem bya ochrona nowego typu zaawansowanego robota. W celu zabezpieczenia przed wrogimi atakami, skrytka zostaa zamknita czterema \l;kluczami\u object\key;. Dostp do robota mona uzyska po znalezieniu 4 kluczy i umieszczeniu ich w odpowiednich zamkach. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;Vault\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/spider.txt b/help/P/object/spider.txt new file mode 100644 index 00000000..fa813170 --- /dev/null +++ b/help/P/object/spider.txt @@ -0,0 +1,9 @@ +\b;Pająk +\image spider 8 8; +Pająki działają jak oddziały samobójcze: gdy zbliży się on do celu, wybucha i rozpada się na wiele małych fragmentów. Powodują one zapłon przedmiotów, z którym się zetkną. Na szczęście pająk również tego nie przeżywa. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;AlienSpider\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/spider.txt.bak b/help/P/object/spider.txt.bak new file mode 100644 index 00000000..30935d3d --- /dev/null +++ b/help/P/object/spider.txt.bak @@ -0,0 +1,9 @@ +\b;Pajk +\image spider 8 8; +Pajki dziaaj jak oddziay samobjcze: gdy zbliy si on do celu, wybucha i rozpada si na wiele maych fragmentw. Powoduj one zapon przedmiotw, z ktrym si zetkn. Na szczcie pajk rwnie tego nie przeywa. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;AlienSpider\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/start.txt b/help/P/object/start.txt new file mode 100644 index 00000000..3f6752cd --- /dev/null +++ b/help/P/object/start.txt @@ -0,0 +1,8 @@ +\b;Platforma startowa +Jest to platforma używana w niektórych ćwiczeniach. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;StartArea\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/start.txt.bak b/help/P/object/start.txt.bak new file mode 100644 index 00000000..0fc2af07 --- /dev/null +++ b/help/P/object/start.txt.bak @@ -0,0 +1,8 @@ +\b;Platforma startowa +Jest to platforma uywana w niektrych wiczeniach. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;StartArea\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/station.txt b/help/P/object/station.txt new file mode 100644 index 00000000..7217c8e1 --- /dev/null +++ b/help/P/object/station.txt @@ -0,0 +1,28 @@ +\b;\button 164; Stacja energetyczna +\image station 8 8; +Stacja energetyczna pobiera energię spod ziemi i poprzez indukcję ładuje \l;zwykłe ogniwa elektryczne \u object\power;. Aby naładować ogniwo elektryczne umieszczone na robocie, należy przesunąć go na środek platformy i poczekać kilka sekund. \l;Ogniwo elektryczne\u object\power; trzymane przez robota lub astronautę również może zostać doładowane. \l;Atomowe ogniwa elektryczne\u object\atomic; nie są ładowalne. + +Stacja energetyczna wymaga pewnego źródła energii w podglebiu. Jeśli z raportu satelitarnego wynika, że energia dostępna jest tylko w niektórych miejscach, należy wcześniej przebadać podglebie przy użyciu \l;robota szperacza\u object\botsr;. Pozostawione przez niego oznaczenia informują o rodzaju znalezionego surowca: \l;zielony plus\u object\enerspot; oznacza znajdujące się pod ziemią źródło energii, wymagane przy budowie stacji energetycznej lub \l;elektrowni\u object\energy;. + +Jeśli duże ogniwo elektryczny u góry stacji energetycznej pozostaje czerwone po jej wybudowaniu, oznacza to, że wybrane miejsce nie spełnia wymaganych warunków geologicznych. + +\t;Wymagania +Płaska powierzchnia z odpowiednimi warunkami geologicznymi szeroka na minimum 6 metrów. + +\t;Wejście +Puste ogniwo elektryczne. + +\t;Wyjście +Naładowane ogniwo elektryczne. + +\t;Źródło zasilania +Podziemne źródło energii. + +\t;Czas działania +Kilka sekund, zależnie od pojemności ogniwa, które ma być naładowane. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;PowerStation\n; + +\t;Zobacz również +\l;Język CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/object/station.txt.bak b/help/P/object/station.txt.bak new file mode 100644 index 00000000..8df99343 --- /dev/null +++ b/help/P/object/station.txt.bak @@ -0,0 +1,28 @@ +\b;\button 164; Stacja energetyczna +\image station 8 8; +Stacja energetyczna pobiera energi spod ziemi i poprzez indukcj aduje \l;zwyke ogniwa elektryczne \u object\power;. Aby naadowa ogniwo elektryczne umieszczone na robocie, naley przesun go na rodek platformy i poczeka kilka sekund. \l;Ogniwo elektryczne\u object\power; trzymane przez robota lub astronaut rwnie moe zosta doadowane. \l;Atomowe ogniwa elektryczne\u object\atomic; nie s adowalne. + +Stacja energetyczna wymaga pewnego rda energii w podglebiu. Jeli z raportu satelitarnego wynika, e energia dostpna jest tylko w niektrych miejscach, naley wczeniej przebada podglebie przy uyciu \l;robota szperacza\u object\botsr;. Pozostawione przez niego oznaczenia informuj o rodzaju znalezionego surowca: \l;zielony plus\u object\enerspot; oznacza znajdujce si pod ziemi rdo energii, wymagane przy budowie stacji energetycznej lub \l;elektrowni\u object\energy;. + +Jeli due ogniwo elektryczny u gry stacji energetycznej pozostaje czerwone po jej wybudowaniu, oznacza to, e wybrane miejsce nie spenia wymaganych warunkw geologicznych. + +\t;Wymagania +Paska powierzchnia z odpowiednimi warunkami geologicznymi szeroka na minimum 6 metrw. + +\t;Wejcie +Puste ogniwo elektryczne. + +\t;Wyjcie +Naadowane ogniwo elektryczne. + +\t;rdo zasilania +Podziemne rdo energii. + +\t;Czas dziaania +Kilka sekund, zalenie od pojemnoci ogniwa, ktre ma by naadowane. + +\t;\l;Kategoria\u cbot\category; obiektu +\c;PowerStation\n; + +\t;Zobacz rwnie +\l;Jzyk CBOT\u cbot;, \l;zmienne\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/tchasse.txt b/help/P/tchasse.txt new file mode 100644 index 00000000..59108c46 --- /dev/null +++ b/help/P/tchasse.txt @@ -0,0 +1,18 @@ +\b;Ćwiczenie +Musisz znaleźć sposób na zniszczenie czterech \l;robotów celów\u object\bottarg; bez marnowania amunicji. Warto zauważyć, że po każdym ruchu cele są nieruchome przez jedną sekundę. + +\b;Ogólny algorytm +1) Wykryj cel instrukcją \c;\l;radar\u cbot\radar;(TargetBot);\n;. +2) Obróć się w kierunku celu: \c;\l;turn\u cbot\turn;(direction());\n;. +3) Po wykonaniu obrotu sprawdź, czy cel się nie poruszył. +4) Jeśli nie, poczekaj 0,2 sekundy: \c;\l;wait\u cbot\wait;(0.2);\n;. +5) Ponownie sprawdź, czy cel się nie poruszył. +6) Jeśli nie, strzel, wykonując instrukcję \c;\l;fire\u cbot\fire;(2);\n; i czekając przez 2 sekundy na trafienie i zniszczenie celu. + +Są oczywiście również inne sposoby osiągnięcia tego samego celu. + +\t;Uwaga +Aby zwiększyć skuteczność strzałów, celuj nieco w dół instrukcją \c;\l;aim\u cbot\aim;(-3);\n;. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/tdragst.txt b/help/P/tdragst.txt new file mode 100644 index 00000000..ca5b786e --- /dev/null +++ b/help/P/tdragst.txt @@ -0,0 +1,64 @@ +\b;Ćwiczenie +Dotrzyj jak najszybciej do platformy końcowej (25 m przed Tobą), używając instrukcji \c;motor( , )\n;. Przed końcem ruchu musisz stopniowo zwalniać, aby robot nie wpadł na \l;miny\u object\mine; i nie wybuchł. + +Równie dobrze możesz napisać jedynie instrukcję \c;\l;move\u cbot\move;(25);\n;, która wykona to samo zadanie, jednak celem tego ćwiczenia jest nauka używania instrukcji \c;\l;motor\u cbot\motor;\n;. + +Instrukcja ta potrzebuje dwóch wartości: +1) Prędkości lewego silnika. +2) Prędkości prawego silnika. + +\s;\c; motor( lewy, prawy ); +\n; +Wartości muszą się zawierać w przedziale od -1 do 1: +-1 = pełny ciąg wstecz + 0 = silnik zatrzymany + 1 = pełny ciąg naprzód + +Na przykład instrukcja \c;motor(0.5, 0.5);\n; będzie poruszała robotem naprzód z połową prędkości, aż do podania silnikom nowych instrukcji. + +Po napotkaniu instrukcji \c;motor(0.5, 0.6);\n;, robot będzie się poruszał do przodu z połową prędkości, wykonując w tym samym czasie niewielki obrót w lewo: prawy silnik porusza się nieco szybciej (\c;0.6\n;) niż lewy (\c;0.5\n;). + +\b;Ogólny algorytm +Aby przejechać dokładnie 25 metrów, należy jechać z pełną prędkością przez pierwsze 23 metry, a następnie stopniowo zmniejszać prędkość przez ostatnie dwa metry. +\l;Zmienna\u cbot\var; \l;position\u cbot\object; podaje bieżącą pozycję robota, a instrukcja \c;\l;distance\u cbot\dist;( , );\n; oblicza odległość między dwoma punktami. Najlepszy sposób na poznanie własnej pozycji, polega na zachowaniu bieżącej pozycji przed startem w \l;zmiennej\u cbot\var;, nazwanej na przykład \c;start\n;. Następnie można obliczyć odległość między pozycją startową i bieżącą pozycją za pomocą instrukcji \c;distance(position, start)\n;. + +\b;Program +1) zadeklaruj zmienne +\s;\c; point start; +\s; float len; +\n; +2) zapisz pozycję startową +\s;\c; start = position; +\n; +3) na początek z pełną mocą: +\s;\c; motor(1, 1); +\n; +4) wykonaj pętlę nieskończoną \c;\l;while\u cbot\while;\n;: +\s;\c; while ( true ) +\s; { +\s; len = distance(position, start); +\s; if ( len > 25-2 ) +\s; { +\s; motor( mniej niż poprzednio! ); +\s; } +\s; } +\n; +Tak długo jak odległość pomiędzy pozycją startową i bieżącą jest mniejsza od 23m, instrukcje w klamrach po instrukcji \c;\l;if\u cbot\if;\n; nie będą wykonywane, więc silniki utrzymają maksymalną prędkość nadaną im instrukcją \c;\l;motor\u cbot\motor;(1,1);\n;. + +Aby stopniowo zwalniać, prędkość silników musi być proporcjonalna do pozostałej odległości: +o zostały \c;2.0\n; metry -> prędkość = \c;1.00\n; (maksymalna) +o zostało \c;1.5\n; metra -> prędkość = \c;0.75\n; +o został \c;1.0\n; metr -> prędkość = \c;0.50\n; +o zostało \c;0.5\n; metra -> prędkość = \c;0.25\n; +o zostało \c;0.0\n; metrów -> prędkość = \c;0.00\n; (zatrzymanie) + +\image tdragst1 12 6; +Do obliczenia prędkości, która zostanie podana silnikom możesz użyć następującego \l;wyrażenia\u cbot\expr;: \c;(25-len)/2\n;. + +Do Ciebie należy złożenie tego wszystkiego razem i przetestowanie programu. + +\t;Uwaga +Możesz używać wartości większych od 1 dla instrukcji \c;\l;motor\u cbot\motor;();\n;, ale robot nie będzie poruszał się szybciej. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/texch1.txt b/help/P/texch1.txt new file mode 100644 index 00000000..0d741799 --- /dev/null +++ b/help/P/texch1.txt @@ -0,0 +1,31 @@ +\b;Ćwiczenie +Kilka \l;stacji przekaźnikowych informacji\u object\exchange; stoi na środku pola \l;minowego\u object\mine;. Gdy robot jest wystarczająco blisko stacji przekaźnikowej, może odczytać zawarte w niej informacje. Każda stacja przekaźnikowa zawiera kąt obrotu, który powinien wykonać robot, aby dotrzeć do następnej stacji przekaźnikowej bez wpadnięcia na \l;minę\u object\mine;. +Odległość pomiędzy stacjami przekaźnikowymi wynosi 20 metrów. + +\b;Ogólny algorytm +Powtórz 5 razy: + o Idź 20 m naprzód. + o Odczytaj kierunek następnej \l;stacji przekaźnikowej informacji\u object\exchange;. + o Wykonaj obrót. + +\image tinfo1 8 8; +Do powtarzania powyższych instrukcji, tak jak poprzednio użyj instrukcji \c;\l;for\u cbot\for;\n;. +\s;\c; for ( int i=0 ; i<5 ; i=i+1 ) +\n; +Przesuń robota do przodu instrukcją \c;move(20);\n;. + +Do odczytania informacji ze \l;stacji przekaźnikowej\u object\exchange; użyj instrukcji \c;\l;receive\u cbot\receive;("Direction");\n;. Jest to oczywiście możliwe tylko gdy robot jest wystarczająco blisko stacji. +Do przechowywania wartości pobranej ze stacji przekaźnikowej potrzebna będzie \l;zmienna\u cbot\var;. Nazwijmy ją \c;dir\n;; należy ją zadeklarować w następujący sposób: +\s;\c; float dir; +\n; +Aby odczytać kąt obrotu ze stacji przekaźnikowej, przypisz zmiennej jej wartość: +\s;\c; dir = receive(...); +\n; +Następnie wykonaj obrót: +\s;\c; turn(dir); +\n; +\t;Uwaga +Możesz kliknąć na \l;stacji przekaźnikowej informacji\u object\exchange; aby przeczytać zawarte w niej informacje. W tym ćwiczeniu każda stacja przekaźnikowa zawiera tylko jedną wartość zwaną \c;"Direction"\n; (kierunek), ale może zawierać do 10 różnych wartości, o czym przekonasz się w niektórych z dalszych ćwiczeń. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/texch2.txt b/help/P/texch2.txt new file mode 100644 index 00000000..65c23e40 --- /dev/null +++ b/help/P/texch2.txt @@ -0,0 +1,36 @@ +\b;Ćwiczenie +W tym ćwiczeniu \l;stacje przekaźnikowe\u object\exchange; wzdłuż drogi zawierają kierunek i odległość do następnej stacji. Nie jest znana liczba stacji przekaźnikowych koniecznych do dotarcia do celu. + +\b;Ogólny algorytm + Powtarzaj w nieskończoność: + o Pobierz kierunek ze \l;stacji przekaźnikowej\u object\exchange;. + o Pobierz odległość ze \l;stacji przekaźnikowej\u object\exchange;. + o Jeśli nie ma żadnych informacji, zatrzymaj program. + o Wykonaj obrót. + o Idź do następnej stacji. + +Do nieskończonego powtarzania użyj pętli \c;\l;while\u cbot\while; (true)\n;. Instrukcje pomiędzy klamrami \c;{ }\n; będą powtarzane w nieskończoność lub do czasu wykonania instrukcji \c;\l;break\u cbot\break;\n;. +\s;\c; while ( true ) +\n; +Tym razem potrzebne będą dwie \l;zmienne\u cbot\var;, jedna dla kąta obrotu, druga dla odległości, na przykład \c;dir\n; i \c;len\n;: +\s;\c; float dir, len; +\n; +Następnie można pobrać informacje: +\s;\c; dir = receive("Direction"); +\s;\c; len = receive("Length"); +\n; +Zmienna \l;typu\u cbot\type; \c;\l;float\u cbot\float;\n; może również przyjmować specjalną wartość zwaną \c;\l;nan\u cbot\nan;\n;. Oznacza ona, że zmienna nie zawiera liczby (Not A Number). +Jeśli w pobliżu nie ma \l;stacji przekaźnikowej\u object\exchange; z powodu osiągnięcia przez robota celu, bądź zgubienia drogi, dwie zmienne \c;dir\n; i \c;len\n; zawierają wartość \c;\l;nan\u cbot\nan;\n;. Możesz to sprawdzić instrukcją \c;\l;if\u cbot\if;\n; i jeśli to konieczne zatrzymać program instrukcją \c;\l;break\u cbot\break;\n;: +\s;\c; if ( dir == nan ) break; +\n; +Jeśli pomyślnie pobrano informacje ze \l;stacji przekaźnikowej\u object\exchange; wykonaj obrót: +\s;\c; turn(dir); +\n; +I idź naprzód: +\s;\c; move(len); +\n; +\t;Uwaga +Możesz kliknąć na \l;stacji przekaźnikowej informacji\u object\exchange; aby przeczytać zawarte w niej informacje. W tym ćwiczeniu, każda stacja przekaźnikowa zawiera dwie wartości \c;"Direction"\n; (kierunek) i \c;"Length"\n; (odległość). + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/tfollow1.txt b/help/P/tfollow1.txt new file mode 100644 index 00000000..4505b600 --- /dev/null +++ b/help/P/tfollow1.txt @@ -0,0 +1,62 @@ +\b;Ćwiczenie +Podążaj za \l;robotem celem\u object\bottr; niosącym ładunek wybuchowy. Bądź ostrożny, gdyż zderzenie z nim grozi wybuchem. Podczas każdego zatrzymania robota celu należy być odpowiednio blisko niego (mniej niż 10 metrów). Gdy uda się być w pobliżu robota 10 razy z rzędu, ćwiczenie zakończy się wraz z jego dotarciem na platformę końcową. Przy każdym zatrzymaniu robot cel sprawdza, czy śledzący go robot jest odpowiednio blisko. Jeśli nie, liczenie zaczyna się od początku. + +\b;Ogólny algorytm +Powtarzaj w nieskończoność: +o Znajdź robot cel. +o Oblicz odległość do robota. +o Jeśli odległość jest mniejsza niż 5 m, cofnij się. +o W przeciwnym przypadku oblicz kierunek do robota celu i idź w jego stronę. + +Podobnie jak poprzednio użyj nieskończonej pętli \c;\l;while\u cbot\while; (true)\n;: +\s;\c;while (true) +\s;{ +\s; \n;instrukcje, które mają być powtarzane ...\c; +\s;} +\n; +Znajdź robot cel instrukcją \c;\l;radar\u cbot\radar;\n;: +\s;\c; target = radar(TargetBot); +\n; +Nie musisz sprawdzać, czy robot znalazł cel: na pewno tam jest. + +Użyj instrukcji \c;\l;distance\u cbot\dist;( , )\n; do obliczenie odległości między dwoma punktami. Pierwszym jest pozycja Twojego robota, podana przez \c;position\n;. Drugim jest pozycja robota celu, podana przez \c;target.position\n;. +\s;\c;len = distance(position, target.position); +\n; +Jeśli odległość od robota celu jest mniejsza niż 5 metrów, oddal się od niego z prędkością odwrotnie proporcjonalną do odległości: im bliżej jest robot, tym szybciej należy się cofać. + Odległość = 5.0 metrów -> prędkość = 0.0 + Odległość = 2.5 metra -> prędkość = -0.5 + Odległość = 0.0 metrów -> prędkość = -1.0 +Aby to uzyskać, możesz użyć \l;wyrażenia\u cbot\expr; \c;distance/5-1\n;, wspólnie z instrukcją \c;\l;if\u cbot\if;\n; sprawdzającą, czy cel jest bliżej niż 5 m: +\s;\c;if ( len < 5 ) // za blisko? +\s;{ +\s; motor(len/5-1, len/5-1); // cofnij +\s;} +\n; +Jeśli odległość do celu jest większa niż 5m, poruszaj się w jego kierunku. Najpierw oblicz kąt niezbędny do obrócenia się w jego kierunku używając instrukcji \c;\l;direction\u cbot\direct;\n;. Następnie dostosuj prędkości prawego i lewego silnika, aby Twój robot podążał za celem: +\s;\c;else +\s;{ +\s; dir = direction(target.position); +\s; if ( dir >= 0 ) // cel po lewej stronie? +\s; { +\s; motor(1-dir/90, 1); +\s; } +\s; else // cel po prawej stronie? +\s; { +\s; \n;do Ciebie należy uzupełnienie tego\c; +\s; } +\s;} +\n; +Gdy cel jest po lewej stronie, zmienna \c;dir\n; ma wartość dodatnią, pomiędzy 0 i 180. \l;Wyrażenie\u cbot\expr; \c;1-dir/90\n; zwraca prędkość w zakresie pomiędzy 1 i -1 w zależności od kierunku: + kierunek = 0 -> prędkość = 1.0 + kierunek = 45 -> prędkość = 0.5 + kierunek = 90 -> prędkość = 0.0 + kierunek = 135 -> prędkość = -0.5 + kierunek = 180 -> prędkość = -1.0 + +\image radar2 14 10; +Gdy cel jest po prawej stronie, zmienna \c;dir\n; ma wartość ujemną, pomiędzy 0 i -180. + +Jedynym zadaniem jakie jeszcze Ci zostało jest zadeklarowanie \l;zmiennych\u cbot\var; używanych w programie. \c;target\n; jest typu \c;object\n;, podczas gdy \c;dir\n; i \c;len\n; są typu \c;float\n;. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/tfor.txt b/help/P/tfor.txt new file mode 100644 index 00000000..b0917570 --- /dev/null +++ b/help/P/tfor.txt @@ -0,0 +1,57 @@ +\b;Ćwiczenie +Zniszcz sześć \l;celów\u object\bottarg; używając programu z pętlą. Odległości pomiędzy celami wynoszą 5 metrów. + +\b;Ogólny algorytm +Program powinien być uruchomiony według następującego schematu: +Powtórz 6 razy: + o idź 5 m naprzód. + o skręć o 90 stopni w lewo + o strzelaj + o skręć o 90 stopni w prawo + +\image tfor1 14 5; +\b;Instrukcja \c;for ( )\n; +Instrukcja \c;\l;for\u cbot\for;\n; wymaga 3 wyrażeń: +1) Inicjalizacji zmiennej liczącej. +2) \l;Warunku\u cbot\cond; zakończenia pętli. +3) \l;Wyrażenia\u cbot\expr; liczącego. + +Oto pętla umieszczona w programie: +\s;\c;extern void object::Masakra( ) +\s;{ +\s; for ( int i=0 ; i<6 ; i=i+1 ) +\s; { +\s; \n;instrukcje powtarzane 6 razy...\c; +\s; } +\s;} +\n; +UWAGA: Na końcu wiersza z \c;for ( )\n; nie powinno być \l;średnika\u cbot\term;! + +\b;Opis instrukcji \c;for ( )\n; +1) \c;int i=0\n; + Przed rozpoczęciem pętli \l;zmiennej\u cbot\var; i jest przypisywana wartość 0. + +2) \c;i<6\n; + Pętla będzie wykonywana tak długo, aż wartość zmiennej i będzie mniejsza od 6. + +3) \c;i=i+1\n; + Zwiększa o 1 zmienną i na końcu każdej pętli. + +\b;Bloki +Do utworzenia \l;bloku\u cbot\bloc; użyj nawiasów klamrowych \c;{ }\n;. Wszystkie instrukcje, które powinny być wykonywane przez pętlę \c;for\n; są zgrupowane w blok. Również cały program jest blokiem: +\c; +\s;extern void object::Masakra( ) +\s;{ +\s; \n;tutaj wpisz instrukcje...\c; +\s;} +\n; +Nigdy nie zmieniaj tych znaków. Wystarczy dodać instrukcje programu pomiędzy klamrami. +Możesz umieszczać bloki wewnątrz innego bloku. Na przykład blok \c;for\n; jest zagnieżdżony w bloku całego programu. W celu poprawy czytelności programu, edytor ustawia w odpowiednich liniach klamry należące do różnych bloków. + +\b;Zapamiętaj +Instrukcja używana do poruszania się naprzód: \c;\l;move\u cbot\move;();\n;. +Instrukcja używana do obracania robota: \c;\l;turn\u cbot\turn;();\n;. Kąt dodatni obraca w lewo. +Instrukcja używana do strzelania z działka: \c;\l;fire\u cbot\fire;(1);\n;. Jednosekundowa seria umożliwia zniszczenie wszystkich sześciu \l;celów\u object\bottarg;. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/tlaby1.txt b/help/P/tlaby1.txt new file mode 100644 index 00000000..5f55de07 --- /dev/null +++ b/help/P/tlaby1.txt @@ -0,0 +1,62 @@ +\b;Ćwiczenie +Zaprogramuj robota, aby znajdował wyjście z labiryntu bez uderzania o ściany. Zakładamy, że konfiguracja labiryntu nie jest znana, jednak nie ma w nim rozwidleń ani ślepych uliczek. Labirynt składa się z kwadratów o boku 5 m każdy. + +\b;Instrukcja \c;radar\n; +Instrukcja \c;\l;radar\u cbot\radar;(Barrier, 0, 45, 0, 5);\n; znajdzie \l;barierę\u object\barrier; przed robotem, która jest bliżej niż 5 metrów. Przyjrzyjmy się bliżej pięciu użytym parametrom: + +\s;\c;Barrier\n; +\l;Kategoria\u cbot\category; obiektu, którego ma szukać radar, np. bariera. + +\s;\c;0\n; +Kierunek, w którym "patrzy" radar. \c;0\n; oznacza, że radar powinien szukać obiektu wprost przed sobą. + +\s;\c;45\n; +Kąt widzenia, w stopniach. Z kątem widzenia równym 45 stopni, wykryte zostaną bariery znajdujące się pomiędzy 22,5 stopnia w lewo a 22,5 stopnia w prawo. + +\s;\c;0\n; +Minimalna odległość wykrywania. \c;0\n; oznacza, że zostaną wykryte nawet obiekty będące bardzo blisko robota. + +\s;\c;5\n; +Maksymalna odległość wykrywania. Żadna bariera dalej niż \c;5\n; metrów nie zostanie wykryta. + +Weźmy inny przykład, \c;\l;radar\u cbot\radar;(Barrier, 90, 45, 0, 5);\n; skieruje radar 90 stopni w lewo, w celu sprawdzenia, czy droga po lewej stronie jest wolna. + +\image tlaby1 10 10; +\b;Ogólny algorytm +Program powinien zajmować się tylko pojedynczymi kwadratami labiryntu. Należy uruchomić go wielokrotnie, aby robot doszedł do platformy końcowej. +o Jeśli nie ma niczego przed robotem, idź naprzód. +o Jeśli nie ma niczego po lewej stronie, wykonaj ćwierć obrotu w lewo i idź naprzód. +o Jeśli nie ma niczego po prawej stronie, wykonaj ćwierć obrotu w prawo i idź naprzód. + +1) Na początek zadeklaruj trzy \l;zmienne\u cbot\var; typu \c;\l;object\u cbot\object;\n;, nazwane \c;front\n;, \c;left\n; i \c;right\n;. Zmienne tego typu mogą zawierać opisy dowolnych obiektów, w tym przypadku bariery znalezionej przez radar. +\s;\c; object front, left, right;\n; + +2) Szukaj bariery we wszystkich trzech kierunkach, a wyniki instrukcji \c;radar\n; umieść w trzech zmiennych zdefiniowanych w punkcie 1). Jeśli radar niczego nie wykryje, zmienna będzie zawierała wartość \c;\l;null\u cbot\null;\n;. +\s;\c; front = radar(Barrier, 0, 45, 0, 5); +\s; left = radar(Barrier, 90, 45, 0, 5); +\s; right = radar(Barrier, -90, 45, 0, 5); +\n; +3) Używając instrukcji \c;\l;if\u cbot\if;\n;, sprawdź droga przed robotem jest wolna. Jeśli warunek będzie prawdziwy, zostaną wykonane instrukcje w klamrach \c;{ }\n;, w przeciwnym wypadku, działanie programu zostanie wznowione po klamrze zamykającej \c;}\n;. +Instrukcja \c;return\n; opuszcza program: zadanie zostało wykonane. +\s;\c;if ( front == null ) +\s;{ +\s; move(5); +\s; return; +\s;} +\n; +4) Sprawdź, czy możliwy jest obrót w lewo; jeśli tak, skręć w lewo instrukcją \c;\l;turn\u cbot\turn;\n; i idź 5 metrów do przodu. +\s;\c;if ( left == null ) +\s;{ +\s; turn(90); +\s; move(5); +\s; return; +\s;} +\n; +5) Sprawdź, czy możliwy jest obrót w prawo. + ... + +\b;Uwaga +Po instrukcji \c;if ( )\n; nigdy nie powinien wystąpić \l;średnik\u cbot\term;. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/tlaby2.txt b/help/P/tlaby2.txt new file mode 100644 index 00000000..6deead74 --- /dev/null +++ b/help/P/tlaby2.txt @@ -0,0 +1,55 @@ +\b;Ćwiczenie +To ćwiczenie jest bardzo podobne do poprzedniego. Tym razem robot powinien samodzielnie znaleźć drogę od startu do celu; musisz uruchomić program tylko jeden raz. + +\b;Uwaga +Labirynt nie jest dokładnie taki sam ale powinno to być bez znaczenia, gdyż program przystosowuje się do tego co "widzi". + +\image tlaby1 10 10; +\b;Ogólny algorytm +Użyj nieskończonej pętli \c;\l;while\u cbot\while;\n; aby wielokrotnie wykonać poprzedni program: +\s;\c;while ( true ) +\s;{ +\s; \n;Jeśli nie ma niczego z przodu, idź naprzód\c; +\s; \n;Jeśli nie ma niczego po lewej, skręć w lewo\c; +\s; \n;Jeśli nie ma niczego po prawej, skręć w prawo\c; +\s;} +\n; +Wewnątrz pętli \c;while\n; zastąp instrukcje \c;return\n; instrukcjami \c;\l;continue\u cbot\continue;\n;. \c;return\n; kończy działanie programu, co nie jest pożądane w tym przypadku. \c;continue\n; wznawia wykonywanie na początku pętli \c;\l;while\u cbot\while;\n;: +\s;\c;if ( front == null ) +\s;{ +\s; move(5); +\s; continue; +\s;} +\n; +\b;Zapamiętaj +Oto jeszcze raz program z poprzedniego ćwiczenia: +\c; +\s;object front, left, right; +\s; +\s;front = radar(Barrier, 0, 45, 0, 5); +\s;left = radar(Barrier, 90, 45, 0, 5); +\s;right = radar(Barrier, -90, 45, 0, 5); +\s; +\s;if ( front == null ) +\s;{ +\s; move(5); +\s; return; +\s;} +\s;if ( left == null ) +\s;{ +\s; turn(90); +\s; move(5); +\s; return; +\s;} +\s;if ( right == null ) +\s;{ +\s; turn(-90); +\s; move(5); +\s; return; +\s;} +\n; +\b;Pomoc +Jeśli potrzebujesz pomocy, kliknij na hiperłączu instrukcji \c;\l;radar\u cbot\radar;\n;, \c;\l;if\u cbot\if;\n;, \c;\l;move\u cbot\move;\n; lub \c;\l;turn\u cbot\turn;\n;. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/tmove1.txt b/help/P/tmove1.txt new file mode 100644 index 00000000..1ea0880d --- /dev/null +++ b/help/P/tmove1.txt @@ -0,0 +1,33 @@ +\b;Ćwiczenie +Zaprogramuj robota aby dotarł na platformę końcową po przejściu przez trzy niebieskie plusy. + +\b;Procedura +1) Weź ogniwo elektryczne i umieść je z tyłu robota. +2) Zrób rekonesans, aby zrozumieć co powinien zrobić robot. +3) Zaprogramuj robota. Aby to zrobić, musisz go zaznaczyć, a następnie kliknąć przycisk z klamrami \button 22;; dostaniesz się do edytora programu. +4) Po zakończeniu pisania programu, kliknij przycisk "OK" i uruchom program przyciskiem strzałki \button 21;. + +\b;Program +Odległości między platformami wynoszą po 20 metrów. +Instrukcja \c;move(20);\n; przemieszcza robota 20 metrów do przodu. +Instrukcja \c;turn(90);\n; obraca robota w lewo o 90 stopni. +Instrukcja \c;turn(-90);\n; obraca robota w prawo o 90 stopni. + +Schemat programu wygląda następująco: +\c; +\s; extern void object::MoveBot( ) +\s; { +\s; \n;\\tutaj wpisz potrzebne instrukcje...\c; +\s; } +\n; +Jak na razie nie musisz zmieniać tego schematu. Wystarczy pomiędzy klamry \c;{ }\n; wstawić potrzebne instrukcje, poruszające robotem. + +\b;Uwaga +Zwracaj uwagę na wielkie i małe litery! +Każda instrukcja powinna być zakończona średnikiem. + +\b;Przydatna sztuczka +Podczas pisania programu możesz obserwować scenę, klikając przycisk \button 51; i poruszając myszą w kierunku krawędzi ekranu w celu obrócenia kamery. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/tmove2.txt b/help/P/tmove2.txt new file mode 100644 index 00000000..c401ad61 --- /dev/null +++ b/help/P/tmove2.txt @@ -0,0 +1,66 @@ +\b;Ćwiczenie +To ćwiczenie jest bardzo podobne do poprzedniego. Robot musi się poruszać dokładnie w ten sam sposób, ale podczas pisania programu musisz użyć nowego, niezwykle ważnego w programowaniu rozwiązania, a mianowicie \l;zmiennych\u cbot\var;. +Jak wiadomo, odległości pomiędzy platformami wynoszą 20 metrów, a wszystkie wykonywane obroty mają po 90 stopni. Zamiast w programie wciąż przepisywać te same wartości, można przechować je w zmiennych: + +Zamiast: +\c;\s; move(20); +\s; turn(90); +\s; move(20); +\s; turn(-90); +\s; ... +\n; +Napiszemy: +\c;\s; dist = 20; +\s; dir = 90; +\s; move(dist); +\s; turn(dir); +\s; move(dist); +\s; turn(-dir); +\s; ... +\n; +\b;Zmienne +\l;Zmienna\u cbot\var; składa się z trzech elementów: +1) Nazwy +2) Typu zawartości +3) Zawartości + +\t;Nazwa +Nazwa służy do odwoływania się do zmiennej. Zamiast pisać \c;move(20);\n;, wystarczy napisać \c;move(dist);\n;, gdzie "dist" jest nazwą zmiennej. Zmiennej można nadać prawie dowolną nazwę, na przykład \c;dist\n;, \c;dir\n;, \c;p2\n;, \c;a\n;, \c;x\n;, \c;nothing_2_grab\n;, itd. + +\t;Typ +Typ zmiennej określa jaki rodzaj informacji jest przechowywany przez zmienną. Zależnie od typu, zmienna może zawierać liczby całkowite, liczby rzeczywiste, ciągi znakowe, współrzędne punktu, itd. Oto lista najbardziej popularnych typów zmiennych: + o \c;\l;int\u cbot\int;\n; dla liczb całkowitych (12, -500, itd.) + o \c;\l;float\u cbot\float;\n; dla liczb rzeczywistych (3.14, 0.2, -99.98, itd.) + o \c;\l;string\u cbot\string;\n; dla łańcuchów znakowych ("Cześć!", "Nie ma nic do podniesienia", itd.) + o \c;\l;point\u cbot\point;\n; dla współrzędnych przestrzeni x, y, z + o \c;\l;object\u cbot\object;\n; dla informacji o obiekcie (robocie, budynku, itd.) + +\t;Zawartość +Zawartością zmiennej może być liczba, łańcuch, współrzędne, itd., zależnie od typu zmiennej. Zawartość zmiennej może być wielokrotnie modyfikowana w trakcie wykonywania programu. + +Przed użyciem zmiennej konieczne jest jej zadeklarowanie. Na przykład przed użyciem dwóch zmiennych \c;dist\n; i \c;dir\n;, należy je zadeklarować w następujący sposób: +\c; +\s; float dist; +\s; float dir; +\n; +Teraz już można ich używać. Aby przypisać zmiennej \c;dist\n; wartość 20 a zmiennej \c;dir\n; wartość 90, napisz: +\c; +\s; dist = 20; +\s; dir = 90; +\n; +Teraz można poruszać i obracać robota instrukcjami \c;\l;move\u cbot\move;\n; i \c;\l;turn\n;\u cbot\turn;: +\c; +\s; move(dist); +\s; turn(dir); +\n; +Można również użyć całego \l;wyrażenia matematycznego\u cbot\expr; zamiast samej zmiennej: +\c; +\s; move(dist+100); +\s; turn(-dir); +\n; +Druga z instrukcji będzie potrzebna do obrócenia robota w prawo. + +A teraz przepisz program z poprzedniego ćwiczenia, używając jednak zmiennych dla odległości i kąta obrotu. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/tproc1.txt b/help/P/tproc1.txt new file mode 100644 index 00000000..0238a835 --- /dev/null +++ b/help/P/tproc1.txt @@ -0,0 +1,59 @@ +\b;Ćwiczenie +\l;Robot\u object\bottr; musi przejść przez wszystkie \l;niebieskie plusy\u object\waypoint; leżące na ziemi. Droga, którą musi pokonać, składa się z dwóch kwadratów. Pierwszy ma bok równy 15 metrów a drugi, 25 metrów. + +\image tproc1a 8 8; +\b;Ogólny algorytm +Najbardziej efektywne rozwiązanie tego problemu polega na napisaniu \l;funkcji\u cbot\function;, która porusza robotem po kwadracie określonego rozmiaru. Główny program staje się wtedy bardzo prosty:\c; +\s;extern void object::Funkcja1( ) +\s;{ +\s; Kwadrat(15); +\s; Kwadrat(25); +\s;} +\n; +Wciąż jednak należy zdefiniować funkcję nazwaną \c;Kwadrat\n;. Aby to zrobić, konieczne będzie napisanie kilku instrukcji poza \l;blokiem\u cbot\bloc; który dotychczas był ramką dla każdego z Twoich programów. Na samym końcu programu, po ostatniej klamrze zamykającej, należy zdefiniować funkcję \c;Kwadrat\n;. Program będzie wyglądał następująco: +\c; +\s;extern void object::Funkcja1( ) +\s;{ +\s; \n;główna funkcja...\c; +\s;} +\s; +\s;void object::Kwadrat(float bok) +\s;{ +\s; \n;nowa funkcja...\c; +\s;} +\n; +Przyjrzyjmy się uważniej różnym elementom deklaracji funkcji \c;Kwadrat\n;: + +\c;\l;void\u cbot\void;\n; +Oznacza, że ta funkcja nie zwraca żadnej wartości. + +\c;\l;object\u cbot\object;::\n; +Napisanie tego przed nazwą funkcji oznacza, że będzie ona miała dostęp do wszystkich charakterystyk robota, takich jak \c;position\n;, \c;orientation\n;, itd. W tym ćwiczeniu element ten nie jest wymagany, jako że w funkcji nie będą potrzebne charakterystyki robota. + +\c;Kwadrat ( )\n; +To jest nazwa funkcji. Możesz ją nazwać Kwadrat lub dowolnie inaczej. + +\c;\l;float\u cbot\float; bok\n; +Tutaj definiujesz parametry, które otrzymuje funkcja podczas wywołania. Przy pierwszym wywołaniu funkcji \c;Kwadrat(15)\n;, zmienna \c;bok\n; będzie miała wartość \c;15\n;. Za drugim razem \c;bok\n; będzie równy \c;25\n;. + +Oto szczegóły tego co zdarzy się po wykonaniu programu: +- Najpierw uruchamiana jest główna funkcja \c;Funkcja1\n;. +- W wierszu \c;Kwadrat(15)\n;, program podąży za czerwoną strzałką i przejdzie do funkcji \c;Kwadrat\n; po raz pierwszy, \c;bok\n; równy \c;15\n;. +- Na końcu funkcji \c;Kwadrat\n;, program podąży za pomarańczową strzałką i wróci do funkcji głównej. +- W wierszu \c;Kwadrat(25)\n;, program podąży za niebieską strzałką, przechodząc po raz drugi do funkcji \c;Kwadrat\n;. +- Na końcu funkcji \c;Kwadrat\n;, program podąży za jasno niebieską strzałką i wróci do funkcji głównej. + +\image tproc1b 17 12; +W funkcji \c;Kwadrat\n;, użyj instrukcji \c;\l;move\u cbot\move;\n; i \c;\l;turn\u cbot\turn;\n;. Aby skrócić program możesz użyć pętli \c;\l;for\u cbot\for;\n;, która powtórzy 4 razy instrukcje \c;\l;move\u cbot\move;\n; i \c;\l;turn\u cbot\turn;\n;, nie jest to jednak niezbędne. +\c; +\s;void object::Kwadrat(float bok) +\s;{ +\s; for ( int i=0 ; i<4 ; i=i+1 ) +\s; { +\s; move(bok); +\s; turn(90); +\s; } +\s;} +\n; +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/tproc2.txt b/help/P/tproc2.txt new file mode 100644 index 00000000..15d30a2f --- /dev/null +++ b/help/P/tproc2.txt @@ -0,0 +1,34 @@ +\b;Ćwiczenie +Idź drogą w kształcie spirali. Robot musi przejść 2 razy 25 metrów naprzód i skręcić, a następnie 2 razy przejść po 20 metrów naprzód i skręcić, itd. +\image tproc2 8 8; +\b;Funkcja +Warto zauważyć, że "L"-kształtne części pasują do siebie. Pierwsza część (ciemno niebieska) ma rozmiar dwa razy po 25 metrów. Druga (jasno niebieska) jest 5 metrów krótsza. Zacznijmy od napisania \l;funkcji\u cbot\function; która będzie poruszać robotem po "L"-kształtnej części o długości podanej jako parametr: +\c; +\s;void object::Part(float length) +\s;{ +\s; for ( int i=0 ; i<2 ; i=i+1 ) +\s; { +\s; move(length); +\s; turn(90); +\s; } +\s;} +\n; +Teraz wystarczy tylko napisać główną funkcję, która będzie wywoływała funkcję \c;Part\n;. Na początku zmienna \c;rest\n; będzie miała wartość 25m. Pętla \c;while\n; będzie powtarzała instrukcje wewnątrz bloku tak długo, jak długo zmienna \c;rest\n; będzie większa od zera. Wewnątrz pętli najpierw należy wywołać funkcję \c;Part\n; (zobacz powyżej), a następnie odjąć 5m od długości L. +\c; +\s;extern void object::Funkcja2( ) +\s;{ +\s; float rest = 25; +\s; while ( rest > 0 ) +\s; { +\s; Part(rest); +\s; rest = rest-5; +\s; } +\s;} +\n; +Funkcja \c;Part\n; zostanie po raz ostatni wywołana z wartością \c;5\n;. Następnie wyrażenie \c;rest-5\n; przypisze zmiennej \c;rest\n; wartość zero i pętla \c;while\n; zatrzyma się. + +\b;Uwaga +Można zauważyć, że w poprzednim ćwiczeniu główna funkcja była na początku programu, podczas gdy w tym ćwiczeniu jest ona na końcu programu, za funkcją \c;Part\n;. Kolejność funkcji w programie nie ma znaczenia, można je uszeregować dowolnie. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/tradar1.txt b/help/P/tradar1.txt new file mode 100644 index 00000000..dd248436 --- /dev/null +++ b/help/P/tradar1.txt @@ -0,0 +1,57 @@ +\b;Ćwiczenie +Napisz program umożliwiający robotowi znalezienie wszystkich \l;niebieskich plusów\u object\waypoint; leżących na ziemi. Plusy znikają po przejściu przez nie robota. Oto główna zasada działania programu: + +Powtarzaj w nieskończoność: + o Szukaj plusa + o Jeśli nie ma żadnego, zatrzymaj program. + o Oblicz kierunek do plusa. + o Ustaw prędkości silników tak, aby robot dotarł do znalezionego plusa. + +\b;Program +Użyj pętli \c;\l;while\u cbot\while;\n; do wielokrotnego powtarzania instrukcji: +\s;\c;while ( true ) +\s;{ +\s; \n;instrukcje...\c; +\s;} +\n; +Instrukcja \c;\l;radar\u cbot\radar;\n; wykryje niebieskie plusy i umieści ich opis w zmiennej, na przykład \c;spot\n;. W tym przypadku instrukcja \c;\l;radar\u cbot\radar;()\n; potrzebuje tylko jednego parametru, to jest kategorii obiektu, który musi znaleźć: +\s;\c;spot = radar(WayPoint); +\n; +Po znalezieniu wszystkich plusów, instrukcja \c;radar\n; zwróci wartość \c;\l;null\u cbot\null;\n;. Konieczne będzie sprawdzanie tego warunku instrukcją \c;\l;if\u cbot\if;\n; i odpowiednie reagowanie: +\s;\c;if ( spot == null ) // nie ma więcej? +\s;{ +\s; motor(0, 0); // zatrzymaj silniki +\s; break; // zatrzymaj pętlę +\s;} +\n;Instrukcja \c;\l;break\u cbot\break;\n; zatrzyma nieskończoną pętlę \c;while (true)\n;. + +Użyj instrukcji \c;\l;direction\u cbot\direct;()\n; do obliczenia kąta obrotu, jaki musi wykonać robot, aby iść w kierunku niebieskiego plusa. Współrzędne obiektu są podawane przez \c;spot.position\n;. Następujący wiersz umieści kąt niezbędnego obrotu w \l;zmiennej\u cbot\var; \c;dir\n;: +\s;\c;dir = direction(spot.position); +\n; +Wartość kąta jest dodatnia, gdy niebieski plus jest po lewej stronie a ujemna, gdy jest po prawej. Jeśli plus jest po lewej stronie, należy ustawić pełną prędkość prawego silnika i zmniejszyć prędkość lewego silnika w zależności od kąta: + + kierunek = \c; 0\n; -> prędkość = \c; 1.0\n; + kierunek = \c; 45\n; -> prędkość = \c; 0.5\n; + kierunek = \c; 90\n; -> prędkość = \c; 0.0\n; + kierunek = \c;135\n; -> prędkość = \c;-0.5\n; + kierunek = \c;180\n; -> prędkość = \c;-1.0\n; + +Poniższy schemat pokazuje zależność prędkości lewego i prawego silnika, ustawianego instrukcją \c;\l;motor\u cbot\motor;\n;, od kąta: + +\image radar2 14 10; +Jeśli plus jest wprost przed robotem, kąt jest równy 0 stopni. Prędkości obu silników zostaną ustawione na 1, czyli pełną prędkość naprzód. Jeśli plus jest za robotem, prędkość prawego silnika zostanie ustawiona na -1, co obróci robota dookoła. Można użyć \l;wyrażenia\u cbot\expr; \c;1+dir/90\n; w celu obliczenia niezbędnej prędkości silników: +\s;\c;if ( dir < 0 ) // po prawej stronie? +\s;{ +\s; motor(1, 1+dir/90); // skręca bardziej lub mniej +\s;} +\n; +Użyj tej samej metody w przypadku dodatniej wartości kąta, w przedziale od 0 do 180 stopni. Do Ciebie należy napisanie dokładnych instrukcji do wykonania: +\s;\c;else // po lewej stronie? +\s;{ +\s; \n;do Ciebie należy wypełnienie tego...\c; +\s;} +\n; +Na początku programu musisz zadeklarować wszystkie zmienne. \c;spot\n; jest typu \c;\l;object\u cbot\object;\n;, podczas gdy \c;dir\n; jest typu \c;\l;float\u cbot\float;\n;. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/tradar2.txt b/help/P/tradar2.txt new file mode 100644 index 00000000..781aff06 --- /dev/null +++ b/help/P/tradar2.txt @@ -0,0 +1,8 @@ +\b;Ćwiczenie +W tym ćwiczeniu "szalony robot" porozrzucał wiele \l;niebieskich plusów\u object\waypoint; na ziemi. Aby je znaleźć, możesz użyć ponownie programu napisanego w poprzednim ćwiczeniu. Ukazuje to elastyczność takiego programu: przystosowuje się on do każdego napotkanego środowiska. + +\t;Uwaga +Nie czekaj zbyt długo, gdyż szalony robot natychmiast rozpoczyna swoją pracę. Na szczęście gra jest zatrzymywana, gdy jesteś w edytorze programu. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/tremote1.txt b/help/P/tremote1.txt new file mode 100644 index 00000000..6fc6e089 --- /dev/null +++ b/help/P/tremote1.txt @@ -0,0 +1,39 @@ +\b;Ćwiczenie +Pokieruj zdalnie robotem, używając \l;stacji przekaźnikowej informacji\u object\exchange;, aby przetransportować \l;rudę uranu\u object\uranore;. +Głównymi postaciami tego ćwiczenia są¦: + +1) Robot \l;szperacz\u object\botsr; (nie może niczego przenosić). +2) \l;Stacja przekaźnikowa informacji\u object\exchange;, otrzymująca informacje od nadawcy i przekazująca je do odbiorcy. +3) \l;Transporter\u object\botgr;, czekający na rozkazy ze stacji przekaźnikowej. Nie jest możliwe bezpośrednie kontrolowania tego robota. + +\image tremot1a 16 8; +Stacja przekaźnikowa informacji przechowuje pary "nazwa/wartość". Aby kontrolować robota podległego wystarczy użyć tylko jednej pary¦: + + nazwa="order", wartoscr=numer rozkazu + +Robot odbiorca rozumie następujące rozkazy¦: +\c; + 1 -> grab(); // podnieś obiekt + 2 -> drop(); // upuść obiekt + 3 -> move(10); // przesuń robota 10 metrów naprzód + 4 -> move(-10); // cofnij robota o 10 metrów +\n; +Aby rozkazać robotowi podległemu przemieścić się 10 metrów naprzód, wystarczy napisać¦: +\c;\s; \l;send\u cbot\send;("order", 3, 100); // order 3 -> "move(10)" +\n; +Po wysłaniu instrukcji odczekaj 5 sekund, aby upewnić się, że ruch został wykonany. +\c;\s; \l;wait\u cbot\wait;(5); +\n; +Wskazówka: Jest lepszy sposób na czekanie na zakończenie wykonywania rozkazu, ale zobaczymy to w późniejszym ćwiczeniu "Kontrola zdalna #2". + +Aby zakończyć ćwiczenie, robot musi¦: + +1) Podnieść rudę uranu +2) Iść od przodu o 10 metrów +3) Zostawić rudę uranu +4) Cofnąć się o 10 metrów + +Do Ciebie należy dokończenie programu... + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/tremote2.txt b/help/P/tremote2.txt new file mode 100644 index 00000000..b9a54f3f --- /dev/null +++ b/help/P/tremote2.txt @@ -0,0 +1,50 @@ +\b;Ćwiczenie +Zaprogramuj zdalnie robota używając \l;stacji przekaźnikowej informacji\u object\exchange;, aby przeszedł on przez 6 punktów kontrolnych. +Głównymi postaciami tego ćwiczenia są¦: + +1) \l;Transporter na kołach\u object\botgr; bez ogniwa elektrycznego. Jest to robot nadrzędny, którego musisz zaprogramować. +2) \l;Stacja przekaźnikowa informacji\u object\exchange;, otrzymująca informacje od nadawcy i przekazująca je do odbiorcy. +3) \l;Robot treningowy\u object\bottr; czekający na rozkazy ze stacji przekaźnikowej. Ten robot został już zaprogramowany. + +\image tremot2a 16 8; +Stacja przekaźnikowa informacji przechowuje pary "nazwa/wartość". Aby kontrolować robota podległego należy użyć dwóch par¦: + +1) nazwa="order", wartosc=numer rozkazu +2) nom="param", wartoscr=parametr dla rozkazu + +Rozkaz numer 1 oznacza "move" a rozkaz numer 2 oznacza "turn". Parametr jest długością ruchu lub kątem obrotu. Na przykład robota podległego można przemieścić o 20 metrów pisząc¦: +\c;\s; \l;send\u cbot\send;("order", 1, 100); // rozkaz "move" +\s; \l;send\u cbot\send;("param", 20, 100); // odległość 20 metrów +\n; +Te dwie instrukcje wysyłają następujące informacje do stacji przekaźnikowej¦: +\c; order=1 + param=20 +\n; +Robot podległy czeka na rozkaz i wykonuje go. Po wykonaniu rozkazu, zostanie on usunięty ze stacji przekaźnikowej. Po wysłaniu rozkazu, robot nadrzędny musi poczekać na wykonanie rozkazu przed wysłaniem następnego. Można to zrobić, sprawdzając czy rozkaz wciąż jest w stacji przekaźnikowej. Wystarczy napisać¦: +\c;\s; while ( \l;testinfo\u cbot\testinfo;("order", 100) ) // czekaj na koniec pracy +\s; { +\s; wait(1); +\s; } +\n; +Ponieważ konieczne jest wydanie więcej niż jednego rozkazu, przydatne będzie napisanie \l;funkcji\u cbot\function; \c;SendToPost\n;, która wysyła rozkaz i czeka na jego wykonanie¦: +\c;\s;void object::SendToPost(float order, float param) +\s;{ +\s; send("param", param, 100); // wyślij parametr +\s; send("order", order, 100); // wyślij rozkaz +\s; +\s; while ( testinfo("order", 100) ) // czekaj na koniec pracy +\s; { +\s; wait(1); +\s; } +\s;} +\n; +Aby przemieścić robota o 20 metrów naprzód, należy napisać w głównym programie¦: +\c;\s; SendToPost(1, 20); // move(20); +\n; +Oto droga, którą powinien podróżować robot¦: + +\image tremot2b 8 8; +Do Ciebie należy dokończenie programu. + +\t;Zobacz również +\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;. diff --git a/help/P/tremote3.txt b/help/P/tremote3.txt new file mode 100644 index 00000000..83270412 --- /dev/null +++ b/help/P/tremote3.txt @@ -0,0 +1,103 @@ +\b;Ćwiczenie +Zdalnie pokieruj robotem bez używania \l;stacji przekaźnikowej informacji\u object\exchange;. Robot powinien przejść przez 6 niebieskich plusów. Musisz użyć \l;łańcucha\u cbot\string; do przekazania rozkazów podległemu robotowi. Łańcuch zawiera rozkaz, który powinien być wykonany przez tego robota, na przykład \c;"move(20)"\n;. Możesz użyć tej samej składni co w języku CBOT, choć możesz też wybrać dowolną inną, na przykład podobną do tej: \c;"advance=20"\n;. Łańcuch będzie elementem klasy zdefiniowanym jako \c;\l;static\u cbot\static;\n;, używanym do komunikacji pomiędzy robotem nadrzędnym i podległym. + +Dwoma głównymi postaciami tego ćwiczenia są¦: +1) \l;Transporter na kołach\u object\botgr; bez ogniwa elektrycznego, wobec czego unieruchomiony. Jest to robot nadrzędny, który powinien zostać zaprogramowany aby mógł przesyłać rozkazy do podległego mu robota. +2) Podległy \l;robot treningowy\u object\bottr;, który jest już zaprogramowany i tylko czeka na rozkazy od robota nadrzędnego. + +\b;Robot podległy +Najpierw musisz zrozumieć jak działa program robota podległego. \l;Klasa\u cbot\class; \c;exchange\n; zawiera mechanizmy przekazywania rozkazów. Należy zadeklarować element klasy \c;m_order\n; jako \c;\l;static\u cbot\static;\n;, będzie on zawierał rozkazy do wykonania. Słowo \c;static\n; zapewnia, że element \c;m_order\n; jest współużytkowany przez wszystkie instancje \l;klasy\u cbot\class; exchange. + +\c;\s;\l;public\u cbot\public; \l;class\u cbot\class; exchange +\s;{ +\s; \l;static\u cbot\static; \l;private\u cbot\private; \l;string\u cbot\string; m_order = ""; + +\n;Metoda \c;put\n; będzie używana przez robota nadrzędnego do przesyłania rozkazów. Jeśli łańcuch \c;m_order\n; nie jest pusty, robot podległy nie zakończył wykonywania rozkazu a metoda \c;put\n; zwróci wartość \c;false\n; i niczego nie zrobi. + +\c;\s; \l;synchronized\u cbot\synchro; \l;bool\u cbot\bool; put(string order) +\s; { +\s; if ( m_order == "" ) +\s; { +\s; m_order = order; +\s; return true; +\s; } +\s; else +\s; { +\s; return false; +\s; } +\s; } +\n; +Inna metoda \c;get\n; zostanie użyta przez robota podległego do pobrania rozkazów. Metoda ta zwraca łańcuch zawarty w zmiennej \c;m_order\n; i opróżnia ją, aby mógł być przyjęty nowy rozkaz: + +\c;\s; \l;synchronized\u cbot\synchro; string get() +\s; { +\s; string ret = m_order; +\s; m_order = ""; +\s; return ret; +\s; } +\s;} +\n; +Główny program niewolnika zawiera instancję klasy \c;exchange\n; nazwaną \c;list\n;. + +\c;\s;\l;extern\u cbot\extern; void object::Slave3( ) +\s;{ +\s; exchange list(); +\s; string todo; +\n; +Zewnętrzna pętla \c;while\n; działa w nieskończoność. Wewnętrzna pętla \c;while\n; czeka na rozkaz używając metody \c;get\n; z klasy \c;exchange\n;. Pętla zatrzymuje się gdy metoda \c;get\n; zwróci pusty łańcuch. + +\c;\s; \l;while\u cbot\while; ( true ) +\s; { +\s; \l;while\u cbot\while; ( true ) +\s; { +\s; todo = list.get(); +\s; if ( todo != "" ) break; +\s; wait(1); +\s; } +\n; +Po otrzymaniu rozkazu i zapisaniu go w zmiennej \c;todo\n; wystarczy jedynie go wykonać: + +\c;\s; if ( \l;strfind\u cbot\strfind;(todo, "move") == 0 ) +\s; { +\s; move(\l;strval\u cbot\strval;(\l;strmid\u cbot\strmid;(todo,5))); +\s; } +\s; if ( strfind(todo, "turn") == 0 ) +\s; { +\s; turn(strval(strmid(todo,5))); +\s; } +\s; } +\s;} +\n; +\b;Robot nadrzędny +W robocie nadrzędnym należy napisać funkcję nazwaną \c;SendOrder\n;, która wyśle rozkaz do robota podległego: + +\c;\s;void object::SendOrder(string order) +\s;{ +\s; exchange list(); +\s; +\s; while ( list.put(order) == false ) +\s; { +\s; wait(1); +\s; } +\s;} +\n; +Pętla \c;while\n; czeka na zakończenie oczekującego rozkazu, czyli na wyjście przez robota podległego z metody \c;get\n;. +Główny program robota nadrzędnego jest bardzo prosty: + +\c;\s;extern void object::Remote3( ) +\s;{ +\s; SendOrder("move(20)"); +\s; SendOrder("turn(90)"); +\s; SendOrder("move(20)"); +\s; SendOrder("turn(90)"); +\s; SendOrder("move(10)"); +\s; SendOrder("turn(90)"); +\s; SendOrder("move(10)"); +\s; SendOrder("turn(-90)"); +\s; SendOrder("move(10)"); +\s;} +\n; +Klawisz \key;\key help;\norm; umożliwia wyświetlenie tych informacji w dowolnej chwili. + +\t;Zobacz również +\l;Sterowanie\u command; i \l;programowanie\u cbot;. diff --git a/help/P/tremote4.txt b/help/P/tremote4.txt new file mode 100644 index 00000000..843f9420 --- /dev/null +++ b/help/P/tremote4.txt @@ -0,0 +1,129 @@ +\b;Ćwiczenie +Pokieruj zdalnie robotem podległym bez używania \l;stacji przekaźnikowej informacji\u object\exchange;. Robot powinien przejść przez 6 niebieskich plusów. Musisz użyć zmiennej zadeklarowanej jako \c;\l;static\u cbot\static;\n; do przekazania rozkazów robotowi podległemu. + +Dwoma głównymi postaciami tego ćwiczenia są¦: +1) \l;Transporter na kołach\u object\botgr; bez ogniwa elektrycznego, wobec czego unieruchomiony. Jest to robot nadrzędny, który powinien zostać zaprogramowany aby mógł przesyłać rozkazy do podległego mu robota. +2) Podległy \l;robot treningowy\u object\bottr;, który jest już zaprogramowany i tylko czeka na rozkazy od robota nadrzędnego. + +\b;Robot podległy +Najpierw musimy zrozumieć jak działa program robota podległego. \l;Klasa\u cbot\class; \c;order\n; zawiera dwa elementy: \c;m_type\n; jest rozkazem do wykonania (move lub turn), a \c;m_param\n; jest odległością do pokonania lub kątem obrotu¦: + +\c;\s;\l;public\u cbot\public; \l;class\u cbot\class; order +\s;{ +\s; \l;int\u cbot\int; m_type = \l;nan\u cbot\nan;; +\s; \l;float\u cbot\float; m_param; +\s;} +\n; +Druga \l;klasa\u cbot\class; \c;exchange\n; zawiera mechanizm przekazywania rozkazów. Deklarujemy jako \c;\l;static\u cbot\static;\n; element klasy \c;m_order\n;, który będzie zawierał rozkaz do wykonania. Słowo \c;static\n; zapewnia, że element \c;m_order\n; będzie współużytkowany przez wszystkie instancje \l;klasy\u cbot\class; exchange. + +\c;\s;\l;public\u cbot\public; \l;class\u cbot\class; exchange +\s;{ +\s; \l;static\u cbot\static; \l;private\u cbot\private; order m_order = new order; +\n; +\n;Metoda \c;put\n; będzie używana przez robota nadrzędnego do przesyłania rozkazów. Jeśli zmienna \c;m_order\n; jest różna od \c;\l;nan\u cbot\nan;\n;, robot podległy nie zakończył wykonywania rozkazu a metoda \c;put\n; zwróci wartość \c;false\n; i niczego nie zrobi¦: + +\c;\s; \l;synchronized\u cbot\synchro; \l;bool\u cbot\bool; put(order a) +\s; { +\s; if ( m_order.m_type == nan ) +\s; { +\s; m_order = a; +\s; return true; +\s; } +\s; else +\s; { +\s; return false; +\s; } +\s; } +\n; +Kolejna metoda \c;get\n; będzie używana przez robota podległego do otrzymywania rozkazów. Metoda ta jako wynik zwraca rozkaz do wykonania: + +\c;\s; \l;synchronized\u cbot\synchro; order get() +\s; { +\s; return m_order; +\s; } +\n; +Trzecia metoda \c;delete\n; będzie używana przez robota podległego do zaznaczenia, że rozkaz został wykonany: + +\c;\s; \l;synchronized\u cbot\synchro; void delete() +\s; { +\s; m_order.m_type = nan; +\s; } +\s;} +\n; +Główny program robota podległego zawiera instancję klasy \c;exchange\n; nazwaną \c;list\n;. Po słowie \c;list\n; należy napisać nawiasy (), w celu utworzenia instancji klasy \c;exchange\n;. + +\c;\s;\l;extern\u cbot\extern; void object::Slave3( ) +\s;{ +\s; exchange list(); +\s; order todo; +\n; +Zewnętrzna pętla \c;while\n; działa w nieskończoność. Wewnętrzna pętla \c;while\n; czeka na rozkaz używając metody \c;get\n; z klasy \c;exchange\n;. Pętla zatrzymuje się gdy \c;get\n; zwróci wartość różną od \c;nan\n;. + +\c;\s; \l;while\u cbot\while; ( true ) +\s; { +\s; \l;while\u cbot\while; ( true ) +\s; { +\s; todo = list.get(); +\s; if ( todo.m_type != nan ) break; +\s; wait(1); +\s; } +\n; +Po otrzymaniu rozkazu i zapisaniu go w zmiennej \c;todo\n; wystarczy jedynie go wykonać: + +\c;\s; if ( todo.m_type == 1 ) +\s; { +\s; move(todo.m_param); +\s; } +\s; else if ( todo.m_type == 2 ) +\s; { +\s; turn(todo.m_param); +\s; } +\s; else +\s; { +\s; message("Nieznany rozkaz"); +\s; } +\n; +Po zakończeniu wykonywania rozkazu, należy wywołać metodę \c;delete\n;, aby powiadomić robota nadrzędnego, że może już przesłać następny rozkaz¦: + +\c;\s; list.delete(); +\s; } +\s;} +\n; +\b;Robot nadrzędny +W robocie nadrzędnym należy napisać funkcję nazwaną \c;SendOrder\n;, która wyśle rozkaz do robota podległego: + +\c;\s;void object::SendOrder(float order, float param) +\s;{ +\s; exchange list(); +\s; order todo(); +\s; +\s; todo.m_type = order; +\s; todo.m_param = param; +\s; +\s; while ( list.put(todo) == false ) +\s; { +\s; wait(1); +\s; } +\s;} +\n; +Pętla \c;while\n; czeka na zakończenie oczekującego rozkazu, czyli na wyjście przez robota podległego z metody \c;get\n; i wywołanie metody \c;delete\n;. +Główny program robota nadrzędnego jest bardzo prosty: + +\c;\s;extern void object::Remote4( ) +\s;{ +\s; SendOrder(1, 20); // move(20); +\s; SendOrder(2, 90); // turn(90); +\s; SendOrder(1, 20); // move(20); +\s; SendOrder(2, 90); // turn(90); +\s; SendOrder(1, 10); // move(10); +\s; SendOrder(2, 90); // turn(90); +\s; SendOrder(1, 10); // move(10); +\s; SendOrder(2,-90); // turn(-90); +\s; SendOrder(1, 10); // move(10); +\s;} +\n; +Klawisz \key;\key help;\norm; umożliwia wyświetlenie tych informacji w dowolnej chwili. + + +\t;Zobacz również +\l;Sterowanie\u command; i \l;programowanie\u cbot;. diff --git a/help/P/tremote5.txt b/help/P/tremote5.txt new file mode 100644 index 00000000..06598477 --- /dev/null +++ b/help/P/tremote5.txt @@ -0,0 +1,113 @@ +\b;Ćwiczenie +Pokieruj zdalnie robotem podległym bez używania \l;stacji przekaźnikowej informacji\u object\exchange;. Robot powinien przejść przez 6 niebieskich plusów. + +Dwoma głównymi postaciami tego ćwiczenia są¦: +1) \l;Transporter na kołach\u object\botgr; bez ogniwa elektrycznego, wobec czego unieruchomiony. Jest to robot nadrzędny, który powinien zostać zaprogramowany aby mógł przesyłać rozkazy do podległego mu robota. +2) Podległy \l;robot treningowy\u object\bottr;, który jest już zaprogramowany i tylko czeka na rozkazy od robota nadrzędnego. + +Rozkazy powinny być przechowywane, tak aby robot nadrzędny mógł wysłać wiele rozkazów bez czekania na przetworzenie każdego z nich. Do tego celu należy użyć \l;tablicy\u cbot\array;. + +\b;Robot podległy +Najpierw musimy zrozumieć jak działa program robota podległego. \l;Klasa\u cbot\class; \c;order\n; zawiera dwa elementy: \c;m_type\n; jest rozkazem do wykonania (move lub turn), a \c;m_param\n; jest odległością do pokonania lub kątem obrotu¦: + +\c;\s;\l;public\u cbot\public; \l;class\u cbot\class; order +\s;{ +\s; \l;int\u cbot\int; m_type; +\s; \l;float\u cbot\float; m_param; +\s;} +\n; +Druga \l;klasa\u cbot\class; \c;exchange\n; zawiera mechanizm przekazywania rozkazów. Deklarujemy jako \c;\l;static\u cbot\static;\n; element klasy \c;m_fifo\n;, który będzie zawierał listę rozkazów do wykonania. Słowo \c;static\n; zapewnia, że element \c;m_fifo\n; jest współużytkowany przez wszystkie instancje \l;klasy\u cbot\class; exchange. + +\c;\s;{ +\s; \l;static\u cbot\static; \l;private\u cbot\private; order m_fifo[] = null; +\n; +Metoda \c;put\n; będzie używana przez robota nadrzędnego do przesyłania rozkazów. Rozkaz będzie dodawany na końcu tablicy \c;m_fifo\n;: + +\c;\s; \l;synchronized\u cbot\synchro; void put(order a) +\s; { +\s; m_fifo[sizeof(m_fifo)] = a; +\s; } +\n; +Kolejna metoda \c;get\n; będzie używana przez robota podległego do otrzymywania rozkazów. Metoda ta jako wynik zwraca rozkaz do wykonania. Jeśli lista jest pusta, zostanie zwrócona wartość \c;null\n; i robot powinien czekać na więcej rozkazów. W przeciwnym przypadku powinien zostać zwrócony pierwszy rozkaz na liście, a pozostałe muszą zostać "przesunięte". Ponieważ tablica nie może być "skrócona", używamy pomocniczej tablicy \c;copy\n;¦: + +\c;\s; \l;synchronized\u cbot\synchro; order get() +\s; { +\s; if ( sizeof(m_fifo) == 0 ) return null; +\s; +\s; order a = m_fifo[0]; +\s; order copy[] = null; +\s; for ( int i=1 ; i