<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Адепт Мудрости [ v673.com ] - Сострадание, Мудрость, Чистый Ум &#187; Игры для программистов</title>
	<atom:link href="http://v673.com/category/programmers-games/feed/" rel="self" type="application/rss+xml" />
	<link>http://v673.com</link>
	<description></description>
	<lastBuildDate>Wed, 02 May 2012 21:00:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Готовые программы для игр Colobot и Ceebot</title>
		<link>http://v673.com/programmers-games/ready-programms-for-colobot-and-ceebot-games/</link>
		<comments>http://v673.com/programmers-games/ready-programms-for-colobot-and-ceebot-games/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 04:46:21 +0000</pubDate>
		<dc:creator>v673</dc:creator>
				<category><![CDATA[Игры для программистов]]></category>

		<guid isPermaLink="false">http://v673.com/?p=688</guid>
		<description><![CDATA[Последнее время с поисковых систем стабильно приходят пользователи, пытающиеся найти у меня готовые программы для игр Colobot и Ceebot. Поэтому я решил срочно исправляться. В этом посте я собрал некоторые программы, которые позволят Вам сэкономить время или посмотреть, как программируют в Colobot другие игроки. Кстати, я написал отличный обзор этой игре у себя в блоге. [...]]]></description>
			<content:encoded><![CDATA[<p><img style="margin: 6px;" title="Астронавт-колоботер" src="http://v673.com/wp-content/uploads/colobot.jpg" alt="Астронавт-колоботер" width="126" height="154" align="left" />Последнее время с поисковых систем стабильно приходят пользователи, пытающиеся найти у меня <strong>готовые программы для игр Colobot и Ceebot</strong>.</p>
<p>Поэтому я решил срочно исправляться. В этом посте я собрал некоторые программы, которые позволят Вам сэкономить время или посмотреть, как программируют в Colobot другие игроки. </p>
<p>Кстати, я написал <a href="http://v673.com/programmers-games/colobot-and-ceebot/">отличный обзор</a> этой игре у себя в блоге. Можете также почитать мои другие обзоры <a href="http://v673.com/category/programmers-games/">игр для программистов</a>.</p>
<p>Пост получился очень большим из-за того что я привел исходные коды многих программ. Но, в любом случае, это будет удобно тем, кто ищет готовые программы&nbsp;&mdash; все в одном месте.</p>
<p>Аккуратно! Ваш скролл может умереть мучительной и жестокой смертью.</p>
<p><span id="more-688"></span></p>
<h2>Программа для PhazerShooter</h2>
<p>Поместите робота на местность (желательно повыше), активируйте и наблюдайте за его работой. Он уничтожит все цели, которые летят не выше 80 метров.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">extern <span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>Phazer<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">float</span> scanRange <span style="color: #339933;">=</span> <span style="color: #cc66cc;">150</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// scan for targets within this radius</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// Platform specific parameters</span>
	<span style="color: #000066; font-weight: bold;">float</span> minAngle <span style="color: #339933;">=</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">20</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// minimum gun elevation relative to platform</span>
	<span style="color: #000066; font-weight: bold;">float</span> maxAngle <span style="color: #339933;">=</span> <span style="color: #cc66cc;">45</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// maximum gun elevation relative to platform</span>
	<span style="color: #000066; font-weight: bold;">float</span> weaponHeight <span style="color: #339933;">=</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// height of weapon above platform</span>
	<span style="color: #000066; font-weight: bold;">float</span> weaponOffset <span style="color: #339933;">=</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// weapon is this amount in front of platform</span>
	<span style="color: #000066; font-weight: bold;">float</span> maxTurnRate <span style="color: #339933;">=</span> <span style="color: #cc66cc;">54</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// maximum turn rate</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// Ballistic parameters</span>
	<span style="color: #000066; font-weight: bold;">float</span> v0 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">50</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// muzzle velocity (m / s)</span>
	<span style="color: #000066; font-weight: bold;">float</span> g <span style="color: #339933;">=</span> <span style="color: #cc66cc;">50</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// gravitation (m / s^2)</span>
	<span style="color: #000066; font-weight: bold;">float</span> bc <span style="color: #339933;">=</span> v0 <span style="color: #339933;">*</span> v0 <span style="color: #339933;">/</span> g<span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// ballistic constant (max range at equal height)</span>
&nbsp;
	object target<span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// target</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		target <span style="color: #339933;">=</span> ScanForTarget<span style="color: #009900;">&#40;</span>scanRange<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// do a target scan</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span>target <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #666666; font-style: italic;">// wait until target becomes available</span>
		<span style="color: #009900;">&#123;</span>
			motor<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// engines idle</span>
			wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// wait a little to relieve CPU</span>
			target <span style="color: #339933;">=</span> ScanForTarget<span style="color: #009900;">&#40;</span>scanRange<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// scan again</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// Variables to track target (cylindrcal coцrdinates)</span>
		<span style="color: #000066; font-weight: bold;">float</span> bearing, range, height, time<span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">float</span> deltaBearing, deltaRange, deltaHeight, deltaTime<span style="color: #339933;">;</span>
		<span style="color: #666666; font-style: italic;">// Initialize the 'old' variables</span>
		<span style="color: #000066; font-weight: bold;">float</span> oldBearing <span style="color: #339933;">=</span> orientation <span style="color: #339933;">+</span> direction<span style="color: #009900;">&#40;</span>target.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">float</span> oldRange <span style="color: #339933;">=</span> distance2d<span style="color: #009900;">&#40;</span>position, target.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">float</span> oldHeight <span style="color: #339933;">=</span> target.<span style="color: #006633;">position</span>.<span style="color: #006633;">z</span> <span style="color: #339933;">-</span> position.<span style="color: #006633;">z</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">float</span> oldTime <span style="color: #339933;">=</span> abstime<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// Variables needed for target solution</span>
		<span style="color: #000066; font-weight: bold;">float</span> rt, zt<span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">float</span> t<span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">float</span> D<span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">float</span> it <span style="color: #339933;">=</span> sqrt<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> oldRange <span style="color: #339933;">/</span> v0<span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// initial estimate for intercept time</span>
		<span style="color: #000066; font-weight: bold;">float</span> azimuth<span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">float</span> elevation<span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">float</span> turnRate<span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">float</span> motorOutput<span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// Variables needed for slope correction</span>
		<span style="color: #000066; font-weight: bold;">float</span> pitchAz<span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">float</span> rollAz<span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">float</span> a<span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">float</span> b<span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">float</span> c<span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">float</span> d<span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">float</span> corr<span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000066; font-weight: bold;">float</span> fireTime <span style="color: #339933;">=</span> abstime<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">0.2</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// don't fire for 0.5 seconds (first track target)</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span>target <span style="color: #339933;">==</span> ScanForTarget<span style="color: #009900;">&#40;</span>scanRange<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #666666; font-style: italic;">// As long as target is the most critical target</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #666666; font-style: italic;">// Collect data</span>
			bearing <span style="color: #339933;">=</span> orientation <span style="color: #339933;">+</span> direction<span style="color: #009900;">&#40;</span>target.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			range <span style="color: #339933;">=</span> distance2d<span style="color: #009900;">&#40;</span>position, target.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			height <span style="color: #339933;">=</span> target.<span style="color: #006633;">position</span>.<span style="color: #006633;">z</span> <span style="color: #339933;">-</span> position.<span style="color: #006633;">z</span><span style="color: #339933;">;</span>
			time <span style="color: #339933;">=</span> abstime<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #666666; font-style: italic;">// Calculate differences</span>
			deltaBearing <span style="color: #339933;">=</span> bearing <span style="color: #339933;">-</span> oldBearing<span style="color: #339933;">;</span>
			deltaRange <span style="color: #339933;">=</span> range <span style="color: #339933;">-</span> oldRange<span style="color: #339933;">;</span>
			deltaHeight <span style="color: #339933;">=</span> height <span style="color: #339933;">-</span> oldHeight<span style="color: #339933;">;</span>
			deltaTime <span style="color: #339933;">=</span> time <span style="color: #339933;">-</span> oldTime<span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #666666; font-style: italic;">// Save data for next pass</span>
			oldBearing <span style="color: #339933;">=</span> bearing<span style="color: #339933;">;</span>
			oldRange <span style="color: #339933;">=</span> range<span style="color: #339933;">;</span>
			oldHeight <span style="color: #339933;">=</span> height<span style="color: #339933;">;</span>
			oldTime <span style="color: #339933;">=</span> time<span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #666666; font-style: italic;">// Extrapolate target motion to interception point</span>
			t <span style="color: #339933;">=</span> it <span style="color: #339933;">/</span> deltaTime<span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// time factor</span>
			azimuth <span style="color: #339933;">=</span> bearing <span style="color: #339933;">+</span> t <span style="color: #339933;">*</span> deltaBearing <span style="color: #339933;">-</span> orientation<span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// intercept azimuth</span>
			<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>azimuth <span style="color: #339933;">&lt;</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">180</span><span style="color: #009900;">&#41;</span> azimuth <span style="color: #339933;">+=</span> <span style="color: #cc66cc;">360</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// azimuth correction (pole passage)</span>
			<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>azimuth <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">180</span><span style="color: #009900;">&#41;</span> azimuth <span style="color: #339933;">-=</span> <span style="color: #cc66cc;">360</span><span style="color: #339933;">;</span>
			zt <span style="color: #339933;">=</span> height <span style="color: #339933;">+</span> t <span style="color: #339933;">*</span> deltaHeight <span style="color: #339933;">-</span> cos<span style="color: #009900;">&#40;</span>pitch<span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> cos<span style="color: #009900;">&#40;</span>roll<span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> weaponHeight<span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// intercept height</span>
			rt <span style="color: #339933;">=</span> range <span style="color: #339933;">+</span> t <span style="color: #339933;">*</span> deltaRange <span style="color: #339933;">-</span> weaponOffset <span style="color: #339933;">*</span> cos<span style="color: #009900;">&#40;</span>azimuth<span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> cos<span style="color: #009900;">&#40;</span>pitch<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// intercept range</span>
&nbsp;
			<span style="color: #666666; font-style: italic;">// Calculate weapon elevation</span>
			D <span style="color: #339933;">=</span> bc <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span>bc <span style="color: #339933;">-</span> <span style="color: #cc66cc;">2</span> <span style="color: #339933;">*</span> zt<span style="color: #009900;">&#41;</span> <span style="color: #339933;">/</span> <span style="color: #009900;">&#40;</span>rt <span style="color: #339933;">*</span> rt<span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// discriminant</span>
			<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>D <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
			  elevation <span style="color: #339933;">=</span> atan<span style="color: #009900;">&#40;</span>bc <span style="color: #339933;">/</span> rt<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// target out of range</span>
			<span style="color: #000000; font-weight: bold;">else</span>
			  elevation <span style="color: #339933;">=</span> atan<span style="color: #009900;">&#40;</span>bc <span style="color: #339933;">/</span> rt <span style="color: #339933;">-</span> sqrt<span style="color: #009900;">&#40;</span>D<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// target in range</span>
&nbsp;
			it <span style="color: #339933;">=</span> rt <span style="color: #339933;">/</span> <span style="color: #009900;">&#40;</span>v0 <span style="color: #339933;">*</span> cos<span style="color: #009900;">&#40;</span>elevation<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// intercept time (estimate for next pass)</span>
&nbsp;
			<span style="color: #666666; font-style: italic;">// Slope-correction</span>
			pitchAz <span style="color: #339933;">=</span> pitch <span style="color: #339933;">*</span> cos<span style="color: #009900;">&#40;</span>azimuth<span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> roll <span style="color: #339933;">*</span> sin<span style="color: #009900;">&#40;</span>azimuth<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// pitch at target azimuth</span>
			rollAz <span style="color: #339933;">=</span> roll <span style="color: #339933;">*</span> cos<span style="color: #009900;">&#40;</span>azimuth<span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> pitch <span style="color: #339933;">*</span> sin<span style="color: #009900;">&#40;</span>azimuth<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// roll at target azimuth</span>
&nbsp;
			<span style="color: #666666; font-style: italic;">// Solve slope-target spherical triangle</span>
			b <span style="color: #339933;">=</span> elevation <span style="color: #339933;">-</span> pitchAz<span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// relative elevation at target azimuth</span>
			a <span style="color: #339933;">=</span> asin<span style="color: #009900;">&#40;</span>sin<span style="color: #009900;">&#40;</span>b<span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> cos<span style="color: #009900;">&#40;</span>rollAz<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// new gun elevation</span>
			c <span style="color: #339933;">=</span> acos<span style="color: #009900;">&#40;</span>cos<span style="color: #009900;">&#40;</span>b<span style="color: #009900;">&#41;</span> <span style="color: #339933;">/</span> cos<span style="color: #009900;">&#40;</span>a<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>b <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> c <span style="color: #339933;">=</span> <span style="color: #339933;">-</span>c<span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// intermediate variable</span>
			d <span style="color: #339933;">=</span> asin<span style="color: #009900;">&#40;</span>sin<span style="color: #009900;">&#40;</span>c<span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> sin<span style="color: #009900;">&#40;</span>rollAz<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// intermediate variable</span>
			corr <span style="color: #339933;">=</span> <span style="color: #339933;">-</span>acos<span style="color: #009900;">&#40;</span>cos<span style="color: #009900;">&#40;</span>c<span style="color: #009900;">&#41;</span> <span style="color: #339933;">/</span> cos<span style="color: #009900;">&#40;</span>d<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>d <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> corr <span style="color: #339933;">=</span> <span style="color: #339933;">-</span>corr<span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// azimuth correction</span>
			azimuth <span style="color: #339933;">+=</span> corr<span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// apply azimuthal correction</span>
&nbsp;
			<span style="color: #666666; font-style: italic;">// Point the weapon in the right direction</span>
			aim<span style="color: #009900;">&#40;</span>a<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// weapon elevation</span>
			turnRate <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>deltaBearing <span style="color: #339933;">+</span> azimuth <span style="color: #339933;">/</span> <span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">/</span> deltaTime<span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// rotate with target</span>
			motorOutput <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0.5</span> <span style="color: #339933;">*</span> turnRate <span style="color: #339933;">/</span> maxTurnRate<span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// calculate motor output</span>
			motor<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span>motorOutput, motorOutput<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// apply turn rate</span>
&nbsp;
			<span style="color: #666666; font-style: italic;">// Fire if target is within weapon envelope</span>
			<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>D <span style="color: #339933;">&gt;=</span> <span style="color: #cc66cc;">0</span> <span style="color: #339933;">&amp;&amp;</span> a <span style="color: #339933;">&gt;</span> minAngle <span style="color: #339933;">-</span> <span style="color: #cc66cc;">2</span> <span style="color: #339933;">&amp;&amp;</span> a <span style="color: #339933;">&lt;</span> maxAngle <span style="color: #339933;">+</span> <span style="color: #cc66cc;">2</span> <span style="color: #339933;">&amp;&amp;</span> azimuth <span style="color: #339933;">&gt;</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">2</span> <span style="color: #339933;">&amp;&amp;</span> azimuth <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">2</span> <span style="color: #339933;">&amp;&amp;</span> fireTime <span style="color: #339933;">&lt;</span> abstime<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				fire<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0.2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// fire</span>
				fireTime <span style="color: #339933;">=</span> abstime<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> it <span style="color: #339933;">+</span> <span style="color: #cc66cc;">0.1</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// wait until round hit (or not)</span>
				message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Firing at range &quot;</span> <span style="color: #339933;">+</span> distance<span style="color: #009900;">&#40;</span>position, target.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot; m.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// show off performance</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
object object<span style="color: #339933;">::</span>ScanForTarget<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">float</span> range<span style="color: #009900;">&#41;</span> <span style="color: #666666; font-style: italic;">// does one scan sweep for targets within certain range</span>
<span style="color: #009900;">&#123;</span>
	object target <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// search for nearest target</span>
	<span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> i <span style="color: #339933;">=</span> AlienAnt<span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;=</span> AlienWorm<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		object item <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>i, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">360</span>, <span style="color: #cc66cc;">0</span>, range<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// scan for specific target type</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>item <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #666666; font-style: italic;">// if one found</span>
		<span style="color: #009900;">&#123;</span>
			target <span style="color: #339933;">=</span> item<span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// it becomes the target</span>
			range <span style="color: #339933;">=</span> distance2d<span style="color: #009900;">&#40;</span>position, target.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// only pick up new targets closer than this one</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000000; font-weight: bold;">return</span> target<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h2>Дозаправщик (FieldRefuel)</h2>
<p>Цель этой программы&nbsp;&mdash; увеличить длительность атаки ботами. Очень большое количество энергии тратится на перемещения с поля боя на базу, подзарядку и возвращение обратно. Эта программа позволяет создавать бота, который будет заниматься исключительно дозаправкой всех остальных роботов.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// FieldRefuel -- The purpose of this program is to extend the</span>
<span style="color: #666666; font-style: italic;">// range of attack bots. It takes them too much energy to get</span>
<span style="color: #666666; font-style: italic;">// out in the field to have to go back and refuel, so I just</span>
<span style="color: #666666; font-style: italic;">// let them run as they will and have this program running on</span>
<span style="color: #666666; font-style: italic;">// a dedicated bot all the time.</span>
<span style="color: #666666; font-style: italic;">//</span>
<span style="color: #666666; font-style: italic;">// It runs in conjunction with a public function I have on all</span>
<span style="color: #666666; font-style: italic;">// my bots called FlatGround - when their energy level gets below</span>
<span style="color: #666666; font-style: italic;">// 1/4, they look for the nearest flat spot at least 50 meters</span>
<span style="color: #666666; font-style: italic;">// away from all enemies and goes to sit there to wait for</span>
<span style="color: #666666; font-style: italic;">// refuelling. This prevents the refuel bot from sliding off a</span>
<span style="color: #666666; font-style: italic;">// hillside and botching the switch.</span>
<span style="color: #666666; font-style: italic;">//</span>
<span style="color: #666666; font-style: italic;">// The bot that runs this sits at the power station, and when a</span>
<span style="color: #666666; font-style: italic;">// bot gets to 1/4 energy it goes out to its position. The 2nd</span>
<span style="color: #666666; font-style: italic;">// goto(bot.position) is to compensate for movement between the</span>
<span style="color: #666666; font-style: italic;">// time that it hit the low power mark and found flat ground.</span>
<span style="color: #666666; font-style: italic;">//</span>
<span style="color: #666666; font-style: italic;">// It goes out to the downed bot, swaps cells (it assumes the</span>
<span style="color: #666666; font-style: italic;">// fuel bot is holding 1 full cell at all times), and refuels.</span>
<span style="color: #666666; font-style: italic;">// When it's done, it pulls back off the pad to make room for</span>
<span style="color: #666666; font-style: italic;">// others.</span>
&nbsp;
extern <span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>FieldRefuel<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
&nbsp;
	object power<span style="color: #339933;">=</span>radar<span style="color: #009900;">&#40;</span>PowerStation<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	object bot<span style="color: #339933;">=</span>radar<span style="color: #009900;">&#40;</span>TrackedShooter<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//only watches 1 bot</span>
&nbsp;
	errmode<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	<span style="color: #666666; font-style: italic;">//don't exit on errors</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span>	<span style="color: #666666; font-style: italic;">//infinite loop</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>bot.<span style="color: #006633;">energyCell</span>.<span style="color: #006633;">energyLevel</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">0.26</span><span style="color: #009900;">&#41;</span> <span style="color: #666666; font-style: italic;">//1/4 energy</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>bot.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>bot.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	<span style="color: #666666; font-style: italic;">//movement correction</span>
			drop<span style="color: #009900;">&#40;</span>Behind<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>		<span style="color: #666666; font-style: italic;">//switch cells</span>
			grab<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			turn<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">90</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			drop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			turn<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">90</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			grab<span style="color: #009900;">&#40;</span>Behind<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			drop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			turn<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">90</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			grab<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>power.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	<span style="color: #666666; font-style: italic;">//refuel</span>
			wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">7</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			move<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h2>Муравьеубийца!</h2>
<p>Улучшенная программа для убийства муравьев. Присутствуют баги, так что пользуйтесь аккуратно.</p>
<p>Предназначена для ботов WingedShooters.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">extern <span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>KillAnts<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #666666; font-style: italic;">//preparation</span>
	object ant<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">float</span> angle<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">float</span> sin1<span style="color: #339933;">;</span>
	object repair<span style="color: #339933;">;</span>
	object power<span style="color: #339933;">;</span>
	object ship<span style="color: #339933;">;</span>
&nbsp;
	ant<span style="color: #339933;">=</span>radar<span style="color: #009900;">&#40;</span>AlienAnt<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">//co kdyby tu uz zadnej ant nebyl?</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">//rise 30metres</span>
	<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>altitude<span style="color: #339933;">&lt;</span><span style="color: #cc66cc;">30</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		jet<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	ant<span style="color: #339933;">=</span>radar<span style="color: #009900;">&#40;</span>AlienAnt<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">//main loop</span>
	<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>radar<span style="color: #009900;">&#40;</span>AlienAnt<span style="color: #009900;">&#41;</span><span style="color: #339933;">!=</span><span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>ant<span style="color: #339933;">==</span><span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>temperature<span style="color: #339933;">&gt;</span><span style="color: #cc66cc;">0.8</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>altitude<span style="color: #339933;">!=</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				jet<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
&nbsp;
			wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
&nbsp;
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>shieldLevel<span style="color: #339933;">&lt;</span><span style="color: #cc66cc;">0.5</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			repair<span style="color: #339933;">=</span>radar<span style="color: #009900;">&#40;</span>RepairCenter<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>repair.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>shieldLevel<span style="color: #339933;">&lt;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>energyCell.<span style="color: #006633;">energyLevel</span><span style="color: #339933;">&lt;</span><span style="color: #cc66cc;">0.25</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
&nbsp;
			power<span style="color: #339933;">=</span>radar<span style="color: #009900;">&#40;</span>PowerStation<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>power.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>energyCell.<span style="color: #006633;">energyLevel</span><span style="color: #339933;">&lt;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>altitude<span style="color: #339933;">&lt;</span><span style="color: #cc66cc;">30</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				jet<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>altitude<span style="color: #339933;">&lt;</span><span style="color: #cc66cc;">20</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			jet<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #666666; font-style: italic;">//move 20 metres ?before? ant</span>
		ant<span style="color: #339933;">=</span>radar<span style="color: #009900;">&#40;</span>AlienAnt<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		turn<span style="color: #009900;">&#40;</span>direction<span style="color: #009900;">&#40;</span>ant.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		move<span style="color: #009900;">&#40;</span>distance<span style="color: #009900;">&#40;</span>position,ant.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">20</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">//descent //5 metres above ant</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>altitude<span style="color: #339933;">&gt;</span>ant.<span style="color: #006633;">altitude</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>altitude<span style="color: #339933;">&gt;</span>ant.<span style="color: #006633;">altitude</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				jet<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>altitude<span style="color: #339933;">&lt;</span>ant.<span style="color: #006633;">altitude</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>altitude<span style="color: #339933;">&lt;</span>ant.<span style="color: #006633;">altitude</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				jet<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
		turn<span style="color: #009900;">&#40;</span>direction<span style="color: #009900;">&#40;</span>ant.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #666666; font-style: italic;">//aim!</span>
		angle<span style="color: #339933;">=</span><span style="color: #009900;">&#40;</span>altitude<span style="color: #339933;">*</span>altitude<span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span>distance2d<span style="color: #009900;">&#40;</span>position,ant.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>distance2d<span style="color: #009900;">&#40;</span>position,ant.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		angle<span style="color: #339933;">=</span>sqrt<span style="color: #009900;">&#40;</span>angle<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		sin1<span style="color: #339933;">=</span>distance2d<span style="color: #009900;">&#40;</span>position,ant.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span>angle<span style="color: #339933;">;</span>
		angle<span style="color: #339933;">=</span>acos<span style="color: #009900;">&#40;</span>sin1<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		ant<span style="color: #339933;">=</span>radar<span style="color: #009900;">&#40;</span>AlienAnt<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		turn<span style="color: #009900;">&#40;</span>direction<span style="color: #009900;">&#40;</span>ant.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		aim<span style="color: #009900;">&#40;</span>angle<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		fire<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0.5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
	<span style="color: #009900;">&#125;</span>
&nbsp;
	ship<span style="color: #339933;">=</span>radar<span style="color: #009900;">&#40;</span>SpaceShip<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>ship.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h2>Список item`ов</h2>
<p>Это не совсем программа. Это&nbsp;&mdash; список каждой (!) вещи в colobot, включая такие параметры, как высота и радиус. Включает хорошо написанную документацию, но на английском. Также приведены полезные функции, которые можно использовать при программировании.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">num <span style="color: #339933;">-</span> <span style="color: #009900;">&#91;</span>Tallest <span style="color: #003399;">Point</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>Radi<span style="color: #339933;">-</span>Clearance<span style="color: #009900;">&#93;</span> <span style="color: #003399;">Name</span> 
ie.
### <span style="color: #339933;">-</span> <span style="color: #009900;">&#91;</span>Heigh<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>Radi<span style="color: #339933;">-</span><span style="color: #009900;">&#93;</span> <span style="color: #003399;">Name</span>
<span style="color: #cc66cc;">502</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">02.00</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">02.25</span><span style="color: #009900;">&#93;</span> Alien Ant
&nbsp;
&nbsp;
<span style="color: #000000; font-weight: bold;">If</span> you use the tallest point and radi<span style="color: #339933;">-</span>clearance numbers i suggest 
that you add a few meters to them, these are the absolute 
minimum<span style="color: #009900;">&#40;</span>of the maximum<span style="color: #009900;">&#41;</span> clearances to the next <span style="color: #cc66cc;">1</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">4</span> of a 
meter. <span style="color: #006633;">I</span> used a Winged Flyer to get these measurements so <span style="color: #000000; font-weight: bold;">if</span> your
using a shilder<span style="color: #009900;">&#40;</span>or other large bot<span style="color: #009900;">&#41;</span> you may have to add an 
additional <span style="color: #cc66cc;">1</span> or <span style="color: #cc66cc;">2</span> meters. <span style="color: #006633;">Also</span> <span style="color: #000000; font-weight: bold;">if</span> the object is larger in the 
air than on the ground, the  air measurement is taken at the 
widest part.
&nbsp;
<span style="color: #006633;">How</span> <span style="color: #000000; font-weight: bold;">do</span> you use <span style="color: #000000; font-weight: bold;">this</span> information, just like you would use the name
of an object i.<span style="color: #006633;">e</span>.
&nbsp;
<span style="color: #006633;">Radar</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">5</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">360</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">800</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #666666; font-style: italic;">// is the same as:</span>
Radar<span style="color: #009900;">&#40;</span>BotFactory,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">360</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">800</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// this means you now have a list of EVRYTHING detectable by the Radar</span>
<span style="color: #666666; font-style: italic;">// And all the clearance stats you need to avoid them :P</span>
&nbsp;
&nbsp;
&nbsp;
<span style="color: #cc66cc;">0</span>   <span style="color: #339933;">-</span> <span style="color: #009900;">&#91;</span><span style="color: #339933;">--</span>.<span style="color: #339933;">--</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">--</span>.<span style="color: #339933;">--</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">&lt;--</span> <span style="color: #000000; font-weight: bold;">This</span> is your <span style="color: #000000; font-weight: bold;">new</span> best friend<span style="color: #339933;">!</span>
&nbsp;
Using <span style="color: #cc66cc;">0</span> in a radar command will <span style="color: #000000; font-weight: bold;">return</span> the closest<span style="color: #009900;">&#40;</span>or farthest depending 
what you have your radar command set <span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#41;</span> ITEM OF ANY CATEGORY<span style="color: #339933;">!</span>
&nbsp;
The following example isn’t very practical<span style="color: #009900;">&#40;</span>and my not even work<span style="color: #009900;">&#41;</span>, it<span style="color: #0000ff;">'s 
just a little something to get your mind going.
&nbsp;
You could use this and simply check for lets say any Alien like this:
/---------------------------------------------------------------<span style="color: #000099; font-weight: bold;">\</span>
|object Item;							|
|Item = radar(0,0,360,0,45);					|
|//501 to 505 is Aliens						|
|if((abs(Item.category)&gt;=501)&amp;&amp;(abs(Item.category)&lt;=505))	|
|{								|
|	//Aim the cannon					|
|	fire(0.25);	//Kill it				|
|}								|
<span style="color: #000099; font-weight: bold;">\-</span>--------------------------------------------------------------/
Now I don’t know how practical of an implementation this is but
you get the idea of some uses, i would say that the use of this
&quot;0&quot; would be better suited for avoiding objects rather than trying to 
kill something, because if a bush or tree is closer than the Ant
its going to detect the bush or tree instead. Now I’m sure with 
some thought you can come up with a way to avoid this problem
but hey i have to leave you something to think about :P
&nbsp;
i use &quot;abs(Item.category)&quot; to return the numeric category value
if you just used &quot;Item.category&quot; it would return the name of the object
if it has one, and frankly the Name of the object may work, i 
believe that Colobot sees the name as a numeric value. I just haven’t 
bothered to test that yet.
&nbsp;
============================ Full Listing ============================
### - [Heigh][Radi-] Name; Levels found on and/or more definitions.
======================================================================
0   - [--.--][--.--] Wild Card, it is anything and everything!
&nbsp;
2   - [19.50][32.25] Gantry Crane
3   - [22.50][20.00] Space Ship; Top Width of 8.25 
4   - [08.00][03.00] Derrick
5   - [06.50][06.00] Bot Factory
6   - [03.50][06.00] Power Station
7   - [04.00][05.00] Ore Converter
8   - [05.00][05.25] Repair Center
9   - [07.75][02.75] Defense Tower
10  - [00.00][00.00] Alien Nest; Organic Material/hatchery?, however it is probably holding Orga mater
11  - [05.75][03.75] Research Center
12  - [04.75][02.75] Radar Station
13  - [05.25][04.00] Power Plant; Power Cell Factory
14  - [04.25][05.25] Auto Lab
15  - [10.25][07.00] Nuclear Power Station
16  - [00.00][00.00] Start Area; platform
17  - [00.00][00.00] Goal Area;  platform
18  - [04.75][02.75] Information exchange post
19  - [17.25][06.50] Power Captor
20  - [25.25][07.75] Target &quot;the target stand&quot; (+)==&lt;  looking thing; 03.25 at bace
21  - [00.00][00.00] Target2 &quot;the actual Brass + Target&quot;
22  - [03.75][04.50] Vault
23  - [06.25][18.75] Huston Mission Control
&nbsp;
31  - [01.00][01.50] Titanium Ore
32  - [01.00][01.50] Uranium Ore
33  - [01.00][01.50] Titanium
34  - [01.00][01.50] Power Cell
35  - [01.00][01.50] Nuclear Power Cell
36  - [01.00][01.50] Orga Mater
37  - [01.00][01.50] Black Box
38  - [01.00][01.50] TNT Brick
&nbsp;
50  - [00.00][00.00] green cross   -&gt; energy deposit.
51  - [00.00][00.00] red cross     -&gt; titanium ore.
52  - [00.00][00.00] yellow circle -&gt; uranium ore.
&nbsp;
### - [Heigh][Radi-] Name
&nbsp;
60  - [01.25][02.00] Mine
61  - [01.00][01.75] Firework
63  - [01.00][02.00] Rocket Back Pack
&nbsp;
70  - [01.25][01.75] Plant; Earth, Tropica, Centaury
71  - [01.25][01.75] Plant; Earth, Tropica, Centaury
72  - [01.25][01.75] Plant; Earth, Tropica, Centaury
73  - [01.25][01.75] Plant; Earth, Tropica, Centaury
74  - [01.25][01.75] Plant; Earth, Tropica, Centaury
75  - [00.00][00.00] Small Plant; Tropica
76  - [00.00][00.00] Small Plant; Tropica
77  - [00.00][00.00] Small Plant; Tropica
80  - [05.25][02.75] Large Plant; Tropica
81  - [04.75][02.50] Large Plant; Tropica
82  - [05.25][02.50] Large Plant; Tropica
83  - [05.25][03.00] Large Plant; Tropica
84  - [04.25][02.50] Large Plant; Tropica
85  - [01.25][01.75] Plant; Volcano
86  - [01.25][01.75] Plant; Volcano
87  - [01.25][01.75] Plant, Tall; Volcano
88  - [01.25][01.75] Plant; Volcano
89  - [01.25][01.75] Plant; Volcano
90  - [07.75][01.75] Tree; Earth
91  - [10.00][02.50] Tree; Earth
92  - [09.50][02.75] Tree; Earth
93  - [08.25][03.75] Tree; Earth
&nbsp;
### - [Heigh][Radi-] Name
&nbsp;
100 - [02.25][02.50] Practice Bot
&nbsp;
110 - [02.50][02.50] Wheeled Grabber
111 - [02.50][02.50] Tracked Grabber
112 - [02.50][02.50] Winged Grabber
113 - [02.50][02.50] Legged Grabber
&nbsp;
120 - [02.50][02.50] Wheeled Shooter
121 - [02.50][02.50] Tracked Shooter
122 - [02.50][02.50] Winged Shooter
123 - [02.50][02.50] Legged Shooter
&nbsp;
130 - [02.50][02.50] Wheeled Orga Shooter
131 - [02.50][02.50] Tracked Orga Shooter
132 - [02.50][02.50] Winged Orga Shooter
133 - [02.50][02.50] Legged Orga Shooter
&nbsp;
140 - [02.50][02.50] Wheeled Sniffer
141 - [02.50][02.50] Tracked Sniffer
142 - [02.50][02.50] Winged Sniffer
143 - [02.50][02.50] Legged Sniffer
&nbsp;
200 - [03.00][03.00] Thumper
201 - [03.25][03.00] Phazer Shooter35
202 - [03.50][03.00] Recycler
203 - [04.50][03.00] Shielder; Height 3.00 when not active
210 - [02.50][02.50] Subber
211 - [02.25][02.50] Target Bot
250 - [00.00][00.00] Way Point
&nbsp;
### - [Heigh][Radi-] Name
&nbsp;
260 - [00.00][00.00] Blue Flag
261 - [00.00][00.00] Red Flag
262 - [00.00][00.00] Green Flag
263 - [00.00][00.00] Yellow Flag
264 - [00.00][00.00] Purple Flag
270 - [01.00][01.50] KeyA - Blue
271 - [01.00][01.50] KeyB - Red
272 - [01.00][01.50] KeyC - Green
273 - [01.00][01.50] KeyD - Yellow
&nbsp;
300 - [02.00][01.75] Me
302 - [02.00][01.75] Tech (looks a lot like &quot;Me&quot; in some levels)
400 - [01.50][02.25] Barrier-Short; 1.5 width (about radi-of bot)
401 - [01.50][03.50] Barrier-Long; 1.5 width (about radi-of bot)
&nbsp;
500 - [07.25][06.25] Alien Queen
501 - [02.00][02.25] Alien Egg
502 - [02.00][02.25] Alien Ant
503 - [01.25][02.00] Alien Spider
504 - [02.25][02.25] Alien Wasp
505 - [00.00][00.00] Alien Worm
&nbsp;
600 - [02.50][03.00] A Wreckage wild card! for Recyclables
/* All Wreckage'</span>s are all <span style="color: #cc66cc;">600</span>, the <span style="color: #cc66cc;">60</span>_ is the .<span style="color: #006633;">category</span>
<span style="color: #cc66cc;">600</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">01.75</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">02.00</span><span style="color: #009900;">&#93;</span> Wreckage<span style="color: #339933;">;</span> Whelled Grabber, Recyclable
<span style="color: #cc66cc;">601</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">01.50</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">02.00</span><span style="color: #009900;">&#93;</span> Wreckage<span style="color: #339933;">;</span> Sunken Whelled Grabber, Recyclable
<span style="color: #cc66cc;">602</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">02.00</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">03.00</span><span style="color: #009900;">&#93;</span> Wreckage<span style="color: #339933;">;</span> Tracked Shooter, Recyclable
<span style="color: #cc66cc;">603</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">02.00</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">03.00</span><span style="color: #009900;">&#93;</span> Wreckage<span style="color: #339933;">;</span> Sunken Tracked Shooter, Recyclable
<span style="color: #cc66cc;">603</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">02.25</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">02.50</span><span style="color: #009900;">&#93;</span> Wreckage<span style="color: #339933;">;</span> Sunken Recyceler, Recyclable
<span style="color: #cc66cc;">605</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">02.50</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">02.50</span><span style="color: #009900;">&#93;</span> Wreckage<span style="color: #339933;">;</span> Recyceler, Recyclable
<span style="color: #339933;">*/</span>
<span style="color: #cc66cc;">606</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">04.00</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">06.00</span><span style="color: #009900;">&#93;</span> Ruin<span style="color: #339933;">;</span> Bot Factory
<span style="color: #cc66cc;">607</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">01.50</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">02.25</span><span style="color: #009900;">&#93;</span> Ruin<span style="color: #339933;">;</span> Ore Converter Door
<span style="color: #cc66cc;">608</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">01.25</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">02.00</span><span style="color: #009900;">&#93;</span> Ruin<span style="color: #339933;">;</span> Support, C shaped hunk of mettel
<span style="color: #cc66cc;">609</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">01.50</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">02.25</span><span style="color: #009900;">&#93;</span> Ruin<span style="color: #339933;">;</span> Brick like, Radar Station Base
<span style="color: #cc66cc;">610</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">01.25</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">05.00</span><span style="color: #009900;">&#93;</span> Ruin<span style="color: #339933;">;</span> Ore Converter
<span style="color: #cc66cc;">611</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">08.75</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">13.25</span><span style="color: #009900;">&#93;</span> Ruin<span style="color: #339933;">;</span> Space Ship Bace
<span style="color: #cc66cc;">612</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">09.50</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">08.50</span><span style="color: #009900;">&#93;</span> Ruin<span style="color: #339933;">;</span> Space Ship Top
&nbsp;
<span style="color: #cc66cc;">700</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">02.00</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">02.00</span><span style="color: #009900;">&#93;</span> Crystal<span style="color: #339933;">;</span> Crystalium
<span style="color: #cc66cc;">701</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">02.50</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">02.50</span><span style="color: #009900;">&#93;</span> Crystal<span style="color: #339933;">;</span> Crystalium
<span style="color: #cc66cc;">702</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">03.50</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">02.75</span><span style="color: #009900;">&#93;</span> Crystal<span style="color: #339933;">;</span> Crystalium
<span style="color: #cc66cc;">703</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">06.00</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">04.50</span><span style="color: #009900;">&#93;</span> Crystal<span style="color: #339933;">;</span> Crystalium
&nbsp;
<span style="color: #cc66cc;">710</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">06.00</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">04.25</span><span style="color: #009900;">&#93;</span> Green Mega Stalk<span style="color: #339933;">;</span> Stranve Plant, Small
<span style="color: #cc66cc;">711</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">07.50</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">03.50</span><span style="color: #009900;">&#93;</span> Green Mega Stalk<span style="color: #339933;">;</span> Stranve Plant, Small
<span style="color: #cc66cc;">712</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">06.25</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">03.25</span><span style="color: #009900;">&#93;</span> Green Mega Stalk<span style="color: #339933;">;</span> Stranve Plant, Small
<span style="color: #cc66cc;">713</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">08.75</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">05.25</span><span style="color: #009900;">&#93;</span> Green Mega Stalk<span style="color: #339933;">;</span> Stranve Plant, Med
<span style="color: #cc66cc;">714</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">12.50</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">07.25</span><span style="color: #009900;">&#93;</span> Green Mega Stalk<span style="color: #339933;">;</span> Stranve Plant, Large
<span style="color: #cc66cc;">715</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">12.50</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">07.25</span><span style="color: #009900;">&#93;</span> Green Mega Stalk<span style="color: #339933;">;</span> Stranve Plant, Large with Green Shield like apperatice
<span style="color: #cc66cc;">715</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#91;</span><span style="color: #339933;">--</span>.<span style="color: #339933;">--</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">22.00</span><span style="color: #009900;">&#93;</span> #<span style="color: #cc66cc;">715</span><span style="color: #0000ff;">'s Green Shield (affects flyers ability to fly); you cannot fly over it
&nbsp;
731 - [02.50][02.00] Mushroom; non corrosive
732 - [02.50][02.00] Mushroom; corrosive
&nbsp;
900 - [04.00][05.02] Lunar Lander; Derelict of Apollo Mission
901 - [02.05][03.25] Lunar Roving Vehicle
902 - [00.00][00.00] American flag; Derelict of Apollo Mission
903 - [01.75][01.75] Inverted Satelite Dish; Derelict of Apollo Mission
904 - [02.75][02.00] Satelite Dish; Derelict of Apollo Mission
910 - [04.50][03.75] Home
&nbsp;
### - [Heigh][Radi-] Name
&nbsp;
-If you have any additions to this list please let me know at 
	RossK_WC2@hotmail.com
	Aim: Ens1747
	ICQ: 1747522
&nbsp;
====================================================
And incase if your wondering how i extracted this data, here you go:
-----------------------------------------------------------------------------------
//Outputs all objects on the map to a file
//Note: Wrecks are all 600 no mater what .category
extern void object::FindNewItems() // This prossess takes some time
{
	file filSearch();
	object Named;
&nbsp;
	//File is output to &quot;...<span style="color: #000099; font-weight: bold;">\C</span>olobot<span style="color: #000099; font-weight: bold;">\f</span>iles<span style="color: #000099; font-weight: bold;">\S</span>earch.txt&quot;
	filSearch.open(&quot;Search.txt&quot;, &quot;w&quot;);
	for(int I=1; I&lt;=1000; I++)
	{
		Named = radar(I);
		if(Named!=null)
		{
			filSearch.writeln(&quot;&quot; + I + &quot; - &quot; + Named.category);
		}
	}
&nbsp;
	filSearch.close();
}
-----------------------------------------------------------------------------------
// just pull your bot up to an object and run this app, search for the largest 
// result by circling the Object and probing from difrent directions
&nbsp;
extern void object::ObjectLookUp()
{
	object Named;
&nbsp;
	Named = radar(0,0,90,0,10);	//useing radar(0,..) for wildcard, it'</span>ll detect anything
	<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>Named <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Dist From (&quot;</span> <span style="color: #339933;">+</span> Named.<span style="color: #006633;">category</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;, &quot;</span> <span style="color: #339933;">+</span> abs<span style="color: #009900;">&#40;</span>Named.<span style="color: #006633;">category</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;): &quot;</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>distance2d<span style="color: #009900;">&#40;</span>position, Named.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
<span style="color: #339933;">-----------------------------------------------------------------------------------</span>
extern <span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>ObjectLookAllUp<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	object Named<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">float</span> fltGole<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">int</span> j<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> i<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>i<span style="color: #339933;">&lt;=</span><span style="color: #cc66cc;">1000</span><span style="color: #339933;">;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		Named <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>i,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">90</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>Named <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			fltGole<span style="color: #009900;">&#91;</span>j<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> i<span style="color: #339933;">;</span>
			message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Dist From (&quot;</span> <span style="color: #339933;">+</span> Named.<span style="color: #006633;">category</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;, &quot;</span> <span style="color: #339933;">+</span> abs<span style="color: #009900;">&#40;</span>Named.<span style="color: #006633;">category</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;): &quot;</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>distance2d<span style="color: #009900;">&#40;</span>position, Named.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
	message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;All that worked: &quot;</span> <span style="color: #339933;">+</span> fltGole<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #339933;">-----------------------------------------------------------------------------------</span>
<span style="color: #666666; font-style: italic;">//If you dont understand this i have nothing to say :P</span>
<span style="color: #666666; font-style: italic;">//Fly above the object so you can just move freely</span>
extern <span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>HowHigh<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>	
<span style="color: #009900;">&#123;</span>
	object Named<span style="color: #339933;">;</span>
&nbsp;
	Named <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">360</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	<span style="color: #666666; font-style: italic;">//useing radar(0,..) for wildcard, it'll detect anything</span>
	message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Elevation: &quot;</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>position.<span style="color: #006633;">z</span><span style="color: #339933;">-</span>topo<span style="color: #009900;">&#40;</span>Named.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #339933;">-----------------------------------------------------------------------------------</span>
<span style="color: #666666; font-style: italic;">//Marks closest object of type ### with a waypoint to make it easy to find.</span>
extern <span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>MarkUnknows<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	object objWhat<span style="color: #339933;">;</span>
	objWhat<span style="color: #339933;">=</span>radar<span style="color: #009900;">&#40;</span>###<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	<span style="color: #666666; font-style: italic;">//Put In Desired Object Number</span>
	produce<span style="color: #009900;">&#40;</span>objWhat.<span style="color: #006633;">position</span>, <span style="color: #cc66cc;">0</span>, WayPoint, <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h2>Новый радар!</h2>
<p>Улучшенная версия процедуры radar (). Позволяет находить все на карте. Не нужно строительство отдельного здания для этого.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">extern <span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>main<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	object item<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">int</span> i<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
	item <span style="color: #339933;">=</span> retobject<span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">//item =newradar(PhazerShooter,0,360,0,1000,1);</span>
	<span style="color: #666666; font-style: italic;">//goto(space(item.position));</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">//goto(space(item.position));</span>
		message<span style="color: #009900;">&#40;</span>item.<span style="color: #006633;">category</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0.2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		i<span style="color: #339933;">++;</span>
		item <span style="color: #339933;">=</span> retobject<span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> object object<span style="color: #339933;">::</span>newradar<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> category, <span style="color: #000066; font-weight: bold;">float</span> angle, <span style="color: #000066; font-weight: bold;">float</span> focus, <span style="color: #000066; font-weight: bold;">float</span> min, <span style="color: #000066; font-weight: bold;">float</span> max,<span style="color: #000066; font-weight: bold;">float</span> way<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	ipf<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1800</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	object currect<span style="color: #339933;">=</span>retobject<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	object itemx<span style="color: #339933;">=</span><span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">int</span> i<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">int</span> needdistance<span style="color: #339933;">;</span>
	bool checkfornomtems <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//1 to check for no possition items //else don't</span>
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>way <span style="color: #339933;">==</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		needdistance <span style="color: #339933;">=</span> min <span style="color: #339933;">-</span> <span style="color: #cc66cc;">0.01</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000000; font-weight: bold;">else</span> needdistance <span style="color: #339933;">=</span> max <span style="color: #339933;">+</span> <span style="color: #cc66cc;">0.01</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">do</span>
	<span style="color: #009900;">&#123;</span>
		i<span style="color: #339933;">++;</span> 
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>currect.<span style="color: #006633;">category</span> <span style="color: #339933;">==</span> category<span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>position.<span style="color: #006633;">x</span> <span style="color: #339933;">!=</span> nan<span style="color: #009900;">&#41;</span> or <span style="color: #009900;">&#40;</span>checkfornomtems <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				<span style="color: #000066; font-weight: bold;">float</span> dis <span style="color: #339933;">=</span> direction<span style="color: #009900;">&#40;</span>currect.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> angle<span style="color: #339933;">;</span>
				<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>dis <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
				<span style="color: #009900;">&#123;</span>
					dis <span style="color: #339933;">=</span> <span style="color: #339933;">-</span>dis<span style="color: #339933;">;</span> 
				<span style="color: #009900;">&#125;</span>
				<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>dis <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">180</span><span style="color: #009900;">&#41;</span>
				<span style="color: #009900;">&#123;</span>
					dis <span style="color: #339933;">=</span> <span style="color: #cc66cc;">360</span> <span style="color: #339933;">-</span> dis<span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
				<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>distance<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">position</span>,currect.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;=</span> min<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span>distance<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">position</span>,currect.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;=</span> max<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span>distance<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">position</span>,currect.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> way<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;</span> <span style="color: #009900;">&#40;</span>needdistance <span style="color: #339933;">*</span> way<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>  <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span>dis <span style="color: #339933;">&lt;=</span> focus <span style="color: #339933;">/</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
				<span style="color: #009900;">&#123;</span>
&nbsp;
					itemx<span style="color: #339933;">=</span>currect<span style="color: #339933;">;</span>
					needdistance <span style="color: #339933;">=</span> distance<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">position</span>,currect.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
		currect<span style="color: #339933;">=</span>retobject<span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>currect <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	ipf<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">200</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">return</span> itemx<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h2>Автоперезарядка башен</h2>
<p>Для роботов WeeledGrabber (или TrackedGrabber). Отличная программа, решающая проблему перезарядки башен. Роботы будут стоять и сканировать уровень заряда всех башен. Как только уровень падает до 1/3 бот приедит к башне, перезарядит батарейку, а пустую отвезет на станцию перезарядки. Программа протестирована на 3 башнях. ;-)</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">extern <span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>advChargeTowers<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	object tower, battery<span style="color: #339933;">;</span>
	object power<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">int</span> a<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">float</span> dist<span style="color: #339933;">;</span>
	errmode<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>load<span style="color: #339933;">!=</span><span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		drop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #009900;">&#125;</span>
	dist<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>energyCell.<span style="color: #006633;">energyLevel</span><span style="color: #339933;">&lt;</span><span style="color: #cc66cc;">0.3</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			power<span style="color: #339933;">=</span>radar<span style="color: #009900;">&#40;</span>PowerStation<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			a<span style="color: #339933;">=</span><span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>power.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>a<span style="color: #339933;">!=</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;please free way to the Power Station!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000000; font-weight: bold;">return</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span>energyCell.<span style="color: #006633;">energyLevel</span><span style="color: #339933;">!=</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		tower<span style="color: #339933;">=</span>radar<span style="color: #009900;">&#40;</span>DefenseTower,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">360</span>,dist<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>tower<span style="color: #339933;">==</span><span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			dist<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
			tower<span style="color: #339933;">=</span>radar<span style="color: #009900;">&#40;</span>DefenseTower,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">360</span>,dist<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>tower.<span style="color: #006633;">energyCell</span>.<span style="color: #006633;">energyLevel</span><span style="color: #339933;">&lt;</span><span style="color: #cc66cc;">0.3</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			battery<span style="color: #339933;">=</span>radar<span style="color: #009900;">&#40;</span>PowerCell,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">360</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>battery<span style="color: #339933;">==</span><span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;No batteries :-(&quot;</span>,DisplayWarning<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>battery.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			grab<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>load.<span style="color: #006633;">energyLevel</span><span style="color: #339933;">!=</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				power<span style="color: #339933;">=</span>radar<span style="color: #009900;">&#40;</span>PowerStation<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				a<span style="color: #339933;">=</span><span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>power.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>a<span style="color: #339933;">!=</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
					message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;please free way to the Power Station!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #000000; font-weight: bold;">return</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
				<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span>load.<span style="color: #006633;">energyLevel</span><span style="color: #339933;">!=</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
					wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span>
			<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>tower.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			drop<span style="color: #009900;">&#40;</span>Behind<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			grab<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			turn<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">90</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			drop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			turn<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">90</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			grab<span style="color: #009900;">&#40;</span>Behind<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			drop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #666666; font-style: italic;">//SwitchCell1();</span>
			<span style="color: #666666; font-style: italic;">//break;</span>
			turn<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">90</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			grab<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			power<span style="color: #339933;">=</span>radar<span style="color: #009900;">&#40;</span>PowerStation<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			a<span style="color: #339933;">=</span><span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>power.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>a<span style="color: #339933;">!=</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;please free way to the Power Station!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000000; font-weight: bold;">return</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span>load.<span style="color: #006633;">energyLevel</span><span style="color: #339933;">!=</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>space<span style="color: #009900;">&#40;</span>position,<span style="color: #cc66cc;">5</span>,<span style="color: #cc66cc;">25</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			drop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
		<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
			dist<span style="color: #339933;">=</span>distance<span style="color: #009900;">&#40;</span>tower.<span style="color: #006633;">position</span>,position<span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></div></div>

<h2>Радароупроститель!</h2>
<p>Класс, упрощающий работу с радаром. Теперь нет необходимости в запоминании множества кодов, а можно использовать красивые константы.</p>
<p>Пример использования:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">   object item<span style="color: #339933;">;</span>
   otherCategories otherCats<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  <span style="color: #666666; font-style: italic;">// Создаем экземпляр класса.</span>
&nbsp;
   item <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>otherCats.<span style="color: #006633;">Mushroom1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// Ищем ближайший объект (Mushroom)</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> otherCategories
<span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> Firework <span style="color: #339933;">=</span> <span style="color: #cc66cc;">61</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> Bag <span style="color: #339933;">=</span> <span style="color: #cc66cc;">63</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> Greenery0 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">70</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> Greenery1 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">71</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> Greenery2 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">72</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> Greenery3 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">73</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> Greenery4 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">74</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> Greenery5 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">75</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> Greenery6 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">76</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> Greenery7 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">77</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> Greenery10 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">80</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> Greenery11 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">81</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> Greenery12 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">82</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> Greenery13 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">83</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> Greenery14 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">84</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> Greenery15 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">85</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> Greenery16 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">86</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> Greenery17 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">87</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> Greenery18 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">88</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> Greenery19 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">89</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> Tree0 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">90</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> Tree1 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">91</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> Tree2 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">92</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> Tree3 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">93</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> RuinBotFactory <span style="color: #339933;">=</span> <span style="color: #cc66cc;">606</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> RuinDoor <span style="color: #339933;">=</span> <span style="color: #cc66cc;">607</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> RuinSupport <span style="color: #339933;">=</span> <span style="color: #cc66cc;">608</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> RuinRadar <span style="color: #339933;">=</span> <span style="color: #cc66cc;">609</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> RuinConvert <span style="color: #339933;">=</span> <span style="color: #cc66cc;">610</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> RuinBaseCamp <span style="color: #339933;">=</span> <span style="color: #cc66cc;">611</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> RuinHeadCamp <span style="color: #339933;">=</span> <span style="color: #cc66cc;">612</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> Quartz0 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">700</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> Quartz1 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">701</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> Quartz2 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">702</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> Quartz3 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">703</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> Mushroom1 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">731</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> Mushroom2 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">732</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> MegaStalk0 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">710</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> MegaStalk1 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">711</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> MegaStalk2 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">712</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> MegaStalk3 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">713</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> MegaStalk4 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">714</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> MegaStalk5 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">715</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> ApolloLEM <span style="color: #339933;">=</span> <span style="color: #cc66cc;">900</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> ApolloJeep <span style="color: #339933;">=</span> <span style="color: #cc66cc;">901</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> ApolloFlag <span style="color: #339933;">=</span> <span style="color: #cc66cc;">902</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> ApolloModule <span style="color: #339933;">=</span> <span style="color: #cc66cc;">903</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> ApolloAntenna <span style="color: #339933;">=</span> <span style="color: #cc66cc;">904</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> Home <span style="color: #339933;">=</span> <span style="color: #cc66cc;">910</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h2>Робот-гувернантка</h2>
<p>Для робота Winged (желательно). Робот занимается тем, что мониторит других ботов, и заменяет им батарейки, если у них заряд упал ниже определенной величины(настраивается в константах). Разряженные батарейки автоматически доставляет в центр перезарядки.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// (c) Minhiriath Condravox 2002</span>
<span style="color: #666666; font-style: italic;">// Harvests a number of categories of objects and stores them at </span>
<span style="color: #666666; font-style: italic;">// predetermined storage sites.</span>
<span style="color: #666666; font-style: italic;">// Automatically restores energy if drops below fENERGYLOW.</span>
<span style="color: #666666; font-style: italic;">// Automatically repairs shields if drops below fSHIELDLOW.</span>
extern <span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>Harvest<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">float</span> fSHIELDLOW<span style="color: #339933;">=</span><span style="color: #cc66cc;">0.50</span>, fENERGYLOW<span style="color: #339933;">=</span><span style="color: #cc66cc;">0.25</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">int</span> iDROPTURN <span style="color: #339933;">=</span> <span style="color: #cc66cc;">4</span>, iMAXHARVESTPRG <span style="color: #339933;">=</span> <span style="color: #cc66cc;">4</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000066; font-weight: bold;">int</span> iHarvestPRG<span style="color: #009900;">&#91;</span>iMAXHARVESTPRG<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#93;</span>, i<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
	iHarvestPRG<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> Titanium<span style="color: #339933;">;</span>
	iHarvestPRG<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> SpaceShip<span style="color: #339933;">;</span>
	iHarvestPRG<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">15</span><span style="color: #339933;">;</span>
	iHarvestPRG<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> PowerCell<span style="color: #339933;">;</span>
	iHarvestPRG<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> PowerStation<span style="color: #339933;">;</span>
	iHarvestPRG<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">5</span><span style="color: #339933;">;</span>
	iHarvestPRG<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> NuclearCell<span style="color: #339933;">;</span>
	iHarvestPRG<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> PowerStation<span style="color: #339933;">;</span>
	iHarvestPRG<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">5</span><span style="color: #339933;">;</span>
	iHarvestPRG<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> TitaniumOre<span style="color: #339933;">;</span>
	iHarvestPRG<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> Converter<span style="color: #339933;">;</span>
	iHarvestPRG<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">5</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">int</span> iHarvestPRGNr <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
&nbsp;
	object oHarvestItem<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">int</span> iErrCode, iCount, iNrHarvests <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">boolean</span> bPaused <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">// Check energy and shields</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> CheckAndRepowerEnergy<span style="color: #009900;">&#40;</span>fENERGYLOW<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> CheckAndRepowerShields<span style="color: #009900;">&#40;</span>fSHIELDLOW<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// Find closest harvest item at at least range x from store site and get it</span>
		oHarvestItem <span style="color: #339933;">=</span> FindHarvestObject<span style="color: #009900;">&#40;</span>iHarvestPRG<span style="color: #009900;">&#91;</span>iHarvestPRGNr<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span>, iHarvestPRG<span style="color: #009900;">&#91;</span>iHarvestPRGNr<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span>, iHarvestPRG<span style="color: #009900;">&#91;</span>iHarvestPRGNr<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> oHarvestItem<span style="color: #339933;">!=</span><span style="color: #000066; font-weight: bold;">null</span> <span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #666666; font-style: italic;">// Go to harvest item</span>
			errmode<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>oHarvestItem.<span style="color: #006633;">position</span>, <span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">&lt;</span><span style="color: #cc66cc;">1</span> <span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				<span style="color: #666666; font-style: italic;">// Grab </span>
				<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>grab<span style="color: #009900;">&#40;</span>InFront<span style="color: #009900;">&#41;</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> iNrHarvests<span style="color: #339933;">++;</span> <span style="color: #009900;">&#125;</span>
				<span style="color: #000000; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span> message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Harvester bot couldn't get object!&quot;</span>, DisplayError<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
				errmode<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
				<span style="color: #666666; font-style: italic;">// Recheck if there is a object held</span>
				<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>load <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
				<span style="color: #009900;">&#123;</span>
					<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> CheckAndRepowerEnergy<span style="color: #009900;">&#40;</span>fENERGYLOW<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
					<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> CheckAndRepowerShields<span style="color: #009900;">&#40;</span>fSHIELDLOW<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
&nbsp;
					<span style="color: #666666; font-style: italic;">// find store site and return to it with object</span>
					<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> FindAndMoveToObject<span style="color: #009900;">&#40;</span>iHarvestPRG<span style="color: #009900;">&#91;</span>iHarvestPRGNr<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span>, <span style="color: #cc66cc;">0</span>, iHarvestPRG<span style="color: #009900;">&#91;</span>iHarvestPRGNr<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">&gt;</span><span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span>
					<span style="color: #009900;">&#123;</span>
						message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Harvester bot unable to reach store site!&quot;</span>, DisplayError<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						<span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
					<span style="color: #009900;">&#125;</span>
&nbsp;
					<span style="color: #666666; font-style: italic;">// Wait for power or nuclear cell to reload</span>
					<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>iHarvestPRG<span style="color: #009900;">&#91;</span>iHarvestPRGNr<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span>PowerStation<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>load.<span style="color: #006633;">category</span><span style="color: #339933;">==</span>PowerCell<span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #009900;">&#40;</span>load.<span style="color: #006633;">category</span><span style="color: #339933;">==</span>NuclearCell<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
					    <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span>load.<span style="color: #006633;">energyLevel</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">1.0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
&nbsp;
					<span style="color: #666666; font-style: italic;">// Try to drop object or rotate until empty spot found</span>
					DropItem<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
					<span style="color: #666666; font-style: italic;">// Take distance while converting TitaniumOre and get Titanium out</span>
					<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span>iHarvestPRG<span style="color: #009900;">&#91;</span>iHarvestPRGNr<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span>TitaniumOre<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span>iHarvestPRG<span style="color: #009900;">&#91;</span>iHarvestPRGNr<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span>Converter<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
					<span style="color: #009900;">&#123;</span>
						move<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">15</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
						move<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  grab<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  
						turn<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">180</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  move<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">6</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						DropItem<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #009900;">&#125;</span>
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span>
			<span style="color: #000000; font-weight: bold;">else</span>
			<span style="color: #009900;">&#123;</span>
				message<span style="color: #009900;">&#40;</span>oHarvestItem.<span style="color: #006633;">position</span><span style="color: #339933;">+</span><span style="color: #0000ff;">&quot; from &quot;</span><span style="color: #339933;">+</span>position<span style="color: #339933;">+</span><span style="color: #0000ff;">&quot;!&quot;</span>, DisplayError<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			errmode<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">else</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #666666; font-style: italic;">// Display amount of type harvested.</span>
			<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>iNrHarvests <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Harvested total of &quot;</span><span style="color: #339933;">+</span>iNrHarvests<span style="color: #339933;">+</span><span style="color: #0000ff;">&quot; &quot;</span><span style="color: #339933;">+</span>iHarvestPRG<span style="color: #009900;">&#91;</span>iHarvestPRGNr<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">+</span><span style="color: #0000ff;">&quot;.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
&nbsp;
			<span style="color: #666666; font-style: italic;">// Start harvesting next type</span>
			iHarvestPRGNr<span style="color: #339933;">++;</span>
			<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>iHarvestPRGNr <span style="color: #339933;">&gt;=</span> iMAXHARVESTPRG<span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				iHarvestPRGNr <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Switched to harvesting &quot;</span><span style="color: #339933;">+</span>iHarvestPRG<span style="color: #009900;">&#91;</span>iHarvestPRGNr<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">+</span><span style="color: #0000ff;">&quot;.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			iNrHarvests <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
	message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Harvester bot stopped harvesting!&quot;</span>, DisplayError<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Find nearest object of category iDestCat and move towards object if found.</span>
<span style="color: #666666; font-style: italic;">// Doesn't move if destination is less than iMinRange away.</span>
<span style="color: #666666; font-style: italic;">// Returns error codes : </span>
<span style="color: #666666; font-style: italic;">// 0    object found and reached</span>
<span style="color: #666666; font-style: italic;">// 1    object found but not reached</span>
<span style="color: #666666; font-style: italic;">// 2    object not found</span>
<span style="color: #000066; font-weight: bold;">int</span> object<span style="color: #339933;">::</span>FindAndMoveToObject<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> iDestCat, <span style="color: #000066; font-weight: bold;">int</span> iMinRange, <span style="color: #000066; font-weight: bold;">int</span> iMinDist<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">int</span> iErrCode <span style="color: #339933;">=</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
	object oDest<span style="color: #339933;">;</span>
&nbsp;
	errmode<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span>oDest <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>iDestCat, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">360</span>, iMinRange<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> distance2d<span style="color: #009900;">&#40;</span>position, oDest.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">&gt;</span>iMinDist <span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>oDest.<span style="color: #006633;">position</span>, <span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> iErrCode <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
			<span style="color: #000000; font-weight: bold;">else</span>                                <span style="color: #009900;">&#123;</span> iErrCode <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span> iErrCode <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000000; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span> iErrCode <span style="color: #339933;">=</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
	errmode<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">return</span><span style="color: #009900;">&#40;</span>iErrCode<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Checks bot energy cell power level and repowers at nearest PowerStation if </span>
<span style="color: #666666; font-style: italic;">// dropped below fEnergyLow.</span>
<span style="color: #666666; font-style: italic;">// Returns error codes:</span>
<span style="color: #666666; font-style: italic;">// -1    energy above fEnergyLow</span>
<span style="color: #666666; font-style: italic;">//  0    energy restored successfully</span>
<span style="color: #666666; font-style: italic;">//  1    energy needs restoring but couldn't reach PowerStation</span>
<span style="color: #666666; font-style: italic;">//  2    energy needs restoring but no PowerStation found</span>
<span style="color: #000066; font-weight: bold;">int</span> object<span style="color: #339933;">::</span>CheckAndRepowerEnergy<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">float</span> fEnergyLow<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	object oPowerStation<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">int</span> iErrCode<span style="color: #339933;">=-</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// Automatically repower energy if low</span>
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>energyCell.<span style="color: #006633;">energyLevel</span> <span style="color: #339933;">&lt;</span> fEnergyLow<span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Harvester bot recharging.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		iErrCode <span style="color: #339933;">=</span> FindAndMoveToObject<span style="color: #009900;">&#40;</span>PowerStation, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">switch</span> <span style="color: #009900;">&#40;</span>iErrCode<span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">0</span> <span style="color: #339933;">:</span>
			    <span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span>energyCell.<span style="color: #006633;">energyLevel</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">1.0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			    <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">1</span> <span style="color: #339933;">:</span>
			    message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Harvester bot en route to PowerStation - can't get there!&quot;</span>, DisplayWarning<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			    FindAndMoveToObject<span style="color: #009900;">&#40;</span>SpaceShip, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			    <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">2</span> <span style="color: #339933;">:</span>
			    message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Harvester bot recharging - can't find PowerStation!&quot;</span>, DisplayWarning<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			    FindAndMoveToObject<span style="color: #009900;">&#40;</span>SpaceShip, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			    <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #009900;">&#40;</span>iErrCode<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Checks bot shields and repowers at nearest RepairCenter if dropped below fShieldLow.</span>
<span style="color: #000066; font-weight: bold;">int</span> object<span style="color: #339933;">::</span>CheckAndRepowerShields<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">float</span> fShieldLow<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	object oRepairCenter<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">int</span> iErrCode<span style="color: #339933;">=-</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// Auto repair if shield low</span>
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>shieldLevel <span style="color: #339933;">&lt;</span> fShieldLow<span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Harvester bot repairing!&quot;</span>, DisplayWarning<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		iErrCode <span style="color: #339933;">=</span> FindAndMoveToObject<span style="color: #009900;">&#40;</span>RepairCenter, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">switch</span> <span style="color: #009900;">&#40;</span>iErrCode<span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">0</span> <span style="color: #339933;">:</span>
			    <span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span>shieldLevel <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">1.0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			    <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">1</span> <span style="color: #339933;">:</span>
			    message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Harvester bot en route to RepairCenter - can't get there!&quot;</span>, DisplayWarning<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			    FindAndMoveToObject<span style="color: #009900;">&#40;</span>SpaceShip, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			    <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">2</span> <span style="color: #339933;">:</span>
			    message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Harvester bot recharging - can't find RepairCenter!&quot;</span>, DisplayWarning<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			    FindAndMoveToObject<span style="color: #009900;">&#40;</span>SpaceShip, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			    <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #009900;">&#40;</span>iErrCode<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Find nearest harvestable iFindCat object at least fStoreSize away from iStoreSiteCat</span>
object object<span style="color: #339933;">::</span>FindHarvestObject<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> iFindCat, <span style="color: #000066; font-weight: bold;">int</span> iStoreSiteCat, <span style="color: #000066; font-weight: bold;">float</span> fStoreSize<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	object oStoreSite<span style="color: #339933;">=</span>radar<span style="color: #009900;">&#40;</span>iStoreSiteCat<span style="color: #009900;">&#41;</span>, oFind<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">int</span> iMinDist <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>oStoreSite<span style="color: #339933;">!=</span><span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">do</span>
		<span style="color: #009900;">&#123;</span>
			oFind <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>iFindCat, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">360</span>, iMinDist<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>oFind<span style="color: #339933;">!=</span><span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> distance2d<span style="color: #009900;">&#40;</span>oStoreSite.<span style="color: #006633;">position</span>, oFind.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">&lt;</span>fStoreSize <span style="color: #009900;">&#41;</span>
				<span style="color: #009900;">&#123;</span>
					oFind<span style="color: #339933;">=</span><span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
					iMinDist<span style="color: #339933;">++;</span>
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span>
			<span style="color: #000000; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span>oFind<span style="color: #339933;">==</span><span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span>iMinDist <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">1000</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000000; font-weight: bold;">else</span>
	<span style="color: #009900;">&#123;</span>
		message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Can't store at &quot;</span><span style="color: #339933;">+</span>iStoreSiteCat<span style="color: #339933;">+</span><span style="color: #0000ff;">&quot; - not present.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		oFind<span style="color: #339933;">=</span><span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #009900;">&#40;</span>oFind<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Try to drop object or rotate until empty spot found</span>
<span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>DropItem<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">int</span> iDROPTURN <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">int</span> iCount <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span>, iErrCode <span style="color: #339933;">=</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
&nbsp;
	errmode<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span>drop<span style="color: #009900;">&#40;</span>InFront<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span> <span style="color: #009900;">&#40;</span>iCount <span style="color: #339933;">&lt;</span><span style="color: #cc66cc;">360</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> 
	<span style="color: #009900;">&#123;</span> 
		turn<span style="color: #009900;">&#40;</span>iDROPTURN<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
		iCount <span style="color: #339933;">+=</span> iDROPTURN<span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>iCount <span style="color: #339933;">&gt;=</span> <span style="color: #cc66cc;">360</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Harvester bot unable to drop object!&quot;</span>, DisplayError<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			iCount <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
	errmode<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h2>Авто-создание роботов</h2>
<p>Продвинутая программа для роботов-грабберов для создания других ботов. Она находит Титаниум, перемещает его на станцию создания роботов, ждет 25 секунд, берет заряженную батарейку, помещает его в бота и отьезжает, чтобы новосозданный робот мог оттуда выехать. Также, если необходимо, она подождет, пока батарейка зарядится на станции подзарядки.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">extern <span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>BotCreate<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
&nbsp;
	object metal<span style="color: #339933;">;</span>
	object factory<span style="color: #339933;">;</span>
	object power<span style="color: #339933;">;</span>
	object recharge<span style="color: #339933;">;</span>
	metal<span style="color: #339933;">=</span>radar<span style="color: #009900;">&#40;</span>Titanium<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	factory<span style="color: #339933;">=</span>radar<span style="color: #009900;">&#40;</span>BotFactory<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	power<span style="color: #339933;">=</span>radar<span style="color: #009900;">&#40;</span>PowerCell<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	recharge<span style="color: #339933;">=</span>radar<span style="color: #009900;">&#40;</span>PowerStation<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>metal.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	grab<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>factory.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	move<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	drop<span style="color: #009900;">&#40;</span>InFront<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	move<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">25</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>power.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	grab<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>power.<span style="color: #006633;">energyLevel</span><span style="color: #339933;">!=</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>PowerStation<span style="color: #339933;">==</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>recharge.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>power.<span style="color: #006633;">energyLevel</span><span style="color: #339933;">!=</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0.1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
			turn<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">90</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			move<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">15</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			drop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			turn<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">180</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			move<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">15</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>factory.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	drop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	move<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	turn<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">90</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	move<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></div></div>

<h2>Автоогонь</h2>
<p>Интересная программа для стреляющих роботов. Позволяет Вам сконцентрироваться на управлении, когда как огонь по вражеским целям будет вести программа.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// Redesinged script copied from AlienKiller by Yenz</span>
<span style="color: #666666; font-style: italic;">// This code almost entirely copied from the AlienKiller script</span>
<span style="color: #666666; font-style: italic;">// made by Yenz. I wanted to make a simple cyborg script where</span>
<span style="color: #666666; font-style: italic;">// a bot is manually piloted, but has precision aiming. Just run</span>
<span style="color: #666666; font-style: italic;">// this script instead of hitting the fire button and the bot</span>
<span style="color: #666666; font-style: italic;">// will aim and fire once at the closest alien in front of it.</span>
<span style="color: #666666; font-style: italic;">// </span>
<span style="color: #666666; font-style: italic;">// Now rewritten to include both pitch and roll correction</span>
<span style="color: #666666; font-style: italic;">// Reports warnings for temperature, shield and energy levels</span>
<span style="color: #666666; font-style: italic;">// in percentages.</span>
&nbsp;
&nbsp;
extern <span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>RoboAim2<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	object alien<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">float</span> angle<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">int</span> alienList<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span>, nr<span style="color: #339933;">;</span>
&nbsp;
	nr <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
	alienList<span style="color: #009900;">&#91;</span>nr<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> AlienWasp<span style="color: #339933;">;</span>
	alienList<span style="color: #009900;">&#91;</span>nr<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> AlienAnt<span style="color: #339933;">;</span>
	alienList<span style="color: #009900;">&#91;</span>nr<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> AlienSpider<span style="color: #339933;">;</span>
	alienList<span style="color: #009900;">&#91;</span>nr<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> AlienWorm<span style="color: #339933;">;</span>
	alienList<span style="color: #009900;">&#91;</span>nr<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> AlienEgg<span style="color: #339933;">;</span>
&nbsp;
	alien <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>alienList,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">90</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">45</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>alien <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>        <span style="color: #666666; font-style: italic;">//if there still is a alien left</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>distance<span style="color: #009900;">&#40;</span>position, alien.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">45</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			turn<span style="color: #009900;">&#40;</span>direction<span style="color: #009900;">&#40;</span>alien.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>    <span style="color: #666666; font-style: italic;">//coarse turn adjustment;</span>
&nbsp;
			angle <span style="color: #339933;">=</span> atan<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>topo<span style="color: #009900;">&#40;</span>alien.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span>alien.<span style="color: #006633;">altitude</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span><span style="color: #009900;">&#40;</span>topo<span style="color: #009900;">&#40;</span>position<span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span>altitude<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span>distance2d<span style="color: #009900;">&#40;</span>position, alien.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>        <span style="color: #666666; font-style: italic;">//determine absolute aiming angle</span>
&nbsp;
			<span style="color: #666666; font-style: italic;">// calulate and turn to adjust for roll angle</span>
			<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>roll <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> turn<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>angle<span style="color: #339933;">-</span>pitch<span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>cos<span style="color: #009900;">&#40;</span>roll<span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>cos<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">90</span><span style="color: #339933;">-</span>roll<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">else</span> turn<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>angle<span style="color: #339933;">-</span>pitch<span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>cos<span style="color: #009900;">&#40;</span>roll<span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>cos<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">90</span><span style="color: #339933;">-</span>roll<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			aim<span style="color: #009900;">&#40;</span>angle<span style="color: #339933;">-</span>pitch<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>    <span style="color: #666666; font-style: italic;">//aim at the target</span>
&nbsp;
			fire<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0.1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>    <span style="color: #666666; font-style: italic;">//kill it</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000000; font-weight: bold;">else</span> message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;No target&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>temperature <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0.8</span><span style="color: #009900;">&#41;</span> message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Engines at &quot;</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>temperature <span style="color: #339933;">*</span> <span style="color: #cc66cc;">100</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;%&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>shieldLevel <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">0.2</span><span style="color: #009900;">&#41;</span> message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Warning-Shield at &quot;</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>shieldLevel <span style="color: #339933;">*</span> <span style="color: #cc66cc;">100</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;%&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>energyCell.<span style="color: #006633;">energyLevel</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">0.2</span><span style="color: #009900;">&#41;</span> message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Warning-Energy at &quot;</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>energyCell.<span style="color: #006633;">energyLevel</span> <span style="color: #339933;">*</span> <span style="color: #cc66cc;">100</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;%&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h2>Младший научный работник</h2>
<p>Программа для исследовательских центров. Робот автоматически меняет разряженные батарейки. Он ищет другие заряженные батарейки и помещает их в исследовательский центр.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">extern <span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>Research<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
&nbsp;
	object power<span style="color: #339933;">;</span>
	object research<span style="color: #339933;">;</span>
	power<span style="color: #339933;">=</span>radar<span style="color: #009900;">&#40;</span>PowerCell<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	research<span style="color: #339933;">=</span>radar<span style="color: #009900;">&#40;</span>ResearchCenter<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>power.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>power.<span style="color: #006633;">energyLevel</span><span style="color: #339933;">!=</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		turn<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">90</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		move<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	grab<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>research.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	drop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></div></div>

<h2>Вася-ремонтник</h2>
<p>Программа для бота Shielder, которая позволяет в автоматическом режиме ремонтировать поврежденные здания. Он также может ремонтировать и других поврежденных роботов</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// This program was designed for the Shielder</span>
<span style="color: #666666; font-style: italic;">// to repair stationary objects (i.e. buildings).</span>
<span style="color: #666666; font-style: italic;">// If you want to include (damaged) bots, they </span>
<span style="color: #666666; font-style: italic;">// must remain still during the repair.</span>
&nbsp;
extern <span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>RepairBase<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	bool includeBots <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>  <span style="color: #666666; font-style: italic;">// You decide.</span>
&nbsp;
	object allies<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
	allies <span style="color: #339933;">=</span> findAllies<span style="color: #009900;">&#40;</span>includeBots<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> i <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> sizeof<span style="color: #009900;">&#40;</span>allies<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>distance2d<span style="color: #009900;">&#40;</span>position,allies<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">26</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			turn<span style="color: #009900;">&#40;</span>direction<span style="color: #009900;">&#40;</span>allies<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
			<span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> d <span style="color: #339933;">=</span> <span style="color: #cc66cc;">24</span><span style="color: #339933;">;</span> d <span style="color: #339933;">&gt;=</span> <span style="color: #cc66cc;">5</span><span style="color: #339933;">;</span> d<span style="color: #339933;">--</span><span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				point dest <span style="color: #339933;">=</span> triangulate2d<span style="color: #009900;">&#40;</span>allies<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #006633;">position</span>,d<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
				errmode<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>dest<span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span>
				    <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
				errmode<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>   
			<span style="color: #009900;">&#125;</span>
&nbsp;
			<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>distance2d<span style="color: #009900;">&#40;</span>position,allies<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">26</span><span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Could not goto &quot;</span> <span style="color: #339933;">+</span> allies<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #006633;">category</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;.&quot;</span>, DisplayError<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000000; font-weight: bold;">return</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>   
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>allies<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #006633;">shieldLevel</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span>
		    shield<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span>,distance2d<span style="color: #009900;">&#40;</span>position,allies<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		message<span style="color: #009900;">&#40;</span>allies<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #006633;">category</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot; repaired.  (&quot;</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>i<span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;/&quot;</span> <span style="color: #339933;">+</span> sizeof<span style="color: #009900;">&#40;</span>allies<span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;)&quot;</span>, DisplayInfo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		shield<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>   
&nbsp;
	message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;All repaired.&quot;</span>, DisplayInfo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
object<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> object<span style="color: #339933;">::</span>findAllies<span style="color: #009900;">&#40;</span>bool repairAll<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #000066; font-weight: bold;">int</span> allyList<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">int</span> i <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
	allyList<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> Derrick<span style="color: #339933;">;</span>
	allyList<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> BotFactory<span style="color: #339933;">;</span>
	allyList<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> PowerStation<span style="color: #339933;">;</span>
	allyList<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> PowerCaptor<span style="color: #339933;">;</span>
	allyList<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> Converter<span style="color: #339933;">;</span>
	allyList<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> RepairCenter<span style="color: #339933;">;</span>
	allyList<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> DefenseTower<span style="color: #339933;">;</span>
	allyList<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> ResearchCenter<span style="color: #339933;">;</span>
	allyList<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> RadarStation<span style="color: #339933;">;</span>
	allyList<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> ExchangePost<span style="color: #339933;">;</span>
	allyList<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> PowerPlant<span style="color: #339933;">;</span>
	allyList<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> AutoLab<span style="color: #339933;">;</span>
	allyList<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> NuclearPlant<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>repairAll<span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		allyList<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> WingedGrabber<span style="color: #339933;">;</span>
		allyList<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> TrackedGrabber<span style="color: #339933;">;</span>
		allyList<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> WheeledGrabber<span style="color: #339933;">;</span>
		allyList<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> LeggedGrabber<span style="color: #339933;">;</span>
		allyList<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> WingedShooter<span style="color: #339933;">;</span>
		allyList<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> TrackedShooter<span style="color: #339933;">;</span>
		allyList<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> WheeledShooter<span style="color: #339933;">;</span>
		allyList<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> LeggedShooter<span style="color: #339933;">;</span>
		allyList<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> WingedOrgaShooter<span style="color: #339933;">;</span>
		allyList<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> TrackedOrgaShooter<span style="color: #339933;">;</span>
		allyList<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> WheeledOrgaShooter<span style="color: #339933;">;</span>
		allyList<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> LeggedOrgaShooter<span style="color: #339933;">;</span>
		allyList<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> WingedSniffer<span style="color: #339933;">;</span>
		allyList<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> TrackedSniffer<span style="color: #339933;">;</span>
		allyList<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> WheeledSniffer<span style="color: #339933;">;</span>
		allyList<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> LeggedSniffer<span style="color: #339933;">;</span>
		allyList<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> Thumper<span style="color: #339933;">;</span>
		allyList<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> PhazerShooter<span style="color: #339933;">;</span>
		allyList<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> Recycler<span style="color: #339933;">;</span>
		allyList<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> Shielder<span style="color: #339933;">;</span>
		allyList<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> Subber<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
	object allies<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	object tempObject<span style="color: #339933;">;</span>
&nbsp;
	i <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">int</span> j <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">int</span> k <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span>tempObject <span style="color: #339933;">=</span> retobject<span style="color: #009900;">&#40;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>j <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> j <span style="color: #339933;">&lt;</span> sizeof<span style="color: #009900;">&#40;</span>allyList<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>tempObject.<span style="color: #006633;">category</span> <span style="color: #339933;">==</span> allyList<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> and tempObject.<span style="color: #006633;">shieldLevel</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				message<span style="color: #009900;">&#40;</span>tempObject.<span style="color: #006633;">category</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot; needs repair.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				allies<span style="color: #009900;">&#91;</span>k<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> tempObject<span style="color: #339933;">;</span>
				<span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>    
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>i <span style="color: #339933;">=</span> sizeof<span style="color: #009900;">&#40;</span>allies<span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">--</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>j <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> j <span style="color: #339933;">&lt;</span> i<span style="color: #339933;">;</span> j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>distance2d<span style="color: #009900;">&#40;</span>position,allies<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span>.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> distance2d<span style="color: #009900;">&#40;</span>position,allies<span style="color: #009900;">&#91;</span>j<span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span>.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				tempObject  <span style="color: #339933;">=</span> allies<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
				allies<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span>   <span style="color: #339933;">=</span> allies<span style="color: #009900;">&#91;</span>j<span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
				allies<span style="color: #009900;">&#91;</span>j<span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> tempObject<span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">return</span> allies<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
point object<span style="color: #339933;">::</span>triangulate2d<span style="color: #009900;">&#40;</span>point p,<span style="color: #000066; font-weight: bold;">int</span> dist<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	point dest <span style="color: #339933;">=</span> p<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">float</span> angl <span style="color: #339933;">=</span> orientation<span style="color: #339933;">+</span><span style="color: #cc66cc;">180</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>angl <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">360</span><span style="color: #009900;">&#41;</span>
	    angl <span style="color: #339933;">-=</span> <span style="color: #cc66cc;">360</span><span style="color: #339933;">;</span>
&nbsp;
	dest.<span style="color: #006633;">x</span> <span style="color: #339933;">+=</span> cos<span style="color: #009900;">&#40;</span>angl<span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> dist<span style="color: #339933;">;</span>
	dest.<span style="color: #006633;">y</span> <span style="color: #339933;">+=</span> sin<span style="color: #009900;">&#40;</span>angl<span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> dist<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">return</span> dest<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h2>Джеки Чан</h2>
<p>Продвинутая программа для атаки. Применяет некоторые трюки, позволяя достичь превосходства в борьбе с другими роботами.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">extern <span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>Attack2<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	ipf<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">800</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000066; font-weight: bold;">int</span> cat<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>                
	cat<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> AlienAnt<span style="color: #339933;">;</span>    
	cat<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> AlienWorm<span style="color: #339933;">;</span>  
	cat<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> AlienWasp<span style="color: #339933;">;</span> 
	cat<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> AlienSpider<span style="color: #339933;">;</span>
	cat<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">4</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> AlienEgg<span style="color: #339933;">;</span>
&nbsp;
	object target<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000066; font-weight: bold;">float</span> dir<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">float</span> dis<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">float</span> dif<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">float</span> ang<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000066; font-weight: bold;">boolean</span> hot <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>target <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>cat<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>temperature <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0.8</span><span style="color: #009900;">&#41;</span>
		    hot <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>temperature <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">0.2</span><span style="color: #009900;">&#41;</span>
		    hot <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>hot and topo<span style="color: #009900;">&#40;</span>position<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span>
		    jet<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">else</span>
		<span style="color: #009900;">&#123;</span>
			dis <span style="color: #339933;">=</span> distance2d<span style="color: #009900;">&#40;</span>position,target.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  
			dif <span style="color: #339933;">=</span> target.<span style="color: #006633;">position</span>.<span style="color: #006633;">z</span><span style="color: #339933;">-</span>position.<span style="color: #006633;">z</span><span style="color: #339933;">;</span>
			ang <span style="color: #339933;">=</span> atan<span style="color: #009900;">&#40;</span>dif<span style="color: #339933;">/</span><span style="color: #009900;">&#40;</span>dis<span style="color: #339933;">-</span><span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
			jet<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">-</span>ang<span style="color: #339933;">/-</span><span style="color: #cc66cc;">15</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>   
		<span style="color: #009900;">&#125;</span>
&nbsp;
		dis <span style="color: #339933;">=</span> distance2d<span style="color: #009900;">&#40;</span>position,target.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
		dif <span style="color: #339933;">=</span> target.<span style="color: #006633;">position</span>.<span style="color: #006633;">z</span><span style="color: #339933;">-</span>position.<span style="color: #006633;">z</span><span style="color: #339933;">;</span>
		ang <span style="color: #339933;">=</span> atan<span style="color: #009900;">&#40;</span>dif<span style="color: #339933;">/</span>dis<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>altitude <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
		    ang <span style="color: #339933;">-=</span> pitch<span style="color: #339933;">;</span>
&nbsp;
		dir <span style="color: #339933;">=</span> direction<span style="color: #009900;">&#40;</span>target.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>dis <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">40</span> and abs<span style="color: #009900;">&#40;</span>ang<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">20</span> and abs<span style="color: #009900;">&#40;</span>dir<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">112.5</span><span style="color: #009900;">&#41;</span>
		    turn<span style="color: #009900;">&#40;</span>dir<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">else</span>
		    motor<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">-</span>dir<span style="color: #339933;">/</span><span style="color: #cc66cc;">45</span>,<span style="color: #cc66cc;">1</span><span style="color: #339933;">+</span>dir<span style="color: #339933;">/</span><span style="color: #cc66cc;">45</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		dis <span style="color: #339933;">=</span> distance2d<span style="color: #009900;">&#40;</span>position,target.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  
		dif <span style="color: #339933;">=</span> target.<span style="color: #006633;">position</span>.<span style="color: #006633;">z</span><span style="color: #339933;">-</span>position.<span style="color: #006633;">z</span><span style="color: #339933;">;</span>
		ang <span style="color: #339933;">=</span> atan<span style="color: #009900;">&#40;</span>dif<span style="color: #339933;">/</span>dis<span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span>pitch<span style="color: #339933;">;</span> 
&nbsp;
		aim<span style="color: #009900;">&#40;</span>ang<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		dir <span style="color: #339933;">=</span> direction<span style="color: #009900;">&#40;</span>target.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>dis <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">40</span>  and abs<span style="color: #009900;">&#40;</span>ang<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">20</span> and abs<span style="color: #009900;">&#40;</span>dir<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span>
		    fire<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0.1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>dis <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">40</span><span style="color: #009900;">&#41;</span>
		    maint<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>maint<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>energyCell.<span style="color: #006633;">energyLevel</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">0.35</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		object pwr <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>PowerStation<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>pwr <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>pwr.<span style="color: #006633;">position</span>,<span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>energyCell.<span style="color: #006633;">energyLevel</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span>
			    wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>shieldLevel <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">0.45</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		object rep <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>RepairCenter<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>rep <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>rep.<span style="color: #006633;">position</span>,<span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>shieldLevel <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span>
			    wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h2>Брюс Ли</h2>
<p>Еще одна программа для атаки. Эффективно против всех типов врагов (кроме AlienQueen, конечно ;-) ). Автоматически себе перезаряжает, если необходимо.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// Air Superiority Fighter</span>
<span style="color: #666666; font-style: italic;">// Version 1.00</span>
<span style="color: #666666; font-style: italic;">// by Black Eagle</span>
<span style="color: #666666; font-style: italic;">// blackeagle@gamebox.net</span>
<span style="color: #666666; font-style: italic;">// For WingedShooter and WingedOrgaShooter</span>
<span style="color: #666666; font-style: italic;">// Features :</span>
<span style="color: #666666; font-style: italic;">// - Effective against all types of enemies (except AlienQueen, of course! :) )</span>
<span style="color: #666666; font-style: italic;">// - Low energy usage for firing</span>
<span style="color: #666666; font-style: italic;">// - Recharges and repairs itself when needed</span>
<span style="color: #666666; font-style: italic;">// - Avoids water while cooling down (if it can)</span>
<span style="color: #666666; font-style: italic;">//</span>
<span style="color: #666666; font-style: italic;">// Notes :</span>
<span style="color: #666666; font-style: italic;">// * Don't use first person camera while using this program</span>
<span style="color: #666666; font-style: italic;">// because of the pitch bug. It will drop the accuracy</span>
<span style="color: #666666; font-style: italic;">// severely.</span>
<span style="color: #666666; font-style: italic;">//</span>
<span style="color: #666666; font-style: italic;">// * This bot can take the following commands via an</span>
<span style="color: #666666; font-style: italic;">// information exchange post :</span>
<span style="color: #666666; font-style: italic;">//   - wsguardrange : change the guard range</span>
<span style="color: #666666; font-style: italic;">//   - wsfirerate   : change the firing rate</span>
<span style="color: #666666; font-style: italic;">//   - wsfiredelay  : change the firing delay</span>
<span style="color: #666666; font-style: italic;">//   - wsguardpoint : change the guard point with the </span>
<span style="color: #666666; font-style: italic;">//                    wsguardpointx as the x value and </span>
<span style="color: #666666; font-style: italic;">//                    wsguardpointy as the y value</span>
<span style="color: #666666; font-style: italic;">//                  ( This bot DOESN'T check if the guard</span>
<span style="color: #666666; font-style: italic;">//                    point is covered with water or not,</span>
<span style="color: #666666; font-style: italic;">//                    so be careful when using this command )</span>
&nbsp;
extern <span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>AirSuperiority<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	object item<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">int</span> err1<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">int</span> err2<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">int</span> temp1<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">int</span> temp2<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">int</span> tempdir<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">int</span> tempdis<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">float</span> curdir<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">float</span> nexttopo<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">float</span> turnmotor<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">float</span> firerate<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">float</span> enemydir<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">float</span> enemylife<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">float</span> fired<span style="color: #339933;">;</span>
	object enemy<span style="color: #339933;">;</span>
	object enemy1<span style="color: #339933;">;</span>
	point guardpoint<span style="color: #339933;">;</span>
	point togo<span style="color: #339933;">;</span>
	errmode<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	ipf<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">800</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	guardpoint <span style="color: #339933;">=</span> position<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">int</span> list<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span>, i<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">float</span> maxsearch<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">float</span> maxsearchorig<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">int</span> firedelay<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">int</span> firedelaytime<span style="color: #339933;">;</span>
&nbsp;
&nbsp;
	enemylife <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
	fired <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0.15</span><span style="color: #339933;">;</span>
	temp1 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
	firedelay <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
	firedelaytime <span style="color: #339933;">=</span> <span style="color: #cc66cc;">12</span><span style="color: #339933;">;</span>  <span style="color: #666666; font-style: italic;">// Firing delay before another fire</span>
	firerate <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0.25</span><span style="color: #339933;">;</span>     <span style="color: #666666; font-style: italic;">// Firing Rate</span>
	maxsearch <span style="color: #339933;">=</span> <span style="color: #cc66cc;">300</span><span style="color: #339933;">;</span>     <span style="color: #666666; font-style: italic;">// Max. search area.</span>
	maxsearchorig <span style="color: #339933;">=</span> maxsearch<span style="color: #339933;">;</span> 
&nbsp;
	i <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
	list<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> AlienAnt<span style="color: #339933;">;</span>
	list<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> AlienWasp<span style="color: #339933;">;</span>
	list<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> AlienSpider<span style="color: #339933;">;</span>
	list<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> AlienEgg<span style="color: #339933;">;</span>
	list<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> AlienWorm<span style="color: #339933;">;</span>
&nbsp;
&nbsp;
	<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>radar<span style="color: #009900;">&#40;</span>PowerStation<span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;No Power Station Found. Aborting...&quot;</span>,DisplayError<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>energyCell.<span style="color: #006633;">energyLevel</span> <span style="color: #339933;">&lt;</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0.4</span><span style="color: #339933;">+</span>fired<span style="color: #009900;">&#41;</span> <span style="color: #339933;">|</span> shieldLevel <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">0.4</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>                        <span style="color: #666666; font-style: italic;">// if so:</span>
			item <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>PowerStation<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> item <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #339933;">&amp;</span> distance2d<span style="color: #009900;">&#40;</span>item.<span style="color: #006633;">position</span>,position<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;=</span> <span style="color: #cc66cc;">50</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> item <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #009900;">&#41;</span>   <span style="color: #666666; font-style: italic;">// station found ?</span>
				<span style="color: #009900;">&#123;</span>
					err1 <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>item.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// go there</span>
					<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>err1 <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
						err2 <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>space<span style="color: #009900;">&#40;</span>item.<span style="color: #006633;">position</span>,<span style="color: #cc66cc;">8</span>,<span style="color: #cc66cc;">120</span>,<span style="color: #cc66cc;">4</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>err2 <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
							<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>err2 <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
								wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
								err2 <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>space<span style="color: #009900;">&#40;</span>item.<span style="color: #006633;">position</span>,<span style="color: #cc66cc;">8</span>,<span style="color: #cc66cc;">120</span>,<span style="color: #cc66cc;">4</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
							<span style="color: #009900;">&#125;</span>
						<span style="color: #009900;">&#125;</span>
						message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Power Station occupied, waiting...&quot;</span>,DisplayInfo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span>err1 <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
							wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
							err1 <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>item.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						<span style="color: #009900;">&#125;</span>
					<span style="color: #009900;">&#125;</span>
					<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span> energyCell.<span style="color: #006633;">energyLevel</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">1</span> <span style="color: #009900;">&#41;</span>
					<span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">// until recharged:</span>
						wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>      <span style="color: #666666; font-style: italic;">// wait</span>
						fired <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0.15</span><span style="color: #339933;">;</span>
					<span style="color: #009900;">&#125;</span>
				<span style="color: #009900;">&#125;</span>
				<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>shieldLevel <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
					item <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>RepairCenter<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> item <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #009900;">&#41;</span>   <span style="color: #666666; font-style: italic;">// repairstation found ?</span>
					<span style="color: #009900;">&#123;</span>
						err1 <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>item.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// go there</span>
						<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>err1 <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
							err2 <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>space<span style="color: #009900;">&#40;</span>item.<span style="color: #006633;">position</span>,<span style="color: #cc66cc;">8</span>,<span style="color: #cc66cc;">120</span>,<span style="color: #cc66cc;">4</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
							<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>err2 <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
								<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>err2 <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
									wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
									err2 <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>space<span style="color: #009900;">&#40;</span>item.<span style="color: #006633;">position</span>,<span style="color: #cc66cc;">8</span>,<span style="color: #cc66cc;">120</span>,<span style="color: #cc66cc;">4</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
								<span style="color: #009900;">&#125;</span>
							<span style="color: #009900;">&#125;</span>
							message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Repair Center occupied, waiting...&quot;</span>,DisplayInfo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
							<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span>err1 <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
								wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
								err1 <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>item.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
							<span style="color: #009900;">&#125;</span>
						<span style="color: #009900;">&#125;</span>
						<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span> shieldLevel <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">1</span> <span style="color: #009900;">&#41;</span>
						<span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">// until recharged:</span>
							wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>      <span style="color: #666666; font-style: italic;">// wait</span>
						<span style="color: #009900;">&#125;</span>
					<span style="color: #009900;">&#125;</span>
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span>
			<span style="color: #000000; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
				enemy <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>PowerStation<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>energyCell.<span style="color: #006633;">energyLevel</span> <span style="color: #339933;">&gt;=</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0.4</span><span style="color: #339933;">+</span>fired<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span> shieldLevel <span style="color: #339933;">&gt;=</span> <span style="color: #cc66cc;">0.4</span><span style="color: #009900;">&#41;</span> enemy <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>list,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">360</span>,<span style="color: #cc66cc;">0</span>,maxsearch,<span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>testinfo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;wsguardrange&quot;</span>,<span style="color: #cc66cc;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			maxsearch <span style="color: #339933;">=</span> receive<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;wsguardrange&quot;</span>,<span style="color: #cc66cc;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			deleteinfo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;wsguardrange&quot;</span>,<span style="color: #cc66cc;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>testinfo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;wsfirerate&quot;</span>,<span style="color: #cc66cc;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			firerate <span style="color: #339933;">=</span> receive<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;wsfirerate&quot;</span>,<span style="color: #cc66cc;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			deleteinfo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;wsfirerate&quot;</span>,<span style="color: #cc66cc;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>testinfo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;wsfiredelay&quot;</span>,<span style="color: #cc66cc;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			firedelaytime <span style="color: #339933;">=</span> receive<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;wsfiredelay&quot;</span>,<span style="color: #cc66cc;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			deleteinfo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;wsfiredelaytime&quot;</span>,<span style="color: #cc66cc;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>testinfo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;wsguardpoint&quot;</span>,<span style="color: #cc66cc;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			guardpoint.<span style="color: #006633;">x</span> <span style="color: #339933;">=</span> receive<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;wsguardpointx&quot;</span>,<span style="color: #cc66cc;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			guardpoint.<span style="color: #006633;">y</span> <span style="color: #339933;">=</span> receive<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;wsguardpointy&quot;</span>,<span style="color: #cc66cc;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			deleteinfo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;wsguardpoint&quot;</span>,<span style="color: #cc66cc;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>enemy <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #339933;">&amp;</span> temperature <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">0.75</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			togo.<span style="color: #006633;">x</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">2</span><span style="color: #339933;">*</span>cos<span style="color: #009900;">&#40;</span>orientation<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span>position.<span style="color: #006633;">x</span><span style="color: #339933;">;</span>
			togo.<span style="color: #006633;">y</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">2</span><span style="color: #339933;">*</span>sin<span style="color: #009900;">&#40;</span>orientation<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span>position.<span style="color: #006633;">y</span><span style="color: #339933;">;</span>
			togo.<span style="color: #006633;">z</span> <span style="color: #339933;">=</span> position.<span style="color: #006633;">z</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>position.<span style="color: #006633;">z</span> <span style="color: #339933;">-</span> topo<span style="color: #009900;">&#40;</span>position<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">2</span> <span style="color: #339933;">|</span> position.<span style="color: #006633;">z</span> <span style="color: #339933;">-</span> topo<span style="color: #009900;">&#40;</span>togo<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">2</span> <span style="color: #339933;">|</span> position.<span style="color: #006633;">z</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> jet<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>position.<span style="color: #006633;">z</span> <span style="color: #339933;">-</span> topo<span style="color: #009900;">&#40;</span>position<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span> jet<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">0.2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>enemy.<span style="color: #006633;">category</span> <span style="color: #339933;">!=</span> AlienWasp and enemy.<span style="color: #006633;">category</span> <span style="color: #339933;">!=</span> PowerStation<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
					<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>atan<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>position.<span style="color: #006633;">z</span><span style="color: #339933;">-</span>enemy.<span style="color: #006633;">position</span>.<span style="color: #006633;">z</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span>distance2d<span style="color: #009900;">&#40;</span>position,enemy.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">20</span><span style="color: #009900;">&#41;</span> jet<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">0.8</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>atan<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>position.<span style="color: #006633;">z</span><span style="color: #339933;">-</span>enemy.<span style="color: #006633;">position</span>.<span style="color: #006633;">z</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span>distance2d<span style="color: #009900;">&#40;</span>position,enemy.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">15</span><span style="color: #009900;">&#41;</span> jet<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0.8</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
				<span style="color: #000000; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
					<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span> enemy.<span style="color: #006633;">category</span> <span style="color: #339933;">!=</span> PowerStation <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
						<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>position.<span style="color: #006633;">z</span> <span style="color: #339933;">&lt;</span> enemy.<span style="color: #006633;">position</span>.<span style="color: #006633;">z</span><span style="color: #009900;">&#41;</span> jet<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0.4</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>position.<span style="color: #006633;">z</span> <span style="color: #339933;">&gt;</span> enemy.<span style="color: #006633;">position</span>.<span style="color: #006633;">z</span><span style="color: #009900;">&#41;</span> jet<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">0.4</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #009900;">&#125;</span>
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span>
			turnmotor <span style="color: #339933;">=</span> distance<span style="color: #009900;">&#40;</span>position,enemy.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">150</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>turnmotor <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> turnmotor <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>turnmotor <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> turnmotor <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0.5</span><span style="color: #339933;">;</span>
			enemydir <span style="color: #339933;">=</span> direction<span style="color: #009900;">&#40;</span>enemy.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>enemydir <span style="color: #339933;">&lt;</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">180</span> <span style="color: #339933;">|</span> enemydir <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">180</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>enemydir <span style="color: #339933;">&lt;</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">180</span><span style="color: #009900;">&#41;</span> enemydir <span style="color: #339933;">=</span> enemydir <span style="color: #339933;">+</span> <span style="color: #cc66cc;">360</span><span style="color: #339933;">;</span>
				<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>enemydir <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">180</span><span style="color: #009900;">&#41;</span> enemydir <span style="color: #339933;">=</span> enemydir <span style="color: #339933;">-</span> <span style="color: #cc66cc;">360</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>enemy.<span style="color: #006633;">lifeTime</span> <span style="color: #339933;">&gt;</span> enemylife <span style="color: #339933;">&amp;</span> enemy.<span style="color: #006633;">lifeTime</span> <span style="color: #339933;">&lt;</span> <span style="color: #009900;">&#40;</span>enemylife <span style="color: #339933;">+</span> <span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
			<span style="color: #009900;">&#125;</span>
			<span style="color: #000000; font-weight: bold;">else</span> firedelay <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
			enemylife <span style="color: #339933;">=</span> enemy.<span style="color: #006633;">lifeTime</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>firedelay <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> firedelay <span style="color: #339933;">=</span> firedelay <span style="color: #339933;">-</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>distance<span style="color: #009900;">&#40;</span>enemy.<span style="color: #006633;">position</span>,position<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">45</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>enemydir <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> motor<span style="color: #009900;">&#40;</span>turnmotor,<span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>enemydir <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> motor<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span>,turnmotor<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>enemydir <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> motor<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #009900;">&#125;</span>
			<span style="color: #000000; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>enemydir <span style="color: #339933;">&gt;</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">60</span> <span style="color: #339933;">&amp;</span> enemydir <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">60</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
					<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>enemydir <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> motor<span style="color: #009900;">&#40;</span>turnmotor,<span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>enemydir <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> motor<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span>,turnmotor<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>enemydir <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> motor<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
				<span style="color: #000000; font-weight: bold;">else</span> motor<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			aim<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>atan<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>position.<span style="color: #006633;">z</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">1.5</span><span style="color: #339933;">-</span>enemy.<span style="color: #006633;">position</span>.<span style="color: #006633;">z</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #009900;">&#40;</span>distance2d<span style="color: #009900;">&#40;</span>enemy.<span style="color: #006633;">position</span>,position<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*-</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span>pitch<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>direction<span style="color: #009900;">&#40;</span>enemy.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">5</span> <span style="color: #339933;">&amp;</span> direction<span style="color: #009900;">&#40;</span>enemy.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">5</span> <span style="color: #339933;">&amp;</span> distance<span style="color: #009900;">&#40;</span>enemy.<span style="color: #006633;">position</span>,position<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">45</span> <span style="color: #339933;">&amp;</span> firedelay <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				fire<span style="color: #009900;">&#40;</span>firerate<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>fired <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> fired <span style="color: #339933;">=</span> fired <span style="color: #339933;">-</span> <span style="color: #cc66cc;">0.02</span><span style="color: #339933;">;</span>
				firedelay <span style="color: #339933;">=</span> firedelaytime<span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>enemy <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #339933;">&amp;</span> temperature <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0.75</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			temp1 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
			enemy1 <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>list,temp1,<span style="color: #cc66cc;">45</span>,<span style="color: #cc66cc;">30</span>,<span style="color: #cc66cc;">150</span>,<span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>enemy1 <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				temp1 <span style="color: #339933;">=</span> temp1 <span style="color: #339933;">+</span> <span style="color: #cc66cc;">45</span><span style="color: #339933;">;</span>
				enemy1 <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>list,temp1,<span style="color: #cc66cc;">45</span>,<span style="color: #cc66cc;">30</span>,<span style="color: #cc66cc;">150</span>,<span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			turn<span style="color: #009900;">&#40;</span>temp1<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			togo.<span style="color: #006633;">x</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">4</span><span style="color: #339933;">*</span>cos<span style="color: #009900;">&#40;</span>orientation<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span>position.<span style="color: #006633;">x</span><span style="color: #339933;">;</span>
			togo.<span style="color: #006633;">y</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">4</span><span style="color: #339933;">*</span>sin<span style="color: #009900;">&#40;</span>orientation<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span>position.<span style="color: #006633;">y</span><span style="color: #339933;">;</span>
			togo.<span style="color: #006633;">z</span> <span style="color: #339933;">=</span> position.<span style="color: #006633;">z</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>temperature <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				curdir <span style="color: #339933;">=</span> orientation<span style="color: #339933;">;</span>
				<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>topo<span style="color: #009900;">&#40;</span>position<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
					motor<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					jet<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">0.1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					togo.<span style="color: #006633;">x</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #339933;">*</span>cos<span style="color: #009900;">&#40;</span>curdir<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span>position.<span style="color: #006633;">x</span><span style="color: #339933;">;</span>
					togo.<span style="color: #006633;">y</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #339933;">*</span>sin<span style="color: #009900;">&#40;</span>curdir<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span>position.<span style="color: #006633;">y</span><span style="color: #339933;">;</span>
					togo.<span style="color: #006633;">z</span> <span style="color: #339933;">=</span> position.<span style="color: #006633;">z</span><span style="color: #339933;">;</span>
					<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>topo<span style="color: #009900;">&#40;</span>togo<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
						temp1 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
						<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span>topo<span style="color: #009900;">&#40;</span>togo<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
							temp1 <span style="color: #339933;">=</span> temp1 <span style="color: #339933;">+</span> <span style="color: #cc66cc;">15</span><span style="color: #339933;">;</span>
							enemy1 <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>list,temp1,<span style="color: #cc66cc;">10</span>,<span style="color: #cc66cc;">30</span>,<span style="color: #cc66cc;">150</span>,<span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
							<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>enemy1 <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
								temp1 <span style="color: #339933;">=</span> temp1 <span style="color: #339933;">+</span> <span style="color: #cc66cc;">15</span><span style="color: #339933;">;</span>
								enemy1 <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>list,temp1,<span style="color: #cc66cc;">10</span>,<span style="color: #cc66cc;">30</span>,<span style="color: #cc66cc;">150</span>,<span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
							<span style="color: #009900;">&#125;</span>
							togo.<span style="color: #006633;">x</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #339933;">*</span>cos<span style="color: #009900;">&#40;</span>curdir<span style="color: #339933;">+</span>temp1<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span>position.<span style="color: #006633;">x</span><span style="color: #339933;">;</span>
							togo.<span style="color: #006633;">y</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #339933;">*</span>sin<span style="color: #009900;">&#40;</span>curdir<span style="color: #339933;">+</span>temp1<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span>position.<span style="color: #006633;">y</span><span style="color: #339933;">;</span>
							togo.<span style="color: #006633;">z</span> <span style="color: #339933;">=</span> position.<span style="color: #006633;">z</span><span style="color: #339933;">;</span>
						<span style="color: #009900;">&#125;</span>
						togo.<span style="color: #006633;">x</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #339933;">*</span>cos<span style="color: #009900;">&#40;</span>curdir<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span>position.<span style="color: #006633;">x</span><span style="color: #339933;">;</span>
						togo.<span style="color: #006633;">y</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #339933;">*</span>sin<span style="color: #009900;">&#40;</span>curdir<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span>position.<span style="color: #006633;">y</span><span style="color: #339933;">;</span>
						togo.<span style="color: #006633;">z</span> <span style="color: #339933;">=</span> position.<span style="color: #006633;">z</span><span style="color: #339933;">;</span>
						temp2 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
						<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span>topo<span style="color: #009900;">&#40;</span>togo<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
							temp2 <span style="color: #339933;">=</span> temp2 <span style="color: #339933;">-</span> <span style="color: #cc66cc;">15</span><span style="color: #339933;">;</span>
							enemy1 <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>list,temp2,<span style="color: #cc66cc;">10</span>,<span style="color: #cc66cc;">30</span>,<span style="color: #cc66cc;">150</span>,<span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
							<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>enemy1 <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
								temp2 <span style="color: #339933;">=</span> temp2 <span style="color: #339933;">-</span> <span style="color: #cc66cc;">15</span><span style="color: #339933;">;</span>
								enemy1 <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>list,temp2,<span style="color: #cc66cc;">10</span>,<span style="color: #cc66cc;">30</span>,<span style="color: #cc66cc;">150</span>,<span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
							<span style="color: #009900;">&#125;</span>
							togo.<span style="color: #006633;">x</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #339933;">*</span>cos<span style="color: #009900;">&#40;</span>curdir<span style="color: #339933;">+</span>temp2<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span>position.<span style="color: #006633;">x</span><span style="color: #339933;">;</span>
							togo.<span style="color: #006633;">y</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">8</span><span style="color: #339933;">*</span>sin<span style="color: #009900;">&#40;</span>curdir<span style="color: #339933;">+</span>temp2<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span>position.<span style="color: #006633;">y</span><span style="color: #339933;">;</span>
							togo.<span style="color: #006633;">z</span> <span style="color: #339933;">=</span> position.<span style="color: #006633;">z</span><span style="color: #339933;">;</span>
						<span style="color: #009900;">&#125;</span>
						<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span>temp2 <span style="color: #339933;">&gt;</span> temp1<span style="color: #009900;">&#41;</span> tempdir <span style="color: #339933;">=</span> temp1<span style="color: #339933;">;</span>
						<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span>temp2 <span style="color: #339933;">&lt;=</span> temp1<span style="color: #009900;">&#41;</span> tempdir <span style="color: #339933;">=</span> temp2<span style="color: #339933;">;</span>
						turn<span style="color: #009900;">&#40;</span>tempdir<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #009900;">&#125;</span>
				<span style="color: #009900;">&#125;</span>
				<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>topo<span style="color: #009900;">&#40;</span>position<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
					motor<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					jet<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">0.05</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>topo<span style="color: #009900;">&#40;</span>togo<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
						temp1 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
						tempdis <span style="color: #339933;">=</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">;</span>
						<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>topo<span style="color: #009900;">&#40;</span>togo<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
							temp1 <span style="color: #339933;">=</span> temp1 <span style="color: #339933;">+</span> <span style="color: #cc66cc;">45</span><span style="color: #339933;">;</span>
							togo.<span style="color: #006633;">x</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>tempdis<span style="color: #339933;">*</span>cos<span style="color: #009900;">&#40;</span>curdir<span style="color: #339933;">+</span>temp1<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span>position.<span style="color: #006633;">x</span><span style="color: #339933;">;</span>
							togo.<span style="color: #006633;">y</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>tempdis<span style="color: #339933;">*</span>sin<span style="color: #009900;">&#40;</span>curdir<span style="color: #339933;">+</span>temp1<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span>position.<span style="color: #006633;">y</span><span style="color: #339933;">;</span>
							togo.<span style="color: #006633;">z</span> <span style="color: #339933;">=</span> position.<span style="color: #006633;">z</span><span style="color: #339933;">;</span>
							<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>temp1 <span style="color: #339933;">&gt;=</span> <span style="color: #cc66cc;">360</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
								temp1 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
								tempdis <span style="color: #339933;">=</span> tempdis <span style="color: #339933;">+</span> <span style="color: #cc66cc;">15</span><span style="color: #339933;">;</span>
							<span style="color: #009900;">&#125;</span>
						<span style="color: #009900;">&#125;</span>
						turn<span style="color: #009900;">&#40;</span>temp1<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #009900;">&#125;</span>
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>enemy <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #339933;">&amp;</span> distance<span style="color: #009900;">&#40;</span>position,guardpoint<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>guardpoint<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></div></div>

<h2>TowerService</h2>
<p>Программа для обслуживания множества башен и ботов. Для более эффективного использования Вы можете построить здание ExchangePost.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">extern <span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>ServiceTower2<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #666666; font-style: italic;">//resetExChgPst();</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>load <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
		    getCell<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">else</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>load.<span style="color: #006633;">energyLevel</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span>
			    maint<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  
&nbsp;
			loadTower<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>resetExChgPst<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	object towers<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
	towers <span style="color: #339933;">=</span> findAndSortTowers<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> i <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> sizeof<span style="color: #009900;">&#40;</span>towers<span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
	    finishService<span style="color: #009900;">&#40;</span>towers<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
object object<span style="color: #339933;">::</span>getTower<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	object towers<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
	towers <span style="color: #339933;">=</span> findAndSortTowers<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> i <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> sizeof<span style="color: #009900;">&#40;</span>towers<span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>towers<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span> and not currentlyBeingServiced<span style="color: #009900;">&#40;</span>towers<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
		    <span style="color: #000000; font-weight: bold;">return</span> towers<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>getCell<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	object bestCell <span style="color: #339933;">=</span> findBestCell<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>bestCell <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
	    getCellFromTower<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">else</span>
	<span style="color: #009900;">&#123;</span>
		myGoto<span style="color: #009900;">&#40;</span>bestCell.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		errmode<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		grab<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		errmode<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
object object<span style="color: #339933;">::</span>findBestCell<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	object cell <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>PowerCell<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	object bestCell <span style="color: #339933;">=</span> cell<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000066; font-weight: bold;">float</span> min <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span>cell <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>PowerCell,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">360</span>,min<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span> 
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>cell.<span style="color: #006633;">energyLevel</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span>
		    <span style="color: #000000; font-weight: bold;">return</span> cell<span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>bestCell.<span style="color: #006633;">energyLevel</span> <span style="color: #339933;">&lt;</span> cell.<span style="color: #006633;">energyLevel</span><span style="color: #009900;">&#41;</span>
		    bestCell <span style="color: #339933;">=</span> cell<span style="color: #339933;">;</span>
&nbsp;
		min <span style="color: #339933;">=</span> distance2d<span style="color: #009900;">&#40;</span>position,cell.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">0.5</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">return</span> bestCell<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
object<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> object<span style="color: #339933;">::</span>findAndSortTowers<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	object towers<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000066; font-weight: bold;">int</span> i <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> 
	<span style="color: #000066; font-weight: bold;">float</span> min <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>towers<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>DefenseTower,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">360</span>,min<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
	    min <span style="color: #339933;">=</span> distance2d<span style="color: #009900;">&#40;</span>position,towers<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#93;</span>.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">0.5</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> j <span style="color: #339933;">=</span> i<span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> j <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> j<span style="color: #339933;">--</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> k <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> k <span style="color: #339933;">&lt;</span> j<span style="color: #339933;">;</span> k<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000066; font-weight: bold;">float</span> energyLevel1 <span style="color: #339933;">=</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
			<span style="color: #000066; font-weight: bold;">float</span> energyLevel2 <span style="color: #339933;">=</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>towers<span style="color: #009900;">&#91;</span>k<span style="color: #009900;">&#93;</span>.<span style="color: #006633;">energyCell</span> <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
			    energyLevel1 <span style="color: #339933;">=</span> towers<span style="color: #009900;">&#91;</span>k<span style="color: #009900;">&#93;</span>.<span style="color: #006633;">energyCell</span>.<span style="color: #006633;">energyLevel</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>towers<span style="color: #009900;">&#91;</span>k<span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span>.<span style="color: #006633;">energyCell</span> <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
			    energyLevel2 <span style="color: #339933;">=</span> towers<span style="color: #009900;">&#91;</span>k<span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span>.<span style="color: #006633;">energyCell</span>.<span style="color: #006633;">energyLevel</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>energyLevel1 <span style="color: #339933;">&gt;</span> energyLevel2<span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				object temp  <span style="color: #339933;">=</span> towers<span style="color: #009900;">&#91;</span>k<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
				towers<span style="color: #009900;">&#91;</span>k<span style="color: #009900;">&#93;</span>    <span style="color: #339933;">=</span> towers<span style="color: #009900;">&#91;</span>k<span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
				towers<span style="color: #009900;">&#91;</span>k<span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span>  <span style="color: #339933;">=</span> temp<span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">return</span> towers<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>getCellFromTower<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	object tower <span style="color: #339933;">=</span> getTower<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>tower <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
	    <span style="color: #000000; font-weight: bold;">return</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>tower.<span style="color: #006633;">energyCell</span> <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">int</span> cat<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		cat<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> PowerStation<span style="color: #339933;">;</span>
		cat<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> PowerCaptor<span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>tower.<span style="color: #006633;">energyCell</span>.<span style="color: #006633;">energyLevel</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">0.5</span> and radar<span style="color: #009900;">&#40;</span>cat<span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			startService<span style="color: #009900;">&#40;</span>tower<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			myGoto<span style="color: #009900;">&#40;</span>tower.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>enemyIsNear<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> and tower.<span style="color: #006633;">energyCell</span>.<span style="color: #006633;">energyLevel</span> <span style="color: #339933;">&gt;=</span> <span style="color: #cc66cc;">0.125</span><span style="color: #009900;">&#41;</span>
			    wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>   
&nbsp;
			grab<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			finishService<span style="color: #009900;">&#40;</span>tower<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>  
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>loadTower<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	object tower <span style="color: #339933;">=</span> getTower<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>tower <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
	    <span style="color: #000000; font-weight: bold;">return</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>tower.<span style="color: #006633;">energyCell</span> <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>tower.<span style="color: #006633;">energyCell</span>.<span style="color: #006633;">energyLevel</span> <span style="color: #339933;">&lt;</span> load.<span style="color: #006633;">energyLevel</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			startService<span style="color: #009900;">&#40;</span>tower<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			myGoto<span style="color: #009900;">&#40;</span>tower.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>enemyIsNear<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> and tower.<span style="color: #006633;">energyCell</span>.<span style="color: #006633;">energyLevel</span> <span style="color: #339933;">&gt;=</span> <span style="color: #cc66cc;">0.125</span><span style="color: #009900;">&#41;</span>
			    wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>   
&nbsp;
			swapCell<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			finishService<span style="color: #009900;">&#40;</span>tower<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000000; font-weight: bold;">else</span>
	<span style="color: #009900;">&#123;</span>
		startService<span style="color: #009900;">&#40;</span>tower<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		myGoto<span style="color: #009900;">&#40;</span>tower.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		drop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		finishService<span style="color: #009900;">&#40;</span>tower<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>startService<span style="color: #009900;">&#40;</span>object o<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>radar<span style="color: #009900;">&#40;</span>ExchangePost<span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
	    <span style="color: #000000; font-weight: bold;">return</span><span style="color: #339933;">;</span>
&nbsp;
	send<span style="color: #009900;">&#40;</span>o.<span style="color: #006633;">position</span>.<span style="color: #006633;">x</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;/&quot;</span> <span style="color: #339933;">+</span> o.<span style="color: #006633;">position</span>.<span style="color: #006633;">y</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
bool object<span style="color: #339933;">::</span>currentlyBeingServiced<span style="color: #009900;">&#40;</span>object o<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">return</span> testinfo<span style="color: #009900;">&#40;</span>o.<span style="color: #006633;">position</span>.<span style="color: #006633;">x</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;/&quot;</span> <span style="color: #339933;">+</span> o.<span style="color: #006633;">position</span>.<span style="color: #006633;">y</span>,<span style="color: #cc66cc;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>finishService<span style="color: #009900;">&#40;</span>object o<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	deleteinfo<span style="color: #009900;">&#40;</span>o.<span style="color: #006633;">position</span>.<span style="color: #006633;">x</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;/&quot;</span> <span style="color: #339933;">+</span> o.<span style="color: #006633;">position</span>.<span style="color: #006633;">y</span>,<span style="color: #cc66cc;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>swapCell<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	drop<span style="color: #009900;">&#40;</span>Behind<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	grab<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
	turn<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">90</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	drop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	turn<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">90</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	grab<span style="color: #009900;">&#40;</span>Behind<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	drop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	turn<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">90</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	grab<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>maint<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;PowerCell needs recharge.  Searching for energy sources...&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>rechargePlanA<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">false</span> and rechargePlanB<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Warning.  No energy sources found!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">return</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Recharge completed.  Resuming job duties...&quot;</span>, DisplayInfo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
bool object<span style="color: #339933;">::</span>rechargePlanA<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">int</span> cat<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	cat<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> PowerStation<span style="color: #339933;">;</span> 
	cat<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> PowerCaptor<span style="color: #339933;">;</span>
&nbsp;
	object pwrSource <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>cat<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  
&nbsp;
	<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>pwrSource <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
	    <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>
&nbsp;
	myGoto<span style="color: #009900;">&#40;</span>triangulate2d<span style="color: #009900;">&#40;</span>pwrSource<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	myGoto<span style="color: #009900;">&#40;</span>pwrSource.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Recharging at &quot;</span> <span style="color: #339933;">+</span> pwrSource.<span style="color: #006633;">category</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;...&quot;</span>,DisplayInfo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>load.<span style="color: #006633;">energyLevel</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span>
	    wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>space<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
bool object<span style="color: #339933;">::</span>rechargePlanB<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	object bestCell <span style="color: #339933;">=</span> findBestCell<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
	<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>bestCell <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
	    <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>load.<span style="color: #006633;">energyLevel</span> <span style="color: #339933;">&lt;</span> bestCell.<span style="color: #006633;">energyLevel</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>bestCell.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>    
&nbsp;
		message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Swapping with better PowerCell...&quot;</span>,DisplayInfo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		drop<span style="color: #009900;">&#40;</span>Behind<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		grab<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
bool object<span style="color: #339933;">::</span>enemyIsNear<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">int</span> cat<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>                
&nbsp;
	cat<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> AlienAnt<span style="color: #339933;">;</span>    
	cat<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> AlienWorm<span style="color: #339933;">;</span>  
	cat<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> AlienWasp<span style="color: #339933;">;</span> 
	cat<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> AlienSpider<span style="color: #339933;">;</span>
&nbsp;
	object enemy <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>cat,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">360</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">75</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>enemy <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
	    <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>myGoto<span style="color: #009900;">&#40;</span>point p<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	errmode<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>p<span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
	    wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>    
&nbsp;
	errmode<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
point object<span style="color: #339933;">::</span>triangulate2d<span style="color: #009900;">&#40;</span>object o<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	point dest <span style="color: #339933;">=</span> o.<span style="color: #006633;">position</span><span style="color: #339933;">;</span>
&nbsp;
	dest.<span style="color: #006633;">x</span> <span style="color: #339933;">+=</span> cos<span style="color: #009900;">&#40;</span>o.<span style="color: #006633;">orientation</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">;</span>
	dest.<span style="color: #006633;">y</span> <span style="color: #339933;">+=</span> sin<span style="color: #009900;">&#40;</span>o.<span style="color: #006633;">orientation</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">return</span> dest<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h2>Сборщик урана</h2>
<p>Программа для сбора UraniumOre (урановой руды). Поддерживает до двух одновременно работающих ботов, позволяя избегать пробок :-)</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">extern <span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>CollectUranOre<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>energyCell.<span style="color: #006633;">energyLevel</span> <span style="color: #339933;">&lt;=</span> <span style="color: #cc66cc;">0.4</span><span style="color: #009900;">&#41;</span>
		    maint<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>load <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
		    retrieveResource<span style="color: #009900;">&#40;</span>UraniumOre<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">else</span>
		<span style="color: #009900;">&#123;</span>
			processResource<span style="color: #009900;">&#40;</span>NuclearPlant<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			deliverResource<span style="color: #009900;">&#40;</span>BotFactory<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>retrieveResource<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> category<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	object resource<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span>resource <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>category<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;No UraniumOre found.  Standing by...&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>    
	<span style="color: #009900;">&#125;</span>
&nbsp;
	myGoto<span style="color: #009900;">&#40;</span>resource.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	errmode<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	grab<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	errmode<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>processResource<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> category<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	object building<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span>building <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>category<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;No NuclearPlant found.  Standing by...&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>    
	<span style="color: #009900;">&#125;</span>
&nbsp;
	myGoto<span style="color: #009900;">&#40;</span>triangulate2d<span style="color: #009900;">&#40;</span>building<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	myGoto<span style="color: #009900;">&#40;</span>building.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	drop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	move<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">35</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	move<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1.5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	grab<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>deliverResource<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> category<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	object dest <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>category<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>dest <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
	    <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>space<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">else</span> 
	<span style="color: #009900;">&#123;</span>
		errmode<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>space<span style="color: #009900;">&#40;</span>dest.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
		    <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>space<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		errmode<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	drop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;NuclearCell delivered.&quot;</span>,DisplayInfo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>maint<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Energy level low.  Searching for energy sources...&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>rechargePlanA<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">false</span> and rechargePlanB<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Warning.  No energy sources found!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">25</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Recharge completed.  Resuming job duties...&quot;</span>, DisplayInfo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
bool object<span style="color: #339933;">::</span>rechargePlanA<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">int</span> cat<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	cat<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> PowerStation<span style="color: #339933;">;</span> 
	cat<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> PowerCaptor<span style="color: #339933;">;</span>
&nbsp;
	object pwrSource <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>cat<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  
&nbsp;
	<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>pwrSource <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		myGoto<span style="color: #009900;">&#40;</span>triangulate2d<span style="color: #009900;">&#40;</span>pwrSource<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		myGoto<span style="color: #009900;">&#40;</span>pwrSource.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Recharging at &quot;</span> <span style="color: #339933;">+</span> pwrSource.<span style="color: #006633;">category</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;...&quot;</span>,DisplayInfo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>energyCell.<span style="color: #006633;">energyLevel</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span>
		    wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
bool object<span style="color: #339933;">::</span>rechargePlanB<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	object cell<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">float</span> min <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span>cell <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>PowerCell,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">360</span>,min<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		min <span style="color: #339933;">=</span> distance2d<span style="color: #009900;">&#40;</span>position,cell.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">0.5</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>cell.<span style="color: #006633;">energyLevel</span> <span style="color: #339933;">&gt;=</span> <span style="color: #cc66cc;">0.5</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>cell.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Swapping with better PowerCell...&quot;</span>,DisplayInfo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			grab<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>   
			drop<span style="color: #009900;">&#40;</span>Behind<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			grab<span style="color: #009900;">&#40;</span>EnergyCell<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  
			drop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			grab<span style="color: #009900;">&#40;</span>Behind<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			drop<span style="color: #009900;">&#40;</span>EnergyCell<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>myGoto<span style="color: #009900;">&#40;</span>point p<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	errmode<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>p<span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
	    wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>    
&nbsp;
	errmode<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
point object<span style="color: #339933;">::</span>triangulate2d<span style="color: #009900;">&#40;</span>object o<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	point dest <span style="color: #339933;">=</span> o.<span style="color: #006633;">position</span><span style="color: #339933;">;</span>
&nbsp;
	dest.<span style="color: #006633;">x</span> <span style="color: #339933;">+=</span> cos<span style="color: #009900;">&#40;</span>o.<span style="color: #006633;">orientation</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #cc66cc;">15</span><span style="color: #339933;">;</span>
	dest.<span style="color: #006633;">y</span> <span style="color: #339933;">+=</span> sin<span style="color: #009900;">&#40;</span>o.<span style="color: #006633;">orientation</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #cc66cc;">15</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">return</span> dest<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h2>Сборщик титаниума</h2>
<p>Программа для сбора TitaniumOre. Также поддерживает до двух одновременно работающих ботов, позволяя избегать пробок.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">extern <span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>CollectTitanOre<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>energyCell.<span style="color: #006633;">energyLevel</span> <span style="color: #339933;">&lt;=</span> <span style="color: #cc66cc;">0.4</span><span style="color: #009900;">&#41;</span>
		    maint<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>load <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
		    retrieveResource<span style="color: #009900;">&#40;</span>TitaniumOre<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">else</span>
		<span style="color: #009900;">&#123;</span>
			processResource<span style="color: #009900;">&#40;</span>Converter<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			deliverResource<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>retrieveResource<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> category<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	object resource<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span>resource <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>category<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;No TitaniumOre found.  Standing by...&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>    
	<span style="color: #009900;">&#125;</span>
&nbsp;
	myGoto<span style="color: #009900;">&#40;</span>resource.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	errmode<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	grab<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	errmode<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>processResource<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> category<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	object building<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span>building <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>category<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;No Converter found.  Standing by...&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>    
	<span style="color: #009900;">&#125;</span>
&nbsp;
	myGoto<span style="color: #009900;">&#40;</span>triangulate2d<span style="color: #009900;">&#40;</span>building<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	myGoto<span style="color: #009900;">&#40;</span>building.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	drop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	move<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">15</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	move<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1.5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	grab<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>deliverResource<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> category<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	object dest <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>category<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>dest <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
	    <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>space<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">else</span> 
	<span style="color: #009900;">&#123;</span>
		errmode<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>space<span style="color: #009900;">&#40;</span>dest.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
		    <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>space<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		errmode<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	drop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;TitaniumCube delivered.&quot;</span>,DisplayInfo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>maint<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Energy level low.  Searching for energy sources...&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>rechargePlanA<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">false</span> and rechargePlanB<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Warning.  No energy sources found!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">25</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Recharge completed.  Resuming job duties...&quot;</span>, DisplayInfo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
bool object<span style="color: #339933;">::</span>rechargePlanA<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">int</span> cat<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	cat<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> PowerStation<span style="color: #339933;">;</span> 
	cat<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> PowerCaptor<span style="color: #339933;">;</span>
&nbsp;
	object pwrSource <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>cat<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  
&nbsp;
	<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>pwrSource <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		myGoto<span style="color: #009900;">&#40;</span>triangulate2d<span style="color: #009900;">&#40;</span>pwrSource<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		myGoto<span style="color: #009900;">&#40;</span>pwrSource.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Recharging at &quot;</span> <span style="color: #339933;">+</span> pwrSource.<span style="color: #006633;">category</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;...&quot;</span>,DisplayInfo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>energyCell.<span style="color: #006633;">energyLevel</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span>
		    wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
bool object<span style="color: #339933;">::</span>rechargePlanB<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	object cell<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">float</span> min <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span>cell <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>PowerCell,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">360</span>,min<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		min <span style="color: #339933;">=</span> distance2d<span style="color: #009900;">&#40;</span>position,cell.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">0.5</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>cell.<span style="color: #006633;">energyLevel</span> <span style="color: #339933;">&gt;=</span> <span style="color: #cc66cc;">0.5</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>cell.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>    
&nbsp;
			message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Swapping with better PowerCell...&quot;</span>,DisplayInfo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			grab<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>   
			drop<span style="color: #009900;">&#40;</span>Behind<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			grab<span style="color: #009900;">&#40;</span>EnergyCell<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  
			drop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			grab<span style="color: #009900;">&#40;</span>Behind<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			drop<span style="color: #009900;">&#40;</span>EnergyCell<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>myGoto<span style="color: #009900;">&#40;</span>point p<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	errmode<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>p<span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
	    wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>    
&nbsp;
	errmode<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
point object<span style="color: #339933;">::</span>triangulate2d<span style="color: #009900;">&#40;</span>object o<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	point dest <span style="color: #339933;">=</span> o.<span style="color: #006633;">position</span><span style="color: #339933;">;</span>
&nbsp;
	dest.<span style="color: #006633;">x</span> <span style="color: #339933;">+=</span> cos<span style="color: #009900;">&#40;</span>o.<span style="color: #006633;">orientation</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">;</span>
	dest.<span style="color: #006633;">y</span> <span style="color: #339933;">+=</span> sin<span style="color: #009900;">&#40;</span>o.<span style="color: #006633;">orientation</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">return</span> dest<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h2>Титаниум-граббер</h2>
<p>Еще одна программа для сборки/переработки титаниума. Роботы автоматически подзаряжаются при необходимости.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">extern <span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>MakeTitanium<span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	errmode <span style="color: #009900;">&#40;</span> <span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span> <span style="color: #000066; font-weight: bold;">int</span> i<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span> <span style="color: #339933;">;</span> i<span style="color: #339933;">&lt;</span><span style="color: #cc66cc;">10</span> <span style="color: #339933;">;</span> i<span style="color: #339933;">=</span>i<span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		object  obj, item<span style="color: #339933;">;</span> 
		point   dest,scrap, storage<span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">int</span> j<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span>, err<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span>, h<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">float</span> dist, pl, xt,yt,x,y<span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">do</span>
		<span style="color: #009900;">&#123;</span>
			obj <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>TitaniumOre<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span> obj <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;TitaniumOre found at X=&quot;</span> <span style="color: #339933;">+</span> obj.<span style="color: #006633;">position</span>.<span style="color: #006633;">x</span> <span style="color: #339933;">+</span><span style="color: #0000ff;">&quot; Y=&quot;</span><span style="color: #339933;">+</span>obj.<span style="color: #006633;">position</span>.<span style="color: #006633;">y</span>,DisplayInfo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		dist<span style="color: #339933;">=</span>distance<span style="color: #009900;">&#40;</span>position,obj.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>category <span style="color: #339933;">==</span> LeggedGrabber<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> pl <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0.05</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">2.1</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span>dist<span style="color: #339933;">*</span><span style="color: #cc66cc;">0.0008</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>category <span style="color: #339933;">==</span> WheeledGrabber<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> pl <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0.10</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">2.5</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span>dist<span style="color: #339933;">*</span><span style="color: #cc66cc;">0.0016</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>category <span style="color: #339933;">==</span> TrackedGrabber<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> pl <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0.10</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">2.5</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span>dist<span style="color: #339933;">*</span><span style="color: #cc66cc;">0.0025</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>category <span style="color: #339933;">==</span> Subber<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> pl <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0.20</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">2.5</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span>dist<span style="color: #339933;">*</span><span style="color: #cc66cc;">0.0025</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>energyCell.<span style="color: #006633;">category</span> <span style="color: #339933;">==</span> NuclearCell<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> pl <span style="color: #339933;">=</span> pl <span style="color: #339933;">*</span> <span style="color: #cc66cc;">0.1</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
		message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Estimated Safe power needed is :&quot;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span>pl<span style="color: #339933;">*</span><span style="color: #cc66cc;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #0000ff;">&quot;% Current Cell level is:&quot;</span><span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>energyCell.<span style="color: #006633;">energyLevel</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #0000ff;">&quot;%&quot;</span>,DisplayInfo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>pl <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;The nearest Titanium ore is out of the safe power range of a full charge&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">return</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>energyCell.<span style="color: #006633;">energyLevel</span> <span style="color: #339933;">&lt;</span> pl and energyCell.<span style="color: #006633;">category</span> <span style="color: #339933;">!=</span> NuclearCell and <span style="color: #009900;">&#40;</span>radar<span style="color: #009900;">&#40;</span>PowerStation<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			j<span style="color: #339933;">=</span><span style="color: #cc66cc;">5</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">do</span>
			<span style="color: #009900;">&#123;</span>
				item <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>PowerStation,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">360</span>,j<span style="color: #339933;">-</span><span style="color: #cc66cc;">5</span>,j<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				j<span style="color: #339933;">+=</span><span style="color: #cc66cc;">5</span><span style="color: #339933;">;</span>
				<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>item <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> err <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>item.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>err <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>item <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>WayPoint,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
				<span style="color: #009900;">&#125;</span>
				<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>j <span style="color: #339933;">&gt;=</span> <span style="color: #cc66cc;">600</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
					j<span style="color: #339933;">=</span><span style="color: #cc66cc;">5</span><span style="color: #339933;">;</span>
					message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;PowerStation(s) are blocked!&quot;</span>,DisplayWarning<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">30</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
&nbsp;
			<span style="color: #009900;">&#125;</span>
			<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span>item <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>item <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;The Bot is recharging its power cells.&quot;</span>,DisplayInfo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span> energyCell.<span style="color: #006633;">energyLevel</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">1</span> <span style="color: #009900;">&#41;</span>
				<span style="color: #009900;">&#123;</span>
					wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>           
				<span style="color: #009900;">&#125;</span>
&nbsp;
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>category <span style="color: #339933;">!=</span> Subber<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>energyCell.<span style="color: #006633;">energyLevel</span> <span style="color: #339933;">&lt;</span> pl <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
					message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;The Bot is changing power cells.&quot;</span>,DisplayInfo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					j<span style="color: #339933;">=</span> <span style="color: #cc66cc;">5</span><span style="color: #339933;">;</span>
					<span style="color: #000000; font-weight: bold;">do</span><span style="color: #009900;">&#123;</span>
						item <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>PowerCell,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">360</span>,j<span style="color: #339933;">-</span><span style="color: #cc66cc;">5</span>,j<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>item <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>item <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>NuclearCell,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">360</span>,j<span style="color: #339933;">-</span><span style="color: #cc66cc;">5</span>,j<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
						j<span style="color: #339933;">+=</span><span style="color: #cc66cc;">5</span><span style="color: #339933;">;</span>
						<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>item <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>item.<span style="color: #006633;">energyLevel</span> <span style="color: #339933;">&lt;=</span> <span style="color: #cc66cc;">0.8</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
								item <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>WayPoint,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
						<span style="color: #009900;">&#125;</span>
						<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>j <span style="color: #339933;">&gt;=</span> <span style="color: #cc66cc;">400</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
							j<span style="color: #339933;">=</span><span style="color: #cc66cc;">5</span><span style="color: #339933;">;</span>
							message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Bot Cannot find any energy cells.&quot;</span>,DisplayInfo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
							wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">30</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
						<span style="color: #009900;">&#125;</span>
					<span style="color: #009900;">&#125;</span>
					<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span> item <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
					<span style="color: #000000; font-weight: bold;">do</span><span style="color: #009900;">&#123;</span>
						err <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>item.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>err <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> 
							message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;powercell get error.. trying again.&quot;</span>,DisplayInfo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
							turn<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">120</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
							move<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">15</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						<span style="color: #009900;">&#125;</span>
					<span style="color: #009900;">&#125;</span>
					<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>err <span style="color: #339933;">!=</span><span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					grab<span style="color: #009900;">&#40;</span>InFront<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>     <span style="color: #666666; font-style: italic;">// take the new cell in front</span>
					drop<span style="color: #009900;">&#40;</span>Behind<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>      <span style="color: #666666; font-style: italic;">// and drop it behind</span>
&nbsp;
					grab<span style="color: #009900;">&#40;</span>EnergyCell<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  <span style="color: #666666; font-style: italic;">// take the cell from the bot</span>
					drop<span style="color: #009900;">&#40;</span>InFront<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>     <span style="color: #666666; font-style: italic;">// and drop it in front</span>
&nbsp;
					grab<span style="color: #009900;">&#40;</span>Behind<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>      <span style="color: #666666; font-style: italic;">// take the new cell</span>
					drop<span style="color: #009900;">&#40;</span>EnergyCell<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  <span style="color: #666666; font-style: italic;">// and drop it on the bot</span>
&nbsp;
				<span style="color: #009900;">&#125;</span>
				<span style="color: #000000; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>energyCell.<span style="color: #006633;">energyLevel</span> <span style="color: #339933;">&lt;</span> pl <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
					item <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>SpaceShip<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>item.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Subber needs a Cell change at SpaceShip.&quot;</span>,DisplayError<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">do</span>
		<span style="color: #009900;">&#123;</span>
			obj <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>TitaniumOre<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span> obj <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">do</span><span style="color: #009900;">&#123;</span>
			err <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>obj.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>err <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;T.ore Get error, Trying again.&quot;</span>,DisplayInfo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				turn<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">120</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				move<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">15</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>err <span style="color: #339933;">!=</span><span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		grab<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  <span style="color: #666666; font-style: italic;">// grab the titanium ore</span>
&nbsp;
		obj <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>Converter<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> obj <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #009900;">&#41;</span>  <span style="color: #000000; font-weight: bold;">return</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">do</span><span style="color: #009900;">&#123;</span>
			err <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>obj.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>err <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;T.ore delivery error, Trying again.&quot;</span>,DisplayInfo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				turn<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">120</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				move<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">15</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>err <span style="color: #339933;">!=</span><span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		drop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
		move<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">2.5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  
		<span style="color: #000000; font-weight: bold;">do</span>
		<span style="color: #009900;">&#123;</span>
			obj <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>Titanium, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">360</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span> obj <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>obj.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		grab<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> i <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">2</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			i<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
			h<span style="color: #339933;">=</span>h<span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		x<span style="color: #339933;">=</span>i<span style="color: #339933;">*</span><span style="color: #cc66cc;">2</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">5</span><span style="color: #339933;">;</span>
		y<span style="color: #339933;">=-</span><span style="color: #009900;">&#40;</span>h<span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">2</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">10</span><span style="color: #339933;">;</span>
		scrap<span style="color: #339933;">=</span>position<span style="color: #339933;">;</span>
		xt <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>x <span style="color: #339933;">*</span> cos<span style="color: #009900;">&#40;</span>orientation<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>y <span style="color: #339933;">*</span> sin<span style="color: #009900;">&#40;</span>orientation<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		yt <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>y <span style="color: #339933;">*</span> cos<span style="color: #009900;">&#40;</span>orientation<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span>x <span style="color: #339933;">*</span> sin<span style="color: #009900;">&#40;</span>orientation<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #666666; font-style: italic;">//message(&quot;X=&quot;+xt+&quot;Y=&quot;+yt);</span>
		scrap.<span style="color: #006633;">x</span> <span style="color: #339933;">=</span> position.<span style="color: #006633;">x</span> <span style="color: #339933;">+</span> xt<span style="color: #339933;">;</span>
		scrap.<span style="color: #006633;">y</span> <span style="color: #339933;">=</span> position.<span style="color: #006633;">y</span> <span style="color: #339933;">+</span> yt<span style="color: #339933;">;</span>
		<span style="color: #666666; font-style: italic;">//message(&quot;X=&quot;+scrap.x+&quot;Y=&quot;+scrap.y);</span>
		storage <span style="color: #339933;">=</span> space<span style="color: #009900;">&#40;</span>scrap,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">100</span>,<span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>storage.<span style="color: #006633;">x</span> <span style="color: #339933;">==</span> nan<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;bad.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Titanium being stored tenitivly at: X=&quot;</span><span style="color: #339933;">+</span>storage.<span style="color: #006633;">x</span><span style="color: #339933;">+</span><span style="color: #0000ff;">&quot; Y=&quot;</span><span style="color: #339933;">+</span>storage.<span style="color: #006633;">y</span>,DisplayInfo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		err <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>storage<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>err <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;T storage errorin moving to space&quot;</span>,DisplayInfo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>space<span style="color: #009900;">&#40;</span>storage,<span style="color: #cc66cc;">4</span>,<span style="color: #cc66cc;">100</span>,<span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>drop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		err <span style="color: #339933;">=</span> drop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>err <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;T storage error. finding open spot&quot;</span>,DisplayInfo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>space<span style="color: #009900;">&#40;</span>position,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">100</span>,<span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>drop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		move<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">2.5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h2>Недокументированные возможности</h2>
<p>Приведены описание хитростей и готовые процедуры, которые можно использовать в игре.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">...<span style="color: #006633;">On</span> my latest mission to a previously explored planet i ran across a race of abandoned robots, in 
   <span style="color: #000000; font-weight: bold;">return</span> of being left alone they gave me information about undocumented instructions and mechanism of
   the bots.
&nbsp;
<span style="color: #339933;">---------------------------------------------------------------------------------------------------------</span>
<span style="color: #339933;">---------------------------------------------------------------------------------------------------------</span>
&nbsp;
   Syntax <span style="color: #339933;">:</span>
&nbsp;
<span style="color: #339933;">--</span> <span style="color: #000066; font-weight: bold;">float</span><span style="color: #339933;">/</span><span style="color: #000066; font-weight: bold;">int</span> abs<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">float</span><span style="color: #339933;">/</span><span style="color: #000066; font-weight: bold;">int</span> variable<span style="color: #009900;">&#41;</span>  Returns absolute value of variable. <span style="color: #006633;">e</span>.<span style="color: #006633;">a</span>. <span style="color: #006633;">always</span> positive.
&nbsp;
   <span style="color: #006633;">example</span> x <span style="color: #339933;">=</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
           abs<span style="color: #009900;">&#40;</span>x<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
           message<span style="color: #009900;">&#40;</span>x<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #339933;">---------------------------------------------------------------------------------------------------------</span>
&nbsp;
   Syntax <span style="color: #339933;">:</span>
&nbsp;
<span style="color: #339933;">--</span> <span style="color: #000066; font-weight: bold;">boolean</span>   Same as bool.
&nbsp;
   <span style="color: #000000; font-weight: bold;">If</span> you want a function to <span style="color: #000000; font-weight: bold;">return</span> a <span style="color: #000066; font-weight: bold;">boolean</span> only the latter is recognized.
&nbsp;
   <span style="color: #006633;">example</span> <span style="color: #339933;">::</span> <span style="color: #000066; font-weight: bold;">boolean</span> object<span style="color: #339933;">::</span>energyLow<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
             <span style="color: #009900;">&#123;</span>
                <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>energyCell.<span style="color: #006633;">energyLevel</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">0.1</span><span style="color: #009900;">&#41;</span>
                <span style="color: #009900;">&#123;</span>
                   <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
                <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>
             <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #339933;">---------------------------------------------------------------------------------------------------------</span>
&nbsp;
   Syntax <span style="color: #339933;">:</span>
&nbsp;
<span style="color: #339933;">--</span> <span style="color: #000066; font-weight: bold;">boolean</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000066; font-weight: bold;">boolean</span>   Returns <span style="color: #000066; font-weight: bold;">true</span> <span style="color: #000000; font-weight: bold;">if</span> both bools are <span style="color: #000066; font-weight: bold;">true</span>, <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">false</span>.
<span style="color: #339933;">--</span> <span style="color: #000066; font-weight: bold;">boolean</span> <span style="color: #339933;">||</span> <span style="color: #000066; font-weight: bold;">boolean</span>   Returns <span style="color: #000066; font-weight: bold;">false</span> when both bools are <span style="color: #000066; font-weight: bold;">false</span>, <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">true</span>. <span style="color: #006633;">e</span>.<span style="color: #006633;">a</span>. <span style="color: #006633;">inversion</span> of <span style="color: #339933;">&amp;&amp;</span>.
<span style="color: #339933;">--</span> <span style="color: #339933;">!</span><span style="color: #000066; font-weight: bold;">boolean</span>   Returns the inversion of the bool. <span style="color: #006633;">e</span>.<span style="color: #006633;">a</span>. <span style="color: #339933;">!</span><span style="color: #000066; font-weight: bold;">true</span> <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">false</span>, <span style="color: #339933;">!</span><span style="color: #000066; font-weight: bold;">false</span> <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">true</span>.
&nbsp;
   <span style="color: #006633;">example</span> <span style="color: #339933;">::</span> object target<span style="color: #339933;">;</span>
              target <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>PowerStation<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
              <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>energyCell.<span style="color: #006633;">energyLevel</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">0.1</span> <span style="color: #339933;">&amp;&amp;</span> energyCell.<span style="color: #006633;">category</span> <span style="color: #339933;">==</span> PowerCell<span style="color: #009900;">&#41;</span>
              <span style="color: #009900;">&#123;</span>
                 <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>target.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
              <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #339933;">---------------------------------------------------------------------------------------------------------</span>
&nbsp;
   Syntax <span style="color: #339933;">:</span>
&nbsp;
<span style="color: #339933;">--</span> variable<span style="color: #339933;">++</span>   Increases variable by one after instruction.
<span style="color: #339933;">--</span> variable<span style="color: #339933;">--</span>   Decreases variable by one after instruction.
&nbsp;
   <span style="color: #006633;">Use</span> x<span style="color: #339933;">++</span> instead of x <span style="color: #339933;">=</span> x <span style="color: #339933;">+</span> <span style="color: #cc66cc;">1</span> and x<span style="color: #339933;">--</span> instead of x <span style="color: #339933;">=</span> x <span style="color: #339933;">-</span> 1. <span style="color: #000000; font-weight: bold;">This</span> works on both <span style="color: #000066; font-weight: bold;">int</span> and <span style="color: #000066; font-weight: bold;">float</span> variables.
&nbsp;
   <span style="color: #006633;">note</span> <span style="color: #339933;">--</span> <span style="color: #000000; font-weight: bold;">If</span> the variable is read in the same instruction, the variable will <span style="color: #000000; font-weight: bold;">return</span> the old value. 
           <span style="color: #006633;">example</span><span style="color: #339933;">:</span> <span style="color: #000066; font-weight: bold;">int</span> x <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> message<span style="color: #009900;">&#40;</span>x<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">This</span> will prompt <span style="color: #cc66cc;">0</span> instead of 1.
&nbsp;
   <span style="color: #006633;">example</span> <span style="color: #339933;">::</span> <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> x <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span>, y <span style="color: #339933;">=</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">;</span> x <span style="color: #339933;">&lt;</span> y<span style="color: #339933;">;</span> x<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #339933;">---------------------------------------------------------------------------------------------------------</span>
&nbsp;
   Syntax <span style="color: #339933;">:</span>
&nbsp;
<span style="color: #339933;">--</span> ipf<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#41;</span>  Changes linespeed to <span style="color: #000066; font-weight: bold;">int</span><span style="color: #339933;">;</span>
&nbsp;
   You can increase the speed the bot interprets your code with <span style="color: #000000; font-weight: bold;">this</span> instruction, ideal <span style="color: #000000; font-weight: bold;">for</span> ultra
   intensive routines. <span style="color: #339933;">:</span><span style="color: #009900;">&#41;</span>
&nbsp;
   ipf<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">200</span><span style="color: #009900;">&#41;</span> is more or less the normal setting...
&nbsp;
<span style="color: #339933;">---------------------------------------------------------------------------------------------------------</span>
&nbsp;
   Syntax <span style="color: #339933;">:</span>
&nbsp;
<span style="color: #339933;">--</span> <span style="color: #000066; font-weight: bold;">boolean</span><span style="color: #339933;">/</span><span style="color: #000066; font-weight: bold;">float</span><span style="color: #339933;">/</span><span style="color: #000066; font-weight: bold;">int</span><span style="color: #339933;">/</span>object<span style="color: #339933;">/</span>string variableA, variableB, variableC<span style="color: #339933;">;</span>
&nbsp;
   You can declare multiple variables of the same type on the same line by defining them with a <span style="color: #0000ff;">','</span>.
&nbsp;
   <span style="color: #006633;">example</span> <span style="color: #339933;">::</span> <span style="color: #000066; font-weight: bold;">int</span> varX, varY, varZ<span style="color: #339933;">;</span>
&nbsp;
&nbsp;
<span style="color: #339933;">---------------------------------------------------------------------------------------------------------</span>
&nbsp;
   Syntax <span style="color: #339933;">:</span>
&nbsp;
<span style="color: #339933;">--</span> <span style="color: #000066; font-weight: bold;">boolean</span><span style="color: #339933;">/</span><span style="color: #000066; font-weight: bold;">float</span><span style="color: #339933;">/</span><span style="color: #000066; font-weight: bold;">int</span><span style="color: #339933;">/</span>object<span style="color: #339933;">/</span>string<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span>   Defines a array.
&nbsp;
   <span style="color: #006633;">You</span> can create a array from any type of variable with <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span>, members are addressed with a <span style="color: #000066; font-weight: bold;">int</span> index. 
   <span style="color: #006633;">e</span>.<span style="color: #006633;">a</span>. <span style="color: #006633;">variable</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">12</span><span style="color: #009900;">&#93;</span> or array<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#93;</span> <span style="color: #003399;">Arrays</span> of arrays of the same type is possible.
&nbsp;
   <span style="color: #006633;">example</span> <span style="color: #339933;">::</span> <span style="color: #000066; font-weight: bold;">float</span> array<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
              array<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1.23</span><span style="color: #339933;">;</span>
              array<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">4.32</span><span style="color: #339933;">;</span>
   <span style="color: #339933;">---</span>
              <span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> array, anotherArray, arrays<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
              array<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
              array<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">;</span>
              anotherArray<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
              anotherArray<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">5</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
              arrays<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> array<span style="color: #339933;">;</span>
              arrays<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> anotherArray<span style="color: #339933;">;</span>
&nbsp;
   Use sizeof to get the size or maximum index of a array, ofcourse functions can also accept and <span style="color: #000000; font-weight: bold;">return</span>
   arrays.
&nbsp;
   <span style="color: #006633;">Syntax</span> <span style="color: #339933;">:</span>
&nbsp;
<span style="color: #339933;">--</span> <span style="color: #000066; font-weight: bold;">int</span> sizeof<span style="color: #009900;">&#40;</span>array<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>   Returns the size of a array or index<span style="color: #339933;">-</span>1.
<span style="color: #339933;">--</span> type<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> functionName<span style="color: #009900;">&#40;</span>type variable<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>  Creates a function accepting and returning a array.        
&nbsp;
   <span style="color: #006633;">note</span> <span style="color: #339933;">--</span> <span style="color: #009900;">&#40;</span> <span style="color: #000000; font-weight: bold;">this</span> example can best be used with ipf<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">10000</span><span style="color: #009900;">&#41;</span> or similar <span style="color: #009900;">&#41;</span>
&nbsp;
   example <span style="color: #339933;">::</span> <span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> getCategories<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
              <span style="color: #009900;">&#123;</span>
                 object <span style="color: #003399;">Object</span><span style="color: #339933;">;</span>
                 <span style="color: #000066; font-weight: bold;">int</span> typesFound<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span>, indexFound <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span>, searchIndex <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
                 <span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span>
                 <span style="color: #009900;">&#123;</span>
                    <span style="color: #003399;">Object</span> <span style="color: #339933;">=</span> retobject<span style="color: #009900;">&#40;</span>searchIndex<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Object</span> <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
                    <span style="color: #009900;">&#123;</span>
                       <span style="color: #000000; font-weight: bold;">return</span> typesFound<span style="color: #339933;">;</span>
                    <span style="color: #009900;">&#125;</span>
                    <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>intExist<span style="color: #009900;">&#40;</span>typesFound, <span style="color: #003399;">Object</span>.<span style="color: #006633;">category</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
                    <span style="color: #009900;">&#123;</span>
                       typesFound<span style="color: #009900;">&#91;</span>indexFound<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #003399;">Object</span>.<span style="color: #006633;">category</span><span style="color: #339933;">;</span>
                       indexFound<span style="color: #339933;">++;</span>
                    <span style="color: #009900;">&#125;</span>
                    searchIndex<span style="color: #339933;">++;</span>
                 <span style="color: #009900;">&#125;</span>
              <span style="color: #009900;">&#125;</span>
&nbsp;
              <span style="color: #000066; font-weight: bold;">boolean</span> intExist<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> array, <span style="color: #000066; font-weight: bold;">int</span> target<span style="color: #009900;">&#41;</span>
              <span style="color: #009900;">&#123;</span>
                 <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>sizeof<span style="color: #009900;">&#40;</span>array<span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
                 <span style="color: #009900;">&#123;</span>
                    <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> searchIndex <span style="color: #339933;">=</span> sizeof<span style="color: #009900;">&#40;</span>array<span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> searchIndex <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span> <span style="color: #339933;">;</span> searchIndex<span style="color: #339933;">--</span><span style="color: #009900;">&#41;</span>
                    <span style="color: #009900;">&#123;</span>
                       <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>array<span style="color: #009900;">&#91;</span>searchIndex<span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> target<span style="color: #009900;">&#41;</span>
                       <span style="color: #009900;">&#123;</span>
                          <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
                       <span style="color: #009900;">&#125;</span>
                    <span style="color: #009900;">&#125;</span>
                 <span style="color: #009900;">&#125;</span>
                 <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>
              <span style="color: #009900;">&#125;</span>
&nbsp;
   note <span style="color: #339933;">--</span> You can define directly index <span style="color: #cc66cc;">5</span>, however the rest of the array <span style="color: #cc66cc;">0</span> to <span style="color: #cc66cc;">4</span> is also created and
           assigned with nan.
&nbsp;
   <span style="color: #006633;">example</span> <span style="color: #339933;">::</span> string<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> text<span style="color: #339933;">;</span>
&nbsp;
              text<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">5</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;hello world :p&quot;</span><span style="color: #339933;">;</span>
&nbsp;
   would actually make the array <span style="color: #339933;">:</span> text<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> nan<span style="color: #339933;">;</span>
   				   text<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> nan<span style="color: #339933;">;</span>
   				   text<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> nan<span style="color: #339933;">;</span>
   				   text<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> nan<span style="color: #339933;">;</span>
   				   text<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">4</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> nan<span style="color: #339933;">;</span>
   				   text<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">5</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;hello world :p&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #339933;">---------------------------------------------------------------------------------------------------------</span>
&nbsp;
   Syntax <span style="color: #339933;">:</span>
&nbsp;
<span style="color: #339933;">--</span> object radar<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> Category, <span style="color: #000066; font-weight: bold;">float</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> Angle, <span style="color: #000066; font-weight: bold;">float</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> Focus, <span style="color: #000066; font-weight: bold;">float</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> Min, <span style="color: #000066; font-weight: bold;">float</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> Max, <span style="color: #000066; font-weight: bold;">float</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> Sens<span style="color: #009900;">&#41;</span>
&nbsp;
   note <span style="color: #339933;">--</span> All variable accept arrays, you may use <span style="color: #000000; font-weight: bold;">for</span> example a array of alien category to detect 
           multiple kinds of alien foes at once.
&nbsp;
   <span style="color: #006633;">example</span> <span style="color: #339933;">::</span> object target<span style="color: #339933;">;</span>
              <span style="color: #000066; font-weight: bold;">int</span> foes<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
              foes<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> AlienQueen<span style="color: #339933;">;</span>
              foes<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> AlienEgg<span style="color: #339933;">;</span>
              foes<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> AlienAnt<span style="color: #339933;">;</span>
              foes<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> AlienSpider<span style="color: #339933;">;</span>
              foes<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">4</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> AlienWasp<span style="color: #339933;">;</span>
              foes<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">5</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> AlienWorm<span style="color: #339933;">;</span>
&nbsp;
              target <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>foes<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #339933;">---------------------------------------------------------------------------------------------------------</span>
&nbsp;
   Syntax <span style="color: #339933;">:</span>
&nbsp;
<span style="color: #339933;">--</span> object search<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> preferedCategory, <span style="color: #000066; font-weight: bold;">int</span> x, <span style="color: #000066; font-weight: bold;">int</span> y<span style="color: #009900;">&#41;</span>  Returns a prefered object or the nearest object
                                                      at a specified location.
&nbsp;
   <span style="color: #006633;">note</span> <span style="color: #339933;">--</span> the x and y ofcourse optional, however y is needed when x is specified.
&nbsp;
<span style="color: #339933;">---------------------------------------------------------------------------------------------------------</span>
&nbsp;
   Syntax <span style="color: #339933;">:</span>
&nbsp;
<span style="color: #339933;">--</span> <span style="color: #000066; font-weight: bold;">int</span> produce<span style="color: #009900;">&#40;</span>point <span style="color: #003399;">Position</span>, <span style="color: #000066; font-weight: bold;">float</span> Direction, <span style="color: #000066; font-weight: bold;">int</span> Category, string Script<span style="color: #009900;">&#41;</span>
&nbsp;
   Produces objects like bots and powercells out of thin air, amazing<span style="color: #339933;">!</span> <span style="color: #339933;">:</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#40;</span>Doesn<span style="color: #0000ff;">'t work on all kinds of
   objects) Returns 0 if successful, 1 if not. A name of a script filename can be given to be runned on a
   produced bot. example: &quot;script.txt&quot;
&nbsp;
   example :: produce(position, 0, PowerCell, &quot;&quot;);
&nbsp;
---------------------------------------------------------------------------------------------------------
&nbsp;
   Syntax :
&nbsp;
-- public type functionName(type variable1, type variable2, etc)
&nbsp;
   You can make a function accessible with public from another script and also from another bot!
&nbsp;
   example :: // bot #1
              public string indentify()
              {
                 return &quot;Hi, my name is, my name is, my name is...&quot;;
              }
&nbsp;
              // bot #2
              message(indentify());
&nbsp;
---------------------------------------------------------------------------------------------------------
&nbsp;
   I know there is more i could see it in their face ;), but this is it for now, maybe ever...
