前書き
ジョニーはフロッガーをプレイしたい。しかし、彼はあまりよくありません。実際、彼はプラットフォームが移動した後にのみ、前進しようとします。
ジョニーのカエルが道の終わりに到達したのか、途中で死んだのかを調べてください。
チャレンジ
このプログラムは、0
sおよび1
sで構成されるフロッガーグリッドを次の形式で入力として受け取ります。
- グリッドの幅と長さはランダムで、少なくとも3x3
1
プラットフォームを表します0
水を表しますF
カエルの開始位置を表します- グリッドの最初と最後の行はすべて
1
s のみで構成され、移動せず、カエルF
は最後の行にランダムに配置されます - すべての中間層は常に移動し、各行の最後
<
または>
末尾に、左または右に移動するかどうかを示します
これらの記号をすべて独自のものに置き換えて、それらがすべて明確であり、回答で置き換えを指定する限り、許可されます。
入力は、互換性のある任意の形式(改行を含む文字列、文字列の配列、文字の配列、...)にすることができます。
チャレンジルール
- ターンごとに、すべてのプラットフォームは、
<
または>
記号で示された方向に基づいて1マス移動 - プラットフォームが「スクリーン」から押し出されると、グリッドの反対側に再び表示されます
- カエルが動くプラットフォーム上にある場合、カエルも一緒に移動します
- その後、カエルは一番上の行に向かって1つの正方形をジャンプします。カエルは毎ターン移動します。
- カエルが水に飛び込んだ場合(
0
)、または移動するプラットフォームとともにグリッドの側面に触れた場合、カエルは死にます。
あなたのプログラムは、カエルが生き残る場合は真実の値を出力し、それ以外の場合は偽の値を出力する必要があります。
これはcode-golfであるため、バイト単位の最短回答が勝ちます。標準の抜け穴が適用されます。
例
例1
入力
11111
00111>
00101<
1F111
出力
1
実行
ターン1:
11111
10011
01010
1F111
11111
10011
0F010
11111
ターン2:
11111
11001
F0100
11111
11111
F1001
10100
11111
ターン3:
11111
1F100
01001
11111
1F111
11100
01001
11111
例2
入力
11111
00100<
00100<
1F111
出力
0
実行
ターン1:
11111
01000
01000
1F111
11111
01000
0F000
11111
ターン2:
11111
10000
F0000
11111
11111
F0000
10000
11111
ターン3:
11111
00001
00001
11111
<
または>
末尾にあります。
0
は目の前にいる場合でも毎ターン前進しますか、それとも次を待ち1
ますか?待つことができる場合、毎回進む1
か、賢く待つことができますか?つまり、テストケース11111 00001< 00011< 11F11
では、水に飛び込むため、偽物になります(ステップのペーストビン)。フレーム外に移動するため、偽物になります(ステップのペーストビン)。または、それは、前にジャンプする前に2番目のプラットフォームを賢く待機するので、真実でしょうか(ステップのペーストビン)?
0
ます。
<
か>
私たちは、入力として長方形配列を取ることができるように?ちなみに、素敵な挑戦!