¡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
fuente
0 0 2
o0 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 seP
ve mejor bandera que!
:)Respuestas:
Mathematica
Todavía no golf. Necesita más trabajo en formatos de E / S.
Editar: Bonus Track
Creé un patio de juegos interactivo que calcula las probabilidades de bomba calculando todas las soluciones posibles para una configuración dada:
Instrucciones para probarlo sin Mathematica instalado:
El control deslizante cambia las dimensiones del tablero. Este es solo un programa incompleto, no completamente probado, por favor reporte cualquier error. No he implementado la función "número total de bombas disponibles a bordo". Se supone infinito.
fuente