Scrivi un simulatore di robot.
Il centro di collaudo di una fabbrica di robot ha bisogno di un programma per verificare i movimenti dei robot.
I robot hanno tre movimenti possibili:
I robot vengono collocati su una griglia infinita ipotetica, rivolti verso una direzione precisa (north, east, south o west), in corrispondenza di un insieme di coordinate {x,y}, ad esempio {3,8}, con le coordinate che aumentano verso north e verso east.
Il robot riceve poi una serie di istruzioni, dopodiché il centro di collaudo verifica la nuova posizione del robot e la direzione verso cui è rivolto.
In questo esercizio potresti aver notato che lo stub definisce dei getter, come getX(), ma i test accedono al valore direttamente come .x. Questo dipende da come Groovy definisce le proprietà. Analizziamolo nel dettaglio:
Punti chiave sulle proprietà di Groovy:
final).In questo esercizio abbiamo specificato solo i getter richiesti (e quindi, come sopra, le proprietà) per imporre un'implementazione corretta. Sei libero di decidere quali campi (e i loro tipi) siano più adatti alla soluzione.
Se vuoi approfondire l'argomento dei campi e delle proprietà, fai riferimento al capitolo 3.3. Campi e proprietà nella documentazione di Groovy.
Iscriviti a Exercism per imparare e padroneggiare Groovy con 66 esercizi e il mentoring di persone reali, tutto gratis.