Bouncing balls

BoucingBalls.tcl utilise le package bballs pour créer un canvas sur lequel on peut lancer des billes en cliquant avec le bouton gauche de la souris. Une fois lancées, les billes rebondissent sur les bords du canvas. Vous allez modifier le script pour en faire une version distribuée, les bords gauche et droit de chaque fenêtre correspondants à des zones d'échange de billes entre deux fenêtres.

Etape 1

Récupérer les deux scripts chez vous, dans le répertoire indiqué dans votre fichier preferences.

Renommer BoucingBalls.tcl en gkBouncingBalls.tcl et modifier dans celui-ci le chemin d'accès au fichier bballs.tcl (ligne source bballs.tcl).

Jeter un coup d'oeil à bballs.tcl pour voir les procédures qu'il comporte.

Ajouter les menus standards de Groupkit et vérifier que ca marche (s'inspirer de la partie Running the Example in GroupKit de ce document).

Etape 2

Traiter les événements newUserArrived et userDeleted pour déterminer les voisins gauche et droit (utiliser l'ordre lexicographique sur les numéros des participants).

Etape 3

Utiliser des frames sur les bords gauche et droit du canvas pour indiquer la couleur des zones de passage.

Utiliser la couleur de chaque participant pour ses billes.

Etape 4

Lorsqu'une bille touche le bord gauche (resp. droit), l'envoyer au voisin de gauche (resp. droite).

Etape 5

Faire une version totalement ouverte (les bords haut et bas sont aussi des zones de passage).

Ajouter des chocs entre les billes.