Este programa gera um labirinto aleatório, quadrado e de dimensão definida em tempo de compilação.
Este labirinto é então resolvido com um algoritmo também definido em tempo de compilação, o qual pode ser BFS ou DFS.
Todos os parâmetros ajustáveis do programa podem ser encontrados no topo do arquivo src/main.zig com descrições claras acompanhando-os.
Para instalar suporte para a linguagem de programação Zig, siga as instruções de acordo com seu sistema operacional
- Ubuntu: execute no terminal o comando
snap install zig --classic --beta - Arch Linux: execute no terminal o comando
sudo pacman -Sy zig - Fedora: execute no terminal o comando
dns install zig - Windows: execute no Powershell o comando
winget install zig.zig
Caso o comando apresentado anteriormente falhe ou o seu sistema operacional não esteja na lista, há mais instruções no site oficial.
Para compilar e executar este programa, basta abrir o diretório principal do mesmo (esta onde está este arquivo) em uma janela de terminal e executar o comando zig build run.
Para compilar o programa com as otimizações de performance para máximo desempenho, é possível substituir o comando anterior por zig build run -Drelease=true.
É importante notar, entretanto, que apesar de essas otimizações terem sido testadas e terem funcionado adequadamente, é possível que elas introduzam instabilidades ao programa ou mesmo erros fatais.
Portanto, devem ser aplicadas somente após a constatação de que o programa funciona com a compilação comum, sem otimizações.
Assim que o programa é iniciado, ele inicia o processo de resolução do labirinto através do algoritmo utilizado. É possível interromper esse processo, pressionando a tecla Q ou a tecla ESC ou simplesmente fechando a janela com o botão de X no canto superior (nativo do sistema operacional). Deve-se notar que neste caso, não será apresentada uma solução, uma vez que o algoritmo não pôde finalizar a resolução do labirinto.
Após o algoritmo terminar de resolver o labirinto, a janela permanece aberta até que o usuário utilize de uma das formas apresentadas anteriormente para encerrá-la. Os passos para realização do caminho determinado pelo programa são impressos na janela de terminal onde ele foi chamado, juntamente de uma representação ASCII do labirinto gerado.
É necessário uma conexão de internet ao menos na primeira vez em que o programa é compilado, sendo esta não mais necessária nas compilações subsequentes. Isso se deve à necessidade do compilador de fazer o download da biblioteca utilizada para a interface gráfica: Raylib.