お絵かきロジックとは?

「お絵かきロジック」この単語を聞いたことはあるかなぁ~。。
私は聞いたことありませんでした。
見たら、「あー!それねっ!!」って感じのやつです。
それでは本日は「お絵かきロジック」について案内していきます。

お絵かきロジックってなに?

お絵かきロジック(おえかきロジック)は、縦と横の数字をヒントに塗り潰すマス目を割り出し、そのとおりに塗り潰していくと、最終的に絵(または文字)が浮かび上がるタイプのペンシルパズル。ののぐらむ、イラストロジック、ピクロスとも呼ばれている。

「お絵かきロジック」=「ののぐらむ」「イラストロジック」「ピクロス」

のことです。
私は「ののぐらむ」でピンと来ました!
皆さんはどれで来るでしょうか。

画像で確認するとこんな感じです。
nonogram

たぶん、「あー!!」ってなったかと思います!

遊び方

私が説明するまでもなく、wikipediaにめちゃ詳しくありましたので、そのまま引用させて頂いております。

基本的なルール

数字が単独である場合

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       ×            

と確定する。前項で述べた「黒マスの両隣を留める処理」により、左から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   ×   ×   ×   × × ×

と確定する。

分断されたマスの処理

長い空きマスの中ほどが白マスと確定すると、その左右をそれぞれ独立して処理することができる。

(例)

3 3                    

これは、第1段階では確定できなかった。しかし、

3 3           ×        

と確定した場合、確定した白マスの左右いずれか一方にすべての黒マスが入ることはあり得ないので、左右それぞれに1つずつ入ることになり、

3 3           ×        

と確定できる。

まとめ

「お絵かきロジック」とは「ののぐらむ」「イラストロジック」「ピクロス」のことである。
基本ルールをもとに、マスを塗りつぶしてイラストを作成していくパズルゲームになります。

オススメ「ノノグラム」スマホアプリ
https://play.google.com/store/apps/details?id=com.ucdevs.jcross&hl=ja

これであなたも「お絵かきロジック」が出来るようなったはずです!
早速、やってみましょう!