(Pomimo ponad 60 pytań oznaczonych jako szachy , nie mamy prostego wyzwania dla n-królowych.)
W szachach układanka N-Queens jest opisana w następujący sposób: Biorąc pod uwagę n x n
szachownicę i n
królowe, ułóż królowe na szachownicy, aby żadne dwie królowe nie zagrażały sobie nawzajem. Poniżej znajduje się przykładowe rozwiązanie n = 8
pożyczone z Wikipedii.
Lub w renderowaniu ASCII:
xxxQxxxx
xxxxxxQx
xxQxxxxx
xxxxxxxQ
xQxxxxxx
xxxxQxxx
Qxxxxxxx
xxxxxQxx
Wyzwaniem będzie przyjęcie n
i wyprowadzenie reprezentacji ASCII rozwiązania n
układanki -Queens. Ponieważ istnieje więcej niż jedno możliwe rozwiązanie (np. Przynajmniej obrót lub odbicie), twój kod musi tylko wygenerować dowolne prawidłowe rozwiązanie.
Wejście
Pojedyncza dodatnia n
ze n >= 4
w dowolnym, wygodnym formacie . (n = 2 i n = 3 nie mają rozwiązań, a n = 1 jest banalne, więc są wykluczone)
Wynik
Wynikowa reprezentacja ASCII rozwiązania układanki N-królowych, jak opisano powyżej. Możesz wybrać dowolne dwie różne wartości ASCII, które będą reprezentować puste spacje i królowe. Ponownie, można go wyprowadzić w dowolnym odpowiednim formacie (pojedynczy ciąg, lista ciągów, tablica znaków itp.).
Zasady
- Wiodące lub końcowe znaki nowej linii lub białe znaki są opcjonalne, a także białe znaki między znakami, o ile same znaki są poprawnie ustawione w linii.
- Możesz albo użyć algorytmu do obliczenia możliwych pozycji, albo użyć jawnego rozwiązania typu „krok po schodach”, w zależności od tego, który kod jest bardziej golfowy.
- Dopuszczalny jest pełny program lub funkcja. Jeśli funkcja, możesz zwrócić dane wyjściowe zamiast je drukować.
- Jeśli to możliwe, dołącz link do internetowego środowiska testowego, aby inni mogli wypróbować Twój kod!
- Standardowe luki są zabronione.
- To jest golf golfowy, więc obowiązują wszystkie zwykłe zasady gry w golfa, a wygrywa najkrótszy kod (w bajtach).
Przykłady
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