en to pl translation catalogue (37 entries)

note: type: \b; header
en: Programs dispatched by Houston
pl: Programy przysłane z Houston

note: type: Plain text
en: Following is a program that has been developed by our engineers. It allows you to switch <a object|power>power cells</a>. A charged cell needs to be placed on the ground in front of the bot.
pl: Poniżej znajdziesz jeden z programów napisanych przez naszych inżynierów. Umożliwia on prostszą wymianę <a object|power>ogniw elektrycznych</a>. Naładowane ogniwo elektryczne powinno znajdować się przed robotem, na ziemi.

note: type: Plain text
en: In order to execute this program, select the program <code>SwitchCell1</code> 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/>.
pl: Aby uruchomić ten program, zaznacz program <code>SwitchCell1</code> na liście dostępnych dla robota programów (w lewej dolnej części ekranu), a następnie kliknij symbol strzałki <button 21/>.

note: type: Source code
en: extern void object::SwitchCell1()
    {
    	<a cbot|grab>grab</a>(InFront);     // take the new cell in front
    	<a cbot|drop>drop</a>(Behind);      // and drop it behind
    	
    	<a cbot|grab>grab</a>(EnergyCell);  // take the cell from the bot
    	<a cbot|drop>drop</a>(InFront);     // and drop it in front
    	
    	<a cbot|grab>grab</a>(Behind);      // take the new cell
    	<a cbot|drop>drop</a>(EnergyCell);  // and drop it on the bot
    }
pl: extern void object::SwitchCell1()
    {
    	<a cbot|grab>grab</a>(InFront);     // podnieś nowe ogniwo z przodu
    	<a cbot|drop>drop</a>(Behind);      // i zostaw je z tyłu
    	
    	<a cbot|grab>grab</a>(EnergyCell);  // wyjmij ogniwo z robota
    	<a cbot|drop>drop</a>(InFront);     // i zostaw je z przodu
    	
    	<a cbot|grab>grab</a>(Behind);      // podnieś nowe ogniwo
    	<a cbot|drop>drop</a>(EnergyCell);  // i włóż je do robota
    }

note: type: \b; header
en: Programs dispatched by Houston
pl: Programy przysłane z Houston

note: type: Plain text
en: We did not develop a specific program for this mission. However, you can develop your own programs if you think it would be useful.
pl: 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.

note: type: \b; header
en: Archives
pl: Archiwum

note: type: Plain text
en: Index of the programs dispatched in former missions:
pl: Lista programów przysłanych w poprzednich misjach:

note: type: Plain text
en: Below is a program that has been developed by our engineers. It allows you to recharge the <a object|power>power cell</a> of a bot: it goes to the closest <a object|station>power station</a>, waits 5 seconds, and comes back to the initial position.
pl: Poniżej znajdziesz jeden z programów napisanych przez naszych inżynierów. Umożliwia on naładowanie <a object|power>ogniwa elektrycznego</a> robota: idzie on do najbliższej <a object|station>stacji energetycznej</a>, czeka 5 sekund, a następnie wraca do pozycji wyjściowej.

note: type: Plain text
en: 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 <code>//</code> are not part of the program, but are comments that help you to understand the program.
pl: 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 <code>//</code> nie są częścią programu ale komentarzem pozwalającym na lepsze zrozumienie programu.

note: type: Source code
en: extern void object::Recharge1()
    {
    	<a cbot|type>point</a>  start;          // variable for initial pos.
    	<a cbot|type>object</a> item;           // info. about power station
    	
    	start = position;      // store initial position
    	
    	item = <a cbot|radar>radar</a>(<a cbot|category>PowerStation</a>); // look for station
    	<a cbot|goto>goto</a>(item.position);   // go to the power station
    	<a cbot|wait>wait</a>(5);               // wait 5 seconds
    	
    	<a cbot|goto>goto</a>(start);           // go back to initial pos.
    }
pl: extern void object::Recharge1()
    {
    	<a cbot|type>point</a>  start;          // zmienna pozycji startowej
    	<a cbot|type>object</a> item;           // informacja o stacji energetycznej
    	
    	start = position;      // zachowaj pozycję startową
    	
    	item = <a cbot|radar>radar</a>(<a cbot|category>PowerStation</a>); // znajdź stację
    	<a cbot|goto>goto</a>(item.position);   // idź do stacji
    	<a cbot|wait>wait</a>(5);               // poczekaj 5 sekund
    	
    	<a cbot|goto>goto</a>(start);           // wróć do pozycji startowej
    }

