8-Queenパズル

8クイーンパズルとは、チェスのクイーンを8x8のチェス盤に、8つのクイーンを互いに取られないように配置するパズルです。
この問題は、再帰処理の練習問題としてはとても有名ですね。

ご参考 Wikipedia「エイト クィーン

もちろん、8x8限定ではなく、任意の NxNに対応できるようなプログラムとして作成しました。

NxNのチェスの盤は、1次元の配列として表現しています。
 
LINQの練習を兼ねて、IEnumerable<T> を多用しています。
Chessboardクラスは、もっと簡単になるような気がします。
特にクイーンの通り道である縦横斜めを求める部分はもう少し簡単にならないものかな。

アルゴリズム的には高速化などの手法を採っていないので、オーソドックスなものだと思います。

ちゃんと 92通りの解が求まっているので間違ってはいないと思います。