マインスイーパフィールドは既に生成されていますが、PCGが爆発する前に、生成された地雷を掃く必要があります!
あなたの仕事は、「Working Minesweeper」の承認されたソリューションのわずかに修正されたバージョンと互換性のあるマインスイーパソルバーを作成することです(アクションはスペースで区切られ、より大きなフィールドを可能にします)。
入力:マインスイーパフィールド、スペースで区切られたフィールド。最初の行は、鉱山の総数を示しています。
x
:そのまま!
:フラグ- 桁:そのフィールドの周囲の地雷の数
例:
10
0 0 1 x x x x x
0 0 2 x x x x x
0 0 2 ! x x x x
0 0 1 2 x x x x
0 0 0 1 x x x x
1 1 0 2 x x x x
x 1 0 2 x x x x
1 1 0 1 x x x x
出力:フォーマットの次のステップaction row column
(ゼロから開始)
有効なアクション:
0
: それを開く1
:旗を置く
例:
0 1 2
ルール:
- 単一のフィールドを入力(STDINまたはコマンドライン引数)として受け取り、単一のアクション(STDOUT)を出力する完全なプログラムを作成します。したがって、を除く状態を保存することはできません
!
。 - あなたの選択は、生存のための最高のオッズに従う必要があります。(つまり、100%安全な動きがある場合は、それを取る)
- これはcode-golfです。最短のソリューション(UTF-8バイト)が勝ちます
テスト:
これらのテストは、一般的な明確な状況をテストする目的に役立ちます。プログラムはすべてのテストフィールドで機能する必要があります。
に:
4
x x x x
1 2 x x
0 1 2 x
0 0 1 x
アウト(これらのいずれか):
1 1 2
0 0 2
0 1 3
に:
2
x x x
1 ! x
1 1 x
アウト(これらのいずれか):
0 0 0
0 0 1
0 1 2
0 2 2
1 0 2
に:
10
x x x x x x x x
1 3 3 x x x x x
0 1 ! 3 3 4 x x
0 2 3 ! 2 3 x x
0 1 ! 2 2 ! x x
アウト(これらのいずれか):
1 1 5
1 0 2
に:
2
x x x
2 3 1
! 1 0
アウト(これらのいずれか):
0 0 1
1 0 0
1 0 2
いいね!1)おそらく、テストのために誰かがテストハーネスを作成する必要があります。フィールドを指定すると、各ステップが実行され、プログラムが勝つかどうかが出力されます。プログラムは、あいまいさのないマップで勝つはずです。2)誰もフラグアクションを使用するのだろうか。決して必要ではないようです。
—
クラウディウ
最初のテスト。
—
FDinoff
0 0 2
またはに移動できるのはなぜですか0 1 3
。それらのいずれかが安全であるとみなされる方法がわかりません。(私は掃海艇で十分によくないにちがいない...)
おそらく
—
ビジョン
F
やP
ルックスより良いフラグよりも!
:)
@JonathanVanMatreこのフィールドは空白ですが、最初のクリック後に地雷が配置されるため、最初のオープニングは地雷ではないことが保証されています:)
—
TimWolla
おもしろい事実:利用可能なボードの数には限りがあります(少なくとも、XPのバージョンでは、これは競合シーンの標準的なものです)。最初のスポットをクリックするとボードが移動し、地雷をクリックしないようにしますが、それ以外は使用するボードが既に決定されています。
—
地下