Создайте программу, которая определяет, учитывая ввод пути, может ли Марио достигнуть конца, обозначенного E
, с самого начала, обозначенного как S
.
Путь будет выглядеть примерно так:
S = E
=====
В пути различные символы и то, что они представляют:
=
: стена / пол / потолок. Марио не может пройти сквозь стену и не может упасть сквозь пол или прыгнуть через потолок (он ударит себя по голове)S
: air, кроме показа, где начинается Марио. Это всегда будет отображаться в крайнем левом столбце ввода на уровне земли.E
: air, кроме показа, куда Марио хочет попасть. Это всегда будет отображаться в крайнем правом столбце ввода на уровне земли.
Вход будет иметь пробелы в каждом месте, где Марио может ходить.
Марио может двигаться только вперед; в этом примере Марио не может добраться до цели
S
===
===
E
====
и при этом он не может в этом
E
==
==
#==
==
==
==
S ==
======
Тем не менее, он может достичь пространства, обозначенного #
(которое не появится на входе), потому что он может прыгать до четырех ячеек; Марио сверхчеловек. Как еще один пример его сверхчеловечества:
S
=
=
=
=
=
= #
= =
=
=
=
= E
=======
Марио может добраться до E
, прыгнув на большое расстояние, выжить и спокойно идти к E
. Обратите внимание, что он не может достичь #
, потому что Марио падает прямо вниз.
Марио может прыгать очень высоко, но не очень далеко вперед по сравнению.
S E
== ==
= =
Марио может попытаться преодолеть разрыв, но он потерпит неудачу и упадет прямо. Он не может достичь конца.
Марио может достичь цели во всех этих примерах:
E
=
=
=
S=
==
=
= E
S= =
== =
= =
=====
S
=
= E
====
Это код гольф, поэтому побеждает меньше байтов!
#
. Что касается второго вопроса: я не OP, но я предполагаю, что вы правы. (это то, что я предполагал в своем решении)
E
не отображается в крайнем правом столбце, потому что уровень земли простирается на один вправо от остальной части карты.
Mario cannot walk through wall , and cannot fall past a floor, or jump past a ceiling
#
, потому что Марио падает прямо вниз». Если я правильно смотрю на это, разве он не упадет прямо на#
? Кроме того, прыжки определены как максимум 4 пробела вверх и максимум 1 пробел, верно?