La NASA enviará un grupo de rovers exploradores a una plataforma en Marte.
Esta plataforma, curiosamente rectangular, debe ser recorrida por los rovers para que sus cámaras capturen una imagen completa del terreno circundante y la envíen a la Tierra.
Tu tarea consiste en desarrollar una API que desplace los rovers por la plataforma.
En esta API, la plataforma se representa como una cuadrícula de 10x10, y cada rover tiene un estado que consta de dos partes:
'N', 'S', 'E', 'W'
)'0:0:N'
El input del programa es una secuencia de comandos de movimiento de un carácter:
'L'
y 'R'
cambian la dirección del rover. 'M'
mueve el rover una casilla hacia delante en la dirección en la que ya está orientado.Si un rover llega al final de la plataforma, deberá volver a la primera casilla del extremo opuesto.
El output del programa es la posición final del rover después de que se hayan ejecutado todos los comandos de movimiento. La posición se representa como unas coordenadas y una dirección, unidas por dos puntos para formar una cadena. Por ejemplo: un rover cuya posición es `2:3:W` está en la casilla (2,3), mirando al oeste.
'MMRMMLM',
el output debería ser '2:3:N'
'MMMMMMMMMM',
el output debería ser '0:0:N'
(debido a que regresa a la casilla del extremo opuesto)
No hay restricciones en el diseño de la interfaz pública.
Una interfaz pública para la API podría ser algo así:
public class MarsRover
{
public string Execute(string command);
}
'RMMLM',
y regresa al punto final después de los movimientos '2:1:N'
Crédito: Google Code Archive
Una vez que completes esta kata, ¿por qué no pruebas la kata completa Mars Rover para un reto más avanzado?