¡Ya generamos campos de Buscaminas , pero alguien realmente tiene que barrer esas minas generadas antes de que PCG explote!
Su tarea es escribir un Solucionador de buscaminas que sea compatible con una versión ligeramente modificada de la solución aceptada de "Buscaminas de trabajo" (las acciones están separadas por espacios para permitir campos más grandes).
Entrada: un campo Buscaminas, campos separados por espacios. La primera línea denota el número total de minas.
x
: Sin tocar!
: Bandera- Dígito: número de minas alrededor de ese campo
Ejemplo:
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
Salida: su próximo paso en el formato action row column
(comenzando en cero)
Acciones válidas
0
: Abrelo1
: Coloque una bandera
Ejemplo:
0 1 2
Reglas:
- Usted escribe un programa completo que toma un solo campo como entrada (ya sea STDIN o argumentos de línea de comando) y genera una sola acción (STDOUT). Por lo tanto, no puede guardar estados, excepto
!
. - Su elección debe seguir las mejores probabilidades de supervivencia. (es decir, si hay un movimiento 100% seguro, tómalo)
- Este es el código de golf ; gana la solución más corta (en bytes UTF-8)
Pruebas:
Estas pruebas sirven para probar situaciones claras comunes; su programa debe funcionar para cada campo de prueba.
En:
4
x x x x
1 2 x x
0 1 2 x
0 0 1 x
Fuera (cualquiera de estos):
1 1 2
0 0 2
0 1 3
En:
2
x x x
1 ! x
1 1 x
Fuera (cualquiera de estos):
0 0 0
0 0 1
0 1 2
0 2 2
1 0 2
En:
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
Fuera (cualquiera de estos):
1 1 5
1 0 2
En:
2
x x x
2 3 1
! 1 0
Fuera (cualquiera de estos):
0 0 1
1 0 0
1 0 2
0 0 2
o 0 1 3
. No puedo ver cómo ninguno de los dos se consideraría seguro. (No debo ser lo suficientemente bueno en buscaminas ...)
F
o se P
ve mejor bandera que !
:)