ナンプレを速く解くコツ

ナンプレを解けるようになると、次に気になるのがタイムです。同じ難易度でも、日によって5分で終わることもあれば、15分かかることもあります。この差はどこから来るのでしょうか。
私は、速い日と遅い日の差の多くは、計算や読みの速さではなく、「どこを見ているか」と「どれだけ戻っているか」から来ると考えています。この記事では、その二つを減らすためのコツを順にまとめました。基本の手筋はナンプレ(数独)の解き方:初心者が最初に覚える基本の手筋に書いたので、ここでは、知っている手筋をどう速く使うかを中心にします。言葉は前の記事と同じく、横の並びを「行」、縦の並びを「列」、3×3の太枠を「ブロック」と呼びます。
速さより先に正確さ
最初に、順番の話をしておきます。私は、速さより先に正確さを固めるほうがよいと考えています。
ナンプレでいちばん時間を失うのは、間違いです。1つ間違った数字を置くと、それをもとに決めたマスが次々に間違い、どこかで矛盾が出ます。そこから原因のマスまで戻って直すと、間違えなかった場合の何倍も時間がかかります。最後まで気づかなければ、解けません。
だから、タイムを縮めたいなら、まず「間違いなく最後まで解ける」状態を作ることです。数字を置く前に、「なぜここなのか」を一言で言えるか。言えないなら、まだ置かない。これだけで、遅い日のタイムが大きく変わることがあります。
見る順番を決めておく
速く解く人と遅く解く人の差は、盤面のどこを見るかを迷う時間に出ると思います。見る順番を決めておくと、その迷いが減ります。
多く出ている数字から
最初は、手がかりの中でいちばん多く出ている数字から探します。たとえば7が6個出ていれば、7が入るブロックは残り3つしかありません。ほかのブロックから消える線も多いので、場所が決まりやすくなります。
3つのブロックの帯で見る
ある数字を探すとき、ブロックを1つずつ見るより、横に並んだ3つのブロックを一組で見るほうが速いと私は考えています。この一組を、ここでは「帯」と呼びます。
・ ・ ・ | ・ 7 ・ | ・ ・ ・
・ ・ 7 | ・ ・ ・ | ・ ・ ・
・ ・ ・ | ・ ・ ・ | ・ ・ ・
上の帯では、左のブロックの7は2行目に、真ん中のブロックの7は1行目にあります。7は1つの行に1つしか入らないので、右のブロックの7は、残った3行目のどこかに決まります。3つのブロックのうち2つに同じ数字があれば、3つ目のブロックのその数字は、残りの1行に入ります。あとは、その行の3マスのうち、列に7がないマスを探すだけです。
同じことは、縦に並んだ3つのブロックでもできます。横の帯が3つ、縦の帯が3つ。この6つの帯を、数字ごとに順に見ていきます。慣れてくると、帯を見た瞬間に「この数字は3つ目のブロックのこの行」と目に入るようになります。
置いた数字から続けて探す
数字を1つ置いたら、すぐに次の数字を探しに行くのではなく、いま置いた数字が影響する所を先に見ます。
- いま置いた数字と同じ数字を、ほかのブロックでもう一度探す
- いま置いたマスの行・列・ブロックに、残りの空きが1つか2つしかなくなっていないか見る
数字を置くと、その周りの状況が変わります。変わった直後の場所に、次の答えがあることが多いのです。置くたびに目を盤面の別の場所へ飛ばすより、置いた所から続けて探すほうが、目の動きが少なくてすみます。
メモは少なく、正しく
メモ(候補数字)は、書けば書くほど時間がかかります。速く解くためには、メモの量を減らすことが大事です。
私は、メモを書かずに進められる所まで進めてから、手が止まった所で書きはじめるのがよいと考えています。そのうえで、全部のマスに書くのではなく、ブロックの中である数字が入る場所が2か所に絞れたときだけ、その2か所に書く、という軽い書き方から始めます。それで進まなくなってから、空きの少ないブロックの候補を全部書きます。
メモの書き方と消し方はナンプレのメモ(候補数字)の書き方に書きました。
止まったときに、同じ所を見ない
速く解けない日には、たいてい止まっている時間があります。止まると、同じブロックを何度も見直してしまいがちです。
止まったら、さっきと違う方法に切りかえます。数字からマスを探していたなら、マスから数字を探す。ブロックで見ていたなら、行や列で見る。それでも見つからなければ、メモを書く段階です。止まったときの見直し方はナンプレで行き詰まったときの見直し方にまとめました。
タイムとの付き合い方
タイムを気にしすぎると、ナンプレが楽しくなくなります。私は、タイムとは次のように付き合うのがよいと考えています。
最速より平均を見る。 最速のタイムは、問題がたまたま自分に合っていた日の記録でもあります。平均のタイムのほうが、実力の変化をよく表していると思います。
難易度ごとに見る。 「かんたん」と「むずかしい」では、同じ人でもタイムがまったく違います。比べるのは、同じ難易度の自分の記録どうしです。
遅い日があってもいい。 疲れている日や、問題との相性が悪い日は、誰でも遅くなります。1回の遅いタイムは、上達が止まった証拠ではありません。
タイムを見ない日をつくる。 速さを意識すると、間違いが増えることがあります。ときどきタイムを気にせず、一つ一つの数字の理由を確かめながら解く日をつくると、正確さが戻ってきます。
Sudoku365 で記録を見る
Sudoku365 は、私が作っているナンプレのアプリです。iPhone、iPad、Android で遊べます。
ゲーム画面にはタイマーがあり、解いている時間が表示されます。クリアすると、その時間が「スタッツ」に記録されます。スタッツは「かんたん」「ふつう」「むずかしい」「エキスパート」の難易度ごとに、「クリア数」「ベストタイム」「平均タイム」を表示します。ベストタイムは、その難易度でいちばん短かったクリアの時間です。上に書いたとおり、ベストタイムと一緒に平均タイムを見ると、実力の変化が分かりやすいと思います。
速さにかかわる設定もあります。「配置済み数字ボタンを隠す」(初期はオン)にしておくと、盤面に9回出た数字のボタンが消えるので、残っている数字がひと目で分かります。「メモから数字を消す」(初期はオン)にしておくと、正しい数字を置いたとき、同じ行・列・ブロックのメモが自動で消えます。「間違えた数字を表示」(初期はオン)では、間違えた数字がすぐに表示され、ミスとして数えられます。ミスは3回までで、超えるとゲームオーバーです。
毎日1問の「デイリーチャレンジ」は、全世界で同じ問題です。iPhone と iPad では、解いた時間が Game Center の「世界ランキング」に送られ、同じ日に同じ問題を解いた人と比べられます。Android ではランキングは使えません。
4つの難易度に300問ずつ、計1200問が入っています。アプリは無料で、広告が入ります。「広告を削除」の買い切り(300円)で広告を消せます。スタッツの見方はSudoku365 活用のヒントにも書きました。
速く解くことは、たくさんのことを速くすることではなく、迷う時間と戻る時間を減らすことだと私は考えています。正しく置いて、置いた所から続けて見る。それをくり返すうちに、タイムは後からついてくると思います。
