(チェスにタグ付けされた60以上の質問にもかかわらず、単純なn-queensチャレンジはありません。)
チェスでは、N-クイーンズパズルは、与えられた次のように記載されているn x n
チェス盤とn
クイーンないクイーンが互いに脅かすされないように、チェス盤にクイーンを配置します。以下は、n = 8
Wikipediaから借用したのソリューション例です。
または、ASCIIレンダリングの場合:
xxxQxxxx
xxxxxxQx
xxQxxxxx
xxxxxxxQ
xQxxxxxx
xxxxQxxx
Qxxxxxxx
xxxxxQxx
ここでの課題n
は、n
-Queensパズルの解のASCII表現を入力および出力することです。複数の可能なソリューション(少なくとも、回転または反射など)があるため、コードは有効なソリューションを出力するだけで済みます。
入力
単一の正の整数n
とn >= 4
任意の便利な形式で。(n = 2およびn = 3には解がなく、n = 1は自明なので、それらは除外されます)
出力
上記で概説したように、N-queensパズルの解の結果のASCII表現。空白とクイーンを表すために、任意の2つの異なるASCII値を選択できます。繰り返しますが、これは適切な形式(単一の文字列、文字列のリスト、文字配列など)で出力できます。
ルール
- 文字自体が正しく整列している限り、先頭または末尾の改行または空白はすべてオプションであり、文字間の空白もオプションです。
- アルゴリズムを使用して可能な位置を計算するか、ソリューションの明示的な「階段状」スタイルのソリューションのいずれかを使用できます。
- 完全なプログラムまたは機能のいずれかが受け入れられます。関数の場合、出力する代わりに出力を返すことができます。
- 可能であれば、他の人がコードを試すことができるように、オンラインテスト環境へのリンクを含めてください!
- 標準的な抜け穴は禁止されています。
- これはコードゴルフなので、通常のゴルフルールがすべて適用され、最短のコード(バイト単位)が勝ちます。
例
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