introduction
Morris de Nine Mens (également appelé Mills) est un jeu de société pour deux joueurs qui se joue sur le plateau suivant (image tirée de la page Wikipedia liée):
Chaque joueur a 9 hommes, de couleur noir et blanc. Les règles concrètes ne sont pas importantes pour ce défi, mais consultez la page Wikipedia si vous êtes intéressé.
Le défi
Étant donné une grille en entrée, qui représente un certain état du conseil d'administration, affichez le nombre total de moulins m
avec 0<=m<=8
.
Trois hommes de la même couleur forment un moulin lorsqu'ils sont dans une rangée droite de points connectés. b2
to f2
n'est pas un moulin puisque les hommes sont de couleur différente. Aussi d2
à d5
ne formerait pas un moulin puisque les trois points doivent être connectés.
La planche dans l'image ci-dessus contient deux moulins par exemple. Un de f2
à f6
et un de e3
àe5
.
Contribution
La carte est représentée comme une grille 2D avec 24 points qui sont connectés comme indiqué dans l'exemple d'image ci-dessus. L'exemple utilise des lettres de a-g
pour les colonnes et des chiffres de 1-7
pour les lignes, mais vous pouvez choisir n'importe quel format d'entrée raisonnable tant qu'il mappe 24 coordonnées uniques à l'un des états suivants:
- Vide
- Pris par le noir
- Pris par le blanc
La représentation concrète est à vous, vous n'êtes pas limité à "b" ou "w" pour les couleurs.
En plus de cela, votre entrée ne peut contenir aucune information supplémentaire.
Notes complémentaires
- Vous n'avez pas à mapper les points par n'importe quel type de valeurs. Si vous voulez prendre l'entrée comme un tableau 2D, c'est bien aussi. Mais gardez à l'esprit que tous les points ne sont pas utilisés et que vous devez considérer les connexions entre eux.
- L'entrée peut être vide, auquel cas vous devez sortir zéro (plateau vide -> pas de fraisage).
- Puisque chaque joueur a 9 hommes, l'entrée ne contiendra jamais plus de 18 points pris.
- Vous pouvez laisser de côté les points vides dans l'entrée et donc uniquement les points d'entrée qui sont pris.
- L'entrée peut être commandée de n'importe quelle manière. Vous ne pouvez pas compter sur une commande spécifique.
- Vous pouvez supposer que l'entrée sera toujours valide. Cela signifie qu'il n'y aura pas plus de 9 hommes de chaque couleur et que chaque point sera unique.
Règles
- Indiquez clairement le format d'entrée que vous utilisez dans votre solution. Fournir un exemple d'exécution de votre programme est fortement encouragé.
- Fonction ou programme complet autorisé.
- Règles par défaut pour les entrées / sorties.
- Des échappatoires standard s'appliquent.
- Il s'agit de code-golf , donc le nombre d'octets le plus bas l'emporte. Tiebreaker est une soumission antérieure.
Cas de test
Le format d'entrée ici est une liste de tuples avec les coordonnées comme dans l'exemple ci-dessus comme premier élément et l'état du point deuxième élément. Un point pris par le blanc est marqué comme "w" et un point pris par le noir comme "b". Tous les autres points sont laissés de côté et sont vides.
[("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
Codage heureux!
d3
et d5
ne sont pas connectés. Règles disent: Three men of the same color form a mill when they are in a straight row of connected points.
. J'ai ajouté quelques exemples dans cette section pour que ce soit clair, merci pour le commentaire!