\b;Type \c;object\n; Ce type permet de représenter les caractéristiques d'un objet, qu'il s'agisse d'un robot, d'un bâtiment, d'une matière première transportable, d'un ennemi, etc. \c;\l;int\u cbot\int; object.category \n;\l;Catégorie\u cbot\category; de l'objet \c;\l;point\u cbot\point; object.position \n;Position de l'objet (x,y,z) \c;\l;float\u cbot\float; object.orientation \n;Orientation de l'objet (0..360) \c;\l;float\u cbot\float; object.pitch \n;Inclinaison avant/arrière de l'objet \c;\l;float\u cbot\float; object.roll \n;Inclinaison latérale de l'objet \c;\l;float\u cbot\float; object.energyLevel \n;Niveau d'énergie (0..1) \c;\l;float\u cbot\float; object.shieldLevel \n;Niveau du bouclier (0..1) \c;\l;float\u cbot\float; object.temperature \n;Température du réacteur (0..1) \c;\l;float\u cbot\float; object.altitude \n;Altitude par rapport au sol \c;\l;float\u cbot\float; object.lifeTime \n;Durée de vie de l'objet \c;object object.energyCell \n;Objet pile \c;object object.load \n;Objet transporté \s;\c;category\n; La \n;\l;catégorie\u cbot\category; de l'objet permet de savoir s'il s'agit d'un robot, d'un bâtiment, d'un ennemi, etc. \s;\c;position\n; Position de l'objet sur la planète, en mètres. Les coordonnées \c;x\n; et \c;y\n; correspondent à la position à plat, alors que \c;z\n; correspond à l'élévation absolue par rapport au niveau de la mer. \s;\c;orientation\n; Orientation de l'objet, en degrés. Une orientation de \c;0\n; correspond à un objet tourné vers l'est, donc vers l'axe \c;x\n; positif. Le sens de l'orientation est anti-horaire. \s;\c;pitch\n; Inclinaison avant/arrière de l'objet, en degrés. Une valeur positive indique que le robot monte. \s;\c;roll\n; Inclinaison latérale de l'objet, en degrés. Une valeur positive indique que le robot penche à gauche. \s;\c;energyLevel\n; Niveau d'énergie. Une \l;pile normale\u object\power; entièrement pleine donne la valeur \c;1\n;. Une \l;pile atomique\u object\atomic; ne dépasse jamais le niveau \c;1\n;; elle dure simplement plus longtemps. Notez que le niveau d'énergie d'un robot est toujours nul. En effet, l'énergie est contenue dans la pile qui est placée à l'arrière du robot, et non dans le robot lui-même. Il faut donc écrire \c;energyCell.energyLevel\n; pour connaître l'énergie à disposition. \s;\c;shieldLevel\n; Niveau du bouclier du robot ou du bâtiment. Un niveau de \c;1\n; correspond à un bouclier en parfait état. Avec un niveau de \c;0\n;, le prochain choc ou tir ennemi sera fatal. Les robots peuvent régénérer leurs boucliers sur le \l;centre de réparation\u object\repair;. Le bouclier d'un bâtiment est régénéré s'il se trouve dans la sphère protectrice du \l;robot bouclier\u object\botshld;. \s;\c;temperature\n; Température du réacteur pour les \l;robots volants\u object\botgj;. \c;0\n; correspond à un réacteur froid et \c;1\n; à un réacteur bouillant, provisoirement hors d'usage. \s;\c;altitude\n; Contrairement à la position \c;z\n; qui est absolue, l'altitude est relative au niveau du sol. L'altitude n'a de sens que pour les \l;robots volants\u object\botgj; et la \l;guêpe\u object\wasp;. Pour tous les autres robots ou pour les bâtiments, cette valeur est nulle. \s;\c;lifeTime\n; Donne l'âge de l'objet, en secondes. \s;\c;energyCell\n; Cette information est spéciale, dans la mesure où elle contient les caractéristiques d'un autre objet, la pile en l'occurrence. On y retrouve donc toutes les caractéristiques de l'objet de base, telles que \c;category\n;, \c;position\n;, etc. Pour connaître le niveau d'énergie d'un robot, il ne faut pas accéder à \c;energyLevel\n;, mais à \c;energyCell.energyLevel\n;. Si le robot n'a pas de pile, \c;energyCell\n; vaut \c;null\n;. \s;\c;load\n; Cette information est spéciale, comme la précédente. Elle contient les caractéristiques de l'objet transporté par le \l;robot déménageur\u object\botgr;. S'il ne transporte rien, \c;load\n; vaut \c;null\n;. \b;Exemples Le type \c;object\n; prend la valeur particulière \c;\l;null\u cbot\null;\n; lorsque l'objet n'existe pas. Par exemple: \c; \s; object a; \s; a = radar(BotGrabberRoller); \s; if ( a == null ) // objet n'existe pas? \s; { \s; } \s; if ( a.position.z > 50 ) // sur une hauteur? \s; { \s; } \n; Les informations \c;energyCell\n; et \c;load\n; sont spéciales: on y retrouve donc toutes les caractéristiques de l'objet de base, telles que \c;category\n;, \c;position\n;, etc. Par exemple, \c;category\n; contient la catégorie du robot, alors que \c;energyCell.category\n; contient la catégorie de la pile du robot. Pour connaître le niveau d'énergie d'un robot, il ne faut pas accéder à \c;energyLevel\n;, mais à \c;energyCell.energyLevel\n;. \c; \s; object a; \s; a = radar(BotGrabberRoller); \s; if ( a.load!= null ) // porte qq chose? \s; { \s; } \s; if ( a.load.category == PowerCell ) // porte une pile? \s; { \s; } \s; if ( a.energyCell.energyLevel < 0.2 ) // presque à plat? \s; { \s; } \n; \t;Dictionnaire anglais-français \c;object\n; = objet \t;Voir aussi \l;Programmation\u cbot;, \l;types\u cbot\type; et \l;catégories\u cbot\category;.