Le polymorphisme
From OFSET Wiki
Contents |
[edit] Le polymorphisme avec les Etoys
[edit] Définition
Le polymorphisme est une particularité des langages objet. Plusieurs objets peuvent avoir un script ou une méthode de même nom exécutant une action en lien avec le nom mais d'une manière spécifique pour chaque objet. Nous allons illustrer celà à partir d'une version plus élaborée du jeu du serpent.
[edit] Qui sait quoi, qui fait quoi
C'est la question fondamentale à se poser lorsque l'on prépare un projet en langage objet. Nous allons décrire de cette manière notre jeu du serpent. Le savoir d'un objet est contenu dans ses variables, notre projet n'utilise pas de variable, la colonne sait est donc vide.
Les acteurs sont:
- Le serpent.
- Des pastilles que le serpent mange.
- Une étoile qui régénère les pastilles.
- Des rats que le serpent doit éviter.
- Un terrier qui contient les rats.
- le score
- L'affichage gameOver qui marque la fin d'une partie.
- Le jeu, une scène qui contient tout ce petit monde.
| objet | sait | fait |
|---|---|---|
| serpent | pilote réagit aux touches fléchées, avance, teste la collision avec les bords init Se place au centre. | |
| pastille | collision teste la collision avec le serpent si oui ,se cache range se montre au hasard init exécute range. | |
| étoile | collision teste collision avec le serpent, si oui envoie range tous les objets. | |
| rat | | range retourne dans le terrier init exécute range bouge Avance droit devant, retourne au terrier si touche le bord. |
| terrier | expulseUnRat met un rat en route | |
| score | init met à zéro le score augmente le score de 1 | |
| gameOver | init se cache gameOver se montre, termine le jeu. |
Le script début dans jeu envoie init à tous les objets inclus.
Le script init se trouve dans plusieurs objets, chaque objet réagit à sa façon pour se mettre en position initiale.
De même l'étoile, lors d'une collision avec le serpent, envoie range aux objets inclus pour remettre les pastilles dans le jeu et ranger les rats.

