04.07.2015 Views

Mini projet « Le jeu de la vie » - Bienvenue sur la page de Jack - Free

Mini projet « Le jeu de la vie » - Bienvenue sur la page de Jack - Free

Mini projet « Le jeu de la vie » - Bienvenue sur la page de Jack - Free

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Ecole centrale d’Electronique INGE3 / PREPA-MASTER Année 2005<br />

<strong>Mini</strong> <strong>projet</strong> « <strong>Le</strong> <strong>jeu</strong> <strong>de</strong> <strong>la</strong> <strong>vie</strong> »<br />

Objectif : On désire écrire un programme en assembleur 68000 permettant <strong>de</strong> simuler <strong>la</strong> <strong>vie</strong> d’une colonie <strong>de</strong><br />

cellules.<br />

<strong>Le</strong>s règles du « <strong>jeu</strong> <strong>de</strong> <strong>la</strong> <strong>vie</strong> » :<br />

<strong>Le</strong>s règles du <strong>jeu</strong> <strong>de</strong> <strong>la</strong> <strong>vie</strong> sont re<strong>la</strong>tivement simples au départ : <strong>Le</strong>s cellules évoluent dans un<br />

environnement simplifié : en l’occurrence une grille rectangu<strong>la</strong>ire. Dans un tel environnement,<br />

une cellule peut avoir 8 voisins<br />

Figure 1 : Voisinage d'une cellule <strong>sur</strong> une grille rectangu<strong>la</strong>ire<br />

Chaque cellule vit, meurt, ou bien génère une nouvelle cellule (division cellu<strong>la</strong>ire) en fonction<br />

du nombre <strong>de</strong> cellules qui l’environne. La <strong>vie</strong> <strong>de</strong> ces cellules est donc simulée par une boucle<br />

infinie. A chaque tour <strong>de</strong> boucle, on évalue <strong>la</strong> condition <strong>de</strong> chaque cellule pour déterminer si elle<br />

doit <strong>sur</strong>vivre, mourir ou bien générer une nouvelle cellule au prochain tour <strong>de</strong> boucle.<br />

Par exemple, le comportement typique tel que l’a défini John Conway (inventeur du <strong>jeu</strong><br />

<strong>de</strong> <strong>la</strong> <strong>vie</strong>) est le suivant :<br />

• Naissance d’une nouvelle cellule : Si un emp<strong>la</strong>cement inoccupé possè<strong>de</strong> 3<br />

emp<strong>la</strong>cements occupés par <strong>de</strong>s cellules, il <strong>de</strong><strong>vie</strong>nt occupé par une nouvelle<br />

cellule.<br />

J. FRANCOMME francom@ece.fr - J.M. HENRI henri@ece.fr - JP PIAU piau@ece.fr<br />

http://francomme.fr.fm/ 1 / 3


Ecole centrale d’Electronique INGE3 / PREPA-MASTER Année 2005<br />

• Vie d’une cellule : Si une cellule possè<strong>de</strong> 2 ou 3 voisines, cette cellule peut<br />

<strong>sur</strong>vivre.<br />

• Mort d’une cellule : si une cellule ne possè<strong>de</strong> que 0 ou 1 voisine, elle meurt (<strong>de</strong><br />

solitu<strong>de</strong>). Et si elle a plus <strong>de</strong> 4 voisines (jusqu’à 8), elle meurt également (<strong>de</strong><br />

<strong>sur</strong>popu<strong>la</strong>tion).<br />

Travail à effectuer :<br />

Première partie : <strong>la</strong> colonie seule.<br />

<strong>Le</strong> but du <strong>projet</strong> est donc <strong>de</strong> simuler <strong>la</strong> <strong>vie</strong> d’une colonie <strong>de</strong> cellules à l’ai<strong>de</strong> du<br />

microprocesseur 68000. Pour ce<strong>la</strong>, vous utiliserez le logiciel BSVC.<br />

Contraintes :<br />

On limite l’espace du <strong>jeu</strong> <strong>de</strong> <strong>la</strong> <strong>vie</strong> à un terrain carré <strong>de</strong> 16 cases. Celui ci sera représenté par<br />

une fenêtre <strong>de</strong> visualisation <strong>de</strong> <strong>la</strong> mémoire. <strong>Le</strong> terrain est donc défini comme un tableau <strong>de</strong><br />

16x16 octets dont l’adresse <strong>de</strong> base sera $1000 :<br />

