Melhorei mais um pouco a estrutura do código, adicionei funções para verificar se um estado dado é o estado-alvo (goal state) e comecei a montar a estrutura da árvore de busca. Mas estou perdido nisso: não sei como construir a árvore dinamicamente...