Table des matières

Interagir avec le simulateur

La GUI (Graphical User Interface)

L'évolution majeure de la version 2014 du simulateur est l'ajout d'une GUI qui permet d'envoyer quelques commandes au robot, mais surtout de récupérer les actions effectuées par ce-dernier.

La GUI a été réalisé à l'aide de la librairie graphique TKinter (SR01 quand tu nous tiens^^) et se présente sous cette forme :

Outre l'aspect général et les couleurs qui laissent pas mal à désirer (on aura privilégié le fonctionnel au visuel), la GUI se décompose en 4 principaux blocs (ou frame) :

La GUI est certes une ébauche plutôt laide et pas entièrement fonctionnelle, mais elle permet de simuler plusieurs choses difficilement intégrable directement dans le simulateur. De plus, elle permet d'avoir des renseignements faciles d'accès sur les robots.

Au final la GUI s'avère être une bonne idée pour le gain de temps qu'elle apporte sur le débug de l'IA (plus besoin de parcourir les milliers de lignes de logs pour avoir telle ou telle information.

Le contrôle clavier/souris

Comme expliqué plus haut, la GUI permet surtout de récupérer des informations du simulateur et non de lui en envoyer. Il serait par exemple utile de pouvoir déplacer un robot manuellement sur la carte, non ?

C'est là qu'intervient le contrôle du simulateur via le clavier et la souris. Ce contrôle est basé sur la boucle d'événements extérieurs de PyGame. Lorsque l'utilisateur interagit avec la fenêtre du simulateur, la commande est mise en tampon et est exécutée au prochain tour de boucle.

Bref, voici ce qu'il est concrètement possible d'avoir comme interaction avec le simulateur :

En cliquant sur la map, vous donnez l'ordre au robot courant (par défaut le gros robot de l'équipe rouge) de se déplacer vers ce point. Le fonctionnement est immédiat, les ordres ne sont pas stockés dans une pile : en cliquant, la pile des ordres de déplacement du robot est vidée et une fois que le robot atteint la position demandée, il ne bouge plus (sauf si on lui redonner un ordre de déplacement).

Si la touche est enfoncée, on contrôle via clique le petit robot de l'équipe courante. Sinon on contrôle le gros robot.

Permet de changer d'équipe. Par défaut, on contrôle l'équipe rouge. Une pression sur la touche change l'équipe par défaut par l'équipe jaune. Si vous voulez à nouveau faire bouger les robots de l'équipe rouge, il faudra rester appuyer sur la touche shift gauche (pas très pratique, on est d'accord).

A la base il y avait d'avait d'autres actions qui pouvaient être effectuées (start, stop, téléportation, recul, etc) cependant ces fonctionnalités du simulateur 2012 n'auront pas été réimplémentés.