Abbiamo già generato campi minatori , ma qualcuno deve davvero spazzare quelle miniere generate prima che il PCG esploda!
Il tuo compito è quello di scrivere un Risolutore per dragamine compatibile con una versione leggermente modificata della soluzione accettata di "Lavoratore per dragamine" (le azioni sono separate da spazi per consentire campi più grandi).
Input: un campo minatore, campi separati da spazi. La prima riga indica il numero totale di mine.
x
: Non trattata!
: Bandiera- Cifra: numero di mine attorno a quel campo
Esempio:
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
Output: il tuo prossimo passo nel formato action row column
(a partire da zero)
Azioni valide:
0
: Aprilo1
: Posiziona una bandiera
Esempio:
0 1 2
Regole:
- Si scrive un programma completo che accetta un singolo campo come input (STDIN o argomenti della riga di comando) e genera una singola azione (STDOUT). Pertanto, non è possibile salvare gli stati, ad eccezione di
!
. - La tua scelta deve seguire le migliori probabilità di sopravvivenza. (cioè se c'è una mossa sicura al 100%, prendila)
- Questo è code-golf ; vince la soluzione più breve (in byte UTF-8)
test:
Questi test hanno lo scopo di testare situazioni chiare comuni; il tuo programma deve funzionare per ogni campo di prova.
Nel:
4
x x x x
1 2 x x
0 1 2 x
0 0 1 x
Fuori (uno di questi):
1 1 2
0 0 2
0 1 3
Nel:
2
x x x
1 ! x
1 1 x
Fuori (uno di questi):
0 0 0
0 0 1
0 1 2
0 2 2
1 0 2
Nel:
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
Fuori (uno di questi):
1 1 5
1 0 2
Nel:
2
x x x
2 3 1
! 1 0
Fuori (uno di questi):
0 0 1
1 0 0
1 0 2
0 0 2
o 0 1 3
. Non riesco a vedere come uno di questi sarebbe considerato sicuro. (Non devo essere abbastanza bravo a dragamine ...)
F
o P
sembra migliore bandiera di !
:)