note: type: Plain text
en: We have improved the recharge program. When it arrives at the <a object|station>power station</a>, the bot does not wait exactly 5 seconds, but only until the <a object|power>power cell</a> is fully charged. After the bot is back at the initial position, it displays a message on the screen.
pl: Usprawniliśmy program ładowania ogniw. Po dotarciu do <a object|station>stacji energetycznej</a> robot nie czeka już dokładnie 5 sekund, ale tylko do czasu pełnego naładowania <a object|power>ogniwa elektrycznego</a>. Po powrocie na pozycję wyjściową robot wyświetla komunikat na ekranie.

note: type: Source code
en: extern void object::Recharge2()
    {
    	<a cbot|type>point</a>  start;          // variable for initial pos.
    	<a cbot|type>object</a> item;           // info. about power station
    	
    	start = position;      // store initial position
    	
    	item = <a cbot|radar>radar</a>(<a cbot|category>PowerStation</a>); // look for station
    	<a cbot|goto>goto</a>(item.position);   // go to the power station
    	
    	<a cbot|while>while</a> ( <a cbot|object>energyCell.energyLevel</a> < 1 )
    	{
    		<a cbot|wait>wait</a>(1);           // wait until recharged
    	}
    	
    	<a cbot|goto>goto</a>(start);           // go back to initial pos.
    	<a cbot|message>message</a>("Recharge completed");
    }
pl: extern void object::Recharge2()
    {
    	<a cbot|type>point</a>  start;          // zmienna pozycji startowej
    	<a cbot|type>object</a> item;           // informacja o stacji energetycznej
    	
    	start = position;      // zachowaj pozycję startową
    	
    	item = <a cbot|radar>radar</a>(<a cbot|category>PowerStation</a>); // znajdź stację
    	<a cbot|goto>goto</a>(item.position);   // idź do stacji energetycznej
    	
    	<a cbot|while>while</a> ( <a cbot|object>energyCell.energyLevel</a> < 1 )
    	{
    		<a cbot|wait>wait</a>(1);           // poczekaj aż się naładuje
    	}
    	
    	<a cbot|goto>goto</a>(start);           // wróć do pozycji startowej
    	<a cbot|message>message</a>("Ładowanie zakończone");
    }

note: type: Plain text
en: Below is one of the programs that has been developed by our engineers.
    It instructs a <a object|botgr>grabber</a> to retrieve the nearest chunk of <a object|titanore>titanium ore</a> and place it on the <a object|convert>converter</a>.
pl: Poniżej znajdziesz jeden z programów napisanych przez naszych inżynierów.
    Poleca on <a object|botgr>transporterowi</a> wziąć najbliższą porcję <a object|titanore>rudy </a> i dostarczyć ją do <a object|convert>huty</a>.

note: type: Plain text
en: In order to execute this program, select the program <code>CollectTitanium1</code> 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/>.
pl: Aby uruchomić ten program, zaznacz program <code>CollectTitanium1</code> 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/>.

note: type: Source code
en: extern void object::CollectTitanium1()
    {
    	// 1) Variable definition.
    	<a cbot|type>object</a>  item;            // info. about objects
    	
    	// 2) Go to the titanium ore and grab it.
    	item = <a cbot|radar>radar</a>(<a cbot|category>TitaniumOre</a>);// look for titanium ore
    	<a cbot|goto>goto</a>(item.position);     // go to the position
    	<a cbot|grab>grab</a>();                  // grab the titanium
    	
    	// 3) Go to the converter and drop it.
    	item = <a cbot|radar>radar</a>(<a cbot|category>Converter</a>); // look for converter
    	<a cbot|goto>goto</a>(item.position);     // go to the position
    	<a cbot|drop>drop</a>();                  // drop the titanium
    	<a cbot|move>move</a>(-2.5);              // step back 2.5 m
    }
