波及効果ソルバー


仮定を行う順番を変更したら解くのがびっくりするほど速くなりました。
もう速度的には問題のないところまで来たかな。
あと、以下の問題に対応。

  • 部屋を入力する際に元からあった部屋を大きくするとその部屋全体が一時的に見えなくなるのですが、複数の部屋が同時に見えなくなることがある。その場合はその複数に分かれている部屋が同一の部屋とPencilBox上で判断されているのかも知れません。そうなると当然ソルバーもまともに動かないわけで。
  • 部屋に属してないマスは無視するようにしています。ソルバーの動作として解を見つける際にすべてのマスが埋まって部屋に属していないマスがある場合、「解けませんでした」のメッセージを出していますが、この挙動は部屋の属していないマスは存在しないものとして動作するように変更しようかな。不定形の問題を解くイメージ。

飛び地になっている部屋がある場合には確認メッセージを表示するようにしました。飛び地状態のままソルバーに渡すことも出来ます。
部屋に即してないマスを無視するようにしました。これにより何も入力してない状態でソルバーを起動すると唯一解がありますと表示されます。まあ、間違ってはない。

  • 複数解アリの場合、ある程度数字をいれてくれるのですが、その処理がちょっと決まった部分のすべてではない感じ。おそらくは複数解があることを発見したら処理をやめてしまっているのが原因と思われる。


これに関してはバグを修正していることもあり、保留。