Aide en programation demnder :))

Fermé
Deus - 2 mars 2006 à 08:34
 Deus - 8 mars 2006 à 17:25
bonjour a tous.
Voila je suis etudiant et j'ai d'enorme souci en info. En clair java et moi on est pas tres copain et j'ai vraiment du mal a integrer la programation.
Ce que je desire ici se serait un aide et en aucun une solution toute faite de mes programation!!
Je veux comprendre avant d'ecrire!!

Mon probleme du jour, c'est d'ecrire un programme sur le "jeu de la vie".
La 1er partie consite a cree une class cellule. Ca j'ai reussit , avec du mal , mais bon le resultat est la :)).

la 2nd partie c'est de creer un class grille, et la tous ce gate:((

Cette partie est deoupe en 8 sous-partie:
1) creer la class grille contenant 5 champs;ca sa va j'ai reussit.
2)definir une methode creationcellule, qui initialise le champ tableau de la class grille e nplacant dans chaque case une nouvelle cellule et qui ensuite replit le champs voisine de chacunes des cellules expetees celle du bord.

Vola le 1er probleme, je n'ai aucune idées de comment commencer oO
Si quelqu'un peut m'aider merci d'avance.

ps:Voisines est un des champs de la class cellule creer precedement.

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
salut

je vois pas très bien de quel type de données est ton champs .."tableau"
0
teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 793
2 mars 2006 à 09:16
Salut tout le monde...
CHouba, à priori c'est un type qu'il défini justement...
0
Le champs tableau est un tableau bidimensionnel de cellule. Il est censer etre defini en s'aidant de la class cellule.
0
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
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...


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..

                      }


} 


0
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
ceci est un code indicatif ... juste pour te donner une ligne directrice ...

0
merci j'espere que cette ebauche va m'aider :)).
En cas de coup dur je revient :))
0

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:
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
0