Mathematica Sudoku solver の最近の課題

Mathematica Sudoku solver の最近の課題を書いて整理しようと思う。

課題 1 Sudoku の数字の色

 Sudokuwiki.org を読みながらそのロジックをMathematica で表現してプログラムを作っている。最近、ウェブを読み直していたところ、数字が濃い紫色と青色の2種類があることに気がついた。濃い紫色の数字は最初の数字で、青色の数字は解いて見つけた数字になっている。 このように2色の数字を使って Sudoku を表示することが一つの課題です。

 現在使っている表示する関数は次になっている。この関数の引数として、はじめの数字( first )と後から入れた数字( rest) を指定すれ良いと思われる。すなわち、次の形にすればよいと気がついた。

plotGame[ ini_?MatrixQ ]
(* 次に変更 *)
plotGame[ first_?MatrixQ, rest_?MatrixQ ]

更に、候補図の数字についても2色で表示することが課題です。

plotMapGrid[ ini_?MatrixQ, mapini_List ]
(*  次に変更  *)
plotMapGrid[ first_?MatrixQ, rest_?MatrixQ, mapini_List ]

課題 2 PointingPairs の中から候補の削除を伴うものに限る

 Sudoku 3,010 hard the guardian のページに載せている Pointing Pairs をここに示す。候補図に緑色のPointing Pairs が多数表示されている。Pointing Pairsは候補の削除を伴うものと、削除を伴わないもに分類できる。Sudoku を解く上で有効な「候補の削除を伴うもの」を選び出すこと、これがもう一つの課題である。このような関数を作りはじめたところです。この成果のグラフを最後に示します。

目次へ