home *** CD-ROM | disk | FTP | other *** search
/ Revista CD Expert 51 / PCGamer51_17Demos.iso / games / colobotdemo / colobotdemo10e.exe / help / texch2.txt < prev    next >
Text File  |  2001-06-10  |  3KB  |  43 lines

  1. \b;Exercice
  2. Des \l;bornes\u object\exchange; d'informations sont placΘes le long d'un chemin. Lorsque le \l;robot\u object\bottr; est proche d'une borne, il peut lire les informations qu'elle contient. Les informations contenues dans chaque borne donnent la direction et la distance jusqu'α la borne suivante.
  3.  
  4. \b;Principe
  5.     RΘpΘter toujours :
  6.     o  Lire la direction dans la \l;borne\u object\exchange;.
  7.     o  Lire la longueur dans la \l;borne\u object\exchange;.
  8.     o  Si rien n'a ΘtΘ lu, stopper.
  9.     o  Tourner dans la direction obtenue.
  10.     o  Avancer de la longueur obtenue.
  11.  
  12. La rΘpΘtition infinie s'effectue avec une boucle \c;\l;while\u cbot\while;\n;. Les instructions entre \c;{ }\n; sont rΘpΘtΘes α l'infini, ou jusqu'α l'exΘcution de l'instruction \c;break\n;.
  13. \s;\c;    while ( true )
  14. \n;
  15. La lecture de la \l;borne\u object\exchange; s'obtient avec \c;\l;receive\u cbot\receive;("name");\n;. Ceci n'est Θvidemment possible que lorsque le \l;robot\u object\bottr; est proche de la borne. L'orientation du robot n'a pas d'importance.
  16. Il faut dΘfinir deux \l;variables\u cbot\var; \c;dir\n; et \c;len\n; :
  17. \s;\c;    float  dir, len;
  18. \n;
  19. Et ensuite leur assigner la direction α prendre et la longueur α avancer :
  20. \s;\c;    dir = receive("Direction");
  21. \s;\c;    len = receive("Length");
  22. \n;
  23. Une variable \c;float\n; peut prendre une valeur spΘciale appelΘe \c;\l;nan\u cbot\nan;\n;. Ceci indique que la variable ne contient pas un nombre.
  24. Lorsqu'il n'y a plus de \l;borne\u object\exchange;, α la fin du parcourt, ou si le \l;robot\u object\bottr; dΘvie de sa trajectoire et que la borne est trop loin, les deux variables \c;dir\n; et \c;len\n; prennent cette valeur. Il est donc possible de tester cette valeur avec un \c;\l;if\u cbot\if;\n; pour stopper le programme si nΘcessaire.
  25. \s;\c;    if ( dir == nan )  break;
  26. \n;
  27. Si la \l;borne\u object\exchange; a ΘtΘ lue avec succΦs, il faut tourner dans la bonne direction avec :
  28. \s;\c;    turn(dir);
  29. \n;
  30. Puis avancer avec :
  31. \s;\c;    move(len);
  32. \n;
  33. \b;Remarque
  34. En cliquant sur une \l;borne\u object\exchange; pour la sΘlectionner, vous pouvez voir les paramΦtres qu'elle contient. Dans cet exercice, chaque borne contient deux informations appelΘes \c;"Direction"\n; et \c;"Length"\n;.
  35.  
  36. \b;Pour tuer le temps
  37. N'oubliez pas que, pendant que le robot avance de borne en borne, vous pouvez changer de vue en cliquant sur l'ic⌠ne \button 13; ou en appuyant sur la barre d'espace. Vous pouvez Θgalement sΘlectionner le \l;cosmonaute\u object\human; et suivre le robot. Mais attention, dans ce cas, α ne pas le heurter, ce qui le ferait dΘvier inΘxorablement de sa trajectoire !
  38.  
  39. \key;\key help;\norm; permet de revoir ces instructions en tout temps !
  40.  
  41. \t;Voir aussi
  42. \l;Commandes\u command; et \l;programmation\u cbot;.
  43.