Skip to content

Latest commit

 

History

History
146 lines (123 loc) · 9.54 KB

usage.md

File metadata and controls

146 lines (123 loc) · 9.54 KB

数独システムの使い方 その1

1. メイン画面

メイン画面

(1) 画面中央

a. 数独問題表示画面
9X9=81個のマスを表示
赤いマスは現在のポインタの位置を示します
b. [カメラで撮影!]ボタン
撮影画面に移行します

(2) 画面右側

a. [ALL CLEAR]ボタン
マスに表示されている内容を全てクリアします
b. [1]~[9]ボタン
ポインタ位置のマスに数字を入力します
c. [SPACE]ボタン
ポインタ位置のマスの数字を消します
d. [Message CLEAR]ボタン
画面左下に赤字で表示されるメッセージを消します
e. [HOME]と4つの矢印
ポインタ(赤いマス)の位置を移動します

(3) 画面左側

a. [画像読み取り!]ボタン
撮影した数独問題画像を読み取ってデジタル化しマスに表示します
b. [問題を解く!]ボタン
マスに表示されている問題を解いて答えを表示します
c. [問題を作る!]ボタン
数独問題を作成する画面に移動します
d1. [追加保存!]ボタン
マスに表示されている数独問題を追加保存します ボタンの下に表示されている分母の数字が一つ増えます
d2. [上書き保存]ボタン
マスに表示されている数独問題をボタンの下に表示されている分子の番号に上書き保存されます。今まで保存されていたデータは消えますので注意してください
d1,d2とも電源を切っても現在マスに表示されている内容だけは保持されます
e1. [問題を読む!]ボタン
ボタンの下に表示されている番号の問題を読み出してマスに表示します
最初にマスに表示されていた内容は保存しておかないと消えます
e2. [表示切替]ボタン
問題の表示と答えの表示が交互に切り替わります ただし答えは保存されていないと表示されません
f. [⬅<-],[->]ボタン
保存された問題を読み出す時の番号を指定します
g. f.のボタンの間にあるa/b 表示
a=読み出したい問題の番号
b=保存した問題のトータル数
h. メッセージ(赤字で表示)
各作業の結果をメッセージとして表示します

2. ヒント画面

ヒント画面

(1) ヒント画面

9X9X9=729個のマス。詳細はalgorithm.md参照。

(2) ヒントボタン

a. [単独不確定]ボタン  単独不確定可能なノードを黄色で表示します
b. [座席予約]ボタン   座席予約されているコアノードを黄色で示します
c. コア数N       fjのヒントを出すためのコアマトリクス数を指定します
d. [<]と[>]ボタン    Cの数を変更します。最大値は6、最低値は2です
e. [隠れ]ボタン     N国同盟の場合、出すヒントが”隠れ”なのか通常なのか指定します
f. [N国同盟(行)]ボタン  N国同盟で、行方向にマスクがかかる場合のコアノード(黄色)とマスクされるノード(薄いブルー)を表示します
g. [N国同盟(列)]ボタン  N国同盟で、列方向にマスクがかかる場合のコアノード(黄色)とマスクされるノード(薄いブルー)を表示します
h. [N国同盟(blk)]ボタン N国同盟で、ブロック方向にマスクがかかる場合のコアノード(黄色)とマスクされるノード(薄いブルー)を表示します
i. [NXN(行)]ボタン   四辺形の定理で、行方向にマスクがかかる場合のコアノード(黄色)とマスクされるノード(薄いブルー)を表示します
j. [NXN(列)]ボタン   四辺形の定理で、列方向にマスクがかかる場合のコアノード(黄色)とマスクされるノード(薄いブルー)を表示します
k. [強ループ]ボタン   強弱リンクのループが成立した場合、ターゲットノードがTrueの場合のループを構成するノードを黄色で表示します
l. [弱ループ]ボタン    強弱リンクのループが成立した場合、ターゲットノードがFalseの場合ループを構成するノードを黄色で表示します
<XYX-WINGなどの解法はk,jに含まれます>
m. [ヒントクリア]ボタン  黄色のヒント表示を全てクリアします
n. [元に戻る!]ボタン    メイン画面(7.1)に戻ります o. [ヒント適用!]ボタン b
jで表示されるマスクされるノードを実際にマスクします(薄いブルーが赤に変わります)。これはメイン画面に戻るとリセットされ、未確定ノード(ダークグリーン)に戻ります

  • ヒント画面の具体的な使い方については<usage2.md>をご覧ください。

