## 6. Construction d'une arène

Dans RTB, il est très simple de construire vos propres arènes. Le language est constitué de seulement 11 commandes et il y a principalement 4 bloques de construction : line, circle, inner_circle et arc. C'est surtout pour des raisons de rapidité, car pour des cercles ou des lignes, il est facile de détecter une collision. Circle et inner_circle évitent respectivement aux robots d'entrer dans un cercle et de sortir d'un cercle. Les lignes et les arcs arrêtent les robots qui essayent de rentrer dans un mur (dans une courbe pour un arc), mais aucun test n'est fait sur les extremités de la ligne. Vous devez donc mettre un cercle a chaque fin de ligne pour en faire un objet solide. Les commandes `polygon`, `closed_polygon` et `poly_curve` sont faites pour simplifier ces procédures, donnant des objets plus 'propres'.

Tous les angles sont par défaut en radians, mais vous pouvez les changer en degrès avec la commande `angle_unit degrees`.

Il est important de noter que RTB ne vérifie pas si un fichier donne une arène correcte et c'est totalement de votre ressort. Il signalera tout de même si il y a une erreur de syntaxe.

Les fichiers d'arènes doivent être nommés avec le suffixe `.arena` et doit être stocké dans le répertoire des arènes pour que RTB puisse le trouver.

Le `coefficient de rebondissement` et `de dureté` doivent être donnés pour chaque mur créé, determinant le matériau utilisé pour le mur. Ils ont tous les deux des valeurs comprises entre 0 et 1. Les murs plus dur causeront plus de dégas sur les robots et un coefficient de rebondissement plus grand améliorera les bonds.

Vous êtes également encouragés à étudier les arènes livrées avec RTB et à apprendre à partir de ces exemples.

## 6.1 Commandes d'arènes

Une commande est composée un nom de commande et d'arguments séparés pas des espaces. Soyez sûr de donner le bon nombre d'arguments!

Dans la liste des commandes, les arguments sont donnés entre crochés.

scale [valeur]

  Cette valeur multipliée l'echelle de l'arène donnera le facteur d'echelle, celui par lequel tous les coordonnées seront multiplié (Essayé et vous verrez...) Cette commande doit être, si vous voulez l'inclure, la première ligne du fichier. La valeur par défaut est 1.0.

angle_unit [unité]

  Bascule l'unité des angles vers le mode d'unité choisi, qui peut être les `degrees`(degrès) ou `radians`(radians). La valeur par défaut est le radian.

boundary [gauche] [haut] [droite] [bas]

  Les limites de l'anère, dans laquel les robots, les cookies et les mines seront placés. Elles déterminent aussi l'arène visible dans la fenêtre des arenes. Cette commande est nécessaire est ne peut être précédée que de `scale`.

inner_circle [rebondissement] [dureté] [centre_x] [centre_y] [rayon]

  Les robots sont limités à l'interieur de ce cercle.

circle [rebondissement] [dureté] [centre_x] [centre_y] [rayon]

  Murs en forme de cercle...

line [rebondissement] [dureté] [épaisseur] [début_x] [début_y] [fin_x] [fin_y]

  Crée une ligne. Elles empêchent seulement les robots de ne pas les franchir selon leur longueur, alors n'oubliez pas de placer des cercles aux extrémités.

arc [rbd] [drt] [epais] [centre_x] [ctr_y] [rayon_int] [rayon_ext] [angle1] [angle2]

  Un arc est une section d'anneau compris entre deux angles. Comme les lignes, ils ont besoins de cercles à leurs deux extrémitées.

polygon [rbd] [drt] [ep] [nb de sommets] ([centre_x] [centre_y])...

  Crée un certain nombre de cercles connectés pas des lignes.

closed_polygon [rbd] [drt] [ep] [nb de sommets] ([centre_x] [centre_y])...

  Comme les `polygon`, mais le premier et le dernier sommet sont égalements connectés.

poly_curve [rbd] [drt] [ep] [debut_x] [debut_y] [dir_x] [dir_y] ([arguments ...]) ...

  La `poly_curve` est la commande la plus puissante des commandes. Elle est utilisée pour construire des murs avec des arcs ou des lignes. A chaque étape il y a une position et une direction qui sont affectées pas des 'sous-commandes'. La derniere sous-commande doit être `C` ou `Q`.

  L [longueur]

    dessine une ligne de longueur donnée dans la direction courante.

  T [angle]

    Dévie la direction courante.

  A [angle] [rayon]

    Dessine un arc.

  C

    Termine en effectuant une connection au premier point

  Q

    Termine sans effectuer la connection

exclusion_point [position_x] [position_y]

  Quand une arène à l'interieur des limites est faite de plusieurs aires séparées, vous devez toutes les exclures sauf une en inserrant un point d'exclusion. Tous les points à partir desquels vous pouvez tracer une droite vers un point d'exclusion sans franchir un mur sont concidérés comme en dehors de l'arène.