Bonjour,
je suis en train de faire un Pacman en java et je rencontre un énorme problème lors de la construction de mon labyrinthe.
Une case de mon labyrinthe correspond à un Panel avec une image, je construit mon laby avec un fichier qui contient des 0(couloir) et des 1(mur) comme ceci :
Le labyrinthe se construit conformément au fichier de 0 et de 1
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 public Labyrinthe(int[][] tab) { longeur=tab.length; hauteur=tab[0].length; this.setLayout(new GridLayout(tab.length, tab[0].length)); this.cases = new Case[tab.length][tab[0].length]; for (int i = 0; i < tab.length; i++) { for (int j = 0; j < tab[0].length; j++) { switch (tab[i][j]) { case 0: this.cases[i][j] = new Couloir(i, j); break; case 1: this.cases[i][j] = new Mur(i, j); break; } this.add(this.cases[i][j]); } } placePacman(); }
Ensuite j'ai fait une fonction qui me dit si la case est un mur ou pas :
Et c'est là qu'est tout le problème, car quand j'utilise cette fonction les coordonnées sont inversées et je ne comprend vraiment pas pourquoi...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public static Case getObjetCase(int x, int y) { return cases[x][y]; } public static boolean estMur(int ligne, int colonne) { return getObjetCase(ligne, colonne).getClass().getName().compareToIgnoreCase("pacman.decors.Mur") == 0; }
Je sais que pour résoudre mon problème je n'ai qu'a a inversé x et y mais cela n'est pas du tout logique!
Partager