Projet DÕISN - Edmond Perrier

19
Projet D’ISN

Transcript of Projet DÕISN - Edmond Perrier

Page 1: Projet DÕISN - Edmond Perrier

Projet D’ISN

Page 2: Projet DÕISN - Edmond Perrier

Présentation de l’algorithme

Le jeu de la vie :

- Un jeu qui simule l’évolution d’une population de cellules,

- Une grille où chaque case contient ou non une cellule,

- Il répond à trois règles :

Page 3: Projet DÕISN - Edmond Perrier

Si, autour d’une case vide, 3 des 8 cases contiennent une cellule alors une cellule nait dans la case vide

Page 4: Projet DÕISN - Edmond Perrier

Si, autour d’une cellule, 2 ou 3 des 8 cases contiennent une cellule alors la cellule survit

Page 5: Projet DÕISN - Edmond Perrier

Si, autour d’une cellule, il y a moins de 2 cellules alors la cellule meurt d’isolement

Page 6: Projet DÕISN - Edmond Perrier

Si, autour d’une cellule, il y a plus de 3 cellules alors la cellule meurt d’étouffement

Page 7: Projet DÕISN - Edmond Perrier

Langage Java’s cool

Page 8: Projet DÕISN - Edmond Perrier

Mise en place de la grille

Page 9: Projet DÕISN - Edmond Perrier

Remplissage aléatoire de la grille de chiffre de 1 à 5. Placement d’une cellule dans les

cases contenant un 1.

setPixel(i,j,couleur) place un pixel de la couleur désigné à la

coordonnée (i,j)

ramdom(1,5) retient aléatoirement un

chiffre de 1 à 5

Page 10: Projet DÕISN - Edmond Perrier

Un while() qui permet d’afficher le

nombre voulu de générations de

cellules (de 0 à n).

Page 11: Projet DÕISN - Edmond Perrier

Recherche du nombre de voisin

pour toutes les cases du tableau

getPixel(i,j) permet de récupérer la

valeur de la couleur du pixel de

coordonné (i,j)L’addition de la valeur de la couleur de chaque voisin permet d’en déterminer le

nombre (255=blanc et 0=noir)

Page 12: Projet DÕISN - Edmond Perrier

Dans le cas ou la case contient une cellule : si il y a 2 ou 3 voisins alors elle survit sinon

elle meurt

Page 13: Projet DÕISN - Edmond Perrier

Dans le cas ou la case est vide : si il y a 3

voisins une cellule née sinon la case reste

vide.

Page 14: Projet DÕISN - Edmond Perrier

Nettoyage de l’écran en recouvrant la

totalité de pixel blanc

Écriture du tableau pour chacune des coordonnées en

placent un pixel noir en cas de 1 et rien

dans le cas contraire

Page 15: Projet DÕISN - Edmond Perrier

Boucle simple afin de permettre de ne pas

afficher instantanément toutes

les générations

Page 16: Projet DÕISN - Edmond Perrier

Problèmes rencontrés

Raisonnement faussé :

Je regarde la première cellule, elle n’a qu’un voisin donc je la fait disparaitre. Ensuite de

regarde la deuxième, même résultat, et ainsi de suite pour ne finir avec aucune

cellule

Notre méthode initiale était fausse

Page 17: Projet DÕISN - Edmond Perrier

Problèmes rencontrés

Solution : un nouveau tableau

Je regarde la première cellule, elle meurt d’isolement : j’enregistre donc, à cette

coordonnée, un 0 dans le tableau 2.

Puis j’efface toute la génération et affiche des cellules vivantes pour chaque «1» du tableau

2. Voilà la nouvelle génération «juste».

Je regarde la deuxième, elle a deux voisins, donc elle survit, je place donc un 1 dans le

tableau 2. Et ainsi de suite sans modifier cette génération.

Page 18: Projet DÕISN - Edmond Perrier

Problèmes rencontrés

Le décalage de l’affichage des pixels :

Page 19: Projet DÕISN - Edmond Perrier

FIN