## 2. Usilisation

Ce chapitre décrit comment utiliser le programme. Si vous le trouvez ennuyant à lire, passez le, et revenez le lire si vous n'arrivez pas à utiliser l'interface d'utilisation. C'est tout de même une bonne idée de lire la section concernant les options de lignes de commande ci-dessous. Notez aussi qu'il n'y a pas d'aide a propos de la compilation du programme. C'est ici que vous trouverez ces informations.

## 2.1 Options de ligne de commande

Sur la ligne de commande, il y a deux options qui contrôlent les caractèristiques générales de RealTimeBattle. Vous pouvez choisir le fichier qui détermine les options. Vous pouvez aussi choisir le mode d'execution du programme : `debug`, `normal` ou `competition`.

     Utilisation: RealTimeBattle [options]

     Options:
        --debug_mode,                -d   mode pour debugger le programme
        --debug_level [0-5],         -D   définie le niveau de debuggages (nécessite -d)
        --normal_mode,               -n   mode normal (option par defaut)
        --competition_mode,          -c   mode competition

        --no_graphics,               -g   execution sans le mode graphique
        --option_file [file],        -o   choix du fichier d'options
                                          (defaut: $HOME/.rtbrc)

        --log_file [file],           -l   création d'un fichier de log (Si le fichier 'file est '-'
                                          le log sera envoyé vers la sortie standard

        --tournament_file [file],    -t   specifie le fichier de tournoi pour
                                          démarrer automatiquement un tournoi

        --statistics_file [file],    -s   fichier vers lequel seront envoyées les
                                          statistique lors d'un autodémarage

        --message_file [file],       -m   redirige les messages vers 'file'.
                                          '-' est équivalent à STDOUT.
    				      si les log et les messages sont envoyés
    				      vers la sortie standard, '-m' sera ignoré

        --replay [file]              -r   un fichier log pour rejouer
                                          Si '_' est spécifié, les entrée se feront
    				      à partir de STDIN

        --help,                      -h   affiche ce message
        --version,                   -v   affiche le numéro de version du programme

Les différences entre les trois modes de compétition sont définies dans la table suivante :

Mode | Debug | Normal | Competition
Commandes de débugage autorisées | Oui | Non | Non
Pause durant le jeu | Oui | Oui | Non
Step through game | Oui | Non | Non
Les robots peuvent lancer des processus fils | Oui | Non | Non
Limitation du CPU du robot | Non | Non | Oui

## 2.2 Controle des fenêtres

Nouveau tournoi:

  Commencer un nouveau tournoi La section Fenetre de nouveau tournoi vous donnera plus d'informations.

Rejouer un tournoi:

  Rejouer un jeu. Il vous sera demandé le fichier de log file que vous voudrez rejouer pour l'étudier.

Pause:

  Met le jeu en attente. En mode competition les pauses ne sont pas autorisées pendant le jeu, elle s'effectue à la fin du jeu.

Fin:

  Termine le tournoi courant.

Options:

  Ouvre la fenêtre des options.

Statistiques:

  Ouvre la fenêtre des statistiques.

Montrer la fenêtre de l'arène:

  Cette boite peut être utilisée pour montrer et cacher les trois fenêtres utilisables quand une partie est en cours : La fenêtre de l'arèné, la fenêtre des scores et la fenêtre des messages.

Quitter:

  Terminer le programme.

En mode debug il y a d'autres boutons utilisables. Ils sont là pour aider le debugage des robots. Vous pouvez debuguer un processus en cours d'execution; si vous utilisez `gdb` la commande est `gdb nom-du-robot numéro-du-processus`.

Pas à Pas:

  Durant une pause Ce bouton permet de faire avancer le programme d'une unité de temps. C'est très utile quand vous executer le robot dans un debugger, sinon le robot sera submergé par les messages.

Fin du jeu:

  Ceci terminera la partie en cours. Il a le même effet qu'aurait un depassement de temps.

Tuer le robot marqué:

  En mode debug, vous pouvez marker un robot dans la fenêtre des scores. Ce robot mourira si vous pressez ce bouton.

Niveau de Debug:

  Change le niveau de debuggage est une façon de dire au robot les messages qu'il doit envoyer. Les limites sont 0 et 5, où 0 est le mode normal, et 5 le plus haut niveau de debuggage.

Quand vous rejouer un ficher log (pas à partir de stdout) il y a un certain nombre de 'widgets' pour contrôler le déroulement. Consulter le rubrique Rejouer.

## 2.3 Fenêtre de nouveau tournoi

Pour choisir un robot ou une arène pour un tournoi, marquez les fichiers de droite et pressez le bouton `ajout`. Choisisez les fichiers sur la gauche et effectuez la même manoeuvre pour les retirer.