&nbsp;
===================================================================
   Some usefull functions i wrote on those missions...
&nbsp;
---------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------         
&nbsp;
-- Returns the angle to the grid from pointA to pointB. Similar to direction except direction assumes 
   pointA to be the bots position.           
&nbsp;
   float angle(point pointA, point pointB)
   {
      float offset = 90;
      if (deltaY(pointA, pointB) &gt; 0)
      {
         offset = 270;
      }
      return offset + atan(deltaX(pointA, pointB) / deltaY(pointA, pointB));
   }
&nbsp;
---------------------------------------------------------------------------------------------------------
&nbsp;
   float deltaX(point origin, point target)
   {
      return target.x - origin.x;
   }
&nbsp;
---------------------------------------------------------------------------------------------------------
&nbsp;
   float deltaY(point origin, point target)
   {
      return target.y - origin.y;
   }
&nbsp;
---------------------------------------------------------------------------------------------------------
&nbsp;
   Calculates a point from another point with a horizontal angle, a vertical angle and a distance.
&nbsp;
   point triangulate(point origin, float Distance, float angleH, float angleV)
   {
      point dest;
&nbsp;
      dest.x = cos(angleH) * cos(angleV) * Distance;
      dest.y = sin(angleH) * cos(angleV) * Distance;
      dest.z = sin(angleV) * Distance;
&nbsp;
      return dest;
   }
