\b;Exercice
Déplacez le \l;bloc de titane\u object\titan; sur la plate-forme d'arrivée. On ne connaît pas la position du titane. En revanche, on sait que la plate-forme est à la position x=10 et y=-60.

\b;L'instruction \c;goto\n;
Pour résoudre ce problème, nous allons utiliser l'instruction \c;\l;goto\u cbot\goto;\n;. Cette instruction permet d'atteindre très simplement n'importe quelle position, en spécifiant ses coordonnées. Le robot tourne automatiquement dans la bonne direction et avance. Il évite même les obstacles éventuels!

En résumé, les différentes manières de déplacer un robot sont donc:

\s;\c;motor(left, right)\n;
Pour commander directement les moteurs, fraction de seconde après fraction de seconde.

\s;\c;move(distance)\n; et \c;turn(angle)\n;
Pour avancer d'une longueur précise, ou tourner d'un angle donné. Les déplacements sont relatifs. Par exemple, on avance de 100 mètres par rapport à la position actuelle du robot.

\s;\c;goto(position)\n;
Pour atteindre facilement une position absolue donnée.

\b;Solution
Pour trouver le titane, utilisez l'instruction \c;\l;radar\u cbot\radar;(Titanium);\n;. La troisième ligne teste si le titane est trouvé. Dans cet exercice, c'est inutile, mais il vaut mieux prendre l'habitude de faire ce genre de test systématiquement:
\c;
\s;object  item;
\s;item = radar(Titanium);
\s;if ( item == null )  return;
\s;goto(item.position);
\n;
La variable \c;item\n; est de type \c;\l;object\u cbot\object;\n;. Pour connaître la position de l'objet décrit par la variable, il faut donc écrire \c;item.position\n;.

Pour prendre le titane, il suffit d'effectuer \c;\l;grab\u cbot\grab;()\n;, sans aucun paramètre.
Pour déposer le titane, il suffit d'effectuer \c;\l;drop\u cbot\drop;()\n;, sans aucun paramètre.

Les coordonnées de la plate-forme d'arrivée sont connues: x=10 et y=-60. Il faut donc déclarer une \l;variable\u cbot\var; de type \l;point\u cbot\point;, puis lui assigner les bonnes coordonnées. Cette variable pourra ensuite être donnée comme argument à l'instruction \c;\l;goto\u cbot\goto;\n;.
Remarque: la coordonnée \c;z\n; peut être ignorée dans le cas d'un robot qui ne vole pas!

A vous de terminer le programme ...

\key;\key help;\norm; permet de revoir ces instructions en tout temps!

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