サイズ入力欄(小さいテキストボックス)にサイズを入れて、「Clear」ボタンを押すと、フィールドを指定したサイズで初期化します。
フィールドのマスをクリックしてキーボードの0〜3の数字を押すと、そのマスに数字が入ります。解答を表示するには、「>」「>>」「>>>」のボタンを押します。それぞれのボタンの意味は以下の通りです。
「>」 | 局所的に決定できるところだけ、1段階だけ解きます。 |
「>>」 | 局所的に決定できるところは全て解き、それがない場合は大域的に判断して1箇所だけ解きます。 |
「>>>」 | 決定できるところを全て解きます。 |
局所的に決定できるところに対し、自動的にどのような操作をするか選択できます。各項目の意味は以下の通りです。
「None」 | 何もしません。 |
「Show」 | 局所的に決定できるところを表示します。表示された場所をShiftキーを押しながらクリックすると、その部分を解きます。 |
「Solve」 | 局所的に決定できるところは、自動的に全て解きます。 |
「Save」ボタンを押すと、入力したマスの数字のデータをデータ入力欄(大きいテキストエリア)に出力します。このデータとフィールドのサイズを別のところに保存しておけば、同じフィールドを再現できます。再現するときは、サイズ入力欄とデータ入力欄に保存したデータを入れ、「Clear」ボタンを押します。
仮定による解答決定はしていないので、完全に解けない場合があります。スケーラビリティを考慮していないので、あまり大きいフィールドにはしない方が無難です。
ソースを暫定的に公開します。説明がないと分かりづらいソースですが、先にソースだけ公開します。
サンプルデータ:
縦:11、横:11
-3-0-1-2-3- 3--2-2-2--1 --1--2--3-- 21---1---32 -----1----- 23013-32032 -----3----- 32---2---23 --3--2--3-- 3--0-3-0--3 -1-1-1-3-2-