Un tournoi est constitué d'un nombre desequences de jeux. Dans chaque sequence, les même robots jouent dans tous les jeux. C'est ici que vous choisissez le nombre de jeux et de sequences ainsi que le nombre de robots dans chaque séquence. Si vous voulez faire jouer tous les robots dans tous les jeux vous devez choisir une séquence et augmenter le nombre de jeux. Cela évite de relancer les processus des robots ce qui pourrait prendre du temps, spécialement quand le nombre de robots est grand.

Il est également possible de charger un fichier de tournoi, ou de sauver la configuration courante. Le dernier tournoi joué est stocké dans /tmp/rtb/tmp.tour et est toujours rechargé quand vous ouvrez la fenêtre. Si il n'y en a pas, une tournoi vide est affiché.

Vous devez choisir au moins deux robots et une arène pour commencer à jouer.

## 2.4 Répertoire des robots et arènes

Afin que le programme puisse trouver les robots et les arènes vous avez définie deux options : chemin d'accès aux Robots et chemin d'accès aux Arenes Les sous-repertoires `Robots` et `Arenas` dans le répertoire d'installation de rtb (par défaut: `/usr/local/games/RealTimeBattle`), spécifiés à la compilation dans le Makefile, sont toujours regardés en premier, mais si vous créez un nouveau répertoire, ou que RTB est installé ailleur, vous devez redéfinir ces options.

## 2.5 fenêtre de l'arène

This is where the battle takes place. If you want a more detailed view, use the zoom buttons or press +, - or 0. The robots are visualized as coloured circles with an angle shape showing the radar direction, the thick line is the cannon and the thin line points in the front direction.

## 2.6 fenêtre des scores

Dans cette fenêtre, les robots jouant dans la sequence courante sont listés.

## 2.7 Fenêtre des messages

Sont écrits dans cette fenêtre les messages des robots envoyés par les commandes Print et Debug. Les messages les plus récents sont affichés en haut de la liste. Vous pouvez effacer cette fenêtre ou choisir d'afficher seulement les messages d'un robot en particulier.

## 2.8 Fenêtre d'options

Vous pouvez changer un certain nombre d'options. Dans le chapitre sur les options vous pouvez obtenir des informations détaillées à propos de chaque option. Les changements ne sont pas appliqués avant que le bouton `appliquer` ou `OK` ne soit pressé.

Vous pouvez sauvegarder ces options dans un fichier : `Sauver les options` les sauvera dans un fichier de votre choix et `Sauver par defaut` les sauvera dans le fichier `.rtbrc` dans votre répertoire personnel.

Le bouton `Défaut` remettra toutes les options à leur valeur par défaut.

## 2.9 Fenêtre des statistiques

Vous pouvez étudier les statistiques du tournoi courant sous différents angles. Vous pouvez afficher

- les statistiques individuelles de Robots,
- le résultat d'une partie,
- la sequence totale ou
- le tournoi total.

Presser sur les flèches vous déplacera sur les statistiques du premier, précédent, suivant ou dernier élément respectivement. La bar du milieu indique ce quelles sont les statisques affichées, et appuyer dessus mettra à jour ces statistiques si le jeu à progressé. Si vous utilisez gtk+1.1.x, il est également possible de trier les objets en fonction des différentes colonnes en cliquant sur le titre correspondant.

## 2.10 Lancement sans graphiques

Si vous voulez, vous pouvez lancer RTB sans aucun graphique. Ceci peut être très utile quand vous lancer une longue serie de tests ou que vous lancer une compétition. Pour utiliser cette option, vous devez choisir : Soit ajouter l'argument `-g` quand vous lancer votre programme, soit en empêchant les graphiques à la compilation (voir le fichier `INSTALL` pour plus d'informations). La dernière alternative est utile car l'executable est plus petit et plus rapide sur les machines ayant peu de mémoire. Il vous permet également de lancer RTB sur une machine n'ayant pas `gtk+` d'installé.

Quand vous lancez sans graphiques, vous devez spécifier un fichier de tournoi, sinon rien ne se produira. Il est également préférable de créer un fichier de log et/ou de statistiques si vous voulez connaître les resultats.

## 2.11 Fichiers tournoi

Le fichier de tournoi doit être spécifier comme option dans la ligne de commandes. Quand un tournoi est spécifié, il commencera et s'arrêtera automatiquement. Pour sauver les statistiques, regardez la section fichier de statistiques pour plus d'informations.

Un fichier de tournoi est composé de 5 mots-clés. Tous ces mots-clés peuvent être écrits plusieurs fois, mais n'oubliez pas que seul le dernier mot-clé qui prend un nombre comme argument est retenu. Tous les mots-clés doivent être suivient d'un point-virgule.

