O rei Julian precisa atravessar a selva, mas está com preguiça. Ele quer que um computador seja capaz de calcular uma rota pela floresta para ele.
Usando STDIN, obtenha um mapa da floresta para o computador quebrar. Ele seguirá o seguinte formato:
01001E
010110
000P00
1100J1
S00111
A maneira como o mapa da selva funciona é:
0 é motivo que Julian pode se mover.
1 é selva intransitável densa.
P é uma área com predadores, que você deve evitar a todo custo.
Jé selva relativamente grossa. Os servos de Julian podem romper um desses antes de se cansar.
Sé onde Julian começa. Pode estar em qualquer lugar do mapa.
Eé para onde Julian quer ir; o fim do caminho. Também pode estar em qualquer lugar do mapa, como qualquer outro bloco.
Cada personagem é um bloco no mapa. Quebras de linha indicam uma nova linha de blocos. Se o STDIN no seu idioma não suportar quebras de linha, a quebra de linha deverá ser substituída por um espaço para indicar uma nova linha.
Para mover-se entre os blocos, você deve gerar uma string usando STDOUT contendo os seguintes caracteres especiais:
F - Frente
B - Para trás
L - Gire Julian para a esquerda (90 graus no sentido anti-horário)
R - Gire Julian para a direita (90 graus no sentido horário)
M- Lacaios destroem um Jladrilho 1 lado a frente de Julian, se houver um ( Mapenas limpa o ladrilho, você ainda precisa avançar)
Uma saída possível seria:
RFFLFRFMFLFRFLFF
O que resolve o mapa acima.
Notas:
Se o seu programa apresentar uma solução que atinja predadores, passe o jogo.
Se você bater na selva intransitável, basta voltar para onde estava antes de correr para a densa floresta, de frente para o mesmo caminho. (Em direção à selva)
Julian começa a olhar para cima. (^ Dessa maneira ^)
A saída não precisa ser a solução mais rápida
FFFeFBFBFBFBFBFFFé a mesma. No entanto, a saída da solução mais rápida possível oferece um bônus de 10% na contagem de bytes.Se um mapa for inválido, STDOUT 'Mapa inválido'. (Isso inclui se o mapa for insolúvel)
Um mapa não pode ter linhas ou colunas de diferentes comprimentos; isso a torna inválida.
Sua resposta deve seguir um pouco este formato:
#Language name, *n* bytes
code
Explanation (optional)
Isso é código-golfe , então o código mais curto em bytes vence.
Pbloco realmente adiciona algo diferente a um 1bloco? Não consigo imaginar uma solução plausível que os trate de maneira diferente.