Baumkuchen’s Workshop

バイオリンと電子工作、DIY、ジョギングなど。

お絵描きロジックパズル解法プログラムを作る#5

アルゴリズム検討(その4)

1.一列分

1-3.黒確定

ルール4 端に近い所に黒マスがある場合

<基本>

 ルール2に近いですが、端に近いところに黒マスがある場合です。近いの定義としては、問題数字の範囲内の位置にあるということ。下の図では、問題数字が5ですので、左から5マス目までにある場合が対応します。ただ、5マス目にあっても、追加で確定するところが無いので意味はありませんが。

 

f:id:Baum_kuchen:20210214185705p:plain

<応用>

端と黒マスの間に白マスがあっても良いです。白マスは、厳密に言えば連続していなくても良いですが(この場合、隙間は問題数字未満)、他ルールにより、白マスは埋まっていると仮定します。

白マス以外でも、問題数字と対応した黒マスとそれに続く白マスがあっても構いません。ここは、ルール2と同様です。

f:id:Baum_kuchen:20210214185803p:plain

アルゴリズム

<基本>

・検索位置を左端、問題の数値の最初

・白マスをスキップ

・問題の数値分の範囲に、黒マスがあるか

・黒マスがある場合、そこから問題の数値の分まで黒マス確定

 

<応用>の場合は、白マススキップのところを、確定黒マス+白マススキップとすればいいとなります。

 

まずは、<基本>について実装してみます。

<2021.2.19更新>

実装してみました。少し大きいサンプルパズルを解いた結果です。まだまだ、解けないところが多くあります。

新たなルールを実装し、解法プログラムを成長させていきます。

f:id:Baum_kuchen:20210220012648p:plain

(2021.2.20更新)あとから、問題が1か所(11列)間違っていることに気づきましたが、解けないことには変わりありませんでした。