J. FRANCOMME francom@ece.fr - J.M. HENRI henri@ece.fr - JP PIAU piau@ece.fr<br />

http://francomme.fr.fm/ 2 / 3


Ecole centrale d’Electronique INGE3 / PREPA-MASTER Année 2005<br />

Un tel tableau sera donc défini avec <strong>de</strong>s DC.B :<br />

ORG $1000<br />

Terrain DC.B 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0<br />

DC.B 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0<br />

Et ce<strong>la</strong> 16 fois ....<br />

• <strong>Le</strong> terrain sera non circu<strong>la</strong>ire : les cases se trouvant <strong>sur</strong> les bords ne sont pas adjacentes à<br />

celles se trouvant <strong>sur</strong> le bord opposé. (par exemple, <strong>la</strong> case d’adresse $101F n’est pas à<br />

coté <strong>de</strong> <strong>la</strong> case $1010).<br />

• L’absence <strong>de</strong> cellule sera représenté par <strong>la</strong> valeur 0, et <strong>la</strong> présence d’une cellule par $ff.<br />

• <strong>Le</strong> temps séparant <strong>de</strong>ux générations sera contrôlé par une temporisation que l’on pourra<br />

régler en changeant <strong>la</strong> valeur d’une variable 16 bits nommée « <strong>de</strong><strong>la</strong>y » se trouvant à<br />

l’adresse $1110. On pourra également contrôler le temps en ajoutant un point d’arrêt actif<br />

entre chaque nouvelle génération. On repérera le numéro <strong>de</strong> génération par une variable 8<br />

bits nommée « gene » se trouvant à l’adresse $1100. On se limitera donc à 256<br />

générations !<br />

• <strong>Le</strong> test <strong>de</strong> votre programme se fera à l’ai<strong>de</strong> <strong>de</strong> structures remarquables du <strong>jeu</strong> <strong>de</strong> <strong>la</strong> <strong>vie</strong><br />

comme celles que l’on peut trouver <strong>sur</strong> ce site :<br />

http://www.<strong>vie</strong>artificielle.com/article/in<strong>de</strong>x.php?action=article&id=91&nl=3&pattern=max<br />

• L’absence <strong>de</strong> cellule sera représenté par <strong>la</strong> valeur 0, et <strong>la</strong> présence d’une cellule par $ff.<br />

Deuxième partie : <strong>la</strong> confrontation.<br />

Dans cette partie, les cellules précé<strong>de</strong>ntes sont confrontées à d’autres cellules <strong>sur</strong> le même<br />

terrain. Appelons les cellules précé<strong>de</strong>ntes, les cellules $FF. <strong>Le</strong>s autres cellules seront les $88.<br />

• <strong>Le</strong>s cellules $FF et $88 ont les mêmes règles <strong>de</strong> développement.<br />

• Une cellule $88 tue les cellules $FF qui l’entourent si elles sont moins <strong>de</strong> 3.<br />

• Par contre, une cellule $88 entourée <strong>de</strong> 4 cellules $FF meure.<br />

• De plus, une cellule $88 entourée par plus <strong>de</strong> 4 cellules $FF, est convertie en $FF.<br />

• <strong>Le</strong>s cellules $88 sont plus rapi<strong>de</strong>s (pour tuer, rester en <strong>vie</strong> ou mourir) et doivent donc être<br />

considérées en premier.<br />

Modifiez votre programme pour faire évoluer cette situation.<br />

Informations complémentaires :<br />

Des compléments d’informations vous seront communiqués régulièrement <strong>sur</strong> le site<br />

suivant : http://cignus2.free.fr/game_of_life/ que vous prendrez donc soins <strong>de</strong> consulter.<br />

Il existe beaucoup <strong>de</strong> ressources <strong>sur</strong> le thème du « <strong>jeu</strong> <strong>de</strong> <strong>la</strong> <strong>vie</strong> » <strong>sur</strong> l’Internet. Sachez les<br />

utiliser à bon escient. Par exemple :<br />

http://membres.lycos.fr/dleg<strong>la</strong>nd/life/life.htm<br />

http://www.univ-lemans.fr/enseignements/physique/02/divers/conway.html<br />

J. FRANCOMME francom@ece.fr - J.M. HENRI henri@ece.fr - JP PIAU piau@ece.fr<br />

http://francomme.fr.fm/ 3 / 3

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!