pl: extern void object::CollectTitanium1()
    {
    	// 1) Definicja zmiennej
    	<a cbot|type>object</a>  item;            // informacja o obiekcie
    	
    	// 2) Idź do rudy tytanu i podnieś ją
    	item = <a cbot|radar>radar</a>(<a cbot|category>TitaniumOre</a>);// znajdź rudę tytanu
    	<a cbot|goto>goto</a>(item.position);     // idź do pozycji
    	<a cbot|grab>grab</a>();                  // podnieś porcję rudy
    	
    	// 3) Idź do huty i zostaw rudę
    	item = <a cbot|radar>radar</a>(<a cbot|category>Converter</a>); // znajdź hutę
    	<a cbot|goto>goto</a>(item.position);     // idź do pozycji
    	<a cbot|drop>drop</a>();                  // zostaw rudę
    	<a cbot|move>move</a>(-2.5);              // cofnij się o 2,5 m
    }

note: type: Plain text
en: Below is one of the programs that has been developed by our engineers.
    An upgrade on the previous program: the <a object|botgr>grabber</a>, on its way back from the converter, makes a stop, if necessary, at the <a object|station>power station</a> to recharge its power cell.
pl: Poniżej znajdziesz jeden z programów napisanych przez naszych inżynierów.
    Poprzedni program został usprawniony: jeśli to konieczne <a object|botgr>transporter</a> w drodze powrotnej odwiedza <a object|station>stację energetyczną</a> w celu naładowania ogniwa elektrycznego.

note: type: Plain text
en: This program also works on <a object|botgj>winged grabbers</a>, if the <a object|derrick>derrick</a> is on another island than the <a object|convert>converter</a>.
pl: Program ten działa również na <a object|botgj>transporterze latającym</a>, co może być konieczne jeśli <a object|derrick>kopalnia</a> jest na innej wyspie niż <a object|convert>huta</a>.

note: type: Source code
en: extern void object::CollectTitanium2()
    {
    	// 1) Variable definition.
    	<a cbot|type>object</a>  item;            // info. about objects
    	
    	// 2) Go to the titanium ore and grab it.
    	item = <a cbot|radar>radar</a>(<a cbot|category>TitaniumOre</a>);// look for titanium ore
    	<a cbot|goto>goto</a>(item.position);     // go to the position
    	<a cbot|grab>grab</a>();                  // grab the titanium
    	
    	// 3) Go to the converter and drop it.
    	item = <a cbot|radar>radar</a>(<a cbot|category>Converter</a>); // look for converter
    	<a cbot|goto>goto</a>(item.position);     // go to the position
    	<a cbot|drop>drop</a>();                  // drop the titanium
    	<a cbot|move>move</a>(-2.5);              // step back 2.5 m
    		
    	// 4) If power cell half empty, recharges.
    	if ( energyCell.energyLevel < 0.5 )
    	{                               // if so:
    		item = <a cbot|radar>radar</a>(<a cbot|category>PowerStation</a>); // look for station
    		<a cbot|goto>goto</a>(item.position);        // go there
    		<a cbot|wait>wait</a>(5);                    // wait
    	}
    }
pl: extern void object::CollectTitanium2()
    {
    	// 1) Definicja zmiennej
    	<a cbot|type>object</a>  item;            // informacja o obiekcie
    	
    	// 2) Idź do rudy tytanu i podnieś ją
    	item = <a cbot|radar>radar</a>(<a cbot|category>TitaniumOre</a>);// znajdź rudę tytanu
    	<a cbot|goto>goto</a>(item.position);     // idź do pozycji
    	<a cbot|grab>grab</a>();                  // podnieś porcję rudy
    	
    	// 3) Idź do huty i zostaw rudę
    	item = <a cbot|radar>radar</a>(<a cbot|category>Converter</a>); // znajdź hutę
    	<a cbot|goto>goto</a>(item.position);     // idź do pozycji
    	<a cbot|drop>drop</a>();                  // zostaw rudę
    	<a cbot|move>move</a>(-2.5);              // cofnij się o 2,5 m
    		
    	// 4) Naładuj ogniwo elektryczne, jeśli jest w połowie zużyte
    	if ( energyCell.energyLevel < 0.5 )
    	{                               // jeśli tak:
    		item = <a cbot|radar>radar</a>(<a cbot|category>PowerStation</a>); // znajdź stację energetyczną
    		<a cbot|goto>goto</a>(item.position);        // idź tam
    		<a cbot|wait>wait</a>(5);                    // poczekaj
    	}
    }

