Labirinto

Eu sinceramente não sei o que fazer da minha vida. Está tudo um caos. É como se eu estivesse dentro de um labirinto enorme e só me deparasse com becos sem saída ou ciclos intermináveis de déjà vus (hmm... será que já passei por aqui antes?) onde eu corro atrás do meu próprio rabo e no fim acabo exatamente no mesmo lugar.

Bem... eu deveria estar fazendo outras coisas muito mais urgentes, mas em vez disso eu fiquei parado imaginando: o que é que eu poderia fazer para desperdiçar inutilmente o meu tempo e chorar de desgosto depois por ter feito isso?

EXATAMENTE!

Programei um jogo do labirinto em JavaScript, aqui mesmo, para você, meu caro leitor, desperdiçar o seu tempo junto comigo! Usei um algoritmo simples de caminhada aleatória (aka random walk) com recursividade para gerar o labirinto e depois removi algumas paredes para aumentar a quantidade de ciclos (loops dentro labirinto).

Não se esqueçam de voltar depois, pois vou adicionar agentes de busca para resolver automaticamente qualquer instância de labirinto. Pensei em começar com agentes simples:

Depois vou implementar agentes com heurísticas, usando distância de Manhattan e distância em linha reta (que vocês poderão escolher):

Também vou colocar algumas métricas para a comparação, como o tempo de cálculo para encontrar a solução e número de estados expandidos no grafo.

Tenham um bom jogo, e fiquem ligados para futuras modificações!!!