Há muito tempo, quando eu passava mais tempo jogando RPG, uma das questões que alguns jogadores tinham, era rastrear o movimento das partes e desenhar o mapa adequado. Então, eu tenho uma idéia, para verificar como vocês lidam com esse problema.
A tarefa é escrever uma função que, como lista de parâmetros de entrada das direções (passada como estrutura de sua escolha) ^v<>, exiba o mapa da masmorra. No exemplo para input: >>>vvv<<<^^^output será:
+----+ +----+
| | |>>>v|
| ++ | |^++v|
| ++ | because |^++v|
| | |^<<<|
+----+ +----+
Casos de teste
>>>>>>vvvvv<<<<^^^>>v
+-------+
| |
+-+---+ |
| | |
| + | |
| +-+ |
| |
+-----+
^^^^^vvv<<<^^vv>>>>>>>>vv>><<^^^^v>>>>v^<^
+-+
+-+| | +-++-+
| || | | ++ ++
| ++ +-+ |
| +-+ |
+--+ +-+ +-+-+
| | | |
+-+ +---+
Como é o desafio do código de golfe, o menor código vence.
Feliz golfe.
EDITAR Desculpe pela edição tardia, não tive muito tempo recentemente.
O mapa é gerado com base no movimento. Deve conter apenas corredores visitados durante a caminhada. Portanto, criar uma sala grande não será uma resposta válida.
Existem três símbolos válidos no mapa:
|parede vertical|parede horizontal+interseção da parede vertical e horizontal.
O comprimento máximo do caminho é de 255 caracteres (mas se você puder, não se limite).
Mais casos de teste:
><><><><
+--+
| |
+--+
>^<v
+--+
| |
| |
+--+
Espero que agora esteja tudo claro.
vvv>>^^^<<produziria (cruzes tubos?)