note: type: Plain text
en: Execute the program <code>KillAnt1</code> immediately on your <a object|botfr>wheeled shooter</a>, it will protect your west flank. Meantime you can elaborate your defense strategy.
pl: Uruchom natychmiast program <code>KillAnt1</code> na Twoim <a object|botfr>dziale na kołach</a>, zabezpieczy on Twoją zachodnią flankę. W międzyczasie możesz opracować strategię obrony.

note: type: Source code
en: extern void object::KillAnt1()
    {
    	<a cbot|type>object</a> item;             // info. about object
    	
    	<a cbot|goto>goto</a>(-30, 0);            // go west
    	<a cbot|aim>aim</a>(0);                  // aim straight
    	
    	<a cbot|while>while</a> ( true )           // repeat forever:
    	{
    		item = <a cbot|radar>radar</a>(<a cbot|category>AlienAnt</a>, 0, 360, 0, 40);
    		<a cbot|if>if</a> ( item != null )  // ant detected ?
    		{
    			<a cbot|turn>turn</a>(<a cbot|direct>direction</a>(item.position));
    			<a cbot|fire>fire</a>(0.5);       // shoot 0.5 s
    		}
    		<a cbot|wait>wait</a>(1);             // wait 1 second
    	}
    }
pl: extern void object::KillAnt1()
    {
    	<a cbot|type>object</a> item;             // informacja o obiekcie
    	
    	<a cbot|goto>goto</a>(-30, 0);            // idź na zachód
    	<a cbot|aim>aim</a>(0);                  // celuj w poziomie
    	
    	<a cbot|while>while</a> ( true )           // powtarzaj w nieskończoność:
    	{
    		item = <a cbot|radar>radar</a>(<a cbot|category>AlienAnt</a>, 0, 360, 0, 40);
    		<a cbot|if>if</a> ( item != null )  // wykryto mrówkę?
    		{
    			<a cbot|turn>turn</a>(<a cbot|direct>direction</a>(item.position));
    			<a cbot|fire>fire</a>(0.5);       // strzelaj przez 0,5 s
    		}
    		<a cbot|wait>wait</a>(1);             // czekaj 1 sekundę
    	}
    }

note: type: Plain text
en: As you will need lots of titanium for this mission, we have made the program <code>CollectTitanium</code> 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 <a object|station>power station</a> if necessary.
pl: Ponieważ w tej misji potrzebne będzie mnóstwo tytanu, po raz kolejny usprawniliśmy program <code>CollectTitanium</code>. 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 <a object|station>stacji energetycznej</a> jeśli jest to konieczne.

note: type: Source code
en: extern void object::CollectTitanium3()
    {
    	// 1) Variable definition.
    	<a cbot|type>object</a>  item;            // info. about objects
    	
    	<a cbot|while>while</a> (true)             // repeat forever
    	{
    		
    		// 2) Go to the titanium ore and grab it.
    		item = <a cbot|radar>radar</a>(<a cbot|category>TitaniumOre</a>);// look for titanium
    		<a cbot|goto>goto</a>(item.position);     // go to the position
    		<a cbot|grab>grab</a>();                  // grab the titanium
    		
    		// 3) Go to the converter and drop it.
    		item = <a cbot|radar>radar</a>(<a cbot|category>Converter</a>); // look for converter
    		<a cbot|goto>goto</a>(item.position);     // go to the position
    		<a cbot|drop>drop</a>();                  // drop the titanium
    		<a cbot|move>move</a>(-2.5);              // step back 2.5 m
    		
    		// 4) Wait until titanium converted and grab it
    		<a cbot|do>do</a>
    		{
    			<a cbot|wait>wait</a>(1);              // wait for cube
    			item = <a cbot|radar>radar</a>(<a cbot|category>Titanium</a>, 0, 45, 0, 5);
    		}
    		<a cbot|while>while</a> ( item == null );
    		<a cbot|goto>goto</a>(item.position);
    		<a cbot|grab>grab</a>();                   // grab it
    		
    		// 5) Drop on a free space
    		<a cbot|goto>goto</a>(<a cbot|space>space</a>(position));    // go to free space
    		<a cbot|drop>drop</a>();                   // drop titanium
    		
    		// 6) If power cell half empty, recharges.
    		<a cbot|if>if</a> ( energyCell.energyLevel < 0.5 )
    		{                         // if so:
    			item = <a cbot|radar>radar</a>(<a cbot|category>PowerStation</a>);
    			<a cbot|if>if</a> ( item != null )   // station found ?
    			{
    				<a cbot|goto>goto</a>(item.position); // go there
    				<a cbot|while>while</a> ( energyCell.energyLevel < 1 )
    				{                 // until recharged:
    					<a cbot|wait>wait</a>(1);      // wait
    				}
    			}
    		}
    	}
    }