&nbsp;
---------------------------------------------------------------------------------------------------------
&nbsp;
   Same as triangulate but only using  2 dimensions. (horizontal)
&nbsp;
   point triangulate2d(point origin, float Distance, float angle)
   {
      point dest;
&nbsp;
      dest.x = cos(angle) * Distance;
      dest.y = sin(angle) * Distance;
&nbsp;
      return dest;
   }</span></pre></div></div>

<h2>Телохранитель</h2>
<p>Нуждаетесь в телохранителе? :-) В этой программой Ваш робот-охранник будет следовать за Вами. В опасных ситуациях будет защищать Вас, стреляя в находящихся рядом врагов. Можете создавать эскорты для охраны чего-либо. Также можете делать несколько роботов охранниками друг друга для скоординированной помощи.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">extern <span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span><span style="color: #003399;">Guard</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">int</span> allyType <span style="color: #339933;">=</span> Me<span style="color: #339933;">;</span>                   <span style="color: #666666; font-style: italic;">// put ally category here (i.e. LeggedGrabber)</span>
    <span style="color: #000066; font-weight: bold;">int</span> keepCloseDist <span style="color: #339933;">=</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">;</span>              <span style="color: #666666; font-style: italic;">// how far behind to follow</span>
    <span style="color: #000066; font-weight: bold;">int</span> parimeterToScan <span style="color: #339933;">=</span> <span style="color: #cc66cc;">50</span><span style="color: #339933;">;</span>            <span style="color: #666666; font-style: italic;">// range to look for enemy</span>
