en to ru translation catalogue (37 entries)

note: type: \b; header
en: Programs dispatched by Houston
ru: Программы, отправленные Хьюстоном

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.
ru: Ниже приведен текст программы, написанной нашими инженерами. Она позволяет вам переключать <a object|power>энергетические батарейки</a>. Заряженные батарейки необходимо разместить на земле около бота.

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/>.
ru: Чтобы запустить программу, выберите программу <code>SwitchCell1</code> из списка программ, доступных для бота (в левом нижнем углу экрана), и щелкните на стрелке <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
    }
ru: extern void object::SwitchCell1()
    {
    	<a cbot|grab>grab</a>(InFront);     // взять новыю батарейку
    	<a cbot|drop>drop</a>(Behind);      // бросить ее за собой
    	
    	<a cbot|grab>grab</a>(EnergyCell);  // взять у бота батарейку
    	<a cbot|drop>drop</a>(InFront);     // сбросить ее перед собой
    	
    	<a cbot|grab>grab</a>(Behind);      // взять новую батарейку
    	<a cbot|drop>drop</a>(EnergyCell);  // установить ее в боте
    }

note: type: \b; header
en: Programs dispatched by Houston
ru: Программы, отправленные Хьюстоном

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.
ru: Для этой миссии мы не разрабатывали специальных программ. Тем не менее, вы можете сами написать свою собственную программу, если вы считаете, что это может вам понадобиться.

note: type: \b; header
en: Archives
ru: Архивы

note: type: Plain text
en: Index of the programs dispatched in former missions:
ru: Список программ, отправленных в предыдущих миссиях

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.
ru: Ниже приведена программа, разработанная нашими инженерами. Она позволяет вам подзарядить <a object|power>батарейку</a> бота: она направляет бота к ближайшей <a object|station>электростанции</a>, заставляет его подождать 5 секунд, и вернуться к начальной позиции.

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.
ru: Сноска: Если вы щелкните на элеменете программы, выделенном синим цветом, ваш Сатком отобразит текст, описывающий этот элемент. Текст, идущий после двух косых <code>//</code> не является частью программы. Он просто комментирует содержание программы, чтобы вы могли понять ее суть.

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.
    }
ru: extern void object::Recharge1()
    {
    	<a cbot|type>point</a>  start;          // переменная начальной позиции.
    	<a cbot|type>object</a> item;           // информация об электростанции
    	
    	start = position;      // сохранить начальную позицию
    	
    	item = <a cbot|radar>radar</a>(<a cbot|category>PowerStation</a>); // искать станцию
    	<a cbot|goto>goto</a>(item.position);   // идти к электростанции
    	<a cbot|wait>wait</a>(5);               // подождать 5 секунд
    	
    	<a cbot|goto>goto</a>(start);           // возвратиться к начальной позиции.
    }

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.
ru: Мы улучшили программу подзарядки. Когда он прибывает на <a object|station>электростанцию</a>, бот не ждет именно 5 секунд, а только до того момента, когда <a object|power>батареи</a> полностью зарядятся. После того, как бот вернется в начальную позицию, на экране появляется сообщение.

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");
    }
ru: extern void object::Recharge2()
    {
    	<a cbot|type>point</a>  start;          // переменная начальной позиции.
    	<a cbot|type>object</a> item;           // информация об электростанции
    	
    	start = position;      // сохранить начальную позицию
    	
    	item = <a cbot|radar>radar</a>(<a cbot|category>PowerStation</a>); // искать станцию
    	<a cbot|goto>goto</a>(item.position);   // идти к электростанции
    	
    	<a cbot|while>while</a> ( <a cbot|object>energyCell.energyLevel</a> < 1 )
    	{
    		<a cbot|wait>wait</a>(1);           // ждать окончания зарядки
    	}
    	
    	<a cbot|goto>goto</a>(start);           // вернуться в начальную позицию.
    	<a cbot|message>message</a>("Зарядка проведена");
    }

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>.
ru: Ниже приведен текст программы, написанной одним из наших инженеров.
    Она инструктирует <a object|botgr>сборщика</a> взять ближайший кусок <a object|titanore>титановой руды</a> и разместить его в <a object|convert>преобразователе</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/>.
