ฉันจะทำเช่นนี้ด้วยวิธีการแก้ปัญหาต้นไม้พฤติกรรมบางอย่าง - คุณกำหนดเส้นทางไปยังเป้าหมายและจดบันทึกอุปสรรคทั้งหมดที่ขัดขวาง A * ของคุณ หากคุณล้มเหลวคุณตรวจสอบว่ามีวัตถุที่สามารถช่วยให้เอาชนะอุปสรรคเหล่านั้นได้หรือไม่ในกรณีนั้นให้พา ธ ไปยังวัตถุนั้น ทำซ้ำ ซึ่งหมายความว่าเอเจนต์ต้องพยายามหาทางไปสู่เป้าหมายและล้มเหลวก่อนที่จะได้แนวคิดในการใช้เครื่องมือซึ่งอาจต้องใช้เวลาโดยเฉพาะอย่างยิ่งหากมีโลกขนาดใหญ่ของกระเบื้องที่ทุกคนต้องได้รับการตรวจสอบ อาจไม่ได้มองออกนอกสถานที่เกินไปซึ่งเอเจนต์ใช้เวลาสักครู่เพื่อพิจารณาว่าจะแก้ปัญหาอย่างไร
ฉันสามารถจินตนาการถึงวิธีการแก้ปัญหาที่ไม่ยอมใครง่ายๆจริง เพิ่มอีกมิติหนึ่งให้กับคุณในการค้นหากริด ดังนั้นในกรณีของแผนที่ 2 มิติคุณจะสร้างเส้นตารางการค้นหาเส้นทาง 3 มิติ ในตัวอย่างง่ายๆนี้มิติใหม่นี้จะมีความลึกเพียงสอง แต่ในเกมจริงมันจะมีขนาดใหญ่ขึ้นอย่างรวดเร็ว
ที่ z = 0 คุณทำแผนที่ภูมิประเทศในสถานการณ์ปกติหมายความว่าแผ่นน้ำถือว่าไม่สามารถใช้ได้
ที่ z = 1 คุณทำการแมปภูมิประเทศเหมือนเดิมในขณะที่มีเสาะหาหมายความว่าแผ่นน้ำนั้นสามารถเดินได้ (แต่ถ้าคุณมีตัวอย่างเช่นแผ่นผนัง
การค้นหาเส้นทางเป็น A * สามัญในมิติ x และ y ซึ่งหมายความว่าเซลล์กริดทุกเซลล์ได้รับการพิจารณาว่าสามารถเข้าถึงเพื่อนบ้านได้ อย่างไรก็ตามในมิติ z ไม่อนุญาตให้ A * แพร่กระจาย
ยกเว้นตำแหน่งที่คราดอยู่ วัตถุ rake ทำหน้าที่เป็นการเปิดระหว่าง z = 0 และ z = 1 ในเส้นทางการค้นหากริด
ซึ่งหมายความว่า A * จะท่วมไปด้านนอกใน z = 0, กดน้ำและวิ่งออกไปจากตัวเลือก - จากนั้นมันจะกระจายไปที่ z = 1 ผ่านทางกระเบื้องคราดและที่ z = 1 (ที่น้ำสามารถเดินได้) หาทางไปสู่เป้าหมาย ผลที่ได้คือว่า NPC โดยไม่ลังเลย้ายไปที่เรคจากนั้นย้ายเส้นทางที่สั้นที่สุดไปยังเป้าหมาย