(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 nreines, 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 net en sortie une représentation ASCII d'une solution au npuzzle -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 navecn >= 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
          


Lisez le nombre de reines, q , à partir de stdin et calculez deux variables pour une utilisation ultérieure:, 
démarrez la boucle principale, en itérant r , le numéro de ligne, de q vers le bas à 0, décrémentant au début de la boucle, donc le premier r est q moins 1. 
Calculez le décalage de la reine dans chaque rangée avec la formule suivante:
Générez des caractères d'espace de décalage pour indenter la position de la reine pour la ligne actuelle, plus un espace supplémentaire simplement parce que cela facilite la boucle de sortie. 
Sortez le 
Testez si r est zéro, auquel cas nous avons atteint la fin de la carte et pouvons quitter, sinon nous répétons la boucle principale à nouveau.