Wir haben bereits Minesweeper-Felder erzeugt , aber jemand muss diese erzeugten Minen wirklich fegen, bevor PCG explodiert!
Ihre Aufgabe ist es, einen Minesweeper-Solver zu schreiben, der mit einer leicht modifizierten Version der akzeptierten Lösung von "Working Minesweeper" kompatibel ist (Aktionen werden durch Leerzeichen getrennt, um größere Felder zuzulassen).
Eingabe: Ein Minesweeper-Feld, Felder durch Leerzeichen getrennt. Die erste Zeile gibt die Gesamtzahl der Minen an.
x
: Unberührt!
: Flagge- Ziffer: Anzahl der Minen um dieses Feld
Beispiel:
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
Ausgabe: Ihr nächster Schritt im Format action row column
(beginnend bei Null)
Gültige Aktionen:
0
: Öffne es1
: Platziere eine Flagge
Beispiel:
0 1 2
Regeln:
- Sie schreiben ein vollständiges Programm, das ein einzelnes Feld als Eingabe (entweder STDIN oder Befehlszeilenargumente) und eine einzelne Aktion (STDOUT) ausgibt. Aus diesem Grund können Sie keine Status speichern, außer für
!
. - Ihre Wahl muss den besten Überlebenschancen folgen. (dh wenn es einen 100% sicheren Zug gibt, nimm ihn)
- Das ist Code-Golf ; die kürzeste Lösung (in UTF-8 Bytes) gewinnt
Tests:
Diese Tests dienen dem Zweck, auf häufig auftretende eindeutige Situationen zu prüfen. Ihr Programm muss für jedes Testfeld geeignet sein.
Im:
4
x x x x
1 2 x x
0 1 2 x
0 0 1 x
Out (eine davon):
1 1 2
0 0 2
0 1 3
Im:
2
x x x
1 ! x
1 1 x
Out (eine davon):
0 0 0
0 0 1
0 1 2
0 2 2
1 0 2
Im:
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
Out (eine davon):
1 1 5
1 0 2
Im:
2
x x x
2 3 1
! 1 0
Out (eine davon):
0 0 1
1 0 0
1 0 2
quelle
0 0 2
oder0 1 3
. Ich kann nicht sehen, wie einer der beiden als sicher gelten würde. (Ich muss im Minensuchboot nicht gut genug sein ...)F
oderP
sieht besser aus Flagge als!
:)Antworten:
Mathematica
Immer noch nicht golfen. Benötigt weitere Arbeiten an E / A-Formaten.
Bearbeiten: Bonustrack
Ich habe mir einen interaktiven Spielplatz ausgedacht, der die Bombenwahrscheinlichkeiten berechnet, indem ich alle möglichen Lösungen für eine bestimmte Konfiguration berechnet habe:
Anleitung zum Testen ohne Mathematica:
Der Schieberegler ändert die Brettabmessungen. Dies ist nur ein skizzenhaftes Programm, nicht vollständig getestet. Bitte melden Sie alle Fehler. Ich habe die Funktion "Gesamtzahl der verfügbaren Bomben an Bord" nicht implementiert. Es wird unendlich angenommen.
quelle