Primeira pesquisa em Java

Estou tendo que executar uma pesquisa pela primeira vez em Java para uma atribuição. Eu tenho uma grade 5x5 de peças (24 no total - 1 peça é deixada em branco). O objetivo da pesquisa é reorganizar os ladrilhos, movendo o 'espaço em branco' para cima, baixo, esquerda ou direita para eventualmente reorganizar os ladrilhos na ordem correta.

Para fazer essa pesquisa, criei uma, n Arraylist 'Queue'. Eu tenho um método que leva o estado no índice 0 desta arraylist, encontra cada uma das jogadas legais que podem ser seguidas e as adiciona ao final da arraylist.

Em teoria, isso continua até que o 'goalstate' seja encontrado. O problema é que, quando executo a pesquisa, o arraylist da 'fila' continua a aumentar cada vez mais. Hoje deixei o aparelho funcionando por horas e ainda assim a solução não foi encontrada.

Isso sugere que talvez eu tenha resolvido essa solução da maneira errada e que existe uma maneira muito melhor para eu fazer uma pesquisa pela primeira vez em Java. Eu sei que minha solução funciona (eventualmente), pois quando eu uso um estado inicial que não é muito diferente do estado de meta, não demora muito para encontrar o caminho certo. No entanto, eu recebi um estado inicial para usar, que infelizmente não está nem perto da meta !!!

Qualquer dica ou dica seria muito apreciada!

questionAnswers(11)

yourAnswerToTheQuestion