2

コードを投稿する場合よりもおそらく短いので、これを簡単な言葉で説明しようと思います。私は、正しい「移動順序」を選択してゲームを完了する必要がある再帰的なソリューションの一部を作成しました。それが行き詰まりに陥った場合、バックトラックする必要があります。私の現在のシステムは、新しいパス/移動順序が見つかるまで、バックトラック中に再度使用できないように、機能していない移動に識別子を設定することで機能します。

しかし、問題が発生しました。ゲームは、残りの手が 2 つしかなく、どちらもゲームを解決できない状態に達する可能性があります。私の現在のシステムは基本的に、これら 2 つの動きを継続的に交換します。これは、ソリューションが動きを試み、それが機能しないことを確認してから、次の動きを試みるためです。私の問題は、移動が行われるたびにソリューションに移動を使用しないように指示する識別子をリセットすることだと思いますが、他にどのように設定するかわかりません。

さらに情報が必要な場合、または洞察が必要な場合はお知らせください。ありがとう!

4

1 に答える 1

0

あなたが説明しているゲームの性質についてはよくわかりませんが、より良い方法を判断するのに役立つ情報がいくつかあります. 新しい動きが見つかった後、このインデックスがリセットされるというトピックのコメントを見ました。これはあまり良い音ではありません。例から見たように、失敗する場合があり、条件付きでのみ機能するアルゴリズムを使用できないため、これを修正する必要があると思います。

あなたが説明する問題は、ゲーム ツリーのように聞こえますか? 正しい?もしそうなら、問題の説明をゲーム ツリーに変更し、ゲームが敵対的であると仮定して、Alpha-Beta Pruningなどの実証済みのゲーム ツリー検索アルゴリズムの 1 つを利用してみませんか?

于 2012-02-12T04:50:36.007 に答える