La partie technique

Interface

Nous avons donc choisi un logiciel multidisciplinaire pour permettre la création de notre interface entre l’enfant et le robot. Ce logiciel comprend une grande quantité de « mini-activités » diversifiées auxquelles il a fallu se confronter pour faire notre choix.

Tout d'abord, nous avons voulu associer Tux à la totalité de l'application et donc modifier puis recompiler son code source pour voir nos résultats. Le fichier bonus.c (téléchargeable ici), présent dans le dossier src/gcompris/ de l'archive de GCompris, a donc été modelé à notre façon (voir tous les commentaires en français) afin de pouvoir lire un script python qui faisait réagir Tux à la fin de chaque niveau terminé :

Cette solution n'était pas satisfaisante et surtout compliquée à mettre en place pour la construction de notre futur protocole de tests car on ne contrôlait finalement pas les erreurs commises pendant la réalisation de l'activité (le script ne se lançant qu'à la fin).

Nous avons alors décidé de nous concentrer sur une activité bien précise et de lui appliquer tout ce dont elle aurait besoin pour permettre son intéraction avec Tux et l'enfant. C'est ainsi que nous avons sélectionné le Sudoku, activité simple d’utilisation, facilement modifiable (codée en python) mais qui surtout nous permettait d’effectuer « facilement » des observations sur les erreurs commises par l’enfant.

C’est donc avec une page pleine de python que nous sommes partis :

A partir de là, nous avons mis les mains dans le cambouis et analysé le code du programme. Après quelques jours de manipulations, nous avons pu modifier ce que l’on souhaitait et intégrer les interactions du Tux à des endroits spécifiques de l’activité.

Comme vous pourrez le constater, notre code a été, pour sa quasi totalité, entièrement séparé du code du sudoku, pour une meilleure accessibilité et une meilleure visibilité.

Chaque interaction de Tux a été associée à une fonction propre (def feliciter(self), def tux_donne_solution(self), ...) et un bouton représentant le pingouin a même été implémenté à l'interface du sudoku permettant à l'enfant de lancer l'aide de Tux à tout moment.

# Action of Tux's button
def tux_button_event(self, item, event, text):
   if event.type == gtk.gdk.BUTTON_RELEASE:
      print "ici, l'enfant a cliqué sur le bouton d'aide"
      self.tux_help_higlight_err()

Une fois la partie technique mise en place et fonctionnelle, il ne restait plus qu'à l'intégrer à un protocole expérimentale.

Administration du site