voila je dois programmer le jeu de la vie et j'ai de gros soucis. Pour etre franc je suis une megabuses en ce qui concerne JAVA. Je n'arrive a rien, c'est por cela que je solicite votre aide.
J'ai 3 classe a ecrire.
La 1er est la classe cellule:
Normalement cette class est bonne, si vous voyer des erreurs merci dem'en faire part
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 public class cellule { boolean etatActuel; boolean etatFutur; cellule [] voisines; int voisinesVivantes; /** Creates a new instance of cellule */ public cellule() { etatActuel= false; etatFutur=false; voisines=new cellule[8]; voisinesVivantes=0; } public boolean destin(){ boolean ef= etatFutur; if(etatActuel==false && voisinesVivantes==3){ ef=true; } if(etatActuel==true&&voisinesVivantes==3){ ef=true; } if(etatActuel==true&&voisinesVivantes<2){ ef=false; } if(etatActuel==true&&voisinesVivantes>3){ ef=false; } if(voisinesVivantes==2){ ef=etatActuel; } return ef; } public void communication(){ int n = voisines.length; for(int i=0;i<=n;i++){ if(etatActuel==true){ voisines[i].voisinesVivantes=voisines[i].voisinesVivantes+1; } if(etatActuel==false){ voisines[i].voisinesVivantes=voisines[i].voisinesVivantes-1; } } } public void evolution(){ etatFutur=etatActuel; cellule.communication(); } }.
La 2eme classe est la classe grille: voila le code
Comme vous le voyez; certaine methode sont vides
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 public class grille { int largeur; int hauteur; cellule [][] tableau; int couleurVie; int couleurMort; /** Creates a new instance of grille */ public grille() { largeur=50; hauteur=40; couleurVie=255; couleurMort=0; } public grille(double j){ tableau= new cellule[int j][int j]; creationCellule(tableau); donneVie(j,tableau); } public void creationCellule(){ for(int i=0;i<=tableau.length;i++){ for(int j=0;j<=tableau.length;j++){ tableau[i][j]=new cellule(); cellule.communication(); } } } public void donneVie(double probaVie){ double n = Math.random(); boolean a= true; for(int i=0;i<=tableau.length;i++) if(n < probaVie){ cellule.etatActuel=a; cellule.communication(); } } public void evolution(){ } public void destin(){ } public void affiche(int j ,int i){ } }: , c'est celle que je n'arrive pas a faire.
- evolution est censer faire evoluer chaque cellule du tableau
- destin est censer calculer le destin de chaque cellule
- affiche qui prend en argument 2 entiers est censer afficher la cellule qui se trouve dans la case (i,j) du tableau de la maniere suivante : dans une fenetre qui aura ete ouverte, prealablement, on represente une cellule par un carré de 14 de cote et on l'affiche en position (i*15,j*15).La couleur du carré representant la cellule est la couleur de son etat ,i.e couleurVie ou couleurMort.
La 3eme methode est la methode Jeu, c'est danc cette clase que ce trouve le main.
Ici il faut creer une classe jeu contentant un unique champ grille de type Grille.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 public class jeu { /** Creates a new instance of jeu */ public jeu(double probavie) { Grille=new grille(); } public void next(){ } public void start(){ } public static void main(String[]args){ } }
Ensuite le constructeur prend un double probaVie en argument, cree un nouvel objet Grille vers lequel le champ grille va pointer, ouvre un fenetre graphique et affiche la grille dans la fenetre.
next calcule l'etape suivante de l'evolution de la grille et affiche la nouvelle config.
start affiche en continue l'evolution generale de la grille . Cette methode ne s'arretera pas toute seule a l'excecution; il faudra l'interrompre avec control c, quand l'evolution deviendra stable.
Enfin ecrire le main.
Merci a tou(tes) ceux que m'aiderons. J'ai vraiment besoin d'aide![]()
Partager