&nbsp;
    object enemy<span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        enemy <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>AlienAnt,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">360</span>,<span style="color: #cc66cc;">0</span>,parimeterToScan<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>enemy <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
            follow<span style="color: #009900;">&#40;</span>allyType,keepCloseDist<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">else</span>
            moveAndDestroy<span style="color: #009900;">&#40;</span>enemy<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>follow<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> category, <span style="color: #000066; font-weight: bold;">int</span> parimeter<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    object ally <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>category<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000066; font-weight: bold;">float</span> dis <span style="color: #339933;">=</span> distance<span style="color: #009900;">&#40;</span>position,ally.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>dis <span style="color: #339933;">&gt;</span> parimeter<span style="color: #009900;">&#41;</span>                           <span style="color: #666666; font-style: italic;">// if too far away from ally</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">float</span> dif <span style="color: #339933;">=</span> ally.<span style="color: #006633;">position</span>.<span style="color: #006633;">z</span><span style="color: #339933;">-</span>position.<span style="color: #006633;">z</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">float</span> ang <span style="color: #339933;">=</span> asin<span style="color: #009900;">&#40;</span>dif<span style="color: #339933;">/</span>dis<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        jet<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">-</span><span style="color: #009900;">&#40;</span>ang<span style="color: #339933;">/-</span><span style="color: #cc66cc;">20</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000066; font-weight: bold;">float</span> dir <span style="color: #339933;">=</span> direction<span style="color: #009900;">&#40;</span>ally.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        motor<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">-</span>dir<span style="color: #339933;">/</span><span style="color: #cc66cc;">22.5</span>,<span style="color: #cc66cc;">1</span><span style="color: #339933;">+</span>dir<span style="color: #339933;">/</span><span style="color: #cc66cc;">22.5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>             <span style="color: #666666; font-style: italic;">// move in closer</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">else</span>                                          <span style="color: #666666; font-style: italic;">// otherwise too close</span>
    <span style="color: #009900;">&#123;</span> 
        motor<span style="color: #009900;">&#40;</span>dis<span style="color: #339933;">/</span>parimeter<span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span>, dis<span style="color: #339933;">/</span>parimeter<span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  <span style="color: #666666; font-style: italic;">// back up a little</span>