ru: Чтобы запустить программу, выберите программу <code>CollectTitanium1</code> из списка программ, доступных для бота (в левом нижнем углу экрана), и щелкните на стрелке <button 21/>. Вы можете в любой момент остановить программу и взять управление в свои руки, нажав кнопку стоп <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
    }
ru: extern void object::CollectTitanium1()
    {
    	// 1) Задание переменной.
    	<a cbot|type>object</a>  item;            // информация об объектах
    	
    	// 2) Перейти к титановой руде и взять ее.
    	item = <a cbot|radar>radar</a>(<a cbot|category>TitaniumOre</a>);// искать титановую руду
    	<a cbot|goto>goto</a>(item.position);     // перейти к месту
    	<a cbot|grab>grab</a>();                  // взять титан
    	
    	// 3) Перейти к преобразователю и сбросить руду.
    	item = <a cbot|radar>radar</a>(<a cbot|category>Converter</a>); // искать преобразователь
    	<a cbot|goto>goto</a>(item.position);     // перейти к месту
    	<a cbot|drop>drop</a>();                  // сбросить титан
    	<a cbot|move>move</a>(-2.5);              // отойти назад на 2.5 м
    }

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.
ru: Ниже приведен текст программы, написанной одним из наших инженеров.
    Улучшение предыдущей программы: <a object|botgr>сборщик</a> на своем пути от преобразователя останавливается, если в этом возникает необходимость, около <a object|station>электростанции</a>, чтобы подзарядить свою энергетическую батарейку.

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>.
ru: Эта программа также работает для <a object|botgj>крылатых сборщиков</a>, если <a object|derrick>деррики</a> расположены не на том же самом острове, что и <a object|convert>преобразователь</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
    	}
    }
ru: extern void object::CollectTitanium2()
    {
    	// 1) Задание переменной.
    	<a cbot|type>object</a>  item;            // информация об объектах
    	
    	// 2) Перейти к тиатновой руде и взять ее.
    	item = <a cbot|radar>radar</a>(<a cbot|category>TitaniumOre</a>);// искать титановую руду
    	<a cbot|goto>goto</a>(item.position);     // перейти к месту
    	<a cbot|grab>grab</a>();                  // взять титан
    	
    	// 3) Перейти к преобразователю и сбросить руду.
    	item = <a cbot|radar>radar</a>(<a cbot|category>Converter</a>); // искать преобразователь
    	<a cbot|goto>goto</a>(item.position);     // перейти к месту
    	<a cbot|drop>drop</a>();                  // сбросить титан
    	<a cbot|move>move</a>(-2.5);              // отойти назад на 2.5 м
    		
    	// 4) Если энергетическая батарейка пуста, подзарядить.
    	if ( energyCell.energyLevel < 0.5 )
    	{                               // если так:
    		item = <a cbot|radar>radar</a>(<a cbot|category>PowerStation</a>); // искать станцию
    		<a cbot|goto>goto</a>(item.position);        // перейти туда
    		<a cbot|wait>wait</a>(5);                    // ждать
    	}
    }

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.
ru: Немедленно запустите программу <code>KillAnt1</code> на вашем <a object|botfr>колесном стрелке</a>, он будет защищать ваш западный фланг. Тем временем вы можете детально разработать свою оборонительную стратегию.

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
    	}
    }
