パスの入力が与えられたときに、マリオがで示されるE開始点からで示される終了点に到達できるかどうかを判断するプログラムを作成しますS。
パスは次のようになります。
S = E
=====
パスでは、さまざまなシンボルとそれらが表すものは次のとおりです。
=:壁/床/天井。マリオは壁を歩くことができず、床を越えたり、天井を飛び越えたりすることはできません(頭にぶつかるでしょう)(スペース):空気。マリオはこれを歩いて、ジャンプして、落ちていくことができますS:空気、マリオが始まる場所を示すことを除く。これは、常に入力の左端の列のグランドレベルに表示されます。E:マリオが行きたい場所を示す以外の空気。これは、常に入力の右端の列のグランドレベルに表示されます。
入力には、マリオが歩くことができるすべての場所にスペースがあります。
マリオは前進しかできない。この例では、マリオは目標を達成できません
S
===
===
E
====
また彼はこれで
E
==
==
#==
==
==
==
S ==
======
ただし、#最大4セルまでジャンプできるため、(入力には表示されない)で示されるスペースに到達できます。マリオは超人的です。彼の超人間性の別の例として:
S
=
=
=
=
=
= #
= =
=
=
=
= E
=======
マリオはE、遠くに落ちて生き残り、静かに歩いて行くことができますE。#マリオはまっすぐに倒れるので、彼はに到達できないことに注意してください。
マリオがジャンプすることができ、実際に比較することによって非常に遠く前方に高いではなく。
S E
== ==
= =
マリオはギャップを飛び越えようとするかもしれませんが、彼は失敗し、まっすぐに落ちます。彼は終わりに達することができません。
マリオは、これらすべての例で目標を達成できます。
E
=
=
=
S=
==
=
= E
S= =
== =
= =
=====
S
=
= E
====
これはコードゴルフなので、最少バイトが勝ちます!
#。2番目の質問について:私はOPではありませんが、あなたは正しいと思います。(それは私のソリューションで仮定したものです)
E、地上レベルがマップの残りの部分から1つ右に伸びているため、右端の列には表示されません。
Mario cannot walk through wall , and cannot fall past a floor, or jump past a ceiling
#マリオがまっすぐに倒れるので、彼はに到達できない」と言います。これを正しく表示している場合、彼はまっすぐに落ちません#か?また、ジャンプは最大で4スペース、最大で1スペースとして定義されていますか?