Introducción
Morris de Nine Mens (también llamado Mills) es un juego de mesa para dos jugadores que se juega en el siguiente tablero (imagen tomada de la página vinculada de Wikipedia):
Cada jugador tiene 9 hombres, de color blanco y negro. Las reglas concretas no son importantes para este desafío, pero consulte la página de Wikipedia si está interesado.
El reto
Dada una cuadrícula como entrada, que representa un cierto estado del tablero, genera el recuento total de molinos m
con 0<=m<=8
.
Tres hombres del mismo color forman un molino cuando están en una fila recta de puntos conectados. b2
que f2
no es un molino ya que los hombres son de diferente color. También d2
a d5
no formar un molino ya que los tres puntos se tienen que conectar.
El tablero en la imagen de arriba contiene dos molinos, por ejemplo. Uno de f2
a f6
y uno de e3
a e5
.
Entrada
El tablero se representa como una cuadrícula 2D con 24 puntos que están conectados como se muestra en la imagen de ejemplo anterior. El ejemplo utiliza letras de a-g
para las columnas y números de 1-7
para las filas, pero puede elegir cualquier formato de entrada razonable siempre que asigne 24 coordenadas únicas a uno de los siguientes estados:
- Vacío
- Tomado por negro
- Tomado por blanco
La representación concreta depende de usted, no está restringido a "b" o "w" para los colores.
Además de esto, su entrada puede no contener ninguna información adicional.
Notas adicionales
- No tiene que asignar los puntos por ningún tipo de valores. Si desea tomar la entrada como una matriz 2D, también está bien. Pero tenga en cuenta que no se utilizan todos los puntos allí y que debe considerar las conexiones entre ellos.
- La entrada puede estar vacía, en cuyo caso debe generar cero (placa vacía -> sin fresas).
- Como cada jugador tiene 9 hombres, la entrada nunca contendrá más de 18 puntos tomados.
- Puede dejar de lado los puntos vacíos en la entrada y, por lo tanto, solo los puntos de entrada que se toman.
- La entrada se puede ordenar de cualquier manera. No puede confiar en un pedido específico.
- Puede suponer que la entrada siempre será válida. Esto significa que no habrá más de 9 hombres de cada color y que cada punto será único.
Reglas
- Deje claro qué formato de entrada usa en su solución. Proporcionar un ejemplo de ejecución de su programa es altamente recomendable.
- Función o programa completo permitido.
- Reglas predeterminadas para entrada / salida.
- Se aplican lagunas estándar .
- Este es el código de golf , por lo que gana el conteo de bytes más bajo. Tiebreaker es una presentación anterior.
Casos de prueba
El formato de entrada aquí es una lista de tuplas con las coordenadas como en el ejemplo anterior como primer elemento y el estado del segundo elemento puntual. Un punto tomado por blanco se marca como "w" y un punto tomado por negro como "b". Todos los demás puntos quedan fuera y están vacíos.
[("a4", "w"), ("b2", "b"), ("b4", "b"), ("c4", "b"), ("d1", "w") , ("d2", "w"), ("e3", "w"), ("e4", "w"), ("e5", "w"), ("f2", "b") , ("f4", "b"), ("f6", "b"), ("g4", "w")] -> 2 [("a1", "b"), ("a4", "b"), ("a7", "b"), ("b4", "b"), ("c4", "b") , ("d3", "w"), ("d2", "w"), ("d1", "w")] -> 3 [] -> 0 [("b4", "b"), ("a4", b "), (" c4 ", w")] -> 0 [("b4", "b"), ("a4", b "), (" c4 ", b")] -> 1 [("a1", "b"), ("a4", "b"), ("a7", "b"), ("b2", "b"), ("b4", "b") , ("b6", "b"), ("c3", "b"), ("c4", "b"), ("c5", "b"), ("e3", "w") , ("e4", "w"), ("e5", "w"), ("f2", "w"), ("f4", "w"), ("f6", "w") , ("g1", "w"), ("g4", "w"), ("g7", "w")] -> 8
¡Feliz codificación!
d3
y d5
no están conectados. Reglas dicen: Three men of the same color form a mill when they are in a straight row of connected points.
. Agregué algunos ejemplos en esta sección para aclararlo, ¡gracias por el comentario!