A voir également:
- Aide en programation demnder :))
- Programation - Forum Études / Formation High-Tech
- Logiciel de programation - Forum Programmation
- La programation - Forum Programmation
- Programation - Forum Programmation
- Apprentissage de programation - Forum Programmation
5 réponses
choubaka
Messages postés
39375
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
14 avril 2024
2 100
2 mars 2006 à 09:03
2 mars 2006 à 09:03
salut
je vois pas très bien de quel type de données est ton champs .."tableau"
je vois pas très bien de quel type de données est ton champs .."tableau"
choubaka
Messages postés
39375
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
14 avril 2024
2 100
2 mars 2006 à 10:51
2 mars 2006 à 10:51
ton champs "tableau"
c'est donc ça ... Cellule tableauDeCellules = new Cellule[][];
il faut d'abord définir la taille de ton tableau ...
Cellule[X][Y]...
Ensuite, le plus simple c'est sur une feuille de papier, dessiner ton tableau afin de déterminer quels emplacement doivent rester vides ..
Ensuite, il suffit de faire une double boucle for .. celle-ci va parcourir le tableau en commençant par la première colonne et puis la seconde...
c'est donc ça ... Cellule tableauDeCellules = new Cellule[][];
il faut d'abord définir la taille de ton tableau ...
Cellule[X][Y]...
Ensuite, le plus simple c'est sur une feuille de papier, dessiner ton tableau afin de déterminer quels emplacement doivent rester vides ..
Ensuite, il suffit de faire une double boucle for .. celle-ci va parcourir le tableau en commençant par la première colonne et puis la seconde...
for (int i = 0 ; i < X; i++){ for (int ii = 0 ; ii < Y;ii++){ tableauDeCellules[i][ii] = new Cellule(); // Il reste évidemment à tester les emplacements qui doivent rester vides(Condition if), d'où l'utilité du dessin.. } }
choubaka
Messages postés
39375
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
14 avril 2024
2 100
2 mars 2006 à 11:02
2 mars 2006 à 11:02
ceci est un code indicatif ... juste pour te donner une ligne directrice ...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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 .
La 2eme classe est la classe grille: voila le code
Code:
Comme vous le voyez; certaine methode sont vides , 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.
Code:
Ici il faut creer une classe jeu contentant un unique champ grille de type Grille.
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
J'ai 3 classe a ecrire.
La 1er est la classe cellule:
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(); } }
Normalement cette class est bonne, si vous voyer des erreurs merci dem'en faire part .
La 2eme classe est la classe grille: voila le code
Code:
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){ } }
Comme vous le voyez; certaine methode sont vides , 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.
Code:
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){ } }
Ici il faut creer une classe jeu contentant un unique champ grille de type Grille.
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
2 mars 2006 à 09:16
CHouba, à priori c'est un type qu'il défini justement...
2 mars 2006 à 09:42