Skip to content

lucas-yotsui/MazeSolver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Labirinto

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.

Dependências

Zig

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.

Instruções

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.

Observações

É 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.

About

Random maze generator and solver I've developed as a task for one of my University classes. Solves mazes by using either Breadth-First Search (BFS) or Depth-First Search (DFS).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages