Olá, preciso criar um método recursivo chamado labirinto, que recebe um array de caracteres e retorna verdadeiro caso exista pelo menos um caminho para chegar ao destino e falso caso não exista. O ponto inicial sempre será a posição [0][0] do array.
o meu array segue o seguinte modelo:
XXXXX
X X X
X X X X
X X D
onde os espaços em brancos são os caminhos livres, os x as paredes e o D o destino final;
aqui é o que eu tenho até o momento, alguém consegue me ajudar a resolver?
boolean existeCaminho = labirinto(array, 0, 0);
private boolean labirinto (char [][] array, int linha, int coluna) {
if (linha >= array.length || linha < 0) {
return false;
}
if (coluna >= array[linha].length || coluna < 0) {
return false;
}
if (array[linha][coluna] == 'X') {
return false;
}
if (array[linha][coluna] == 'D') {
return true;
}
if (array[linha][coluna] == ' ' && (labirinto(array, linha + 1, coluna) || labirinto(array, linha, coluna + 1))) {
return true;
}
return false;
}