ru: extern void object::KillAnt1()
    {
    	<a cbot|type>object</a> item;             // информация об объекте
    	
    	<a cbot|goto>goto</a>(-30, 0);            // идти на запад
    	<a cbot|aim>aim</a>(0);                  // прицелиться прямо
    	
    	<a cbot|while>while</a> ( true )           // повторять всегда:
    	{
    		item = <a cbot|radar>radar</a>(<a cbot|category>AlienAnt</a>, 0, 360, 0, 40);
    		<a cbot|if>if</a> ( item != null )  // замечен муравей ?
    		{
    			<a cbot|turn>turn</a>(<a cbot|direct>direction</a>(item.position));
    			<a cbot|fire>fire</a>(0.5);       // выстрел 0.5 с
    		}
    		<a cbot|wait>wait</a>(1);             // ждать 1 секунду
    	}
    }

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.
ru: Так как вам в этой миссии будет необходимо много титана, мы написали очень эффективную программу <code>CollectTitanium</code>. Она одновременно собирает все титановые слитки на свободной поверхности, поэтому вы можете позволить ей самой выполнить всю работу. Она также сама себя подзаряжает у <a object|station>электростанции</a>, если в этом возникает необходимость.

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
    				}
    			}
    		}
    	}
    }
ru: extern void object::CollectTitanium3()
    {
    	// 1) Задание переменной.
    	<a cbot|type>object</a>  item;            // информация об объектах
    	
    	<a cbot|while>while</a> (true)             // повторять всегда
    	{
    		
    		// 2) Перейти к титановой руде и взять ее.
    		item = <a cbot|radar>radar</a>(<a cbot|category>TitaniumOre</a>);// искать титан
    		<a cbot|goto>goto</a>(item.position);     // перейти к позиции
    		<a cbot|grab>grab</a>();                  // взять титан
    		
    		// 3) Перейти к преобразователю и сбросить его.
    		item = <a cbot|radar>radar</a>(<a cbot|category>Converter</a>); // искать преобразователь
    		<a cbot|goto>goto</a>(item.position);     // перейти к позиции
    		<a cbot|drop>drop</a>();                  // сбросить титан
    		<a cbot|move>move</a>(-2.5);              // отойти назад на 2,5 метра
    		
    		// 4) Подождать пока титан будет преобразован и забрать его
    		<a cbot|do>do</a>
    		{
    			<a cbot|wait>wait</a>(1);              // ждать слиток
    			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>();                   // взять его
    		
    		// 5) Drop on a free space
    		<a cbot|goto>goto</a>(<a cbot|space>space</a>(position));    // выйти на свободное место
    		<a cbot|drop>drop</a>();                   // сбросить титан
    		
    		// 6) Если батарея разряжена, зарядить ее.
    		<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 )   // станция найдена ?
    			{
    				<a cbot|goto>goto</a>(item.position); // идти туда
    				<a cbot|while>while</a> ( energyCell.energyLevel < 1 )
    				{                 // пока идет зарядка:
    					<a cbot|wait>wait</a>(1);      // ждать
    				}
    			}
    		}
    	}
    }

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>:
ru: Мы написали программу, которая отвечает за подзарядку батарей <a object|tower>оборонной башни</a>:

note: type: Bullet: '1)'
en: Go to a <a object|tower>defense tower</a>.
ru: Перейти к <a object|tower>оборонной башни</a>.

note: type: Bullet: '2)'
en: Wait until the <a object|power>power cell</a> is 80% empty.
ru: Подождать пока <a object|power>батарея</a> разрядится на 80%.

note: type: Bullet: '3)'
en: Grab the <a object|power>power cell</a> and recharge it on a <a object|station>power station</a>.
ru: Взять <a object|power>батарея</a> и зарядить ее на <a object|station>электростанции</a>.

note: type: Bullet: '4)'
en: Put it back on the <a object|tower>defense tower</a>.
ru: Вернуть ее обратно на  <a object|tower>оборонную башню</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.
ru: Постройте <a object|station>электростанцию</a> как можно ближе к башне, чтобы уменьшить время, пока башня стоит без батареи. Неплохо было бы разместить батарею на земле около башни. На батарею нападет оса, и если первый выстрел будет неточным, или оса прилетит в тот момент, когда оборонная башня будет обесточена, уничтожена будет только батарея, а не оборонная башня.

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
    	}
    }
