コードを投稿する場合よりもおそらく短いので、これを簡単な言葉で説明しようと思います。私は、正しい「移動順序」を選択してゲームを完了する必要がある再帰的なソリューションの一部を作成しました。それが行き詰まりに陥った場合、バックトラックする必要があります。私の現在のシステムは、新しいパス/移動順序が見つかるまで、バックトラック中に再度使用できないように、機能していない移動に識別子を設定することで機能します。
しかし、問題が発生しました。ゲームは、残りの手が 2 つしかなく、どちらもゲームを解決できない状態に達する可能性があります。私の現在のシステムは基本的に、これら 2 つの動きを継続的に交換します。これは、ソリューションが動きを試み、それが機能しないことを確認してから、次の動きを試みるためです。私の問題は、移動が行われるたびにソリューションに移動を使用しないように指示する識別子をリセットすることだと思いますが、他にどのように設定するかわかりません。
さらに情報が必要な場合、または洞察が必要な場合はお知らせください。ありがとう!