Agora vamos ensinar o buggle a explorar o mundo dele. A posição inicial dele é o canto inferior esquerdo e deve visitar todas as células até o topo (a colorir o chão onde passa. O loop principal do seu código é algo assim:
abaixe o pincel enquanto não chegar na posição final se mova como uma cobra
Então temos que escrever dois métodos específicos: o primeiro retorna um booleano a indicar se estamos numa posição final enquanto o segundo um "snake step" para frente.
Chegamos na posição final se e apenas se ambas as condições são verdadeiras:
getDirection()
e sabemos se ele está a apontar para o leste a usar getDirection() ==
[!scala|python|java]Direção.[/!]LESTE
(OESTE para oeste).Então, um passo de cobra pode ser conseguido a mover um passo para a frente se não estivermos de cara para a parede e a mover para a linha acima caso contrário (p.ex., se olha para o oeste e está de cara para uma parede, tem que virar a direita, andar e virar a direita).
Dica: o loop principal do seu código deve continuar enquanto a função de teste retorna false. Existem duas formas de fazer isto:
while (testingFunction() == [!c]0) {[/!][!java|scala]false) {[/!][!python]False):[/!]
[!python]Pode preferir escrever como:[/!] [!java|scala|c]Já que a marca de exclamação (!) denota a negação booleana em [!thelang], pode escrever como:[/!]
while ([!java|scala|c]![/!][!python]not [/!]testingFunction())[!java|scala|c] {[/!][!python]:[/!]
É asua vez...