ナンプレ(数独)の解法過程を表示するCommon Lispプログラム
「NumberPlace.lisp」は数独(ナンバープレイス)の解法過程を表示するプログラムです。解法過程での手筋の発見・適用の難易度を数値化したグラフを表示する機能もあります。
Common Lisp で記述してあるので実行には Common Lisp の処理系が必要です。以下のリンクからダウンロードできます。
CLISP公式サイト http://clisp.cons.org/
Windows用バイナリ
http://sourceforge.net/project/platformdownload.php?group_id=1355&sel_platform=8418
NumberPlace.lispを実行するために、CLISPのインストール手順に従って処理系を導入して下さい。導入したらCLISPのアイコンをクリックしてシステムを実行後、CLISPのプロンプトから本プログラムをロードします。本プログラム(NumberPlace.lisp)を
c:\Users\daigo\Documents\Lispに置いているのであれば次のようにします。
> (load "c:/Users/daigo/Documents/Lisp/NumberPlace.lisp")
各種の動作設定が可能ですが、お勧めは使用を許可する手筋のレベルを設定しておいて
から「teach」という関数を実行することです。
> (machine-level)
> (teach sample-board-6)
解法過程の表示設定を指定する場合は
> (teach sample-board-6 11)
とオプションの第2引数で指定します。その他の概要は関数
> (help)
を実行すると表示されます。
実装している手筋は以下のとおりです。
・基本手筋(置く手筋)
・単独候補(行・列・ブロック内で唯一の候補なら確定値)
・セル・ユニーク(グループ内で唯一可能な確定値)
・ローカライゼーション
・tuples(n 国同盟=無制限)
・n-grid(x-wing, swordfish, jellyfish,・・・の一般形)
・Almost Locked Set(XY-Wing などの Wing 系手筋の一般形)
・Grid-Based Almost Locked Set(Sashimi x-wing などの Sashimi 系手筋の一般形)
・Advanced Coloring(複数の候補数字を対象としたグラフ彩色手法)
・配置確定法(Pattern Overlay Method)
・Nice Loop(連鎖セル数=無制限)
・試行錯誤(仮置き)法
もう少し詳しい説明が添付のreadme.txtにありますので、そちらをご参照下さい。
(C) Isao Daigo, 著作権は GNU GPL2 に従います。
ソフト名: | NumberPlace.lisp |
---|---|
動作OS: | 汎用 |
機種: | 汎用 |
種類: | GPL |
作者: | daigo |