(A pesar de más de 60 preguntas etiquetadas ajedrez , no tenemos un simple desafío n-reinas).
En ajedrez, el Rompecabezas N-Queens se describe de la siguiente manera: dado un n x n
tablero de ajedrez y n
reinas, coloque las reinas en el tablero de modo que no haya dos reinas amenazándose entre sí. A continuación se muestra una solución de ejemplo n = 8
, tomada de Wikipedia.
O, en la representación ASCII:
xxxQxxxx
xxxxxxQx
xxQxxxxx
xxxxxxxQ
xQxxxxxx
xxxxQxxx
Qxxxxxxx
xxxxxQxx
El desafío aquí será tomar la entrada n
y salida de una representación ASCII de una solución para el n
rompecabezas -Queens. Dado que hay más de una solución posible (por ejemplo, al menos, una rotación o reflexión), su código solo necesita generar una solución válida.
Entrada
Un solo entero positivo n
con n >= 4
cualquier formato conveniente . (n = 2 yn = 3 no tienen soluciones, y n = 1 es trivial, por lo que están excluidos)
Salida
La representación ASCII resultante de una solución para el rompecabezas N-reinas, como se describe anteriormente. Puede elegir dos valores ASCII distintos para representar espacios en blanco y reinas. Una vez más, esto se puede generar en cualquier formato adecuado (cadena única, una lista de cadenas, una matriz de caracteres, etc.).
Reglas
- Las nuevas líneas iniciales o finales o espacios en blanco son opcionales, así como los espacios en blanco entre caracteres, siempre que los caracteres se alineen correctamente.
- Puede usar un algoritmo para calcular las posibles posiciones, o usar el estilo explícito de solución de "escalón", el que sea más apropiado para su código.
- Un programa completo o una función son aceptables. Si es una función, puede devolver el resultado en lugar de imprimirlo.
- Si es posible, incluya un enlace a un entorno de prueba en línea para que otras personas puedan probar su código.
- Las lagunas estándar están prohibidas.
- Este es el código de golf, por lo que se aplican todas las reglas habituales de golf, y gana el código más corto (en bytes).
Ejemplos
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