チャレンジ
- レベルの終わりに到達してください!
- 各(C)oinブロックを正確に2回ヒットするとボーナスポイント。
不許可
- 何らかの方法でコマンド シーケンスをハード コーディングします。
- このゴルフを解決するという、まさに 1 つのことを行うお気に入りの「1 文字言語」 。
方法
プログラムは、標準入力を介して下のレベル (改行なし) を受け取ります。
次に、レベルを正常に完了するために必要なコマンドを出力する必要があります。
レベル
- Sは開始位置です。
- Eレベルを完了するために必要な位置。
- Cは 2 枚のコインが入ったコイン ブロックです。レベルを完了するために、これらの 1 つをスキップする必要はありません。
- Cと_の両方が地面としてカウントされます。固体の地面のみがあり、フローティング プラットフォームはありません。
- | | は壁です。レベルを完了するためにジャンプする必要がある壁はすべて、最大で 1 壁の高さです。それ以上のすべての壁は、決して抜け出せない奈落の底と見なすことができます。
- xはスパイクです。触れるとどうなるか当ててみてください。スパイクは常に、周囲の地面より 1 レベル下にあります。
すべてのレベルは 4 行の高さで、各行の幅は 63 文字です。つまり、レベルごとに合計 252 文字になります。
> ______ ____ ________ ___ <
> C ______| | | | C __| | | | ____E<
>S______ __ ____| | | |_____| |__| |___| <
> xx xx xx <
注: >< は境界線を示すためのものであり、プログラムへの入力には含まれません。また、テキスト エディタにも気をつけてください。
コマンド
- M = 右に 1 移動します。下に地面がない場合は、地面にぶつかるまで落下します。落下中 は動けません。
- J = ジャンプ、次の 3 つのコマンドの間、または (C)oin ブロックをヒットするまで、1 ずつ上に移動します。その後、地面に着くまで落下します。ジャンプできるのは地面にいるときだけです。M で地面と同じ高さになると、ジャンプはキャンセルされます。
- O = NOP、あなたを待たせます/何もしません。このようにして、幅が 1 ブロックしかない穴やスパイクをジャンプできます (上記のレベルではこれは必要ありませんが、これが必要なレベルを解決できれば、追加のポイントを獲得できます)。
ソリューション(コインブロックあり)
連続するコマンドは、互いの上に積み重ねられます。
Fは落下する場所を示します (落下中は何もできないことに注意してください)。
MMMF MMMF
M MMMMMMJ MMMMF M MMMMMMMMJ MMMF
M J MMMFMMMF MMMMMMJ| | | |F J MMJ| | | |F MMMMME
SMMMJMJ MJ MMMJ| | | |MMJMJ| |__| |MMJ|
xx xx xx
結果のコマンド シーケンス、長さ 75 文字:
MMMMJJMMJMMMMJMMMMMMJMMMMMMJMMMMMMJMMMMMMMMMJJMMJMMJMMMMMMMMJMMMMMMMMJMMMMM
これがいくつかの興味深い結果をもたらすことを願っています...そして、たくさんの炎ではありません:O
編集
OK、最初に考えていたよりもはるかに多くの可能性があります。すべての編集についてお詫び申し上げます。