&nbsp;
        <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>topo<span style="color: #009900;">&#40;</span>position<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>                    <span style="color: #666666; font-style: italic;">// if not over water</span>
            jet<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>                              <span style="color: #666666; font-style: italic;">// then land to conserve energy/minimize heat</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>moveAndDestroy<span style="color: #009900;">&#40;</span>object target<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">float</span> dir<span style="color: #339933;">;</span>    <span style="color: #666666; font-style: italic;">// direction of target from shooter</span>
    <span style="color: #000066; font-weight: bold;">float</span> dis<span style="color: #339933;">;</span>    <span style="color: #666666; font-style: italic;">// distance of target from shooter</span>
    <span style="color: #000066; font-weight: bold;">float</span> dif<span style="color: #339933;">;</span>    <span style="color: #666666; font-style: italic;">// difference in altitude of target &amp; shooter (relative to sea-level)</span>
    <span style="color: #000066; font-weight: bold;">float</span> ang<span style="color: #339933;">;</span>    <span style="color: #666666; font-style: italic;">// angle shooter must aim (-20 degrees favorable)</span>
&nbsp;
    dis <span style="color: #339933;">=</span> distance<span style="color: #009900;">&#40;</span>position,target.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    dif <span style="color: #339933;">=</span> target.<span style="color: #006633;">position</span>.<span style="color: #006633;">z</span><span style="color: #339933;">-</span>position.<span style="color: #006633;">z</span><span style="color: #339933;">;</span>
    ang <span style="color: #339933;">=</span> asin<span style="color: #009900;">&#40;</span>dif<span style="color: #339933;">/</span>dis<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    jet<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">-</span><span style="color: #009900;">&#40;</span>ang<span style="color: #339933;">/-</span><span style="color: #cc66cc;">20</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>                         <span style="color: #666666; font-style: italic;">// thrust until 20 degress above target</span>
