ใช่. A * ยังคงเป็นวิธีที่จะไปในเกือบทุกกรณี เป็นการคำนวณต้นทุนโหนดของคุณที่กลายเป็นแบบไดนามิกและมีความซับซ้อนในการคำนวณและติดตาม
หากคุณรู้อยู่แล้วว่าอุปสรรคการเคลื่อนที่จะเป็นอย่างไรในอนาคต A * ของคุณสามารถนำสิ่งกีดขวางทางชั่วคราวมาพิจารณาในฟังก์ชันต้นทุน
ตัวอย่างเช่น: โหนดนี้จะไปถึง 4 เห็บถูกครอบครองจากเห็บ # 3 จนกระทั่งเห็บ # 6 ดังนั้นค่าเดินทางในโหนดนี้คือ 6 - 4 = +2 เห็บ นั่นอาจเป็นเส้นทางที่ดีที่สุด
ต้องคำนึงถึงทิศทางการเดินทางของสิ่งกีดขวางด้วย
หากคุณไม่ทราบล่วงหน้าคุณสามารถสมมติว่าไม่มีสิ่งกีดขวางและคำนวณเส้นทางใหม่เมื่อถึงสิ่งกีดขวาง แต่คุณจะต้องทำอะไรบางอย่างเกี่ยวกับการหยุดชะงักและการเคลื่อนไหว (เช่นเดียวกับถ้าคุณสามารถคาดเดาได้ว่าจะมีอุปสรรคใด แต่ในตัวของมันเองคือการหลีกเลี่ยงการหยุดชะงัก / การหมุนวนและที่ดีพอสำหรับวัตถุประสงค์ของคุณ)
การหยุดชะงักคือเมื่อทั้งคู่รอให้อีกฝ่ายเคลื่อนที่และไม่มีใครเคลื่อนที่
Livelock คือเมื่อทั้งสอง ( หรือมากกว่า <- นี่เป็นสิ่งสำคัญที่ต้องพิจารณา) ย้ายเพื่อหลีกเลี่ยงอีกทางในทิศทางเดียวกันและจบลงด้วยการไปข้างหน้าและกลับโดยไม่มีความคืบหน้า
การแก้ไข livelocks อาจซับซ้อนและขึ้นอยู่กับกฎและกลไกการชนของเกม (เช่น: พวกเขาควรต่อสู้และทำลายอุปสรรคหรือไม่)
บ่อยครั้งที่มันกลับมาที่การกำหนดวัตถุที่เคลื่อนที่ของคุณกำหนดเวลาการจองโหนด / เส้นทาง (อย่าลืมยกเลิกเมื่อพวกเขาเปลี่ยนเส้นทางหรือตาย) เพื่อให้วัตถุเคลื่อนที่อื่น ๆ สามารถวางแผนล่วงหน้า
เมื่อคุณมีข้อมูลนี้แล้วคุณยังสามารถวางแผนการสกัดกั้นได้อีกด้วย