二国同盟Part2 java支援プログラム

二国同盟が成立するパターンの探索にjava programを使います。

二国同盟には、縦列/横行/ブロックの3種類があります。ブロック以外の二国同盟については下のリスト。

このjavaプログラムの使い方の概略:ナンプレ盤面の下の数字(1〜9)を押すと、レーザー発射法が自動表示され、←ヒントが表示されます。その数字が入れないマスの背景は青、入れるマスは白になります。

空きマスをクリックすると、「2379だけ可」のように、可能な候補が表示されます。

ナンプレ問題盤面

clickしたマスの候補だけ
座標のマスの唯一の候補はNaked Singleでだけ
clickしたマスにを連続入力:

ナンプレ盤面
A
B
C
D
E
F
G
H
I



←盤面変更禁止チェックを入れると、その時、埋められているマスは変更不可になり、外せば再度、変更可能です。2つのボタンは、チェックが入っているとdisabledです。(文字が薄い)

textarea(Text box)は、直接編集可。左クリック→右クリック→全て選択→コピペできます。

二国同盟Part2の解き方

二国同盟法を1回使い、後はレーザー発射法だけです。

二国同盟法

のボタン、のボタンを押すと、上段左のブロックには、1の空きマスも9の空きマスも、A1,B3だけです。従って、A1,B3の2つのマスには、1、9(二国同盟)以外は入れません。ここでのボタンを押すと、上段左のブロックで、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:2、3、4、5、6、7、8、9とボタンを押して、上段左のブロックの空きマスの状態が同じもの(A1,B3が空きマス)を探します。見つからない場合は、BCについて、同じ事をします。
  3. 9のボタンを押したところ手順3:右の図は、のボタンを押したところです。この場合は、幸いにも、のボタンを押した時のA(A1,B3が空きマス)が、当てはまりました。A(A1,B3)には、1、9(二国同盟)以外は入れません。
  4. 2のボタンを押したところ手順4: ここで、上段左のブロックのA1とB3のマスに注目しながら、1、2、…、9とボタンを押していきます。上段左のブロックで空きマスが2つで、そのうちの1つがA1B3のものを探します。
    のボタンを押したのが右の図で、それに該当します。上段左のブロックで、2が入れるのはA1とC1ですが、A1には1か9(二国同盟)が入るので、C1に2が確定します。A1のマスの候補から2が削除されたのです。

該当する数字がなかったら、手順1に戻って、Bについて、同じことをします。それでも、だめな場合は、2のボタン、3のボタンと試していきます。

二国同盟法の後はレーザー発射法

以下の順番でボタンを押していけば、解けます。

1回、4回、3回、1回、2回、1回、1回、3回、1回、1回、2回、2回、4回、5回…。完了。

上記の作業が面倒な方は、下のボタンを押せば、レーザー発射法で、瞬時に解答図までいけます。

二国同盟Part2の解答解答は右図になります。

「二国同盟法の発動」のソースコード(100行)

最後まで読んでいただいて、ありがとうございました。