Hace mucho tiempo, cuando pasaba más tiempo jugando juegos de rol, uno de los problemas que tenían algunos jugadores era rastrear el movimiento del grupo y dibujar el mapa adecuado. Así que vengo con una idea, para comprobar cómo ustedes lidian con este problema.
La tarea es escribir una función, que toma como parámetro de entrada la lista de direcciones (aprobada como estructura de su elección) ^v<>, muestra el mapa de la mazmorra. En el ejemplo para input: >>>vvv<<<^^^output será:
+----+ +----+
| | |>>>v|
| ++ | |^++v|
| ++ | because |^++v|
| | |^<<<|
+----+ +----+
Casos de prueba
>>>>>>vvvvv<<<<^^^>>v
+-------+
| |
+-+---+ |
| | |
| + | |
| +-+ |
| |
+-----+
^^^^^vvv<<<^^vv>>>>>>>>vv>><<^^^^v>>>>v^<^
+-+
+-+| | +-++-+
| || | | ++ ++
| ++ +-+ |
| +-+ |
+--+ +-+ +-+-+
| | | |
+-+ +---+
Como es un desafío de código de golf, gana el código más corto.
Feliz golf.
EDITAR Perdón por la edición tardía, no tuve mucho tiempo recientemente.
El mapa se genera en función del movimiento. Debe contener solo corredores que fueron visitados durante la caminata. Por lo tanto, crear una gran sala no será una respuesta válida.
Hay tres símbolos válidos en el mapa:
|pared vertical|pared horizontal+intersección de pared vertical y horizontal.
La longitud máxima de la ruta es de 255 caracteres (pero si puede, no se limite).
Más casos de prueba:
><><><><
+--+
| |
+--+
>^<v
+--+
| |
| |
+--+
Espero que ahora todo esté claro.
vvv>>^^^<<produciría (¿cruces? ¿Tuberías?)