Games/Sequences ou g/s:

  Prend un nombre ou une `*` comme argument. Le nombre est le nombre de jeu qui doit se jouer par tournoi. L'astérisque voulant dire que le programme prend le nombre d'arène est l'utilise comme argument. La valeur par défaut est 1.

Robots/Sequence ou r/s:

  Prend un nombre ou un `*` comme argument. Le nombre est le nombre de robot jouant dans chaque séquence. L'astérisque signifie que le programme prend le nombre exact de robots est l'utilise comme argument. La valeur par défaut est 2.

Sequences ou seq:

  Prend un nombre ou un `*` comme argument. Ce nombre indique combien de séquences doivent être jouées dans un tournoi. L'astérique signifie que le programme prend le nombre exact de robots le nombre de robots par séquence pour déterminer le nombre de séquence afin que tous les robots puissent se rencontrer exactement une fois, et utilise se nombre comme argument. La valeur par défaut est 1.

Robots ou r:

  Prend pour arguments les fichiers de robots.

Arenas ou a:

  Prend pour arguments les fichiers d'arènes.

Les fichiers d'arguments peuvent être les suivants:

Juste le fichier:

  Le chemin d'accès sera le répertoire par défaut.

  Exemple: `Robot: empty.robot`

Chemin d'accès complet au fichier:

  Le programme prendra le fichier donné.

  Exemple: `Arena: /usr/local/games/RealTimeBattle/Arenas/Circle.arena`

Tous les fichiers du répertoire:

  Recherche tous les fichiers dans le répertoire d'accès par défaut

  Exemple: `Arena: *`

Un répertoire spécifique:

  Recherche les fichiers dans le répertoire indiqué.

  Exemple: `Robot: /usr/local/games/RealTimeBattle/Robots/*`

Il est possible de donner le nom d'un fichier plus d'une fois. Si vous voulez trois rotate_and_fire.robot. il suffit d'écrire rotate_and_fire.robot trois fois. C'est également possible avec `*`.

Exemple de fichier de tournoi:

`R: * Arenas: Circle.arena Square.arena G/S: 2 r/s: 3 Sequences: *`

## 2.12 Fichier log

Quelquefois, il est plus utile de rejouer une partie est de l'analyser en détail ou de la garder pour de futures références, et dans ce cas, un fichier de log peut-être utile. Ajouter l'argument `-l` quand vous lancer RTB, avec le nom du fichier comme argument pour activer cette possibilité ou avec l'argument `'-'` pour que le log soit affiché sur stdout.

Le format d'un fichier de log est le suivant : Chaque ligne comprend une lettre qui determine le type d'information, suivie d'une liste d'arguments séparés par des espaces. Les informations suivantes sont données:

Entête:

  H [games/sequence] [robots/sequence] [sequences] [robots]

Info sur les arènes:

  A [line from the arena file]

Début de partie:

  G [sequence number] [game number]

Option:

  O [option:value]

Liste des propriété des robots:

  L [robot id] [robot colour] [robot name]

Info sur la position du robot:

  R [robot id] [x] [y] [cannon angle] [radar angle] [energy]

Temps:

  T [time elapsed]

Message affiché:

  P [robot id] [message to print]

Cookie:

  C [cookie id] [x] [y]

Mine:

  M [mine id] [x] [y]

Missile:

  S [shot id] [x] [y] [dx/dt] [dy/dt]

Mort:

  D [type of object killed] [object id] (if robot: [points received] [position])

## 2.13 Revisualiser une partie

Vous pouvez rejouer une partie à partir de son fichier de log soit en donnant l'option de ligne de commandes `"-r"` ou à partir de la fenêtre de contrôle. Notez que si le log ne vient pas de l'entrée standard (par l'option `"-r -"`), vous ne pourrez pas faire grand chose d'autre que de regarder le jeu, si ce n'est qu'influencer sa vitesse :

- La bar en haut montre la progression du jeu. Vous pouvez 'sauter' ou vous voulez dans le jeu en trainant le bidule.
- L'avance rapide est le retour ne font rien de plus extraordinaire que ne l'indique leur nom. Vous pouvez modifier la vitesse en changeant les options facteur d'avance.
- Lees boutons 'Pas en avant' et 'Pas en arrière' peuvent être utilisés pour étudier ce qui se passe dans les détails. Mais le jeu doit être mis en pause avant de pouvoir utiliser cette option.
- Avec les 4 boutons du bas, vous pouvez naviguer entre les différents jeux et séquences.

## 2.14 Fichier de statistiques

Le fichier de statistiques est seulement utiliser lorsqu'un fichier de tournoi est spécifié. Les statistiques seront sauvées dans ce fichier une fois que le tournoi sera terminé. Sinon, vous pouvez les sauver à la main en utilisant le bouton `Sauver` dans la fenêtre des statistiques.