No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
README.md
eightqueens.clj

README.md

Clojure-8QueensSolver

8クイーン問題の回答プログラムです。

8x8マスの盤面において縦・横・斜めの線上に駒(クイーン)が1つしか無いように8個の駒を配置するという問題です。並べ方は複数通りありますが、そのうちの1通りを求めます。具体例を見た方が分かりやすいですね。マス目を減らして4クイーン問題の解答を以下に示します。

+-+-+-+-+
| |Q| | |
+-+-+-+-+
| | | |Q|
+-+-+-+-+
|Q| | | |
+-+-+-+-+
| | |Q| |
+-+-+-+-+

なお、Newral技術者ブログというサイトでプログラミングの過程を記事にしております。是非ご覧下さい。

###記事へのリンク
Clojureで8クイーン問題にチャレンジ(Part1)
Clojureで8クイーン問題にチャレンジ(Part2)
Clojureで8クイーン問題にチャレンジ(Part3)
Clojureで8クイーン問題にチャレンジ(Part4)
Clojureで8クイーン問題にチャレンジ(Part5)

###ソースコードガイド

eightqueens.clj (上記記事でプログラミングしたソースコード)

###実行方法

eightqueens.cljはleiningenというclojureのビルドツールをインストールしてlein replでREPL環境を立ち上げて実行します。

bash-3.2$ lein repl
user=> (load-file "eightqueens.clj")
#'user/answer
user=> (answer)
((1 5) (2 1) (3 4) (4 6) (5 8) (6 2) (7 7) (8 3))
user=> (quit)

結果は8個のQueenの位置をリストにして返します。アスキーアートで並べてみると以下のようになります。

+-+-+-+-+-+-+-+-+
| | | | |Q| | | |
+-+-+-+-+-+-+-+-+
|Q| | | | | | | |
+-+-+-+-+-+-+-+-+
| | | |Q| | | | |
+-+-+-+-+-+-+-+-+
| | | | | |Q| | |
+-+-+-+-+-+-+-+-+
| | | | | | | |Q|
+-+-+-+-+-+-+-+-+
| |Q| | | | | | |
+-+-+-+-+-+-+-+-+
| | | | | | |Q| |
+-+-+-+-+-+-+-+-+
| | |Q| | | | | |
+-+-+-+-+-+-+-+-+