2012年8月15日水曜日

VBAで作る数独プログラム(Font制御)

「次の一手」の数独プログラムをExcel 2010を使って作成する方法について取り上げます。問題をインプットしておけば、iPhon アプリと同様に使うことができます。

 プログラム言語に VBA ( Visual Basic for Application ) を使うのは、どのパソコンにも付属ソフトとして、Excel が手軽につかえることや数独の盤面が容易に表計算画面に表現できることなどいろいろあります。   http://numberplace.blogspot.jp/2009/05/vba.html

便利は機能の一つは、Font でオブジェクト指向プログラムを制御できることです。前回の問題を再掲載します。

 
この盤面では、問題として最初から与えられている数字、表出数(ヒント、Givens)は、赤色(ColorIndex=3)、Font.size=18 で表されています。その後、わかったAnswer は、青色(Colorindex=5), Fontsize=14 で示されています。(実際に解く時に、同じ大きさの同じ色になるように、問題を入力した段階で、空白セルのFontを素のように設定しておきます)

ここで、行き詰まり「次の一手」を見る前に、(あるいは後に)候補の一覧表(candidate matrix を略して、candy matrix )を見たい時には、present_candy のマクロを使い表示したのが上の盤面です。
空白セルに入る候補の数字は、ピンク(ColorIndex=7)、Font.size=12で示されています。

候補を盤面から消したいときには、Clear_candy  をクリック、最初に戻りたければ、Back_to_original
をクリックします。

 この字体は Time New Roman ですが、字体によっても、Font 制御が可能ですし、さらには、セルの色 (Interior.ColorIndex)によっても多彩な識別色の表示が可能になります。

これからも、ときどき数独プログラムを書く時参考になる豆知識を掲載しますので、PC好きの高校生や情報処理の単位を取得した大学生の方は演習のつもりでチャレンジしてみてください。まずは、Sheet 1に盤面を作ってみてください。

0 件のコメント:

コメントを投稿