Hello, j'ai un prob avec mon programme ca me fait un stackOverFLow je comprend pas pourquoi.
Remarque à la ligne 68 si je met ==0 ca me fait un outofbound si je met =!-1 ca me fait un stack overflow....
Si qqun peut m'aider merci
import javax.swing.* ;
class Cavaliers
{
static int tailleEchiquier ;
static int compteur = 1 ;
static int[][] echiquier ;
static int[] deplacementAbcisse = {0, 1, 2, 2, 1, -1, -2, -2, -1} ;
static int[] deplacementOrdonnee = {0, 2, 1, -1, -2, -2, -1, 1, 2} ;
static int posX = 2 ;
static int posY = 2 ;
public static void main(String[] args)
{
int n = Integer.parseInt(JOptionPane.showInputDialog("Veuillez entrer la taille de l'échiquier" )) ;
Cavaliers c = new Cavaliers(n) ;
c.placeCavalier(posX, posY) ;
c.affiche() ;
//placeCavalierFull() ;
}
public Cavaliers(int n)
{
tailleEchiquier = n ;
int t = tailleEchiquier + 4 ;
echiquier = new int[t][t] ;
for(int m=0; m<=t-1;m++)
{
for(int l=0;l<=t-1;l++)
{
echiquier[m][l]=-1 ;
}
}
for(int a=2;a<=t-2;a++)
{
for(int b=2;b<=t-2;b++)
{
echiquier[a][b]=0 ;
}
}
}
public void placeCavalierFull(int[][] tab)
{
for(int j=2;j<=tailleEchiquier+1;j++)
{
for(int i=2;i<=tailleEchiquier+1;i++)
{
placeCavalier(i, j) ;
}
}
}
public void placeCavalier(int x, int y)
{
for(int i=0; i<=8;i++)
{
if(echiquier[deplacementAbcisse[i]+x][deplacementOrdonnee[i]+y]!=(-1))
{
echiquier[deplacementAbcisse[i]+x][deplacementOrdonnee[i]+y]=compteur ;
compteur++ ;
posX = posX+deplacementAbcisse[i] ;
posY = posY+deplacementOrdonnee[i] ;
placeCavalier(posX, posY) ;
}
}
}
public void affiche()
{
for(int i=2;i<=tailleEchiquier+2;i++)
{
for(int j=2;j<=tailleEchiquier+2;j++)
{
System.out.println(echiquier[i][j]) ;
}
}
}
}