REST API

MarsRover.Pilot.API

Archiviato ProfessionaleGitHub

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

Regole

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

Interfaccia

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

Repository

Struttura
sorgenti separati dai test, più la configurazione di integrazione continua
Stato
archiviato; codice su GitHub sotto licenza MIT

Stack

Tecnologie
C#.NET