Un esercizio classico affrontato come si affronterebbe un servizio vero: un rover su una griglia riceve una sequenza di comandi da Terra e risponde con dove è finito.
L'ostacolo non è un errore da propagare, è un esito da riportare. Il rover avanza fino all'ultimo punto raggiungibile, abbandona i comandi rimasti e comunica dove ha trovato l'ostruzione: chi ha mandato la sequenza sa dov'è e perché si è fermato, che è l'unica cosa che gli serve per decidere il movimento successivo.
La griglia si richiude sui bordi, perché un pianeta è una sfera e non un tavolo: uscire da un lato significa rientrare dall'altro, e quel dettaglio cambia il calcolo di ogni singolo passo.
mag 2022primo commit
4comandi accettati
1rotta
- Stato iniziale
- coordinate x e y, più una direzione cardinale: nord, sud, est, ovest
- Comandi
- avanti e indietro per il movimento, sinistra e destra per la rotazione
- Bordi
- la griglia si richiude: uscire da un lato significa rientrare dall'altro
- Ostacoli
- il rover avanza fino all'ultimo punto raggiungibile, poi si ferma
- Richiesta
- posizione, direzione, stringa di comandi, misure della griglia, ostacoli
- Risposta
- posizione finale, direzione, comandi eseguiti e, se c'è, dove si è fermato
- Esito interrotto
- non è un errore: è una risposta valida che dice fin dove si è arrivati
- Struttura
- sorgenti separati dai test, più la configurazione di integrazione continua
- Stato
- archiviato; codice su GitHub sotto licenza MIT
- Tecnologie
- C#.NET
Regole
Interfaccia
Repository
Stack
