Desafio
Você deu um mapa a um amigo que se parece com isso:
|
/
|
/
|
\
|
\
D
Um mapa simples que começa na parte superior e termina na parte inferior. Infelizmente, seu amigo não entende. Você pode decodificar o mapa para que ele possa lê-lo?
Entrada
A entrada é uma cadeia de caracteres que consistem em |, /, \, D, ^, Y, (espaço) , e novas linhas.
|diz para ficar na mesma coluna.\diz para mover para a coluna à direita e para baixo 1./diz para mover para a coluna à esquerda e para baixo 1.Dmarca o destino.^(se presente) fala de uma divisão no caminho.Y(se presente) fala de uma nova junção de caminhos. Trate como um|.
A entrada será organizada de forma a criar um tipo de caminho:
|
|
\
|
^
/ \
/ |
D |
Sempre haverá um espaço entre dois caminhos, e todos os caminhos se reunirão novamente ou alcançarão a última linha da entrada. Haverá apenas uma divisão por mapa. Não há limite para o comprimento do mapa de entrada. Nunca haverá mais de dois caminhos.
Resultado
A saída deve ser uma sequência de instruções.
- " L " deve dizer ao seu amigo para mover L eft e dar um passo à frente.
- " R " deve dizer ao seu amigo para mover R ight e tomar um passo em frente.
- " F " deve dizer ao seu amigo para dar um passo à frente.
Para o mapa de exemplo de entrada, a saída seria a seguinte:
F F L F R R R
Observe que seu amigo está começando na parte superior do mapa e voltado para baixo no mapa. Dê as instruções da perspectiva dele. Para uma instância de "^", seu programa deve poder escolher o caminho que leva ao destino (D). Se os dois caminhos forem recombinados, seu programa deverá escolher o caminho mais reto (aquele com mais |s) a seguir. Instruções devem ser separados por espaços, e deve terminar em D .
Exemplos
Entrada
|
|
\
\
^
/ |
| |
\ |
\ \
\ \
\ /
Y
D
Resultado
F F L L L F F F L L R F
Como o caminho mais à esquerda contém apenas 1 |, usamos o caminho mais à direita que possui 3.
Entrada
\
|
/
|
\
|
/
D
Resultado
L F R F L F R
Entrada
/
\
/
\
^
\ \
D \
Resultado
R L R L R L
Outros detalhes
- Isso é código de golfe, então a pessoa com o código mais curto até a próxima quarta-feira, 19 de agosto, vence.
- Feedback construtivo bem-vindo e muito apreciado.
- Parcialmente inspirado em A Map to Hidden Treasure
- Sinta-se livre para alterar o título para algo mais criativo.
- Se você encontrar erros que eu cometi, corrija-os.
- E claro, divirta-se.
Obrigado!
Um pouco tarde, talvez, mas UndefinedFunction é o vencedor da codificação em JavaScript! Obrigado a todos que entraram. Nenhuma outra entrada será aceita.
Lpara o ^e dois Lpara os dois /? E por que você adicionou mais duas Fao final do Yexemplo?
L L, o que eu acho que deveria serL L L. O exemplo comYainda tem um1no final e também parece ter outros erros. Li o mapa comoF F R R R F F F R R L Fse entendesse as regras corretamente.