二国同盟Part2 java支援プログラム
二国同盟が成立するパターンの探索にjava programを使います。
二国同盟には、縦列/横行/ブロックの3種類があります。ブロック以外の二国同盟については下のリスト。
このjavaプログラムの使い方の概略:ナンプレ盤面の下の数字(1〜9)を押すと、レーザー発射法が自動表示され、←ヒントが表示されます。その数字が入れないマスの背景は青、入れるマスは白になります。
空きマスをクリックすると、「2379だけ可」のように、可能な候補が表示されます。
ナンプレ問題盤面
clickしたマスの候補はだけ
座標のマスの唯一の候補はNaked Singleでだけ
clickしたマスにを連続入力:を
二国同盟Part2の解き方
二国同盟法を1回使い、後はレーザー発射法だけです。
二国同盟法
1のボタン、9のボタンを押すと、上段左のブロックには、1の空きマスも9の空きマスも、A1,B3だけです。従って、A1,B3の2つのマスには、1、9(二国同盟)以外は入れません。ここで2のボタンを押すと、上段左のブロックで、2の入れるマスはA1とC1ですが、A1には1か9が入るので、C1に2が確定します。C1に2を入力します。
何故、1、9、2のボタンを押すのか。
1のボタンを押して、下記の手順で二国同盟が成立しなかったら、2のボタン、3のボタンと試していくしかありません。その試行の結果、1、9、2のボタンを押した時に二国同盟が成立する事を発見できます。
これを紙の上で行うのは、非常に大変です。支援プログラムを使っても、大変です。そこで、ボタン一発で解答を得られる「二国同盟法の発動」というプログラムを作りました。左のボタンを押すとナンプレ盤面にjumpし、C1にグレーの2があり、埋まっているマスの数が24個から25個に増えているのが、判ります。「jump前の位置に戻る」ボタンで、ここに戻れます。
二国同盟が成立する条件
右の図は、1のボタンを押したところです。
手順1:1のボタンを押すと、1つのブロック内で1の空きマスが、2個あるのは上段左(A)、上段右(B)、下段中(C)の3箇所である事が分かります(右図)。準備として、この状態をパソコンなら、スクリーンショットで保存しておきます。スマホの場合は、紙にメモしておけば良いでしょう。まず、上段左のブロックのA(A1,B3)から考えます。
- 手順2:2、3、4、5、6、7、8、9とボタンを押して、上段左のブロックの空きマスの状態が同じもの(A1,B3が空きマス)を探します。見つからない場合は、B、Cについて、同じ事をします。
- 手順3:右の図は、9のボタンを押したところです。この場合は、幸いにも、9のボタンを押した時のA(A1,B3が空きマス)が、当てはまりました。A(A1,B3)には、1、9(二国同盟)以外は入れません。
- 手順4:
ここで、上段左のブロックのA1とB3のマスに注目しながら、1、2、…、9とボタンを押していきます。上段左のブロックで空きマスが2つで、そのうちの1つがA1かB3のものを探します。
2のボタンを押したのが右の図で、それに該当します。上段左のブロックで、2が入れるのはA1とC1ですが、A1には1か9(二国同盟)が入るので、C1に2が確定します。A1のマスの候補から2が削除されたのです。
該当する数字がなかったら、手順1に戻って、Bについて、同じことをします。それでも、だめな場合は、2のボタン、3のボタンと試していきます。
二国同盟法の後はレーザー発射法
以下の順番でボタンを押していけば、解けます。
21回、14回、43回、61回、72回、91回、31回、43回、51回、91回、52回、12回、74回、95回…。完了。
上記の作業が面倒な方は、下のボタンを押せば、レーザー発射法で、瞬時に解答図までいけます。
解答は右図になります。
「二国同盟法の発動」のソースコード(100行)
最後まで読んでいただいて、ありがとうございました。