&nbsp;
    dir <span style="color: #339933;">=</span> direction<span style="color: #009900;">&#40;</span>target.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
    motor<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">-</span>dir<span style="color: #339933;">/</span><span style="color: #cc66cc;">22.5</span>,<span style="color: #cc66cc;">1</span><span style="color: #339933;">+</span>dir<span style="color: #339933;">/</span><span style="color: #cc66cc;">22.5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>             <span style="color: #666666; font-style: italic;">// move towards enemy</span>
&nbsp;
    dis <span style="color: #339933;">=</span> distance<span style="color: #009900;">&#40;</span>position,target.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>   
    dif <span style="color: #339933;">=</span> target.<span style="color: #006633;">position</span>.<span style="color: #006633;">z</span><span style="color: #339933;">-</span>position.<span style="color: #006633;">z</span><span style="color: #339933;">;</span>         
    ang <span style="color: #339933;">=</span> asin<span style="color: #009900;">&#40;</span>dif<span style="color: #339933;">/</span>dis<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>                        
&nbsp;
    aim<span style="color: #009900;">&#40;</span>ang<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>                                 <span style="color: #666666; font-style: italic;">// take aim</span>
&nbsp;
    dir <span style="color: #339933;">=</span> direction<span style="color: #009900;">&#40;</span>target.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>           
&nbsp;
    <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>dis <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">30</span> and dir <span style="color: #339933;">&gt;</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">10</span> and dir <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span>   <span style="color: #666666; font-style: italic;">// if within range</span>
        fire<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0.1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h2>Авто-чарджер</h2>
<p>Лучшая программа для зарядки летающих роботов-охотников. Робот найдет батарейку, перезарядит ее при необходимости, переместится к летающему роботу и перезарядит батарейку. Работает даже если нет свободных батареек: возьмет у робота разряженную батарейку -> слетает на база для подзарядки -> вернется обратно.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// locates a WingedShooter with less than 'full' (0.9)</span>
<span style="color: #666666; font-style: italic;">// energy and resupplies it with a cell that's at least at</span>
<span style="color: #666666; font-style: italic;">// 'minevel' (0.8).</span>
<span style="color: #666666; font-style: italic;">// precond: hands empty or carrying power cell</span>
extern <span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>ReloadWingedShooter<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #666666; font-style: italic;">// level at which we decide to reload power cells</span>
	<span style="color: #000066; font-weight: bold;">float</span> minLevel <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0.8</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// full is defined in pickNonFullWS, below</span>
&nbsp;
	point home <span style="color: #339933;">=</span> position<span style="color: #339933;">;</span>
&nbsp;
	object ws <span style="color: #339933;">=</span> pickNonFullWS<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>ws <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Nobody to resupply&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">return</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>load<span style="color: #339933;">==</span><span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> grabPowerCell<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>load.<span style="color: #006633;">category</span><span style="color: #339933;">!=</span>PowerCell<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;I cannot resupply the WS because I am carrrying something already&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #666666; font-style: italic;">// (and it's not a power cell)</span>
		<span style="color: #000000; font-weight: bold;">return</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>load.<span style="color: #006633;">energyLevel</span><span style="color: #339933;">&lt;</span>minLevel<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;reloading power cell first, it is below &quot;</span><span style="color: #339933;">+</span>minLevel<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		sub_reload<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">/// go to winged shooter and replace power cell</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>ws.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>ws.<span style="color: #006633;">load</span><span style="color: #339933;">!=</span><span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">// switch old cell for new</span>
		message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Removing old cell&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		drop<span style="color: #009900;">&#40;</span>Behind<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// drop our loaded cell</span>
		grab<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// take old one</span>
		turn<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">90</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		drop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// drop old one</span>
		turn<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">90</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		grab<span style="color: #009900;">&#40;</span>Behind<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// take loaded cell</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #666666; font-style: italic;">// insert new cell in winged shooter</span>
	drop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
	message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Done refueling WS, returning to starting point&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>home<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// makes sure we grab a power cell. Gets a power cell around</span>
<span style="color: #666666; font-style: italic;">// us or from the power plant if that's closer.</span>
<span style="color: #666666; font-style: italic;">// precond: hands empty</span>
<span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>grabPowerCell<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
	object energy <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>PowerCell<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	object factory <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>PowerPlant<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>factory<span style="color: #339933;">!=</span><span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		object bat <span style="color: #339933;">=</span> factory.<span style="color: #006633;">energyCell</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">!=</span>bat<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #666666; font-style: italic;">// power plant has a battery ready</span>
			<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>distance<span style="color: #009900;">&#40;</span>position,bat.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">&lt;</span>distance<span style="color: #009900;">&#40;</span>position,energy.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #666666; font-style: italic;">// power plant is closer, take its battery</span>
				<span style="color: #666666; font-style: italic;">// instead</span>
				energy <span style="color: #339933;">=</span> bat<span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>energy <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;No power cell around&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">return</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>energy.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	grab<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// reload power and shield</span>
<span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>sub_reload<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	object item<span style="color: #339933;">;</span>           <span style="color: #666666; font-style: italic;">// info. about power station</span>
&nbsp;
	point start <span style="color: #339933;">=</span> position<span style="color: #339933;">;</span>      <span style="color: #666666; font-style: italic;">// store initial position</span>
&nbsp;
	item <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>PowerStation<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// look for station</span>
	<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>item.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>   <span style="color: #666666; font-style: italic;">// go to the power station</span>
&nbsp;
	object l <span style="color: #339933;">=</span> load<span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">!=</span>l<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>l.<span style="color: #006633;">category</span> <span style="color: #339933;">!=</span> EnergyCell<span style="color: #009900;">&#41;</span> l <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000066; font-weight: bold;">int</span> cl <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>l <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> cl <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">else</span> cl <span style="color: #339933;">=</span> l.<span style="color: #006633;">energyLevel</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span> energyCell.<span style="color: #006633;">energyLevel</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">1</span> or cl <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>            <span style="color: #666666; font-style: italic;">// wait until recharged</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>l <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> cl <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">else</span> cl <span style="color: #339933;">=</span> l.<span style="color: #006633;">energyLevel</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	object rep <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>RepairCenter<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>shieldLevel<span style="color: #339933;">&lt;</span><span style="color: #cc66cc;">1.0</span> and <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">!=</span>rep<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>rep.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span>shieldLevel<span style="color: #339933;">&lt;</span><span style="color: #cc66cc;">1.0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
	message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Recharge completed&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// returns a winged shooter with energy below 'full',</span>
