(Malgré plus de 60 questions sur les échecs , nous n'avons pas de simple défi n-queens.)
Aux échecs, le puzzle N-Queens est décrit comme suit: étant donné un n x n
échiquier et des n
reines, placez les reines sur l'échiquier de sorte qu'il n'y ait pas deux reines qui se menacent. Voici un exemple de solution pour n = 8
, emprunté à Wikipedia.
Ou, en rendu ASCII:
xxxQxxxx
xxxxxxQx
xxQxxxxx
xxxxxxxQ
xQxxxxxx
xxxxQxxx
Qxxxxxxx
xxxxxQxx
Le défi ici sera de prendre en entrée n
et en sortie une représentation ASCII d'une solution au n
puzzle -Queens. Puisqu'il y a plus d'une solution possible (par exemple, au moins, une rotation ou une réflexion), votre code n'a besoin que de générer une solution valide.
Contribution
Un seul entier positif n
avecn >= 4
dans un format pratique . (n = 2 et n = 3 n'ont pas de solutions, et n = 1 est trivial, donc celles-ci sont exclues)
Production
La représentation ASCII résultante d'une solution au casse-tête des N-reines, comme indiqué ci-dessus. Vous pouvez choisir deux valeurs ASCII distinctes pour représenter les espaces vides et les reines. Encore une fois, cela peut être sorti dans n'importe quel format approprié (chaîne unique, liste de chaînes, tableau de caractères, etc.).
Règles
- Les sauts de ligne ou les espaces de début ou de fin sont tous facultatifs, ainsi que les espaces entre les caractères, tant que les caractères eux-mêmes s'alignent correctement.
- Vous pouvez soit utiliser un algorithme pour calculer les positions possibles, soit utiliser le style de solution explicite "en escalier", selon le golfeur de votre code.
- Un programme complet ou une fonction sont acceptables. S'il s'agit d'une fonction, vous pouvez renvoyer la sortie plutôt que de l'imprimer.
- Si possible, veuillez inclure un lien vers un environnement de test en ligne afin que d'autres personnes puissent essayer votre code!
- Les failles standard sont interdites.
- Il s'agit de code-golf, donc toutes les règles de golf habituelles s'appliquent et le code le plus court (en octets) l'emporte.
Exemples
n=4
xQxx
xxxQ
Qxxx
xxQx
n=7
xxQxxxx
xxxxxxQ
xQxxxxx
xxxQxxx
xxxxxQx
Qxxxxxx
xxxxQxx
n=10
xxxxQxxxxx
xxxxxxxxxQ
xxxQxxxxxx
xxxxxxxxQx
xxQxxxxxxx
xxxxxxxQxx
xQxxxxxxxx
xxxxxxQxxx
Qxxxxxxxxx
xxxxxQxxxx