pl: extern void object::CollectTitanium3()
    {
    	// 1) Deklaracje zmiennych.
    	<a cbot|type>object</a>  item;            // informacja o obiekcie
    	
    	<a cbot|while>while</a> (true)             // informacja o obiekcie
    	{
    		
    		// 2) Idź do rudy tytanu i podnieś ją
    		item = <a cbot|radar>radar</a>(<a cbot|category>TitaniumOre</a>);// znajdź rudę tytanu
    		<a cbot|goto>goto</a>(item.position);     // idź do pozycji
    		<a cbot|grab>grab</a>();                  // podnieś porcję rudy
    		
    		// 3) Idź do huty i zostaw rudę
    		item = <a cbot|radar>radar</a>(<a cbot|category>Converter</a>); // znajdź hutę
    		<a cbot|goto>goto</a>(item.position);     // idź do pozycji
    		<a cbot|drop>drop</a>();                  // zostaw rudę
    		<a cbot|move>move</a>(-2.5);              // cofnij się o 2,5 m
    		
    		// 4) Poczekaj na przetopienie rudy i zabierz tytan
    		<a cbot|do>do</a>
    		{
    			<a cbot|wait>wait</a>(1);              // poczekaj na kostkę tytanu
    			item = <a cbot|radar>radar</a>(<a cbot|category>Titanium</a>, 0, 45, 0, 5);
    		}
    		<a cbot|while>while</a> ( item == null );
    		<a cbot|goto>goto</a>(item.position);
    		<a cbot|grab>grab</a>();                   // weź ją
    		
    		// 5) Idź do wolnego miejsca i zostaw ją
    		<a cbot|goto>goto</a>(<a cbot|space>space</a>(position));    // idź do wolnego miejsca
    		<a cbot|drop>drop</a>();                   // zostaw tytan
    		
    		// 6) Naładuj ogniwo elektryczne, jeśli jest w połowie zużyte
    		<a cbot|if>if</a> ( energyCell.energyLevel < 0.5 )
    		{                         // jeśli tak:
    			item = <a cbot|radar>radar</a>(<a cbot|category>PowerStation</a>);
    			<a cbot|if>if</a> ( item != null )   // czy znaleziono stację 
    			{
    				<a cbot|goto>goto</a>(item.position); // idź tam
    				<a cbot|while>while</a> ( energyCell.energyLevel < 1 )
    				{                 // do czasu naładowania:
    					<a cbot|wait>wait</a>(1);      // czekaj
    				}
    			}
    		}
    	}
    }

note: type: Plain text
en: We have developed a program that takes care of recharging the power cell of a <a object|tower>defense tower</a>:
pl: Napisaliśmy program zajmujący się ładowaniem ogniwa elektrycznego <a object|tower>wieży obronnej</a>:

note: type: Bullet: '1)'
en: Go to a <a object|tower>defense tower</a>.
pl: Idź do <a object|tower>wieży obronnej</a>.

note: type: Bullet: '2)'
en: Wait until the <a object|power>power cell</a> is 80% empty.
pl: Poczekaj aż <a object|power>ogniwo elektryczne</a> będzie w 80% puste.

note: type: Bullet: '3)'
en: Grab the <a object|power>power cell</a> and recharge it on a <a object|station>power station</a>.
pl: Zabierz <a object|power>ogniwo elektryczne</a> i doładuj je w <a object|station>stacji energetycznej</a>.

note: type: Bullet: '4)'
en: Put it back on the <a object|tower>defense tower</a>.
pl: Odnieś je do <a object|tower>wieży obronnej</a>.

note: type: Plain text
en: Build the <a object|station>power station</a> 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.
pl: W celu zredukowania czasu gdy wieża pozostaje bez zasilania, zbuduj <a object|station>stację energetyczną</a> 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.