<span style="color: #666666; font-style: italic;">// or null if none exist</span>
object object<span style="color: #339933;">::</span>pickNonFullWS<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// we will not pick a WS with power above this level</span>
	<span style="color: #000066; font-weight: bold;">float</span> full<span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000066; font-weight: bold;">float</span> m <span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">int</span> count<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
	object ws <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">float</span> l<span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// energy level of WS in consideration</span>
	<span style="color: #000000; font-weight: bold;">do</span> <span style="color: #009900;">&#123;</span>
		count<span style="color: #339933;">++;</span>
		ws <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>WingedShooter,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">360</span>,m<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		l<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">!=</span>ws<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">!=</span>ws.<span style="color: #006633;">energyCell</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				l <span style="color: #339933;">=</span> ws.<span style="color: #006633;">energyCell</span>.<span style="color: #006633;">energyLevel</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>l<span style="color: #339933;">&gt;=</span>full and <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">!=</span>ws<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			m<span style="color: #339933;">=</span>distance<span style="color: #009900;">&#40;</span>position,ws.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">0.1</span><span style="color: #339933;">;</span>
			ws <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">!=</span>ws<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;picked a WS with energy (&quot;</span><span style="color: #339933;">+</span>l<span style="color: #339933;">+</span><span style="color: #0000ff;">&quot;)&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span>l<span style="color: #339933;">&gt;=</span>full and count<span style="color: #339933;">&lt;</span><span style="color: #cc66cc;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">==</span>ws<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;There is no WS under &quot;</span><span style="color: #339933;">+</span>full<span style="color: #339933;">+</span><span style="color: #0000ff;">&quot; around&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000000; font-weight: bold;">return</span> ws<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h2>Миссия на Земле. Автопрохождение</h2>
<p>Программа, полностью автоматизирующая Земную миссию в демо-версии. Все возможные задачи и действия автоматизированы. Вам достаточно только загрузить программу в WheeledGrabber и TrackedGrabber. Некоторые действия вроде перемещения астронавта на корабль и создание зданий автоматизировать нельзя, так как игра это не позволяет.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">extern <span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>Mission1<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	object rdr<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>category <span style="color: #339933;">==</span>WheeledGrabber<span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		rdr <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>PowerCell<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		grab<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		rdr <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>ResearchCenter<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		drop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Research center powered - begin research.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		rdr <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>PowerCell<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// There are two powercells that get in the way</span>
		<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		grab<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		turn<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">90</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		drop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		move<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		rdr <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>PowerCell<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		grab<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		turn<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">90</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		drop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		rdr <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>Titanium<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		grab<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		rdr <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>BotFactory<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		drop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		move<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Bot factory loaded. Create new bot.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		rdr <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>PowerCell<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		grab<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		rdr <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>TrackedGrabber<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Waiting for manufacture of Tracked Grabber.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>rdr <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> rdr <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>TrackedGrabber<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		drop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Tracked grabber is ready.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		rdr <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>SpaceShip<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000000; font-weight: bold;">else</span>
	<span style="color: #009900;">&#123;</span>
		move<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		rdr <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>BlackBox<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		grab<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		rdr <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>SpaceShip<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		drop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	message<span style="color: #009900;">&#40;</span>category <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;: Mission complete&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h2>Миссия на Луне. Автопрохождение</h2>
<p>Программа, полностью автоматизирующая Лунную миссию в демо-версии.  Вам достаточно только загрузить программу в WheeledGrabber и TrackedGrabber. Некоторые действия вроде перемещения астронавта на корабль и создание зданий автоматизировать нельзя, так как игра это не позволяет.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">extern <span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>MoonOre<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	object rdr<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">int</span> counter <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">float</span> range <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">int</span> errcode <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
	errmode<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>category <span style="color: #339933;">==</span> WheeledGrabber<span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		rdr <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>PowerCell<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		errcode <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>errcode <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> errcode <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		grab<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		rdr <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>ResearchCenter<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>rdr <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Waiting for Researchcenter to be built.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>rdr <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> rdr <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>ResearchCenter<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		errcode <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>errcode <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> errcode <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		drop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Researchcenter is powered.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		rdr <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>Titanium<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		errcode <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>errcode <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			rdr <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>Titanium<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			errcode <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> 
		grab<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		rdr <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>BotFactory<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>rdr <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Waiting for Botfactory to be built.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>rdr <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> rdr <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>BotFactory<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		errcode <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>errcode <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			turn<span style="color: #009900;">&#40;</span>direction<span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			move<span style="color: #009900;">&#40;</span>distance2d<span style="color: #009900;">&#40;</span>position, rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			errcode <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		drop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Titanium loaded into BotFactory&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		rdr <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>PowerCell<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		errcode <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>errcode <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> errcode <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		grab<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		rdr <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>WingedGrabber<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>rdr <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Waiting for Wingedgrabber to be built.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>rdr <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> rdr <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>WingedGrabber<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		errcode <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>errcode <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> errcode <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		drop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Wingedgrabber ready.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		move<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">6</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		rdr <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>Titanium<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//Get the extra Titanium out of the way</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>rdr <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			errcode <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>errcode <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> errcode <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			grab<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			errcode <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>space<span style="color: #009900;">&#40;</span>position<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>errcode <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> errcode <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>space<span style="color: #009900;">&#40;</span>position<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			drop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Waiting for ore to be delivered.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>counter <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">4</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			counter <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
			rdr <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>TitaniumOre,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">360</span>,range,<span style="color: #cc66cc;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>rdr <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				counter<span style="color: #339933;">++;</span>
				range <span style="color: #339933;">=</span> distance2d<span style="color: #009900;">&#40;</span>position, rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">0.01</span><span style="color: #339933;">;</span>
				rdr <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>TitaniumOre,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">360</span>,range,<span style="color: #cc66cc;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			range <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		rdr <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>SpaceShip<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		errcode <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>errcode <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> errcode <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000000; font-weight: bold;">else</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>counter <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> counter <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">4</span><span style="color: #339933;">;</span> counter<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			rdr <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>TitaniumOre,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">360</span>,<span style="color: #cc66cc;">100</span>,<span style="color: #cc66cc;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			errcode <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>errcode <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> errcode <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			grab<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			rdr <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>SpaceShip<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			errcode <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>errcode <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> errcode <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			errcode <span style="color: #339933;">=</span> drop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>errcode <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				turn<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">45</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				errcode <span style="color: #339933;">=</span> drop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Delivered &quot;</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>counter <span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot; ore samples.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
	message<span style="color: #009900;">&#40;</span>category <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;: Mission Complete.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h2>Миссия в воздухе. Автопрохождение</h2>
<p>Программа, полностью автоматизирующая летающую миссию в демо-версии. Робот автоматически пролетает через все воздушные цели. Никаких ручных действий не требуется.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">extern <span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>FlyingDrill<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	object rdr<span style="color: #339933;">;</span>
	object last<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		rdr <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>Target2,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">180</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>rdr <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			rdr <span style="color: #339933;">=</span> radar<span style="color: #009900;">&#40;</span>SpaceShip,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">180</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			turn<span style="color: #009900;">&#40;</span>direction<span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			move<span style="color: #009900;">&#40;</span>distance<span style="color: #009900;">&#40;</span>position, rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span>.<span style="color: #006633;">z</span> <span style="color: #339933;">&gt;</span> position.<span style="color: #006633;">z</span><span style="color: #009900;">&#41;</span> jet<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0.3</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span>.<span style="color: #006633;">z</span> <span style="color: #339933;">&lt;</span> position.<span style="color: #006633;">z</span><span style="color: #009900;">&#41;</span> jet<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">0.3</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>direction<span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span> motor<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0.5</span>,<span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>direction<span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span> motor<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0.5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>abs<span style="color: #009900;">&#40;</span>direction<span style="color: #009900;">&#40;</span>rdr.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;=</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span> motor<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>temperature <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0.9</span><span style="color: #009900;">&#41;</span> <span style="color: #666666; font-style: italic;">//Should not need this part</span>
		<span style="color: #009900;">&#123;</span>
			motor<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>temperature <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> wait<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h2>Робот-достал</h2>
<p>Программа, которая приказывает боту следовать за конкретным объектом. Например, за Вами.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">extern <span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>FollowMe<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	object spaceguy<span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		spaceguy<span style="color: #339933;">=</span>radar<span style="color: #009900;">&#40;</span>Me<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">goto</span><span style="color: #009900;">&#40;</span>spaceguy.<span style="color: #006633;">position</span>,spaceguy.<span style="color: #006633;">altitude</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h2>Количество объектов</h2>
<p>Выводит количество объектов в какой-либо конкретной категории.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">extern <span style="color: #000066; font-weight: bold;">void</span> object<span style="color: #339933;">::</span>ScanforObject<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	object item<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">int</span> number<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">float</span> min<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span>,max<span style="color: #339933;">=</span><span style="color: #cc66cc;">1000</span><span style="color: #339933;">;</span>
	string catname<span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">do</span><span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">// &gt;&gt;&gt;&gt;&gt;&gt;&gt; change category here &lt;&lt;&lt;&lt;&lt;&lt;&lt;</span>
		item<span style="color: #339933;">=</span>radar<span style="color: #009900;">&#40;</span>PowerCell,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">360</span>,min,max,<span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #666666; font-style: italic;">// &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>item<span style="color: #339933;">!=</span><span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #339933;">++</span>number<span style="color: #339933;">;</span>
			min<span style="color: #339933;">=</span>distance<span style="color: #009900;">&#40;</span>position,item.<span style="color: #006633;">position</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">0.01</span><span style="color: #339933;">;</span>
			catname<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;[&quot;</span><span style="color: #339933;">+</span>item.<span style="color: #006633;">category</span><span style="color: #339933;">+</span><span style="color: #0000ff;">&quot;s]&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>item<span style="color: #339933;">!=</span><span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>number<span style="color: #339933;">==</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
		message<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;[none found]&quot;</span>,DisplayInfo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  
	<span style="color: #000000; font-weight: bold;">else</span>
		message<span style="color: #009900;">&#40;</span>catname <span style="color: #339933;">+</span><span style="color: #0000ff;">&quot;: &quot;</span><span style="color: #339933;">+</span>number,DisplayInfo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>С некоторыми другими программами Вы можете ознакомится на <a href="http://www.ceebot.com/colobot/forum-cbot-e.php">официальном сайте</a>. Описания там приведены на английском языке.</p>
<p>Удачного программирования! Если у Вас есть свои программы&nbsp;&mdash; выкладывайте их в комментариях.</p>
<p>
<b>Понравилась эта статья?</b>
<ul>
  <li>Давайте дружить в <a href="http://twitter.com/v673">твитере</a>!</li>
  <li>Есть свое мнение? - <a href="http://v673.com/programmers-games/ready-programms-for-colobot-and-ceebot-games/#comments">Поделитесь</a> им в комментариях!</li>
  <li>Возникли какие-то вопросы? - <a href="http://v673.com/feedback/">Задайте</a> мне их лично!</li>
  <li>Интересна информация об авторе? - <a href="http://v673.com/about/">Узнай</a> больше обо мне!</li>
  <li>Поделитесь ссылкой на эту статью со своими друзьями!</li>