3. 問題作成画面

(1) 問題作成画面1
作成開始前
問題作成画面1

(2) 問題作成画面2
作成開始後
問題作成画面2

a. [◀️]と[▶️]ボタン
作成しようとする問題のレベルを指定します

b. [作詞開始]ボタン
問題の作成を開始します。
開始すると画面2のようにプログレスバーと『現在時間』『開始時間』『経過時間(分)』の三つがが表示されます
c. [元に戻る]ボタン
[作成開始]ボタンを押す前なら、このボタンを押すとメイン画面に戻ることができます

*問題作成時間について

問題の作成時間は作成しようとするレベルによって違います。私のベンチマークによるとおおよそ下記の時間がかかりました。レベルが高い問題ほど時間がかかりますが、レベルの高い問題でも偶然早くできることがあります。

なお、level-5以上はコード上は可能なのですが、時間がかかりすぎるので今のところ解放していません。
level-3やlevel-4の場合はバッテリーが持たない場合もありますので、ACアダプター(RapsberryPiに付属)を使った方が良いかもしれません。

-1 level-1    数分
-2 level-2    数分〜1時間
-3 level-3    1時間前後
-4 level-4    1時間以上〜数時間

*メッセージの意味について

問題作成が完了するとlevel表示に続いて解き方を表すメッセージが表示されますが、字数を少なくするために略号を使っています。 意味は下記の通りです。

  • SR-->座席予約
  • H2R-->H:隠れ、2:コアの大きさが2X2、R:列
  • 2X2L-->2X2:井桁の大きさ、L:行方向にマスク

4. カメラでの撮影

基本画面で[カメラで撮影!]ボタンを押すと、下の画面に切り替わります。
撮影画面 1
ここで[シャッタ^を押す!]ボタンを押すと画像が保存され基本画面に戻ります。 撮影にはコツが入りますので、[カメラでの撮影のコツ]<usage3.md>を参照してください。

5. 画像読み取り

画像読み取り画面 1
基本画面に戻ったら[画像読み取り]ボタンを押すと下の画面に切り替わります。

a. [読み取り開始]ボタン このボタンをクリックすると画像の解析を開始します。
b. [元に戻る]ボタン
[読み取り開始]ボタンを押す前なら、このボタンを押すとメイン画面に戻ることができます
画像読み取り画面 2

読み取り開始ボタンを押すと上の様にプログレスバーが表示され、『画像OCR』の下にある9X9のマスのランダムな位置に背景色が現れます

この段階は数分かかります
『撮影した画像』を見て問題のワクがはみ出ていたり、数字がよく写っていないようであれば[元に戻る]ボタンを押して撮影し直して下さい 強引に[読み取り開始]ボタンを押してもプログラムがOCR不可と判断し、基本画面に戻ってしまいます

画像読み取り画面 3
ボタンは表示されません
画面右にOCR実行中の『分割画像』が表示され、数字が読み取られたワクから順に背景色が赤に変わり、数字が表示されていきます。

画像読み取り画面 4
9X9のワクが全て背景色が赤になり、読み取った数字が表示されます
[元に戻る]ボタンを押すと基本画面に戻りますので、読み取った各マスの数字が違っている場合は基本画面で修正して下さい。

7. OCRの正解率

上の図では4つのカラムが誤認識されていますので、正解率は、
77/81=0.95(95%)
となりました。この数字は諸条件によって変わってきます。できるだけ、[カメラでの撮影のコツ]<usage3.md>に書いたことを守ってください。特に本を直接撮影するとページが丸まっていることが多いので、三次元的な歪みが発生し、補正ができなくなりますので注意が必要です。