Saya akan melakukan ini dengan semacam solusi pohon perilaku - Anda jalan ke tujuan, dan perhatikan semua hambatan yang telah menghalangi A * Anda. Jika Anda gagal, Anda memeriksa apakah ada objek yang dapat membantu mengatasi hambatan itu, dalam hal ini, jalur ke objek itu. Ulang. Ini berarti bahwa agen perlu mencoba untuk mencapai tujuan dan gagal sebelum mendapatkan ide menggunakan alat, yang mungkin membutuhkan waktu, terutama jika ada dunia ubin besar yang semuanya perlu diperiksa. Mungkin tidak terlihat terlalu aneh sehingga agen membutuhkan waktu untuk merenungkan bagaimana menyelesaikan masalah.
Saya dapat membayangkan solusi nyata yang keras. Tambahkan dimensi lain ke grid jalur pencarian Anda. Jadi dalam kasus peta 2D, Anda membuat grid pathfinding 3D. Dalam contoh sederhana ini, dimensi baru ini hanya akan memiliki kedalaman dua, tetapi dalam game nyata akan menjadi besar dengan cepat.
Pada z = 0 Anda memetakan medan selama keadaan normal, artinya ubin air dianggap tidak bisa dilewati.
Pada z = 1 Anda memetakan medan seperti saat menyapu, yang berarti bahwa ubin air dianggap walkable (tetapi jika Anda memiliki misalnya ubin dinding, itu mungkin tetap solid).
Temuan path adalah A * biasa dalam dimensi x dan y, yang berarti bahwa setiap sel grid dianggap memiliki akses ke tetangganya. Namun dalam dimensi z, A * TIDAK diizinkan untuk menyebar.
Kecuali di mana penyapu. Objek menyapu bertindak sebagai celah antara z = 0 dan z = 1 di jalur pencarian path.
Ini berarti bahwa A * akan banjir mengisi ke luar di z = 0, menabrak air, dan kehabisan pilihan - maka itu akan menyebar ke z = 1 melalui rake tile, dan pada z = 1 (di mana air bisa dilalui dengan berjalan kaki) temukan jalannya ke tujuan. Efeknya adalah bahwa NPC tanpa keraguan bergerak ke rake, dan kemudian memindahkan jalur terpendek ke gawang.