ฉันกำลังสร้างเกม Tower Defense ใน Flash โดยไม่มีเส้นทางที่กำหนดไว้ล่วงหน้า
แม้ว่ากริดของฉันจะมีขนาด 40x40 (เล็ก) แต่ A * ก็ลำบากเมื่อคำนวณใหม่ทุกครั้ง ดังนั้นฉันจึงทำการดัดแปลงของตัวเองเพื่อความสะดวกในการคำนวณใหม่และจำนวนเซลล์ที่ถูกสัมผัสลดลงเหลือประมาณ 900 (เมื่อปรับเปลี่ยนใกล้รูต) มันยังคงค้างสำหรับระยะเวลาที่สั้นมาก แต่สามารถตรวจพบได้เมื่อวางหอคอยใหม่
นี่เป็นปัญหาการใช้งานหรือเป็น 40x40 มากเกินไปหรือไม่
แก้ไข:
โครงสร้างของรหัสของฉัน:
- ข้อมูลทั้งหมดจะถูกบันทึกในเซลล์อาร์เรย์ 2 มิติ
- แต่ละเซลล์มีพาเรนต์ในทิศทางพา ธ (1-8 ตามเข็มนาฬิกา) และอาร์เรย์ที่เข้ารหัสระดับบิตของลูกในพา ธ (ทุกบิตแทนค่าเด็ก)
- การค้นหาดำเนินการโดย A * ด้วยการประมาณระยะทางยูคลิด