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 fen�tre
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 syst�me dynamique, et il sugg�re 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();
}