添付の画像を使用して問題を説明します。
緑のブロックは、私のゲーム エンティティの開始位置です。次に、オレンジ色の四角でマークされた位置に移動したいと思います。しかし同時に、浮揚が不可能である、または/&このブロックが壁であると仮定します。いずれにせよそこに行くことは不可能です。そのため、エンティティが移動できる最初の場所 (オレンジ色の四角にできるだけ近い場所) を見つける方法を見つける必要があります (この場合は、灰色の列の一番上か、オレンジ色の 2 行下のいずれかになります)。四角)。
私はグリッドを記述する 2 次元配列を持っています。ここで1
は壁で、0
空きスペースです。
data = [
[1,1,1,1,...],
[1,0,0,0,0,...],
[1,0,0,...],
...
]
私はこの方法で解決策を考えていました(たとえば1.
、セルの下が床であるかどうかを確認してアルゴを終了するか、セルでない場合は続行する2.
ことができます)が、これを効率的に(そして簡単に)行う方法を考えることができません)。
誰もこれに取り組む方法を知っていますか? Googleにどのアルゴリズムを依頼すればよいかよくわかりません:)