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 :
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();
}
Le labyrinthe se construit conformément au fichier de 0 et de 1
Ensuite j'ai fait une fonction qui me dit si la case est un mur ou pas :
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;
}
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...
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!