任意の移動を行う前に、あなたはどの位置にあってもよいです。それぞれの移動の後、可能な位置のセットがシフトし、いくつかの可能な位置から移動すると壁に当たっても収縮することがあります。しかし、可能な位置の集合は決して大きくなることはありません。
発生する可能性のある位置のセットごとに頂点を持つ有向グラフ、各セットを左、右、上または下に移動することに続く4つのセットに接続する有向グラフを想定することができます。
あなたの仕事は、すべての位置のセットの頂点から、ターゲット位置のみを含むシングルトンセットの頂点までの最短経路を見つけることです。
最初に、適切な指標を使ってこのグラフにA *を実行します。しかし、可能なセットの数は非常に多いので、これが実現可能であるとは保証されません。私は人間の知性を使って、すぐに動く測定基準を選ぶことにしよう。
A *が妥当な時間内に完了し、A *がメトリックに置くルールに準拠するメトリックを選択できる場合は、見つかったパスが最短のメトリックであることが証明されます。
私の頭の上から離れて、私は最初に、セットの最も遠い位置からターゲットへの最短経路の長さを試してみるでしょう。たぶん空でない行と列の合計数と組み合わせて。
これは私がやることですが、私はAIの専門家ではありません。私はおそらく、あなたがこの手順を改善できるクラスで学んだことがあると推測しています。
私はBFSと言いますが、それに似ています* – Malice
詳細を提供できますか? –
移動する前に次の細胞の色を知っていますか?試してもペナルティはありますか?いずれにしても、それはバックトラックする必要があります。あなたがヒップになりたい場合はダイナミックプログラミング:) – starmole