</ul>
</p>]]></content:encoded>
			<wfw:commentRss>http://v673.com/programmers-games/ready-programms-for-colobot-and-ceebot-games/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Core Wars. Учимся эмулировать!</title>
		<link>http://v673.com/programmers-games/core-wars-emulators/</link>
		<comments>http://v673.com/programmers-games/core-wars-emulators/#comments</comments>
		<pubDate>Sat, 23 May 2009 12:26:48 +0000</pubDate>
		<dc:creator>v673</dc:creator>
				<category><![CDATA[Игры для программистов]]></category>

		<guid isPermaLink="false">http://v673.com/?p=462</guid>
		<description><![CDATA[Core Wars! Эти два слова вызывают трепет. У программистов появляется легкая дрожь, волнение. Потому что на них накатываются воспоминания о счастливом юношестве. О том, как они когда-то открыли новый мир. Мир чего-то необычного и неопознанного. Мир, где они могли бесконечно учиться, совершенствоваться, соревноваться и открывать новые горизонты. Мир, где они могли сделать невозможное. Мы все, [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://v673.com/wp-content/uploads/logo.png" alt="Core Wars logo" title="Core Wars logo" width="194" height="33" align="left" style="margin: 10px;"/><strong>Core Wars!</strong> Эти два слова вызывают трепет. У программистов появляется легкая дрожь, волнение. Потому что на них накатываются воспоминания о счастливом юношестве. </p>
<p>О том, как они когда-то открыли новый мир. Мир чего-то необычного и неопознанного. Мир, где они могли бесконечно учиться, совершенствоваться, соревноваться и открывать новые горизонты. Мир, где они могли сделать невозможное.</p>
<p>Мы все, тем или иным образом, касались этой игры. Это время мы запомнили на всю жизнь. Время, когда подскакиваешь ночью с кровати, включаешь компьютер и начинаешь проверять только что появившуюся идею. Время, когда мы все время придумывали, творили. А в дали от компьютера мы писали и проектировали на найденных листочках наши программы.</p>
<p>На таких играх воспитывались хакеры. Люди, которые сейчас возглавляют крупные IT-компании, проектируют и разрабатывают сложнейшие проекты, преподают, творят и занимаются тем, что им действительно нравится!</p>
<p><span id="more-462"></span></p>
<p>Это отдельный мир. Со своими правилами, обычаями и сленгом. После этой игры, <a href="http://v673.com/programmers-games/colobot-and-ceebot/">Colobot</a> и <a href="http://v673.com/programmers-games/robocode/">Robocode</a> вызывают легкую ухмылку.</p>
<p>У <a href="http://ru.wikipedia.org/wiki/Бой_в_памяти">Википедии</a> хорошо получилось описать смысл игры: </p>
<p><em>Программы размещаются в циклически замкнутом участке памяти (core), состоящей из 8000 ячеек и зацикленной в кольцо. Каждая команда занимает одну ячейку. Redcode-программы работают под управлением MARS (англ. Memory Array Redcode Simulator — Симулятор Массива Памяти Redcode). Программы загружаются по случайным адресам в памяти.</p>
<p>Каждая программа может иметь несколько активных потоков, причём поток может порождать другие потоки с помощью инструкции SPL. Потоки, принадлежащие одной программе, выполняются по очереди, поэтому скорость их выполнения обратно пропорциональна количеству потоков. Поток завершается, если пытается выполнить некорректную инструкцию. Программа, все потоки которой завершились, считается проигравшей.</em></p>
<p><strong>Интересно:</strong> Создание программ происходит на урезанном и неизвестном диалекте ассемблера. Разработчики даже придумали ему свое название: <strong>Redcode</strong>.</p>
<p>Вместить огромное количество информации по этой многогранной игре в одну статью достаточно сложно. Поэтому я разнесу материал на несколько частей, в каждой из которых рассмотрю отдельные моменты Core Wars.</p>
<p>В этой статье мы подготовим рабочую среду для последующего погружения в мир Core Wars. А именно рассмотрим эмуляторы для этой игры. Каждый из них по своему уникален. Кто-то предоставляет консольный интерфейс, кто-то ориентируется на новичков с GUI. </p>
<p>А кто-то делает еще один точно такой же эмулятор, с таким же функционалом, но с более крутой иконкой...</p>
<p>Некоторые разработки уже навсегда заброшены. Другие, наоборот, иногда подают признаки жизни.</p>
<h2>CoreWin</h2>
<p>Первой программой, с которой мы познакомимся, будет <a href="http://www.geocities.com/corewin2/">CoreWin</a>. </p>
<p style="text-align: center;"><img src="http://v673.com/wp-content/uploads/corewin_main.png" alt="CoreWin" title="CoreWin" width="536" height="580" /></p>
<p>Разработчики уверяют нас, что перед нами полнофункциональный и потрясающий эмулятор Core Wars для Windows с GUI-интерфейсом. Он запуститься на любой 32-битной Windows. Суровые товарищи проверяли: на Windows 95 он исправно работает.</p>
<p style="text-align: center;"><img src="http://v673.com/wp-content/uploads/corewin_edit.png" alt="Corewin редактор" title="Corewin редактор" width="800" height="572" /></p>
<p>Интегрированная среда поддерживает все виды сражений, брейкпоинты, подсветку кода и невероятно огромное количество прочих IDE-штучек.</p>
<p style="text-align: center;"><img src="http://v673.com/wp-content/uploads/corewin_options.png" alt="Corewin options" title="Corewin options" width="219" height="363" /></p>
<p>Итак, Вы сейчас должны находиться в одном из четырех состояний:</p>
<ul>
<li>1. <strong>Немедленно хотите скачать CoreWin</strong>&nbsp;&mdash; вам срочно на <a href="http://www.geocities.com/corewin2/download.html">страницу загрузки</a>!</li>
<li>2. <strong>Хотите еще подробностей!</strong>&nbsp;&mdash; вам поможет <a href="http://www.geocities.com/corewin2/Online_Guide/Guide_TOC.htm">онлайн-документация</a>.</li>
<li>3. <strong>Вас одолевает множество вопросов</strong>&nbsp;&mdash; <a href="http://www.geocities.com/corewin2/faq.html">FAQ</a> вам!</li>
<li>4. <strong>Вы в ужасе. Вам страшно. Вы не знаете что делать!</strong>&nbsp;&mdash; Спокойно. Глубоко вдохните. (Выдыхать нельзя) Ничего не скачивайте. Ждите следующей статьи, где мы рассмотрим примеры.</li>
</ul>
<p style="text-align: center;"><img src="http://v673.com/wp-content/uploads/corewin_settings.png" alt="Corewin settings" title="Corewin settings" width="488" height="576" /></p>
<p>Для новичков, на мой взгляд, один из идеальных эмуляторов. Но разработчики предпочитают диверсификацию продукта, поэтому для продвинутых программистов они тоже обещают &laquo;серьезные функциональные возможности&raquo;.</p>
<p>Есть еще один приятный плюс: <a href="http://www.geocities.com/corewin2/download.html">Скачав</a> этот эмулятор Вам не понадобится ничего устанавливать. Просто запустите exe-файл и наслаждайтесь процессом.</p>
<h2>Active Redcode Elaboration System</h2>
<p style="text-align: center;"><img title="Active Redcode Elaboration System" src="http://v673.com/wp-content/uploads/sshot.gif" alt="Active Redcode Elaboration System" width="400" height="319" /></p>
<p><a href="http://harald.ist.org/ares/">A.R.E.S</a>&nbsp;&mdash; это серьезный конкурент CoreWin. Перед нами полнофункциональная интегрированная среда разработки.</p>
<p style="text-align: center;"><img src="http://v673.com/wp-content/uploads/ares_main.png" alt="Ares Main" title="Ares Main" width="900" height="570" /></p>
<p>Включает в себя режим сражения(tournament mode), дебаггер, брейкпоинты, условия прерывания и много другой IDE-функциональность. </p>
<p style="text-align: center;"><img src="http://v673.com/wp-content/uploads/ares_edit_warrior.png" alt="Ares warrior edit" title="Ares warrior edit" width="900" height="570" /></p>
<p>Есть даже некий режим CPU-инспекции, но разработчик сам еще не понял что это.</p>
<p style="text-align: center;"><img src="http://v673.com/wp-content/uploads/ares_cpu_registers.png" alt="ares_cpu_registers" title="ares_cpu_registers" width="308" height="322" /></p>
<p><a href="http://harald.ist.org/ares/">A.R.E.S</a> полностью совместим с официальным стандартом Core War ICWS&#39;94. Автор утверждает, что это идеальный обучающий инструмент, который уже используется в школах и университетах по всему миру. Ну-ну...</p>
<p>Разработка абсолютно бесплатна. И вот еще что: если у Вас получится зарабатывать на ней деньги&nbsp;&mdash; автор просит рассказать ему как это Вам вообще удалось. ;-)</p>
<p style="text-align: center;"><img src="http://v673.com/wp-content/uploads/ares_options.png" alt="Ares Options" title="Ares Options" width="508" height="489" /></p>
<p>Вы используете Linux? Программа успешно запускается под Wine. Проверено.</p>
<p>Если Вы хотите более подробно узнать об этой программе&nbsp;&mdash; то Вам в <a href="http://harald.ist.org/index.php?site=ares&#038;page=home&#038;lang=en">документацию</a>. </p>
<p>Или можете приступить непосредственно к <a href="http://harald.ist.org/ares/">скачиванию</a>.</p>
<h2>nMars</h2>
<p style="text-align: center;"><img title="Core War MARS for .NET" src="http://v673.com/wp-content/uploads/nmars-ide-debugger-4.png" alt="Core War MARS for .NET" width="716" height="451" /></p>
<p><a href="http://nmars.sourceforge.net/">nMars</a>&nbsp;&mdash; очередной конкурент с блекджеком и девушками. Удобный IDE, и что немаловажно, написанный на .NET. Как это не обидно, но под <a href="http://www.mono-project.com/Main_Page">Mono</a> он не запускается.</p>
<p>Автор утверждает, что к проектированию и разработке программы он подошел очень грамотно. Все компоненты выделил в отдельные модули, разнес в отдельные блоки функциональность <a href="http://nmars.sourceforge.net/parser.shtml">Парсера</a>, <a href="http://nmars.sourceforge.net/engine.shtml">Движка</a> и <a href="http://nmars.sourceforge.net/debugger.shtml">Дебаггера</a>. </p>
<p style="text-align: center;"><img src="http://v673.com/wp-content/uploads/nmars_engine.png" alt="nMars Engine" title="nMars Engine" width="835" height="587" /></p>
<p>Использует UNIT-тестирование, хранит конфигурацию в XML, а графический дебаггер поддерживает асинхронный UI и может расширяться с помощью IronPython-шелла.</p>
<p style="text-align: center;"><img src="http://v673.com/wp-content/uploads/nmars_main.png" alt="nMars main" title="nMars main" width="815" height="462" /></p>
<p>Очень приятно, что разработчик решил распространять программу по лицензии LGPL. Исходный код полностью открыт.</p>
<p>Вы можете ознакомиться с <a href="http://nmars.sourceforge.net/screenshots.shtml">скриншотами</a> программы, с <a href="http://nmars.sourceforge.net/doc.shtml">документацией</a> и с <a href="http://nmars.blogspot.com/">новостями</a> проекта.</p>
<p>Ну или сразу перейти на <a href="http://sourceforge.net/project/showfiles.php?group_id=174312">страницу скачивания</a>.</p>
<h2>pMARS</h2>
<p style="text-align: center;"><img title="pMARS-эмулятор" src="http://v673.com/wp-content/uploads/pmars.jpg" alt="pMARS-эмулятор" width="480" height="360" /></p>
<p>Наверное, большинство читателей уже пошли создавать свой <del>стартап</del> IDE для Core Wars со своим уникальным функционалом. Но подождите! Ознакомьтесь еще с официальным тру-эмулятором Redcode-языка: <a href="http://corewar.co.uk/pmars/index.htm">pMars</a>.</p>
<p>Он написан на чистом C. Исходные коды Вы можете легко скачать на <a href="http://corewar.co.uk/pmars/index.htm">официальном сайте</a>. </p>
<p>Если же Вы относитесь к тем девственникам, которые еще не компилировали программу&nbsp;&mdash; Joonas Pihlaja специально для Вас предоставил готовые бинарные файлы.</p>
<p>С интерфейсом и юзабилити у pMars все совсем плохо. Нужно потратить некоторое время, чтобы понять что к чему. Передача параметров происходит через консоль.</p>
<p style="text-align: center;"><img src="http://v673.com/wp-content/uploads/pmars_concole.png" alt="pMars Concole" title="pMars Concole" width="669" height="338" /></p>
<p><strong>Недостатки:</strong></p>
<ul>
<li>Неудобный интерфейс</li>
<li>Отсутствие юзабили</li>
<li>Ужасный дизайн</li>
<li>Чувство, что Вы находитесь в другом тысячелетии</li>
</ul>
<p><strong>Преимущества:</strong></p>
<ul>
<li>Вы смотрите на всех этих GUI-шников с высоко поднятой головой.</li>
</ul>
<h2>RedCoder</h2>
<p style="text-align: center;"><img src="http://v673.com/wp-content/uploads/redcoder_mars_core.jpg" alt="RedCoder Mars Core" title="RedCoder Mars Core" width="819" height="643" /></p>
<p><a href="http://redcoder.sourceforge.net/?p=redcoder">RedCoder</a>. Здесь все сложно и неоднозначно. С одной стороны, шаг в эпоху оконных интерфейсов. С другой стороны&nbsp;&mdash; это, по сути, тот же pMars, только в windows-обертке. </p>
<p>Авторы утверждают, что перед нами графический эмулятор со встроенным мощным дебаггером. Написан на C++ с использованием <a href="http://www.wxwidgets.org/">wxWidgets</a>. </p>
<p>Параметры передаются через командную строку, как и у pMARS.</p>
<p>Тем не менее, ребята уже начали работу над новой RedCoder 2. На сайт его еще не выложили, но приведенный единственный скриншот крайне настораживает:</p>
<p style="text-align: center;"><img title="Redcoder" src="http://v673.com/wp-content/uploads/redcoder2-screen-01.png" alt="Redcoder 2" width="627" height="332" /></p>
<h2>Встроенные эмуляторы</h2>
<p>Отдельно нужно упомянуть программные эмуляторы. Они представляют собой исключительно программные оболочки без какого-либо графического или консольного интерфейса. Вероятно, их используют разработчики IDE для Core Wars, ну или ярые фанаты.</p>
<p>Кстати! Если Вы разрабатываете бухгалтерский софт&nbsp;&mdash; встройте Core Wars в него. Пусть Марья Ивановна оттянется по полной!</p>
<p><a href="http://www.cs.helsinki.fi/u/jpihlaja/exhaust/exhaust.html">exhaust</a> разработал M. Joonas Pihlaja&#39;s. Легковесный эмулятор RedCode, разработанный для простого встраивания в приложения.</p>
<p><a href="http://corewar.co.uk/ankerl/exhaust-ma.htm">exhaust-ma</a> разработал, опять же, M. Joonas Pihlaja&#39;s. Но с оптимизацией ему помогал Martin Ankerl.</p>
<p><a href="http://corewar.co.uk/ankerl/exmars.htm">exMARS</a> представляет собой высокоуровневую абстракцию для pMARS`а на Ruby. Автор Martin Ankerl.</p>
<p><a href="http://corewar.co.uk/ankerl/qmars.htm">QMars</a>&nbsp;&mdash; C++ эмулятор RedCode, созданный все тем же Martin`ом Ankerl. Парень не на шутку разошелся.</p>
<p><a href="http://corewars.jgutzeit.de/pycorewar/index.en.html">PyCorewar</a>&nbsp;&mdash; да! И здесь Python! Это библиотека для эмуляции, дебаггинга и бенчмаркинга RedCode.</p>
<p>Если Вам приведенных разработок мало, то можете также ознакомится с <a href="http://users.v-lo.krakow.pl/~michal/fmars.html">fmars</a>, <a href="http://mark0.net/soft-xrk.html">XRK</a>, <a href="http://corewar.co.uk/corelife/index.htm">CoreLife</a>. </p>
<p>Не забудьте пройтись по <a href="http://corewar.co.uk/mars/index.htm">музею эмуляторов RedCode</a>.</p>
<h2>Конец</h2>
<p>Надеюсь, к текущему моменту Вы уже выбрали себе понравившийся эмулятор RedCode. </p>
<p>Теперь можете приступать к моральной подготовке к следующей статье, где мы рассмотрим простейшие программы и попытаемся разобраться в этой потрясающей игре Core Wars.</p>
<p>А для затравки можете посмотреть на HelloWorld-программу на CoreWars. Да! Это возможно!</p>
<p style="text-align: center;"><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/0GW9ku2l5Eo&#038;hl=ru&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/0GW9ku2l5Eo&#038;hl=ru&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p>Если Вам нравятся мои статьи, то существует хак, позволяющий всегда узнавать о их появлении: подписаться на <a href="http://v673.com">мой блог</a> или на <a href="http://twitter.com/v673">твиттер</a>.</p>
<p>
<b>Понравилась эта статья?</b>
<ul>
  <li>Давайте дружить в <a href="http://twitter.com/v673">твитере</a>!</li>
  <li>Есть свое мнение? - <a href="http://v673.com/programmers-games/core-wars-emulators/#comments">Поделитесь</a> им в комментариях!</li>
  <li>Возникли какие-то вопросы? - <a href="http://v673.com/feedback/">Задайте</a> мне их лично!</li>
  <li>Интересна информация об авторе? - <a href="http://v673.com/about/">Узнай</a> больше обо мне!</li>
  <li>Поделитесь ссылкой на эту статью со своими друзьями!</li>
</ul>
</p>]]></content:encoded>
			<wfw:commentRss>http://v673.com/programmers-games/core-wars-emulators/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Robocode</title>
		<link>http://v673.com/programmers-games/robocode/</link>
		<comments>http://v673.com/programmers-games/robocode/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 18:29:43 +0000</pubDate>
		<dc:creator>v673</dc:creator>
				<category><![CDATA[Игры для программистов]]></category>

		<guid isPermaLink="false">http://v673.com/?p=389</guid>
		<description><![CDATA[Я продолжаю серию статей про игры для программистов. Напомню, в прошлый раз мы узнали про игры Colobot и Ceebot. Сегодня я расскажу Вам про отличную игру Robocode. Она предназначена для обучения языку Java, и имеет большие функциональные возможности, несмотря на кажущуюся внешнюю простоту. Robocode&#160;&#8212; это обучающая игра с открытыми исходными кодами, разработанная Mathew Nelson и [...]]]></description>
			<content:encoded><![CDATA[<p><img style="margin: 10px;" src="http://v673.com/wp-content/uploads/robocode_slogan2.png" alt="Слоган Robocode" title="Слоган Robocode" width="327" height="87" align="left" />Я продолжаю серию статей про игры для программистов. Напомню, в прошлый раз мы узнали про игры <a href="http://v673.com/programmers-games/colobot-and-ceebot/">Colobot и Ceebot</a>. </p>
<p>Сегодня я расскажу Вам про отличную игру <strong>Robocode</strong>. Она предназначена для обучения языку Java, и имеет большие функциональные возможности, несмотря на кажущуюся внешнюю простоту.</p>
<p><strong>Robocode</strong>&nbsp;&mdash; это обучающая игра с открытыми исходными кодами, разработанная Mathew Nelson и Flemming Larsen. Ее целью было облегчение изучения языка программирования Java.</p>
<p><span id="more-389"></span></p>
<h2>Игра</h2>
<p>Основным движущим элементом в обучении должна была стать конкуренция. Каждый участник пишет код на Java, который управляет небольшим танчиком, и сражается с другими такими же танками. </p>
<p>Ваша цель&nbsp;&mdash; уничтожить все остальные танки на поле. Без компромиссов. Ваш танк должен достичь абсолютного превосходства, и показать какие жалкие неудачники Ваши друзья.</p>
<p>Разработчики настоятельно обращают Ваше внимание на то, что в Robocode нет крови, нет людей и нет политики. В игре есть взрывы, но если Вы заботитесь о собственном психическом здоровье&nbsp;&mdash; их можно легко отключить.</p>
<p>У танков большие возможности: они могут двигаться по игровому полю, стрелять, узнавать месторасположение друг в друга, врезаться в стены и в других роботов, узнавать где находятся летящие пули и использовать всю мощь языка Java.</p>
<p style="text-align: center;"><img src="http://v673.com/wp-content/uploads/robocode_battle.png" alt="Битва танков" title="Битва танков" width="690" height="554" /></p>
<p>Естественно, какой-либо простой стратегии для выигрыша нет. Существует огромное количество различных тактик, у каждой из которых есть свои преимущества и недостатки. Размер кода у различных танков колеблется от десятка строк до нескольких тысяч. Некоторые даже умудряются прибегать к статистическому анализу и нейронному программированию.</p>
<p>Интересно подошли к написанию робота в СПБгУ ИТМО. Танк был разработан с использованием SWITCH-технологий(смесь автоматного и объектно-ориентированного программирования) и к проекту прилагается серьезная проектная документация. </p>
<p>Вы можете скачать ее и исходные коды танка абсолютно бесплатно на <a href="http://is.ifmo.ru/projects/tanks/">странице проекта</a>.</p>
<h2>Установка игры</h2>
<p>На <a href="http://robocode.sourceforge.net/">официальном сайте</a> проекта находится огромное количество различных материалов. Если Вы хотите начать обучение&nbsp;&mdash; это лучшее место для старта.</p>
<p style="text-align: center;"><img src="http://v673.com/wp-content/uploads/robocode_install.png" alt="Установка Robocode" title="Установка Robocode" width="268" height="134" /></p>
<p>Сама игра распространяется в виде jar-архива, который можно скачать со <a href="http://sourceforge.net/project/showfiles.php?group_id=37202">страницы скачивания</a> игры. </p>
<p>Игра кроссплатформенная, так как она написана на Java. В нее можно играть на Windows, Linux, FreeBSD и в любой другой системе, на которую портирована Java-машина.</p>
<p style="text-align: center;"><a href="http://java.com/ru/download/"><img src="http://v673.com/wp-content/uploads/java.png" alt="Java" title="Java" width="252" height="121" /></a></p>
<p>Перед установкой игры не забудьте установить <a href="http://java.com/ru/download/">Java</a>.</p>
<h2>Ваш первый робот</h2>
<p>Готовы к созданию своего первого робота? Я уверен это будет легко, занимательно и просто интересно!</p>
<p>Создать робота очень просто. Но сделать его победителем&nbsp;&mdash; нет.</p>
<p style="text-align: center;"><img src="http://v673.com/wp-content/uploads/robocode_logo_tanks.jpg" alt="Robocode Logo" title="Robocode Logo" width="570" height="213" /></p>
<h2>Встроенный редактор</h2>
<p>Разработчики включили в игру собственный редактор. Поэтому у Вас уже есть готовая среда для разработки с подсветкой синтаксиса.</p>
<p>Эта программа называется Robot Editor, и она доступна в меню Robot -> Editor. </p>
<p style="text-align: center;"><img src="http://v673.com/wp-content/uploads/robocode_editor.png" alt="Robocode Editor" title="Robocode Editor" width="692" height="678" /></p>
<p>Давайте теперь создадим заготовку робота. Для этого перейдите в пункт меню File -> New Robot. Придумайте имя Вашему будущему роботу и введите Ваши инициалы(никнейм).</p>
<p>Вуаля! Теперь Вы видите набросок кода Вашего будущего робота.</p>
<p><strong>Примечание:</strong> Если Вы хотите использовать Eclipse или другую IDE, то без труда найдете <a href="http://robowiki.net/w/index.php?title=Robocode/Developers_Guide_for_building_Robocode">соответствующее руководство </a>по интеграции с Robocode в Интернете.</p>
<h2>Новый робот</h2>
<p>В самом простом виде код должен выглядеть так:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// Используем пакет с Вашими инициалами. Это сделано для избежания конфликтов имен.</span>
<span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">v673</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Указывает Java, что мы собираемся использовать объекты Robocode в нашей программе.</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">robocode.*</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Указывает Java: &quot;Класс, описываемый ниже, является расширением класса Robot. </span>
<span style="color: #666666; font-style: italic;">// И называется MyFirstRobot&quot;.</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> MyFirstRobot <span style="color: #000000; font-weight: bold;">extends</span> <span style="color: #003399;">Robot</span> 
<span style="color: #009900;">&#123;</span>
     <span style="color: #666666; font-style: italic;">// Игры вызывает метод run(), когда начинается битва.</span>
     <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> run<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> 
     <span style="color: #009900;">&#123;</span>
          <span style="color: #666666; font-style: italic;">// Здесь идет непосредственно код Вашего робота.</span>
&nbsp;
     <span style="color: #009900;">&#125;</span>
&nbsp;
      <span style="color: #666666; font-style: italic;">// Существует и другие методы, которые мы рассмотрим позже.</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h2>Пора уже что-нибудь делать!</h2>
<p>Давайте заставим нашего робота что-нибудь делать. Добавьте в метод run () следующие строчки:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// while (true) означает то, что код в скобках будет выполнятся до тех пор, пока игра не прервется.</span>
<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span> 
<span style="color: #009900;">&#123;</span>
     <span style="color: #666666; font-style: italic;">// Робот проедет вперед на 100 пикселей.</span>
     ahead<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
     <span style="color: #666666; font-style: italic;">// Робот повернет свою пушку на 360 градусов.</span>
     turnGunRight<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">360</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
     <span style="color: #666666; font-style: italic;">// Робот вернется назад на 100 пикселей.</span>
     back<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
     <span style="color: #666666; font-style: italic;">// Робот снова повернет свою пушку на 360 градусов.</span>
     turnGunRight<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">360</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
     <span style="color: #666666; font-style: italic;">// После чего код начинает выполняться снова.</span>
 <span style="color: #009900;">&#125;</span></pre></div></div>

<p>Наш робот будет выполнять эти действия снова и снова, пока не умрет. Неплохо, да?</p>
<h2>Огонь!</h2>
<p>Когда радар танка находит вражеский робот, мы начинаем стрелять:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onScannedRobot<span style="color: #009900;">&#40;</span>ScannedRobotEvent e<span style="color: #009900;">&#41;</span> 
<span style="color: #009900;">&#123;</span>
     fire<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Как Вы можете заметить, в функцию отправляется объект <strong>ScannedRobotEvent</strong>, который содержит информацию о вражеском(или дружеском) роботе&nbsp;&mdash; сколько у него здоровья, где он находится, с какой скоростью передвигается и т.д.</p>
<p>Но так как у нас простой робот&nbsp;&mdash; мы не будем уделять этому много времени.</p>
<h2>Компилирование робота</h2>
<p>В первую очередь, сохраните Вашего работа: <strong>File</strong> ->  <strong>Save</strong>. </p>
<p>Теперь скомпилируйте робота: <strong>Compiler</strong> -> <strong>Compile</strong>.</p>
<p style="text-align: center;"><img src="http://v673.com/wp-content/uploads/success_compile.png" alt="Компилирование" title="Компилирование" width="680" height="724" /></p>
<p>Если Ваш робот скомпилировался без ошибок&nbsp;&mdash; Вы можете приступать к битве. Начните новую битву выбрав в меню игры <strong>Battle</strong> -> <strong>New</strong>. Если Вы не видите собственного робота&nbsp;&mdash; обновите список, нажав F5. Добавьте Вашего робота в битву вместе с еще одним роботом. Например, вместе с танком <strong>Sample</strong>.</p>
<p style="text-align: center;"><img src="http://v673.com/wp-content/uploads/new_battle.png" alt="Новая битва" title="Новая битва" width="606" height="386" /></p>
<p>Запустите битву, нажав <strong>Start Battle</strong>. </p>
<p>Enjoy!</p>
<h2>Анатомия робота</h2>
<p>Только что мы создали собственного робота. Давайте теперь чуть более подробно рассмотрим конструктивные особенности танков.</p>
<p>Танк состоит из трех частей: тело танка, пушка и радар.</p>
<p style="text-align: center;"><img src="http://v673.com/wp-content/uploads/robot_anatomy.gif" alt="Анатомия робота" title="Анатомия робота" width="240" height="209" /></p>
<p>Каждая из этих частей может двигаться независимо друг от друга. Медленнее всего движется танк, пушка движется быстрее, а радар является самым быстрым элементом робота.</p>
<h2>Поле битвы</h2>
<p>Поле битвы представляет из себя прямоугольник. Причем его размер устанавливается при создании битвы.</p>
<p>Система координат:</p>
<p style="text-align: center;"><img src="http://v673.com/wp-content/uploads/coordinate_system.gif" alt="Система координат" title="Система координат" width="500" height="298" class="alignnone size-full wp-image-393" /></p>
<p>Заметьте, что даже если Вы выполните ahead (50000), команда остановит свое выполнение в тот момент, когда робот врежется в стену.</p>
<p>В RoboWiki Вы можете более подробней ознакомиться с <a href="http://robowiki.net/w/index.php?title=Robocode/Game_Physics">игровой физикой</a>.</p>
<h2>Угол отклонения</h2>
<p>Иногда удобно использовать относительный угол. Например, для поворота к другому роботу можно использовать следующую команду:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">  turnRight<span style="color: #009900;">&#40;</span>event.<span style="color: #006633;">getBearing</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>То есть getBearing () указывает на сколько градусов нужно отклонится от текущего положения, чтобы увидеть, к примеру, вражеский танк.</p>
<p style="text-align: center;"><img src="http://v673.com/wp-content/uploads/bearings.jpg" alt="Угол отклонения" title="Угол отклонения" width="400" height="300" class="alignnone size-full wp-image-394" /></p>
<p><strong>Примечание:</strong> Если Вы передадите в функцию turnRight () отрицательное значение, то робот повернется влево.</p>
<h2>Чувства робота</h2>
<p>Нет, мы не будем говорить о ранимой душе танка. Мы рассмотрим функции, по которым робот может узнавать влияние внешних факторов.</p>
<p>Ваш робот знает, когда:</p>
<ul>
<li> Он ударяется об стену: <a href="http://robocode.sourceforge.net/docs/robocode/robocode/Robot.html#onHitWall(robocode.HitWallEvent)">onHitWall ()</a></li>
<li> В него попадает вражеская пуля: <a href="http://robocode.sourceforge.net/docs/robocode/robocode/Robot.html#onHitByBullet(robocode.HitByBulletEvent)">onHitByBullet ()</a></li>
<li> Он врезается в другого робота: <a href="http://robocode.sourceforge.net/docs/robocode/robocode/Robot.html#onHitRobot(robocode.HitRobotEvent)">onHitRobot ()</a></li>
<li> А также еще ряд экзотических функций, например, когда Ваша пуля попадает в пулю вражеского робота.</li>
</ul>
<p>На основе этих функций построены все роботы в Robocode. Более подробно ознакомится со всеми функциями можно в <a href="http://robocode.sourceforge.net/docs/robocode/">API-документации</a>.</p>
<h2>Что дальше?</h2>
<p>Больше всего учебного материала собрано на <a href="http://robocode.sourceforge.net/">официальном сайте игры</a>.</p>
<p>К сожалению, русских материалов про Robocode не так и много. Но я надеюсь, что английский язык для Вас не сильно большая проблема.</p>
<p>Рекомендую ознакомится с курсом по Robocode от Mark Whitley: <a href="http://www.codepoet.org/~markw/weber/java/robocode/">CS 3230&nbsp;&mdash; Robocode Project</a>. Кстати, есть <a href="http://translated.by/you/robocode-lessons/trans/">коллективный русский перевод</a> благодаря проекту <a href="http://translated.by">translated.by</a>. Но он, к сожалению, еще не оформлен в отдельный PDF-файл, отсутствуют картинки. Поэтому я, на данный момент, советую изучать оригинал.</p>
<p>Также есть две отличные статьи от Sing Li про Robocode: <a href="http://www.ibm.com/developerworks/java/library/j-robocode/index.html">Rock &#39;em, sock &#39;em Robocode! Round 1</a>, <a href="http://www.ibm.com/developerworks/java/library/j-robocode2/index.html">Rock &#39;em, sock &#39;em Robocode! Round 2</a></p>
<p>На <a href="http://robowiki.net">RoboWiki</a> собрано огромное количество высококачественного материала про RoboCode. Начиная от простых руководств, и заканчивая разъяснением различных тонких моментов.</p>
<p>Кроме того, на официальном сайте Вы найдете <a href="http://robocode.sourceforge.net/developerWorks.php">множество ссылок</a> на другие отличные статьи про Robocode.</p>
<p>Можете даже ознакомится со статей про использование <a href="http://jgap.sourceforge.net/doc/robocode/robocode.html">генетических алгоритмов в RoboCode</a>.</p>
<p>В <a href="http://robocoderepository.com">репозитории RoboCode</a> находится огромное количество различных роботов. К некоторым выложены исходные коды.</p>
<p>Существует официальный блог разработчиков: <a href="http://robo-code.blogspot.com">robo-code.blogspot.com</a>.</p>
<p>На этом наш обзор я бы хотел закончить. Желаю успехов в постижении тонкостей Robocode!</p>
<p>
<b>Понравилась эта статья?</b>
<ul>
  <li>Давайте дружить в <a href="http://twitter.com/v673">твитере</a>!</li>
  <li>Есть свое мнение? - <a href="http://v673.com/programmers-games/robocode/#comments">Поделитесь</a> им в комментариях!</li>
  <li>Возникли какие-то вопросы? - <a href="http://v673.com/feedback/">Задайте</a> мне их лично!</li>
  <li>Интересна информация об авторе? - <a href="http://v673.com/about/">Узнай</a> больше обо мне!</li>
  <li>Поделитесь ссылкой на эту статью со своими друзьями!</li>
</ul>
</p>]]></content:encoded>
			<wfw:commentRss>http://v673.com/programmers-games/robocode/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Colobot и Ceebot</title>
		<link>http://v673.com/programmers-games/colobot-and-ceebot/</link>
		<comments>http://v673.com/programmers-games/colobot-and-ceebot/#comments</comments>
		<pubDate>Sat, 18 Apr 2009 19:55:48 +0000</pubDate>
		<dc:creator>v673</dc:creator>
				<category><![CDATA[Игры для программистов]]></category>

		<guid isPermaLink="false">http://v673.com/?p=335</guid>
		<description><![CDATA[В мире всегда существовали некоторые закрытые общества, которые доступны только ограниченному кругу людей. Для того, чтобы попасть туда нужно было обладать чем-то необычным. Например, ездить на Bentley или курить Behike. Но я сейчас говорю про общества, где входным билетом служат не деньги, а знания. Да, да, Вы не поверите, но я говорю про программистов. Ведь [...]]]></description>
			<content:encoded><![CDATA[<p><img style="margin: 7px;" src="http://v673.com/wp-content/uploads/icon-253.png" alt="Геймпад" title="Геймпад" width="128" height="128" align="left"/>В мире всегда существовали некоторые закрытые общества, которые доступны только ограниченному кругу людей. Для того, чтобы попасть туда нужно было обладать чем-то необычным. Например, ездить на <a href="http://www.bentleymotors.com">Bentley</a> или курить <a href="http://www.cigars-review.org/Cohiba-Behike.htm">Behike</a>.</p>
<p>Но я сейчас говорю про общества, где входным билетом служат не деньги, а знания. Да, да, Вы не поверите, но я говорю про программистов.</p>
<p>Ведь только мы способны сутками заниматься совершенствованием алгоритма, только мы можем бесконечно долго заниматься проектированием и совершенствованием архитектуры проекта, рисуя никому не понятные UML-диаграммы и странные схемы. Но есть еще один вид занятий, некий закрытый клуб для посвященных, который сгубил не одну тысячу часов, подняв профессионализм его участников до небес. Я говорю про Игры для программистов.</p>
<p>Их существует огромное количество, каждая игра по своему интересна, у каждой своя архитектура, свой <a href="http://ru.wikipedia.org/wiki/Интерфейс_программирования_приложений">API-интерфейс</a>.  Так как всех их невозможно охватить в отдельной заметке&nbsp;&mdash; я решил начать серию заметок про различные игры.</p>
<p><span id="more-335"></span></p>
<h2>Colobot</h2>
<p style="text-align: center;"><img class="aligncenter" title="Логотип Colobot" src="http://v673.com/wp-content/uploads/colologo.jpg" alt="Логотип Colobot" width="363" height="68" /></p>
<p>Игра вышла в свет 20 августа 2001, и в ней реализована достаточно качественная по тем временам 3D-графика. Прежде всего игра создавалась для детей. Но как и в случае с детской железной дорогой больше всего в нее играют, конечно, взрослые.</p>
<p>Разработчики игры предоставляют нам целый мир, со всеми его врагами, ограниченными ресурсами и, конечно же, возможностями. В качестве основы был выбран уже зарекомендовавший себя в играх-стратегиях механизм ресурсов, которые нужны для строительства зданий, роботов и реализации Ваших зловещих планов. Но ресурсы, конечно же, быстро заканчиваются и их нужно постоянно добывать.</p>
<h2>Язык программирование CBOT</h2>
<p>Все программирование в игре происходит на неком языке CBOT, сильно похожем на синтаксис не то C++, не то Java. Сам язык достаточно мощный, и позволяет реализовывать почти любые Ваши фантазии. </p>
<p>Можно объявлять переменные(пользуясь встроенными типами), использовать циклы for, while и do, создавать не только функции, но и классы и объекты. </p>
<p>Вся связь Вашего робота с внешним миром основывается на взаимодействии с другими объектами, которых в игре огромное количество. Также предоставлены уже готовые функции для подсчета расстояний, ближайших объектов, управления двигателем и прочих мелочей, которые позволяет сконцентрироваться на основной идеи.</p>
<p>Код пишется непосредственно для каждого бота. Вы даже можете писать несколько различных программ для одного и того же бота, и запускать в нужный момент необходимый для Вас код.</p>
<p>Игра содержит достаточно простой дебаггер (<a href="http://ru.wikipedia.org/wiki/Отладчик">отладчик</a>), позволяющий пошагово выполнять Ваш код, и тут же наблюдать результат.</p>
<p style="text-align: center;"><img src="http://v673.com/wp-content/uploads/c4debug.jpg" alt="Отладчик" title="Отладчик" width="300" height="152" /></p>
<p>Хочется отметить, что для меня редактор кода оказался не самым удобным. И документация, все время сбрасывающаяся в начало, периодически выводила меня из состояния спокойствия.</p>
<p style="text-align: center;"><img class="aligncenter" title="Colo IDE" src="http://v673.com/wp-content/uploads/coloide.jpg" alt="Colo IDE" width="70%" height="70%" /></p>
<p>Перед тем как перейти к серьезной игре Вам предложат пройти курс молодого бойца, где предлагают решить простые задачки. Давайте рассмотрим подобную задачку:</p>
<p style="text-align: center;"><img class="aligncenter" title="Задачка из курса молодого бойца" src="http://v673.com/wp-content/uploads/2009-04-13_123606.jpg" alt="Задачка из курса молодого бойца" width="604" height="206" /></p>
<p>Вам необходимо написать программу для робота так, чтобы он прошелся по всем синим плюсикам. Расстояние между каждым поворотом равняется 20 метрам.</p>
<p>К примеру, функция move (12) вежливо попросит робота проехать 12 метров. А функция turn (90) повернет его на 90 градусов.</p>
<p>Наша программа для робота будет выглядеть следующим образом:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008080; font-style: italic;">// Это строчка изначально встроена в код разработчиками, и предназначена</span>
<span style="color: #008080; font-style: italic;">// исключительно для создания пафоса и пускания пыли в глаза.</span>
<span style="color: #0600FF;">extern</span> <span style="color: #0600FF;">void</span> <span style="color: #FF0000;">object</span><span style="color: #008000;">::</span><span style="color: #0000FF;">Solution</span><span style="color: #000000;">&#40;</span> <span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
       move<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">20</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>  <span style="color: #008080; font-style: italic;">// Переместиться к 1 чекпоинту</span>
       turn<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">90</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
       move<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">20</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>  <span style="color: #008080; font-style: italic;">// Переместиться к 2 чекпоинту</span>
       turn<span style="color: #000000;">&#40;</span><span style="color: #008000;">-</span><span style="color: #FF0000;">90</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
       move<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">20</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>  <span style="color: #008080; font-style: italic;">// Переместиться к 3 чекпоинту</span>
       turn<span style="color: #000000;">&#40;</span><span style="color: #008000;">-</span><span style="color: #FF0000;">90</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
       move<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">20</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>  <span style="color: #008080; font-style: italic;">// Финишировать!</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>Как Вы могли заметить, сзади у машины-робота есть зеленый цилиндр. Это и есть один из наших ресурсов. Во время движения робота энергия постепенно уменьшается и в итоге наш робот может заглохнуть. После чего единственным способом его оживить является замена батареи.</p>
<h2>Локализация</h2>
<p>Для детей, желающих научиться программированию, английский язык мог бы стать существенной преградой.</p>
<p>Благодаря уже несуществующей компании Фаргус существует отличный русский перевод. Перевод, с которым ознакомился я, был выполнен на отлично. </p>
<p>Вся документация полностью переведена, никаких замечаний у меня не возникло. </p>
<p style="text-align: center;"><img src="http://v673.com/wp-content/uploads/documentation-1024x846.jpg" alt="Документация" title="Документация" width="70%" height="70%" /></p>
<h2>Юзабилити</h2>
<p>Юзабилити в игре хромает на обе ноги. Я потратил порядка 40 минут, чтобы понять вообще что к чему. Что такое ресурсы, как их доставать и как из них получать готовых роботов я узнал по чистой случайности.</p>
<p>Для новичка большинство моментов покажутся непонятными, хуже того, они могут его заставить навсегда бросить игру. Я так сделал вначале, но потом все же вернулся и попробовал снова.</p>
<h2>Общие впечатления</h2>
<p>Двигаясь от простых миссий к более сложным, постоянно познавая различные аспекты языка, игрок не только учится программированию, но и познает азы алгоритмизации.</p>
<p>Когда простые миссии Вам уже станут скучными&nbsp;&mdash; самое время переходить к основной части игры. К примеру, Вам нужно будет выселиться на неизвестной планете, отстроиться там (либо с помощью роботов, либо вручную управляя космонавтом) и выполнить какое-то задание. Например, убить всех муравьев.</p>
<p>Хочется отметить, что возможность автоматизации поистине безгранична. Вы можете автоматизировать строительство новых зданий, новых роботов (например, летающих или гусеничных), поиск ископаемых, добычу энергии, подзарядку, охрану Вашей территории и прочие мелкие детали. Разработчики предоставили нам очень удобную абстракцию от лишних деталей, позволяя сфокусировать на достижении конкретной цели.</p>
<p>Нельзя не заметить, что в Colobot встроена прекрасная документация, которой позавидуют многие OpenSource проекты. Все расписано просто и без лишних деталей, приведены примеры использования. Вся документация перелинкована, так что перемещаться по ней очень удобно.</p>
<p>Но в игре существует досадное ограничение на длину кода&nbsp;&mdash; не более 20 000 символов для одной программы. Для чего это сделали разработчики&nbsp;&mdash; не понятно.</p>
<p>На <a href="http://www.ceebot.com/colobot/forum-cbot-e.php">официальном сайте</a> Вы также сможете найти довольно большой архив уже готовых программ. Используйте уже написанные программы, улучшайте их и присылайте им обратно на сайт. Начните уже наконец хоть как-то вносить свой вклад в великое дело OpenSource!</p>
<h2>Ceebot</h2>
<p>Нельзя не упомянуть о том, что существует и версия Colobot для учебных заведений. Ceebot достаточно уверенно развивается, и даже обзавелся собственным сайтом <a href="http://www.ceebot.org">http://ceebot.org</a>, где публикуется различный обучающий материал.</p>
<p style="text-align: center;"><img src="http://v673.com/wp-content/uploads/c4racing1.jpg" alt="Гонки" title="Гонки" width="300" height="225" /></p>
<p>Версия для учебных заведений содержит гораздо больший функционал, большое количество различных заданий и миссий. Существует даже <a href="http://www.ceebot.org/index.php?option=com_content&#038;task=view&#038;id=25&#038;Itemid=40&#038;lang=en">специальные тетради</a> для школьников.</p>
<p>Чего только стоит программирование <a href="http://www.ceebot.org/index.php?option=com_content&#038;task=view&#038;id=18&#038;Itemid=45&#038;lang=en">футбольного матча</a> и <a href="http://www.ceebot.org/index.php?option=com_content&#038;task=view&#038;id=17&#038;Itemid=44&#038;lang=en">гонки роботов</a>! </p>
<p style="text-align: center;"><img src="http://v673.com/wp-content/uploads/c4soccer.jpg" alt="Футбол" title="Футбол" width="300" height="183" /></p>
<p>Хотите поучаствовать в схватке с знакомым программистом? Без проблем, для Вас доступен режим <a href="http://www.ceebot.org/index.php?option=com_content&#038;task=view&#038;id=19&#038;Itemid=46&#038;lang=en">Арена</a>! Докажите, что Вы умеете лучше программировать на деле!</p>
<p style="text-align: center;"><img src="http://v673.com/wp-content/uploads/fight-s.jpg" alt="Война" title="Война" width="300" height="135" /></p>
<p>Также можете ознакомиться с небольшим видео, которое я нашел на <a href="http://youtube.com">youtube.com</a>, иллюстрирующем процесс программирования в Colobot:</p>
<p style="text-align: center;">
<object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/RlyKxjKXQcY&#038;hl=ru&#038;fs=1&#038;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/RlyKxjKXQcY&#038;hl=ru&#038;fs=1&#038;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object>
</p>
<p>На официальном сайте доступна демо-версия игры для <a href="http://www.ceebot.org/index.php?option=com_content&#038;task=view&#038;id=23&#038;Itemid=50&#038;lang=en">скачивания</a> и ознакомления.</p>
<p>И не забудьте посоветовать эту игру знакомым мальчикам(девочкам?)&nbsp;&mdash; вдруг это будущий гений программирования!</p>
<p>Удачи!</p>
<p>
<b>Понравилась эта статья?</b>
<ul>
  <li>Давайте дружить в <a href="http://twitter.com/v673">твитере</a>!</li>
  <li>Есть свое мнение? - <a href="http://v673.com/programmers-games/colobot-and-ceebot/#comments">Поделитесь</a> им в комментариях!</li>
  <li>Возникли какие-то вопросы? - <a href="http://v673.com/feedback/">Задайте</a> мне их лично!</li>
  <li>Интересна информация об авторе? - <a href="http://v673.com/about/">Узнай</a> больше обо мне!</li>
  <li>Поделитесь ссылкой на эту статью со своими друзьями!</li>
</ul>
</p>]]></content:encoded>
			<wfw:commentRss>http://v673.com/programmers-games/colobot-and-ceebot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

