## Algoritmo básico do caminho mais curto

Para concluir com esta lição introdutória em algoritmos de resolução de labirintos, vamos investigar outra forma de encontrar a saída. O buggle nesta lição é um buggle especial: ele é um jedi. Ele pode sentir a Força. Isto significa que ele é capaz de sentir o ambiente.

Sem nem sequer sair da sua posição, ele pode recuperar informações sobre o mundo que está vivendo, com as seguintes funções:

- `getWorldWidth()` da a largura ("width") do mundo.
- `getWorldHeight()` da a altura ("height") do mundo.
- `hasTopWall(x,y)` diz se a célula (x,y) deste mundo tem uma parede no topo.
- `hasLeftWall(x,y)` diz se a célula (x,y) deste mundo tem uma parede na esquerda.
- `hasBaggle(x,y)` diz se a célula (x,y) deste mundo tem um baggle.
- `setIndication(x,y,i)` adiciona a indicação inteira `i` à célula (x,y).
- `getIndication(x,y,i)` obtém a indicação inteira da célula (x,y) (ou 9999 se não houver indicação).

Note que não é possível construir uma parede na borda de baixo ou na borda à direita de uma célula. portanto, se tal parede existe, significa que foi construído nas células vizinhas -- como uma parede na borda de cima (respectivamente da esquerda) da célula que é localizada abaixo (respectivamente à direita) da célula atual.

### Objetivo do exercício

Seu buggle deve primeiro escrever a distância para a saída em cada célula (ou pelo menos nas células úteis).
Para isto, encontre a saída e escreva 0 lá. Então, escreve 1 em cada célula vizinha que não esteja separada da saída por uma parede. E então marque cada célula a partir da qual você possa alcançar a saída em 2 passos, e itere para todas as células até que todas as células estejam marcadas.

Uma vez que as células estejam marcadas, leve seu buggle jedi para percorrer a caminho mais curto. Basicamente o buggle tem apenas que andar em cada caso com a menor distância à saída. Você pode usar o método `setDirection(direction)` para fazer seu buggle virar para a direção específica como `[!scala|java|python]Direction.[/!]NORTH` ou `[!scala|java|python]Direction.[/!]EAST`.

Usa a Força, Luke!