DΘplacez le cube de \l;titanium\u object\titan; sur la plate-forme d'arrivΘe. On ne connaεt pas la position du titanium. 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 une nouvelle faτon de dΘplacer un robot, 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 prΘcis. 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 titanium, utilisez l'instruction \c;\l;radar\u cbot\radar;(Titanium);\n;. La troisiΦme ligne teste si le titanium 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 titanium, il suffit d'effectuer \c;\l;grab\u cbot\grab;()\n;, sans aucun paramΦtre.
Pour dΘposer le titanium, 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;Commandes\u command; et \l;programmation\u cbot;.