訂正があります。 誤: set はあるマスが未確定かどうか示す。 正: set はあるマスが設定済みかどうか示す。 確定したかどうかを示す変数はなく、都度「依存マス(自分と周囲4マス)が全て設定済みか」調べます。 (関数 guessok() 内) マインスイーパーとかで、「ここに爆弾があると仮定して推論してみよう」とかやりますよね。 このアルゴリズムもあれと同じことで、一マスタッチするかしないかを仮定して、矛盾がなければ次のマスを仮定して・・・と進めて、全マス仮定できたらそれが解、というしくみです。