TD3 : Conception et réalisation d'un programme OO en Python (31/01/2006)

Les tortues jouent au ballon (à rendre pour le 6 février 2006 minuit)

On vous fournit le diagramme de classe suivant, qui comprend une classe Arbitre, lequel dirige une équipe de tortues. Les tortues ont un comportement commun, qui se manifeste dans la classe Tortue, mais ont un comportement qui peut varier (par exemple, on a deux équipes, les tortue vertes et les tortues bleues, dont les déplacements ne sont pas les mêmes, et qui n'ont pas même couleur). Chaque tortue peut posséder le Ballon (qui est également une sous-classe de Pen, capable de se dessiner comme un petit cercle rouge) et le passer à une autre.

Le jeu se déroule de la façon suivante. On crée un objet arbitre, auquel on demande de créer le jeu (ie. de créer une liste de tortues vertes et bleues, ainsi qu'un objet ballon, qui sera affecté à une des tortues). Ensuite on demande à l'arbitre de lancer le jeu. Pour cela, l'arbitre passe la main à chaque tortue successivement (deplacer). A chaque fois qu'une tortue doit se déplacer, elle effectue le déplacement, puis, si elle a le ballon, le dessine, puis se pose la question de faire une passe. Pour cela, elle demande à l'arbitre la liste des tortues les plus proches (à moins d'une certaine distance), classées par distance. Si une tortue de sa couleur est la plus proche, la tortue se débarrasse du ballon, qu'elle lui passe (auquel cas la tortue qui récupère le ballon devra lui demander de se dessiner). Si la tortue la plus proche est de l'autre équipe, alors il y a un certain pourcentage de chance pour que la balle soit subtilisée). On continue jusqu'à ce que le ballon soit passé ou la liste des voisins épuisées.

Codez ces diverses classes, testez-en le bon fonctionnement.

Rendu :