お絵かきロジック
出典: フリー百科事典『ウィキペディア(Wikipedia)』
お絵かきロジック(おえかきロジック)は、縦と横の数字をヒントに塗り潰すマス目を割り出し、そのとおりに塗り潰していくと、最終的に絵(または文字)が浮かび上がるタイプのペンシルパズル。ののぐらむ、イラストロジック、ピクロスとも呼ばれている。
目次 |
[編集] 生い立ち
お絵かきロジックは西尾徹也といしだのん(石田伸子)の二者が独自に発案した。同時期に別々に発表したため一時期論争を起こしたが、結局は殆ど同じ時期に別々に創案したということが分かり論争もおさまった。
西尾は、マトリクスを使用したロジックパズルのマトリクスを利用して絵を描くことを考えた。一般的なロジックパズルにおいてはマトリクスには○か×を埋めるが、この○と×を黒マスと白マスにすることを考え、ヒントの出し方を考えて現在のルールを完成させた。
石田は1987年に、ビルの窓を利用して絵を描くという企画で入選した後、窓の絵=格子の上に絵を描くパズルを考えた。この石田の思考の過程の一部は彼女の著書である「ののぐらむ」で見ることができる。
このように二者が独自の過程を経て偶然にも同じ形式の問題に落ち着いた。後に西尾は問題を提供している『パズラー』誌で、石田はパズルの連載をしていた『社会新報』誌で問題を発表することになるが、偶然にも両誌の発行日は共に1988年7月2日であった。
西尾は『パズラー』でこのパズルを発表した際に、このパズルを読者からも募集した。これにより高い人気を得、同誌から多くの作家が生まれることになった。一方石田の作品は、イギリスのダルゲッティによりののぐらむと命名されて『サンデー・テレグラフ』紙で連載されることになった。これにより、ののぐらむはイギリスで人気を得ることになる。また、日本においては毎日新聞の日曜版でも連載されていた(2006年現在、連載終了)。
任天堂ではピクロス(ピクチャー・クロスワード)の名を冠してパズルゲーム化。1995年にゲームボーイ用ソフト『マリオのピクロス』を発売、以降シリーズ化されている(ピクロスの項を参照)。
[編集] 基本的なルール
[編集] 数字が単独である場合
1個の数字は連続して黒く塗り潰すマス目(以下黒マスという)の数を表している。但し、場所までは表していない。
(例)
3 |
に対しては、次の3通りの可能性が考えられる。
3 | |||||
3 | |||||
3 |
[編集] 数字が複数ある場合
[編集] 「白マス」について
数字が複数ある場合、それぞれが連続で黒マスの数を表し、間には必ず塗り潰さないマス(以下白マスという)が最低1つ入る。但し、白マスの場所と、間に幾つ入るかまでは表していない。
(例1)
1 | 1 |
に対しては、次の6通りが考えられる。
1 | 1 | |||||
1 | 1 | |||||
1 | 1 | |||||
1 | 1 | |||||
1 | 1 | |||||
1 | 1 |
(例2)
1 | 1 | 1 |
に対しては、次の1通りしか考えられない。
1 | 1 | 1 |
[編集] 順番について
複数の異なる数字がある場合は、その順番が黒マスの順番を表している。
(例)
3 | 1 | |||||
1 | 3 |
に対しては、正解はそれぞれこのようになる。
3 | 1 | |||||
1 | 3 |
なお、横の場合のみを示したが、縦の場合も同じである。
(例)
2 |
1 |
に対しては、次の3通りが考えられる。
2 | 2 | 2 |
1 | 1 | 1 |
基本的なルールはこれだけである。
[編集] 解く時の定石
ここでは、1列に10マスあるパズルを解くことを想定している。また、スペース節約のため横の列の場合のみを示すが、縦の場合も解き方は同じで、ここの総ての文章を、「左」を「上」に、「右」を「下」に読み替えれば縦の場合の解き方になる。
[編集] 第1段階
第1段階では、解き始めで何も手掛りがない状態なので、手掛り無しでも黒マスか白マスか判る所から確定していく。ここでの作業を漏らすと、途中で行き詰まるので、確実にやっておかなくてはならない。
[編集] 0と最高値を処理
先ず初めに行うのは、0と最高値(ここでは10)から処理するということである。何も考えなくても0の列は全部白マスであり、最高値の列は全部黒マスであることが明らかなためである。
10 |
白マスであることが確定したマスには、下のように印(よく使われるのは×)を付けておくとよい。ただ、あまり大きな印をつけると、出来上がった時に絵が見辛くなるので要注意である。
0 | × | × | × | × | × | × | × | × | × | × |
[編集] 足して最高値になる列を処理
複数の数字がある列で、数字と数字の間に白マスが1つと仮定して計算すると、ちょうど最高値と同じ数になる列は、1通りの可能性しかないので数字と数字の間に1マスだけ白マスを入れて塗り潰す。
(例)
7 | 2 |
は、7と2の間には白マスが1マスしかないと仮定すると、7+1+2=10(1は白マスの分、以下同じ)で最高値と同じ値になるから、次の1通りしかない。
7 | 2 | × |
この処理ができることは数字が細かくなればなるほど気づきにくいので、注意が必要である。例えば次のようなもの。
4 | 2 | 2 |
は、4+1+2+1+2=10だから、
4 | 2 | 2 | × | × |
である。もっと細かい場合もある。
1 | 2 | 1 | 1 | 1 |
は、1+1+2+1+1+1+1+1+1=10だから、
1 | 2 | 1 | 1 | 1 | × | × | × | × |
である。
[編集] 左右につめた時に生じる共通の黒マスを処理
例えば、次の列はどう処理するか。
8 |
この列には次の3通りが考えられる。
8 | ||||||||||
8 | ||||||||||
8 |
この場合はどうしようも無いかというと、そうでもない。よく見ると、どの場合も真ん中の6マスは必ず塗られていることがわかる。従って、この列はこの様に一部が確定する。
8 |
もっと言えば、一番左のマスが黒マスだと仮定した場合と、一番右のマスが黒マスだと仮定した場合で、共通する黒マスは確定する。
(例)
6 |
これを、一番左が黒マスだと仮定すると、
6 |
逆に一番右が黒マスだと仮定すると、
6 |
2つを比べて、共通して黒マスになっているのは、
6 |
となり、黄色で示した中央の2つが共通するので、次の通りマスが確定する。
6 |
複数の数字がある場合についても、数字と数字の間の白マスを1マスと仮定すれば同じ事ができる。但し、左と右から塗った場合を比べた時に、黒マスで共通していても、別の数字に由来する場合は共通とは言わない(下の例を参照)。
(例)
4 | 2 |
一番左が黒マスと仮定して、
4 | 2 |
一番右が黒マスと仮定して、
4 | 2 |
2つを比べると、共通して黒マスになっているのは、
4 | 2 |
ここで、黄色のマスは同じ「4」で塗られているが、緑のマスは一番左から塗った場合は「2」、一番右から塗った場合は「4」で塗られているので、黄色のマスのみ確定である。従って次のように確定する。
4 | 2 |
上図のような場合の可能性を考慮すると緑色のマスは確定されないことがわかる。
4 | 2 |
[編集] 第2段階
第1段階で確定出来るのはここまでである。後は第1段階で確定したマスを手掛りに、更に確定したマスを増やしていく作業に移る。第2段階で確定したマスも、新たに確定したマスを増やす手掛りになるので、解き終わるまでここの作業を繰り返すことになる。なお、これ以降は、既に確定している黒マスは茶色のマスで、既に確定している白マスは茶色の×で、新たに確定した黒マスと白マスはそれぞれ黒マスと黒い×で表すことにする。
[編集] 全黒マス、全白マスが確定した列の処理
数字の合計と既に確定した黒マスの数が一致する場合、まだ確定していないマスは全て白マスに確定する。また、まだ確定していないマスと黒マスに確定したマスの合計が数字の合計に一致した場合は、まだ確定していないマスは黒マスに確定する。
(例1)
1 |
この場合、数字「1」に対して既に1つの黒マスが確定しているので、これ以外の黒マスは存在しない。従って、
1 | × | × | × | × | × | × | × | × | × |
と白マスが確定する。
(例2)
1 | 1 | 1 | 1 | × | × | × | × | × | × |
この場合、この列には合計4マスの黒マスがあるのだから、まだ確定していないマスが黒マスでないと、黒マスの数が足りなくなってしまう。従って
1 | 1 | 1 | 1 | × | × | × | × | × | × |
と黒マスが確定する。
[編集] 黒マスの両隣を留める処理
数字と数字の間には白マスが1マス以上入るので、黒マスの連続が留まっていることがわかれば、その両隣は白マスに確定である。
(例1)
1 | 2 | 1 |
この場合、すでに塗られている黒マスは「2」に由来して連続していることは明らかである。数字と数字の間は必ず1つ以上の白マスがあるので、
1 | 2 | 1 | × | × |
と白マスが確定する。
(例2)
1 | 2 | 1 |
(例1)の場合と似ているが、今度は既に確定しているマスは「1」に由来するものか「2」に由来するものか、この時点では明らかでないので、新たに確定できるマスはない。
[編集] 端の処理
一番外側が確定すると、外側の数字の表す黒マスは確定である。
(例1)
3 | 2 |
のように一番左が確定している場合、自動的に「3」が表しているのは
3 | 2 | × |
と確定する。前項で述べたd「黒マスの両隣を留める処理」により、左から4番目に×をつけることも忘れてないでほしい。
(例2)
3 | 2 |
と、一番右が確定している場合は、自動的に「2」が表しているのは、
3 | 2 | × |
と確定する。右から3つめの×は「黒マスの両隣を留める処理」によるものである。
[編集] 狭小マスの処理
連続して取れるマスが数字より少ない場合は、その部分は白マスだと確定する。
(例1)
3 | × |
は、右端から黒マスをとると2マスしか取れないので、右端には黒マスは入らない。従って
3 | × | × | × |
と確定する。
(例2)
3 | × | × |
は、×と×の間には2マスしか取れないので、そこには黒マスは入らない。従って
3 | × | × | × | × |
と確定する。
[編集] 確実に黒マスが届くマス、届かないマスを処理
既に黒マスが確定しており、数字と見比べて届かないマスがある場合は、そこは白マスに確定する。また、幾ら端に寄せても黒マスがはみ出す部分については黒マスに確定である。
(例1)
2 |
この場合、可能性は次の2通りしかない。
2 | ||||||||||
2 |
従って、次の様に確定する。
2 | × | × | × | × | × | × | × |
(例2)
5 |
この場合、右端から黒マスを取ったとしても、必ず右から5マス目に黒マスが届いてしまう。また、確定しているマスから左へ5マス取ったとしても、左から3マス目まで黒マスは届かないことが明らかである。従って
5 | × | × | × |
と確定する。
(例3)
3 | 4 |
この場合、右側の黒マスから左側に目一杯4マス分伸ばしたとしても、2つの黒マスは繋がらない。また、その間にはルールにより最低1つの白マスが必要なので、左から4マス目は4のマスとしては埋められない。となれば、4の左端が右にずれるので(左から5マス目)、そこから右に数えた4マス目が黒マスに確定する。
3 | 4 |
[編集] 端や最高値の更新に対する処理
外側の白マスが連続して確定すると、その分だけ端が内側に寄ったものと見なす事が出来、それに伴ってその列の最高値がそれだけ少なくなったと見なせる。そこで、更新された端や最高値を使って黒マスと白マスを確定する。
(例1)
5 |
これは、第1段階では確定できなかった。しかし、
5 | × |
と確定した場合、右端が1つ分内側にずれたものと見なす事が出来、右から2つめのマスを新しい右端と考えて「左右に詰めた時に生じる共通の黒マスの処理」を行うと、
5 | × |
と確定できる。
(例2)
1 | 1 | 1 | 1 |
これは、第1段階では確定できなかった。しかし、
1 | 1 | 1 | 1 | × | × | × |
と確定すると、この列は最高値が10から7に下がったと見なせる。すると、1+1+1+1+1+1+1=7となり、最高値と一致するので、
1 | 1 | 1 | 1 | × | × | × | × | × | × |
と確定する。
[編集] 解決の流れ
[編集] 多色化
基本ルールでは白黒の絵しか描けないため、複数の色を使用できるようにしたルールも存在する。
最も一般的なものは、数字ごとに色が指定されていて、数字に指定された色で塗る物である。この場合、同じ列に数字が複数あっても違う色なら間に空白が入らなくともよいというルールが追加される(同色なら基本ルール同様1マス以上あける)。
解く際には以下の点に注意する必要がある。
- 数字と数字の間に空白が入らない場合があるので、確定するマスが少なくなる。
- 各色がどの列で使用されているかを確認する。これにより、その色で塗られない範囲が分かり、そこから決まる場合がある。
[編集] 問題作成
ただドット絵を描いても、必ずしも問題として成立するとは限らない。答えが1つに絞れない場合があるためである。コンピュータ上で問題作成ができるソフト等では、問題として成立するかどうかを自動的に判定してくれる機能がついているものもある。
[編集] 三角形のマス
塗りつぶすマスを、正方形を斜めに切った三角形にしたルールも存在する。 このようなものをダイヤモンドロジックあるいはダイヤロジックなどと呼ぶ。