Crie um programa que determine, com base no caminho, se Mario pode chegar ao fim, indicado por E
, desde o início, indicado por S
.
Um caminho será mais ou menos assim:
S = E
=====
Em um caminho, os vários símbolos e o que eles representam são:
=
: parede / piso / teto. Mario não pode atravessar a parede e não pode cair no chão ou pular no teto (ele batia na cabeça)S
: ar, exceto mostrando onde Mario começa. Isso sempre aparecerá na coluna mais à esquerda da entrada, no nível do solo.E
: ar, exceto mostrando onde Mario quer chegar. Isso sempre aparecerá na coluna mais à direita da entrada, no nível do solo.
A entrada terá espaços em todos os lugares onde Mario possa andar.
Mario só pode seguir em frente; neste exemplo, Mario não pode chegar ao objetivo
S
===
===
E
====
nem ele pode neste
E
==
==
#==
==
==
==
S ==
======
No entanto, ele pode alcançar o espaço indicado por #
(que não aparecerá na entrada), porque ele pode saltar até quatro células de altura; Mario é sobre-humano. Como outro exemplo de sua super-humanidade:
S
=
=
=
=
=
= #
= =
=
=
=
= E
=======
Mario pode chegar ao E
cair a grande distância, sobreviver e caminhar com calma E
. Note que ele não pode alcançar o #
, porque Mario cai diretamente.
Mario pode pular muito alto, mas não muito longe em comparação.
S E
== ==
= =
Mario pode tentar pular a brecha, mas ele falhará e cairá direto. Ele não pode chegar ao fim.
Mario pode alcançar a meta em todos esses exemplos:
E
=
=
=
S=
==
=
= E
S= =
== =
= =
=====
S
=
= E
====
Isso é código de golfe, e o menor número de bytes vence!
#
. Quanto à segunda pergunta: eu não sou OP, mas acho que você está certo. (que é o que eu assumi na minha solução)
E
não aparece na coluna mais à direita, porque o nível do solo se estende para a direita do resto do mapa.
Mario cannot walk through wall , and cannot fall past a floor, or jump past a ceiling
#
, porque Mario cai diretamente". Se eu estiver vendo isso corretamente, ele não cairá direto no#
? Além disso, os saltos são definidos como no máximo 4 espaços acima e no máximo 1 espaço, certo?