Projet DdR: Jeu de la vie (2013-2014)
Ce projet consiste ˆ Žtudier le Jeu de la Vie.
1, PrŽsentation du jeu de la vie
Faire la connaissance du jeu de la vie, et rendre un
pre-rapport.
2, DŽveloppement dÕun programme simple
du jeu de la vie
DŽvelopper un programme simple pour conna”tre
davantage ce jeu.
Une classe AfficheJeu est ˆ votre disponibilitŽ, qui
affiche la grille avec :
á
Cellule
o
etat : boolean
o
+ ce qui vous semble utile
á
Grille
o
g : Cellule[ ][ ]
o
aj : AfficheJeu, une fentre
pour afficher la grille g
o
+ ce qui vous semble utile
á
AfficheJeu
o
une classe de JFrame pour afficher
la grille (ˆ donner)
3, Etude de lÕŽvolution de diffŽrentes configurations initiales
Utiliser le logiciel du site (http://www.dcode.fr/jeu-de-la-vie)
et le document du site (http://math.pc.vh.free.fr/divers/life/regles.htm) pour
tester lÕŽvolution de diffŽrentes configurations initiales.
4, Pour aller plus loin
Le jeu de la vie modŽlise
un systme dynamique, et il suggre que la complexitŽ apparente du monde rŽel
pourra”t tre en rŽalitŽ les consŽquence d'une foule de d'interactions
simples...
Faire quelques rŽflexions
et commentaires sur ce sujet selon votre Žtude des documents.
5, ModalitŽ de contr™le de connaissance
La note est composŽe
de :
á
le
pre-rapport
á
le rapport
á
la
soutenance : le 9/1/2014, 14h-18h
6, RŽfŽrence
á
La partie du code est basŽe sur un
exercice proposŽ par FrŽdŽric Furst
á
http://fr.wikipedia.org/wiki/Jeu_de_la_vie
á
http://www.lifl.fr/~delahaye/dnalor/Jeudelavie.pdf - Un article de Jean-Paul DELAHAYE Ç Le royaume du Jeu de la
vie È
á
Le poly
simple du cours
Annexe :
1, La classe
AfficheJeu.java
2, La partie du code pour
la mŽthode de simulation() dans la class Grille :
void
simulation(){
while(true){
try{Thread.sleep(200);}
catch(InterruptedException e){}
for(int
i=0;i<g.length;i++){
for(int
j=0;j<g[0].length;j++){
g[i][j].calculEtatSuivant();
}
}
for(int
i=0;i<g.length;i++){
for(int
j=0;j<g[0].length;j++){
int
k = g[i][j].evolue();
if(k!=0)
this.changeVoisines(i,j,k);
}
}
this.aj.repaint();
}
}
void
eveille(int x, int y){
this.g[x][y].etat
= true;
this.changeVoisines(x,y,1);
System.out.println("x=
"+x+" y= "+y+" nbVois= "+g[x][y].voisines);
}
public
static void main(String[] args){
Grille
gr = new Grille(12,12);
gr.eveille(6,2);
gr.eveille(6,3);
gr.eveille(8,2);
gr.eveille(8,3);
gr.eveille(9,1);
gr.eveille(9,3);
gr.eveille(10,3);
gr.aj.repaint();
gr.simulation();
}