この質問で正解としてマークされたアルゴリズムを実装しました:フロー フリーのようなゲームのランダム レベルの作成に何を使用しますか?
ただし、その方法を使用すると、複数のソリューションを持つボードが作成されます。考えられる解決策が 1 つだけであることを確認するために、アルゴリズムに簡単な制限や変更を加えることができるかどうか疑問に思っていました。
この質問で正解としてマークされたアルゴリズムを実装しました:フロー フリーのようなゲームのランダム レベルの作成に何を使用しますか?
ただし、その方法を使用すると、複数のソリューションを持つボードが作成されます。考えられる解決策が 1 つだけであることを確認するために、アルゴリズムに簡単な制限や変更を加えることができるかどうか疑問に思っていました。
独自のNumberlink/Flow Freeを作成するのは非常に困難です。上記のスレッドで私のアルゴリズムの提案を見ると、ソリューションに同じ色の 2x2 の正方形があってはならないという必要条件でパズルを作成できるアルゴリズムが見つかります。ただし、 http://forum.ukpuzzles.org/viewtopic.php?f =3&t=41 での議論は、自明ではないユニークでないパズルも多数あるため、これでは不十分であることを示しています。
この問題を調べたところ、この問題を解決する唯一の方法は、一意性をテストし、悪いインスタンスを破棄するための別のアルゴリズムを用意することです。一意性テスト アルゴリズム用に正確に作成された 1 つのソルバーは、Imo のソルバーです。もう 1 つのオプションは、複数の異なるソルバーを使用して、同じ解が得られることを確認することです。
あるレベルのすべてのソリューションを見つけるソルバーを実装する必要があると思います。最も簡単な方法はバックトラックです。
レベルが多い場合は、1 つずつ取り上げて解決策を探します。あるレベルの 2 番目の解決策を見つけたら、すぐにそのレベルを破棄します。