Bom dia pessoal, não consigo encontrar onde o ídice do array está saindo do limite… neste código. Alguém pode me ajudar?
public class Cavalo
{
int linhaAtual=0;
int colunaAtual=0;
int lance=0;
int[][]tabuleiro = new int[8][8];
public void move(int[][]tabuleiro1,int h,int v)
{
int linha = linhaAtual+h;
int coluna = colunaAtual+v;
if(linha>=0 && linha<8)
if(coluna>=0 && coluna<8)
if(tabuleiro1[linha][coluna]!=1)
{
tabuleiro1[linha][coluna]=1;
linhaAtual=linha;
colunaAtual=coluna;
lance++;
}
}
public void imprime(int[][]tabuleiro1)
{
for(int lin=0;lin<tabuleiro1.length;lin++)
{
for(int col=0;col<tabuleiro1[lin].length;col++)
{
if(tabuleiro1[lin][col]==1)
System.out.print(" *");
else
System.out.print(" ");
}
System.out.println();
}
System.out.printf("%d movimentos\n",lance);
}
}
public class TesteCavalo
{
public static void main(String[] args)
{
Cavalo cavalo = new Cavalo();
int[] vertical = new int[8];
int[] horizontal = new int[8];
horizontal[0]= 2;
horizontal[1]= 1;
horizontal[2]= -1;
horizontal[3]= -2;
horizontal[4]= -2;
horizontal[5]= -1;
horizontal[6]= 1;
horizontal[7]= 2;
vertical[0]= -1;
vertical[1]= -2;
vertical[2]= -2;
vertical[3]= -1;
vertical[4]= 1;
vertical[5]= 2;
vertical[6]= 2;
vertical[7]= 1;
for(int i=0;i<64;i++)
{
for(int j=0;j<8;j++)
{
cavalo.move(cavalo.tabuleiro,horizontal[j],vertical[j]);
if(cavalo.tabuleiro[horizontal[j]][vertical[j]] ==1)
break;
}
}
cavalo.imprime(cavalo.tabuleiro);
}//end of main
}