\b;Objectif
Attrapez des guêpes en vol

\t;Programme
Voici encore une fois le programme de l'exercice précédent qui tire sur les fourmis en s'adaptant à la topologie du terrain:
\c;
\s;extern void object::Chasseur2()
\s;{
\s;	object    chose;
\s;	
\s;	aim(-20);
\s;	
\s;	while ( true )
\s;	{
\s;		while ( radar(AlienAnt, 0, 360, 0, 20) == null )
\s;		{
\s;			chose = radar(AlienAnt);
\s;			turn(direction(chose.position));
\s;			motor(1,1);
\s;			jet(0);
\s;			if ( position.z-topo(position) < 6 )
\s;			{
\s;				jet(1);
\s;			}
\s;			
\s;			if ( position.z-topo(position) > 9 )
\s;			{
\s;				jet(-1);
\s;			}
\s;			wait(0.2);
\s;		}
\s;		fire(1);
\s;	}
\s;}
\n;
Pour que le tireur soit capable d'attraper des guêpes en vol, il faut faire quelques changements. Il faut remplacer tous les \c;\l;radar\u cbot\radar;(AlienAnt)\n; par \c;radar(AlienWasp)\n;. Le canon doit viser tout droit et non pas vers le bas, remplacez \c;\l;aim\u cbot\aim;(-20);\n; par \c;aim(0);\n;. Et le robot doit voler à la même altitude que la guêpe. Pour cela, il faut comparer l'altitude du robot donnée par \c;position.z\n; avec l'altitude de la guêpe donné par \c;chose.position.z\n;. Si \c;position.z > chose.position.z\n;, il faut descendre doucement avec \c;\l;jet\u cbot\jet;(-0.3);\n;. Si \c;position.z < chose.position.z-1\n;, il faut monter doucement avec \c;\l;jet\u cbot\jet;(0.3);\n;. Comme un robot tireur est plus haut qu'une guêpe, il vaut mieux que le robot soit un peu plus bas: on admet donc que l'altitude du robot soit située entre l'altitude de la guêpe et l'altitude de la guêpe moins 1.

\t;Perfectionnement
Les guêpes se déplacent très vite. Pour avoir plus de chances de les attraper, il vaut mieux juste avant le \c;\l;fire\u cbot\fire;(1);\n; refaire un \c;\l;radar\u cbot\radar;()\n; et un \c;\l;turn\u cbot\turn;()\n; pour faire un dernier ajustement de la direction avant le tir.

\t;Voir aussi
\l;Exercice précédent\u tant4;, \l;programmation\u cbot;, \l;types\u cbot\type; et \l;catégories\u cbot\category;.
