en to fr translation catalogue (23 entries)

note: type: Title-text
en: Wasp Hunter 2
fr: Chasseur de guêpes 2

note: type: Resume-text
en: Get better at shooting down the wasps.
fr: Attrapez des guêpes de manière plus efficace

note: type: ScriptName-text
en: Wasp2
fr: Guêpes2

note: type: \b; header
en: Objective
fr: Objectif

note: type: Plain text
en: Bring down the flying wasps in a more efficient way than with the previous program.
fr: Attraper des <a object|wasp>guêpes</a> en vol de manière plus efficace qu'avec le programme précédent.

note: type: \b; header
en: Program
fr: Programme

note: type: Plain text
en: Here is again the program of the previous exercise that shoots down all the wasps after many, many unsuccessful attempts:
fr: Voici encore une fois le programme de l'exercice précédent qui tire sur les guêpes:

note: type: Source code
en: extern void object::Wasp1()
    {
    	<a cbot|type>object</a>    item;
    	
    	<a cbot|aim>aim</a>(0);
    	
    	<a cbot|while>while</a> (true)
    	{
    		<a cbot|while>while</a> (<a cbot|radar>radar</a>(AlienWasp, 0, 360, 0, 20) == null)
    		{
    			item = <a cbot|radar>radar</a>(AlienWasp);
    			<a cbot|turn>turn</a>(<a cbot|direct>direction</a>(item.position));
    			<a cbot|motor>motor</a>(1,1);
    			
    			<a cbot|jet>jet</a>(0);
    			<a cbot|if>if</a> (position.z > item.position.z)
    			{
    				<a cbot|jet>jet</a>(-0.3);
    			}
    			
    			<a cbot|if>if</a> (position.z < item.position.z - 1)
    			{
    				<a cbot|jet>jet</a>(0.3);
    			}
    			
    			<a cbot|wait>wait</a>(0.2);
    		}
    		item = <a cbot|radar>radar</a>(AlienWasp);
    		<a cbot|turn>turn</a>(<a cbot|direct>direction</a>(item.position));
    		<a cbot|fire>fire</a>(1);
    	}
    }
fr: extern void object::Guêpes1()
    {
    	object    chose;
    	
    	aim(0);
    	
    	while ( true )
    	{
    		while ( radar(AlienWasp, 0, 360, 0, 20) == null )
    		{
    			chose = radar(AlienWasp);
    			turn(direction(chose.position));
    			motor(1,1);
    			
    			jet(0);
    			if ( position.z > chose.position.z )
    			{
    				jet(-0.3);
    			}
    			
    			if ( position.z < chose.position.z - 1 )
    			{
    				jet(0.3);
    			}
    			
    			wait(0.2);
    		}
    		chose = radar(AlienWasp);
    		turn(direction(chose.position));
    		fire(1);
    	}
    }

note: type: Plain text
en: The many failures are due to the fact that the wasp is already gone before the bullets can reach it. The only way to improve the program consists in setting the power of the two motors and of the jet in such a way that the bot follows the movement of the target during the burst.
fr: Comme vous l'avez constaté, le taux de réussite de ce programme n'est pas très élevé, car les guèpes ont souvent le temps de partir. Le seul moyen pour rendre le programme plus efficace consiste à régler la vitesse des moteurs de gauche et de droite ainsi que du réacteur de manière à ce que le mouvement du robot pendant la salve de tir accompagne le mouvement de la cible.

note: type: Plain text
en: Just before the shot, the program adjusts a last time the direction with <c/>turn(direction(item.position));<n/>. In order to follow the wasp during the burst, you have to "remember" the angle of this last rotation: if the angle was positive (rotation to the left), the bot must continue to turn left during the burst; if the angle was negative, the bot must continue to turn right.
fr: Juste avant le tir, le programme fait un dernier ajustement avec un <c/><a cbot|turn>turn</a>(<a cbot|direct>direction</a>(chose.position));<n/>. Pour suivre la guêpe, il faut mémoriser l'angle de cette dernière rotation: si l'angle est positif, il faut continuer à tourner à gauche pendant le tir; si l'angle est négatif, il faut continuer à tourner à droite.

note: type: Plain text
en: In order to "remember" the angle of the last rotation, we need a variable that can contain just one number. If we choose to call it <code>angle</code>, we must define the variable with the following line at the beginning of the program:
fr: Pour mémoriser l'angle de la dernière rotation, nous avons besoin d'une variable qui puisse contenir un simple nombre. Nous définissons donc tout au début du programme une variable <code>angle</code> du type <code><a cbot|float>float</a></code>:

note: type: Source code
en: 	<a cbot|type>float</a> angle;
fr: 	float    angle;

note: type: Plain text
en: The variable type <a cbot|type>float</a> is the variable type that can contain any number, i.e. whole numbers or real numbers. Please refer to the <a cbot|type>text about variable types</a> if you want to know more about the different types of variables and what they can contain.
fr: Référez-vous au texte sur les <a cbot|type>types de variables</a> pour en savoir plus.

note: type: Plain text
en: Just before the instruction <c/>fire(1);<n/>, instead of writing <c/><a cbot|turn>turn</a>(<a cbot|direct>direction</a>(item.position));<n/>, we will put the rotation angle into the variable <code>angle</code>:
fr: Juste avant l'instruction <c/><a cbot|fire>fire</a>(1);<n/>, au lieu de tourner directement de l'angle nécessaire, nous mettons la valeur dans la variable <code>angle</code>:

note: type: Source code
en: 	angle = direction(item.position);
fr: 	angle = direction(chose.position);

note: type: Plain text
en: Then we perform the rotation, and we set the power of the motors so that the bot continues the movement:
fr: Puis nous tournons de l'angle nécessaire, et nous réglons la puissance des moteurs pour que le robot continue le mouvement:

note: type: Source code
en: 	turn(angle);
    	if (angle < 0)
    	{
    		motor(1,0.5);
    	}
    	else
    	{
    		motor(0.5,1);
    	}
fr: 	turn(angle);
    	if ( angle < 0 )
    	{
    		motor(1,0.5);
    	}
    	else
    	{
    		motor(0.5,1);
    	}

note: type: Plain text
en: The instruction <code>else</code> determines what instructions the program should execute if the condition stated in the <code>if</code> instruction is false.
fr: L'instruction <code>else</code> indique ce qu'il faut faire dans le cas où la condition de <code><a cbot|if>if</a></code> n'est pas remplie.

note: type: Plain text
en: Then we must set the power of the jet so that the bot follows the wasp also in the vertical direction:
fr: Puis il faut remettre les instructions qui règlent la puissance du réacteur pour que le robot suive le mouvement de la guêpe dans la direction verticale:

note: type: Source code
en: 	jet(0);
    	if(position.z > item.position.z)
    	{
    		jet(-0.3);
    	}
    	
    	if(position.z < item.position.z - 1)
    	{
    		jet(0.3);
    	}
fr: 	jet(0);
    	if ( position.z > chose.position.z )
    	{
    		jet(-0.3);
    	}
    	
    	if ( position.z < chose.position.z - 1 )
    	{
    		jet(0.3);
    	}

note: type: Plain text
en: As you will see, this program is much more efficient than the previous one!
fr: Comme vous pourrez le constater, le taux de réussite est nettement plus élevé que dans l'exercice précédent.

note: type: \t; header
en: See also
fr: Voir aussi

note: type: Plain text
en: <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
fr: <a tant4>Exercice précédent</a>, <a cbot>programmation</a>, <a cbot|type>types</a> et <a cbot|category>catégories</a>.
