Visual Basic .NET - ナンプレ解読プログラム - の為のツール
解読プログラムですが、本格的に解析部のプログラムに取り掛かっています。
自分の手順はこんな感じ。


  1.サンプル問題を見つつ、頭の中で解読手順の確認。
    こんな解き方できるかも?と思ったら2へ

  2.メモ帳片手に起こりうるパターンと、それらの共通の法則を割り出し、条件や拡張性、矛盾などを検証。
    ここでミスがあると後々痛いので、じっくり時間をかける。
    欠陥があったら1へ。

  3.効率よく解析する為のデータ構造や処理の流れを決定。
    (仕様書~フローチャート作成。でも面倒なので実際は頭の中で完結。注意したい事だけメモ)

  4.プログラム作成。(仕様書がないので注釈多めに)

  5.実際に問題を解かしてバグがないかデバッグ。バグフィックス。
    アルゴリズムの欠陥が見つかった場合は……暫く「ずーん…orz」としてから泣く泣く2へ。

  6.自画自賛しながら達成感に浸る(*´▽`)オレ、ガンバッタ


デバッグ(アルゴリズムも)する為には法則を活かせる問題が何パターンも必要になってくるんですが、
都合の良い問題がなかなか無い。
そこでデバッグ用に自前で作ることになるわけですが…、
ナンプレ問題を作るのって、思った以上に難しいんですよ。
単純解析では解けないけど、法則使えば解ける!て問題は作るのに時間がかかってしまう。

そこで! 問題を作るのではなく、候補データを作ることにしました。
「2行4列のマスには1か2が入る」って感じです。
3~9は入れられませんが、それを裏付ける確定数字があるわけではありません

候補データを作るツールがこれ。
e0012883_5424380.gif
その名も「ナンプレ候補作成くん」
青い部分の数字が、そこに入る可能性がある数字の候補です。
下のほうにピンク色になっている所がありますが、それは候補が1つしかないので、
その数字に確定するマスです。

デバッグではこの候補データを読み込み解析を始めます。
これを使えば、法則を活かせる条件が簡単に作成できる上に、
敢えて矛盾が起こる条件をピンポイントで作成することも可能に。


プログラムを作るために、そのツールをプログラムする。場合によっては更にツールの為のルーツを…。
世には出ることの無いツールくん。
あぁ、なんか「プログラムしてる!」って感じがするよね!


■更新2010/08/19
ナンプレ解読プログラムはこちら

[PR]
by angrywaves | 2009-06-20 06:14 | 趣味・娯楽


<< 親友が先立った… Visual Basic .N... >>