ru: extern void object::ServiceTower1()
    {
    	<a cbot|object>object</a>  tower;               // информация о башне
    	<a cbot|object>object</a>  station;             // информация о станции
    	
    	// 1) перейти к оборонной башне
    	tower = <a cbot|radar>radar</a>(DefenseTower); // искать башню
    	<a cbot|goto>goto</a>(tower.position);        // идти туда
    	
    	<a cbot|while>while</a> ( true )               // повторять всегда
    	{
    		// 2) подождать пока разрядится батарея
    		<a cbot|while>while</a> ( tower.energyCell.energyLevel > 0.2 )
    		{
    			<a cbot|wait>wait</a>(2);
    		}
    		<a cbot|grab>grab</a>();                  // взять батарею
    		
    		// 3) отправится к электростанции для подзарядки
    		station = <a cbot|radar>radar</a>(PowerStation);
    		<a cbot|goto>goto</a>(station.position);  // идти туда
    		<a cbot|while>while</a> ( load.energyLevel < 1 )
    		{
    			<a cbot|wait>wait</a>(1);             // ждать пока пройдет зарядка
    		}
    		
    		// 4) вернуться к оборонной башне
    		<a cbot|goto>goto</a>(tower.position);    // идти к башне
    		<a cbot|drop>drop</a>();                  // бросить батарею
    	}
    }

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:
ru: Согласно данным, переданными со спутника, наши инженеры разработали две программы. Первая управляет перемещением <a object|botshld>бронированного бота</a> по узкой долине недалеко на север от того места, где был обнаружен ключ. Вы можете продвигаться по этому пути не опасаясь атак:

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
    }
ru: extern void object::Outward()
    {
    	<a cbot|shield>shield</a>(1,15);   // активировать щит
    	<a cbot|goto>goto</a>(6,160);    // подойти вплотную к ключу
    	<a cbot|shield>shield</a>(0,15);   // отключить щит
    }

note: type: Plain text
en: The second program guides the <a object|botshld>shielder bot</a> back to the <a object|base>spaceship</a>:
ru: Вторая программа ведет <a object|botshld>бронированного бота</a> обратно к  <a object|base>космическому кораблю</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
    }
ru: extern void object::Return()
    {
    	<a cbot|shield>shield</a>(1,15);   // активировать щит
    	<a cbot|goto>goto</a>(8,60);     // идти к космическому кораблю
    	<a cbot|shield>shield</a>(0,15);   // отключить щит
    }

note: type: Plain text
en: Below is a program that has been developed by our engineers.
ru: Ниже приведена программа, разработанная нашими инженерами.

note: type: Plain text
en: It instructs the <a object|botshld>shielder</a> to follow and protect the <a object|botphaz>phazer</a>.
ru: Она приказывает <a object|botshld>бронеботу</a> следовать за <a object|botphaz>фазером</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
    		}
    	}
    }
ru: extern void object::FollowPhazer()
    {
    	<a cbot|type>object</a>    item;              // информация о фазере
    	<a cbot|type>point</a>     dest;              // место назначения
    	<a cbot|type>float</a>     dist;              // расстояние до фазера
    	
    	item = <a cbot|radar>radar</a>(<a cbot|category>PhazerShooter</a>);
    	<a cbot|if>if</a> ( item == null )
    	{
    		<a cbot|message>message</a>("Фазер не найден");
    		<a cbot|return>return</a>;                  // остановить программу
    	}
    	<a cbot|shield>shield</a>(1, 25);               // включить щит
    	
    	<a cbot|while>while</a> ( true )               // повторять всегда
    	{
    		item = <a cbot|radar>radar</a>(PhazerShooter);// искать фазер
    		<a cbot|if>if</a> ( item == null )  break;
    		
    		dist = <a cbot|dist>distance</a>(item.position, position);
    		<a cbot|if>if</a> ( dist < 5 )
    		{                        // если ближе 5 метров:
    			<a cbot|wait>wait</a>(1);             // ждать
    		}
    		<a cbot|if>else</a>                     // иначе:
    		{ // Рассчитать расстояние в 5 м. перед фазером
    			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); // перейти туда
    		}
    	}
    }
