Vídeo demonstrando o funcionamento: https://youtu.be/g8vFpHMtH1I
É um programa em Processing no qual é utilizado o algoritmo WaveFront para descobrir o menor caminho entre um robô e seu destino
- Execute o processing.exe
- No canto superior esquerdo clique em File
- Clique em Open
- Selecione o arquivo WaveFront.pde e abra
- Clique no ícone
▶️ para executar
Caso queira alterar o número de obstáculos altere a variável num_obstaculos.
- Draw Nesta função é onde o desenho da matriz na tela é feita. Legenda dos valores na matriz e seus significados:
- -5: Destino já percorrido
- -4: Destino a ser percorrido
- -3: Destino
- -2: Robô
- -1: Espaço livre porém não mapeado
- 0: Obstáculo
- cria_mapa Nesta função o mapa é gerado e inicializado com valores de -1 e são sorteados os obstáculos e a posição do robô e destino garantindo que nenhum vá se sobrepor.
- wavefront Nesta função é procurado as posições do robô e destino, é aqui que as funções bfs e menorCaminho são chamadas.
- Simulacao É aqui que a função moverRobo é chamada.
- bfs A partir de uma coordenada x, y são analisados os 4 blocos adjacentes, preenchidos com o valor de (distância + 1) e adicionados a fila. Caso seja descoberto a posição destino a fila é limpa e será feito um return.
- menorCaminho A partir do destino é feito a procura do menor caminho procurando o bloco adjacente com menor valor.
- moverRobo É aqui que o robô irá percorrer o caminho até o destino.