note: type: Source code
en: extern void object::ServiceTower1()
    {
    	<a cbot|object>object</a>  tower;               // info. about tower
    	<a cbot|object>object</a>  station;             // info. about station
    	
    	// 1) go to the defense tower
    	tower = <a cbot|radar>radar</a>(DefenseTower); // look for tower
    	<a cbot|goto>goto</a>(tower.position);        // go there
    	
    	<a cbot|while>while</a> ( true )               // repeat forever
    	{
    		// 2) wait until power cell is empty
    		<a cbot|while>while</a> ( tower.energyCell.energyLevel > 0.2 )
    		{
    			<a cbot|wait>wait</a>(2);
    		}
    		<a cbot|grab>grab</a>();                  // grab the power cell
    		
    		// 3) go to the power station to recharge
    		station = <a cbot|radar>radar</a>(PowerStation);
    		<a cbot|goto>goto</a>(station.position);  // go there
    		<a cbot|while>while</a> ( load.energyLevel < 1 )
    		{
    			<a cbot|wait>wait</a>(1);             // wait until recharged
    		}
    		
    		// 4) go back to defense tower
    		<a cbot|goto>goto</a>(tower.position);    // go to tower
    		<a cbot|drop>drop</a>();                  // drop the power cell
    	}
    }
pl: extern void object::ServiceTower1()
    {
    	<a cbot|object>object</a>  tower;               // informacje o wieży
    	<a cbot|object>object</a>  station;             // informacje o stacji
    	
    	// 1) idź do wieży obronnej
    	tower = <a cbot|radar>radar</a>(DefenseTower); // znajdź wieżę
    	<a cbot|goto>goto</a>(tower.position);        // i idź tam
    	
    	<a cbot|while>while</a> ( true )               // powtarzaj w nieskończoność
    	{
    		// 2) poczekaj na wyczerpanie ogniwa elektrycznego
    		<a cbot|while>while</a> ( tower.energyCell.energyLevel > 0.2 )
    		{
    			<a cbot|wait>wait</a>(2);
    		}
    		<a cbot|grab>grab</a>();                  // weź ogniwo elektryczne
    		
    		// 3) idź do elektrowni i naładuj je
    		station = <a cbot|radar>radar</a>(PowerStation);
    		<a cbot|goto>goto</a>(station.position);  // idź tam
    		<a cbot|while>while</a> ( load.energyLevel < 1 )
    		{
    			<a cbot|wait>wait</a>(1);             // poczekaj aż się naładuje
    		}
    		
    		// 4) wróć do wieży obronnej
    		<a cbot|goto>goto</a>(tower.position);    // idź do wieży
    		<a cbot|drop>drop</a>();                  // zostaw ogniwo elektryczne
    	}
    }

note: type: Plain text
en: According to the data transmitted by the satellite, our engineers have developed two programs. The first one guides the <a object|botshld>shielder bot</a> through the narrow valley north close to the place where the key has been located. You can follow it without fearing any attack:
pl: Zgodnie z danymi dostarczonymi przez satelitę, nasi inżynierowie napisali dwa programy. Pierwszy z nich prowadzi <a object|botshld>robota osłaniacza</a> przez wąską dolinę na północ, w pobliże klucza. Możesz za nim iść nie obawiając się żadnego ataku:

note: type: Source code
en: extern void object::Outward()
    {
    	<a cbot|shield>shield</a>(1,15);   // activate the shield
    	<a cbot|goto>goto</a>(6,160);    // go close to the key
    	<a cbot|shield>shield</a>(0,15);   // deactivate the shield
    }
pl: extern void object::Outward()
    {
    	<a cbot|shield>shield</a>(1,15);   // uaktywnij osłonę
    	<a cbot|goto>goto</a>(6,160);    // podejdź do klucza
    	<a cbot|shield>shield</a>(0,15);   // wyłącz osłonę
    }

note: type: Plain text
en: The second program guides the <a object|botshld>shielder bot</a> back to the <a object|base>spaceship</a>:
pl: Drugi program kieruje <a object|botshld>robota osłaniacza</a> z powrotem do <a object|base>statku kosmicznego</a>:

note: type: Source code
en: extern void object::Return()
    {
    	<a cbot|shield>shield</a>(1,15);   // activate the shield
    	<a cbot|goto>goto</a>(8,60);     // go to the spaceship
    	<a cbot|shield>shield</a>(0,15);   // deactivate the shield
    }
pl: extern void object::Return()
    {
    	<a cbot|shield>shield</a>(1,15);   // uaktywnij osłonę
    	<a cbot|goto>goto</a>(8,60);     // wróć na statek kosmiczny
    	<a cbot|shield>shield</a>(0,15);   // wyłącz osłonę
    }

note: type: Plain text
en: Below is a program that has been developed by our engineers.
pl: Poniżej znajdziesz jeden z programów napisanych przez naszych inżynierów.

note: type: Plain text
en: It instructs the <a object|botshld>shielder</a> to follow and protect the <a object|botphaz>phazer</a>.
pl: Poleca on <a object|botshld>osłaniaczowi</a> śledzenie i ochronę <a object|botphaz>działa fazowego</a>.

note: type: Source code
en: extern void object::FollowPhazer()
    {
    	<a cbot|type>object</a>    item;              // info. about phazer
    	<a cbot|type>point</a>     dest;              // position where to go
    	<a cbot|type>float</a>     dist;              // distance to phazer
    	
    	item = <a cbot|radar>radar</a>(<a cbot|category>PhazerShooter</a>);
    	<a cbot|if>if</a> ( item == null )
    	{
    		<a cbot|message>message</a>("No phazer found");
    		<a cbot|return>return</a>;                  // stop the program
    	}
    	<a cbot|shield>shield</a>(1, 25);               // activate the shield
    	
    	<a cbot|while>while</a> ( true )               // repeat forever
    	{
    		item = <a cbot|radar>radar</a>(PhazerShooter);// look for phazer
    		<a cbot|if>if</a> ( item == null )  break;
    		
    		dist = <a cbot|dist>distance</a>(item.position, position);
    		<a cbot|if>if</a> ( dist < 5 )
    		{                        // if closer than 5 m:
    			<a cbot|wait>wait</a>(1);             // wait
    		}
    		<a cbot|if>else</a>                     // otherwise:
    		{ // Calculate a position 5 m before the phazer
    			dest.x = (item.position.x-position.x)*((dist-5)/dist)+position.x;
    			dest.y = (item.position.y-position.y)*((dist-5)/dist)+position.y;
    			dest.z = (item.position.z-position.z)*((dist-5)/dist)+position.z;
    			<a cbot|goto>goto</a>(dest, 0, 1, 1); // and go there
    		}
    	}
    }
pl: extern void object::FollowPhazer()
    {
    	<a cbot|type>object</a>    item;              // informacje o dziale fazowym
    	<a cbot|type>point</a>     dest;              // pozycja docelowa
    	<a cbot|type>float</a>     dist;              // odległość do działa fazowego
    	
    	item = <a cbot|radar>radar</a>(<a cbot|category>PhazerShooter</a>);
    	<a cbot|if>if</a> ( item == null )
    	{
    		<a cbot|message>message</a>("Nie znaleziono działa fazowego");
    		<a cbot|return>return</a>;                  // zatrzymaj program
    	}
    	<a cbot|shield>shield</a>(1, 25);               // aktywuj osłonę
    	
    	<a cbot|while>while</a> ( true )               // powtarzaj w nieskończoność
    	{
    		item = <a cbot|radar>radar</a>(PhazerShooter);// znajdź działo fazowe
    		<a cbot|if>if</a> ( item == null )  break;
    		
    		dist = <a cbot|dist>distance</a>(item.position, position);
    		<a cbot|if>if</a> ( dist < 5 )
    		{                        // jeśli jest bliżej niż 5 m:
    			<a cbot|wait>wait</a>(1);             // czekaj
    		}
    		<a cbot|if>else</a>                     // w przeciwnym przypadku:
    		{ // Oblicz pozycję 5 m przed działem fazowym
    			dest.x = (item.position.x-position.x)*((dist-5)/dist)+position.x;
    			dest.y = (item.position.y-position.y)*((dist-5)/dist)+position.y;
    			dest.z = (item.position.z-position.z)*((dist-5)/dist)+position.z;
    			<a cbot|goto>goto</a>(dest, 0, 1, 1); // i idź tam
    		}
    	}
    }
