[!c]stepForward()[/!][!python|java|scala]forward()[/!][!java|c];[/!] [!c]stepForward()[/!][!python|java|scala]forward()[/!][!java|c];[/!] left()[!java|c];[/!] [!c]stepForward()[/!][!python|java|scala]forward()[/!][!java|c];[/!] [!c]stepForward()[/!][!python|java|scala]forward()[/!][!java|c];[/!] left()[!java|c];[/!] [!c]stepForward()[/!][!python|java|scala]forward()[/!][!java|c];[/!] [!c]stepForward()[/!][!python|java|scala]forward()[/!][!java|c];[/!] left()[!java|c];[/!] [!c]stepForward()[/!][!python|java|scala]forward()[/!][!java|c];[/!] [!c]stepForward()[/!][!python|java|scala]forward()[/!][!java|c];[/!] left()[!java|c];[/!]
Ma se già dobbiamo disegnare due cuccie diventa più difficile: noi dobbiamo riscrivere lo stesso codice di nuovo e non è una cosa molto comoda. Quando il codice comincia ad essere abbastanza lungo come questo diventa più facile capire perché insistiamo tanto sul fatto che duplicare codice sia diabolico. Difatti, se vi accorgerete di un errore nascosto all'interno del codice che avete copiato in diversi punti dovrete correggerlo più volte. E badate bene di non dimenticarvi di nessuna di loro.
C'è anche una denominazione per questo buon principio di programmazione: DRY/SPOT che significa "Don't Repeat Yourself / Single Point Of Truth" (Ndt "non ripeterti / singolo punto di verità") La parte finale significa che ogni informazione deve essere scritta in un solo punto del programma per evitare che le molteplici ripetizioni finiscano fuori sincrono l'un l'altra quando modifichi il codice.
E quindi applichiamo questo buon principio e fattorizziamo il nostro
codice, cioé scriviamolo una sola volta, ad esempio in un
metodo. Bisognerebbe anche andare oltre e fattorizzare il corpo del metodo
con un ciclo for
come visto in precedenza. Se lo farete
correttamente (come andrebbe fatto) sarà possibile usare il metodo
left()
una sola volta.
Lo scopo di questo esercizio è di scrivere un metodo chiamato
dogHouse
ottenendo lo stesso risultato del codice soprastante
ma con un ciclo for per rimanere concisi. Il buggle invocherà la tua
creazione per creare diverse cuccie intorno al suo mondo.