6

はしパズルを生成できる iPhone アプリを作成したいと考えています (パズルがわからない場合は、Wikipedia の記事を参照してください: https://en.wikipedia.org/wiki/Hashiwakakero )。解決アルゴリズムを開発するのはそれほど難しくないと思いますが、それを生成する方法がわかりません。

これが私がそれを行う方法です(それが機能するかどうかはわかりません)。いくつかの島 (またはセグメント) を生成しますが、可能な解決策がある場合に限ります。次に、島が生成されるたびに、解決アルゴリズムを実行して、解決できるかどうかを確認します。そうであれば、完了です。それ以外の場合は、セグメントを削除して別のセグメントを生成するか、別のセグメントを追加します。

どう思いますか?これはうまくいくでしょうか、それを行うためのより効率的な方法はありますか?

4

1 に答える 1

3

毎回、段階的にソリューションを構築します。

  • ノードを追加します
  • 1つ以上のブリッジを追加します(これが不可能な場合は、新しいノードを選択します)
  • カウンターをインクリメントします。
  • 橋が使用する場所を利用不可としてマークします。

これで解決策があることは確かですが、実際のパズルには解決策が1つしかないので、後でソルバーでこれを確認し、このルールを満たすまでノードを追加/削除する必要があります。

于 2012-04-22T16:06:22.137 に答える