(Nonostante le oltre 60 domande taggate a scacchi , non abbiamo una semplice sfida di n-regine.)
Negli scacchi, l' N-Queens Puzzle è descritto come segue: date una n x n
scacchiera e delle n
regine, disponete le regine sulla scacchiera in modo che non vi siano due regine che si minacciano a vicenda. Di seguito è una soluzione di esempio per n = 8
, presa in prestito da Wikipedia.
Oppure, nel rendering ASCII:
xxxQxxxx
xxxxxxQx
xxQxxxxx
xxxxxxxQ
xQxxxxxx
xxxxQxxx
Qxxxxxxx
xxxxxQxx
La sfida qui sarà quella di prendere input n
e output di una rappresentazione ASCII di una soluzione al n
puzzle -Queens. Poiché esistono più soluzioni possibili (ad esempio, almeno una rotazione o una riflessione), il codice deve solo generare una soluzione valida.
Ingresso
Un singolo intero positivo n
con n >= 4
in qualsiasi formato conveniente . (n = 2 e n = 3 non hanno soluzioni e n = 1 è banale, quindi sono esclusi)
Produzione
La rappresentazione ASCII risultante di una soluzione al puzzle delle regine N, come indicato sopra. È possibile scegliere due valori ASCII distinti per rappresentare spazi vuoti e regine. Ancora una volta, questo può essere emesso in qualsiasi formato adatto (stringa singola, un elenco di stringhe, un array di caratteri, ecc.).
Regole
- Le nuove righe o spazi iniziali iniziali o finali sono tutti facoltativi, così come gli spazi bianchi tra i caratteri, a condizione che i caratteri stessi si allineino correttamente.
- Puoi utilizzare un algoritmo per calcolare le posizioni possibili o utilizzare lo stile esplicito di soluzione "gradino", a seconda di quale sia il più golfista per il tuo codice.
- È accettabile un programma completo o una funzione. Se una funzione, è possibile restituire l'output anziché stamparlo.
- Se possibile, includi un link a un ambiente di test online in modo che altre persone possano provare il tuo codice!
- Sono vietate le scappatoie standard .
- Si tratta di code-golf quindi si applicano tutte le normali regole del golf e vince il codice più breve (in byte).
Esempi
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