## Mondo di Snake

Ora insegneremo al buggle ad esplorare il suo mondo. La sua posizione iniziale è nell'angolo in basso a sinistra, dovrai fargli visitare tutte le celle fino a sopra (colorando il terreno al suo passaggio). Il ciclo principale del tuo codice sarà qualcosa come:

     abbassa il pennello
     fintanto che non raggiungi la posizione finale
       muoviti come un serpente

Dobbiamo quindi scrivere due metodi specifici: il primo che ritorna un valore booleano indicante se siamo sulla posizione finale mentre il secondo dovrà muovere il buggle un passo da serpente in avanti.

Raggiungeremo la posizione finale solo e solamente se entrambe queste condizioni saranno vere:

- Stiamo fronteggiando un muro
- C'è un muro a nord del buggle. Quindi se il buggle è rivolto ad est dovrai controllare se ci sono muri alla sua sinistra e se invece è rivolto a ovest dovrai controllare il lato destro.
  We can get the current heading of the buggle using the `getDirection()`, and we know whether it looks east using `getDirection() == [!scala|python|java]Direction.[/!]EAST` (WEST for west).
  Per effettuare il controllo non bisogna fare nulla di magico: devi girare il buggle e verificare se si trova dinnanzi ad un muro.

Quindi il passo da serpente può essere compiuto avanzando se non abbiamo un muro difronte o viceversa spostandosi alla linea successiva (ad esempio se guardando a ovest vedete un muro dovrete girate a destra, andare avanti e girare di nuovo a destra).

Hint: the main loop of your code must continue while the testing function returns false. There is two ways of writing it:

    while (testingFunction() == [!c]0) {[/!][!java|scala]false) {[/!][!python]False):[/!]

[!python]You may prefer to write it as:[/!] [!java|scala|c]Since the exclamation mark (!) denotes the boolean negation in [!thelang], you may write it as:[/!]

    while ([!java|scala|c]![/!][!python]not [/!]testingFunction())[!java|scala|c] {[/!][!python]:[/!]

È il tuo turno...