public class tabuleirorainhas {
public static boolean choque(int[] rainha, int n) {
for (int i = 0; i < n; i++) {
if (rainha[i] == rainha[n])
return false; // coluna
if ((rainha[i] - rainha[n]) == (n - i))
return false; // diagonal
if ((rainha[n] - rainha[i]) == (n - i))
return false; // menor diagonal
}
return true;
}
public static void mostrar(int[] q) {
int n = q.length;
for (int linha = 0; linha < n; linha++) {
for (int coluna = 0; coluna < n; coluna++) {
if (q[linha] == coluna)
System.out.println("R");
else
System.out.println("*");
}
System.out.println();
}
System.out.println();
}
public static void tabuleiro(int n) {
int[] a = new int[n];
tabuleiro(a, 0);
}
public static void tabuleiro(int[] rainha, int k) {
int n = rainha.length;
if (k == n)
mostrar(rainha);
else {
for (int i = 0; i < n; i++) {
rainha[k] = i;
if (choque(rainha, k))
tabuleiro(rainha, k+1);
}
}
}
public static void main(String[] args) {
int n = Integer.parseInt(args[0]);
tabuleiro(n);
}
}
//O ERRO QUE APARECE
Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 0
at estruturadedados2.tabuleiro8rainhas.main(tabuleiro8rainhas.java:54)
C:\Users\Fabricia\AppData\Local\NetBeans\Cache\8.1\executor-snippets\run.xml:53: Java returned: 1
FALHA NA CONSTRUÇÃO (tempo total: 1 segundo)