Bonjour à tous
Je suis débutante en programmation java et je suis depuis peu bloquée sur mon projet du jeu de la vie(sujet donné en cours) j'aurai donc besoin de vos conseils. Je pense que vous connaissez un peu mieux que moi les règles du jeu. En gros, le jeu se déroule dans une grille, les cases peuvent être occupées ou non par une cellule dont l'état évolue au cours du temps.
- Une cellule qui a 2 ou 3 voisins reste en vie, sinon elle disparaît.
- Si une case vide a exactement 3 voisines occupées par des cellules, il y nait une cellule.
Le calcul du nombre de voisins: pour chaque case, je dois donc calculer le nombre de cellule voisines.
J'ai donc crée une méthode.
Mes problèmes sont les suivants:
1- Je ne sais pas trop si mon calcul marche vu que je n'arrive pas à appeler la méthode dans le main.
2- Je pense être arrivée à calculer les voisines nord sud est et ouest. Mais les voisines nord-est, nord-ouest, sud-est, sud-ouest je ne sais pas trop comment y accéder. Donc si vous pouvez m'aider ce serait sympa
3- Je ne sais pas comment mon programme va pouvoir afficher des figures comme le jeu de base...
C'est un peu compliqué Java pour moi actuellement, donc soyez indulgent.
Merci d'avance

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
    //Calcul du nombre de voisin
    private static void nbVoisin(boolean occupe[][]) throws FileNotFoundException{
        Scanner fichier = new Scanner(new File("source.txt"));
        int nbLignes = fichier.nextInt();
        int nbColonnes = fichier.nextInt();
 
        occupe = new boolean[nbLignes][nbColonnes];
        // le nombre de cellules et les affiche
        int nbCellules = fichier.nextInt();
        for (int i = 0; i < nbCellules; i++) {
            int ligne = fichier.nextInt();
            int colonne = fichier.nextInt();
            occupe[ligne][colonne] = true;
        }
 
        int l, c;
        int nb = 0;
        for(l = 0; l < nbLignes; l++){
            for(c = 0; c < nbColonnes; c++){
                if((l-1)>=0 && (occupe[l][c])){ //case du dessus
                    nb=nb+1;
                } else if((l-1)<nbLignes && occupe[l+1][c]){// ligne du dessous
                    nb=nb+1;
                } else if((c-1)>=0 && occupe[l][c-1]){  //voisin de gauche 
                    nb=nb+1;
                } else if((c+1)<nbColonnes && (occupe[l][c+1])){    //voisin de droite
                    nb=nb+1;
                }
            }
        }
 
 
    }