โครงสร้างข้อมูลเพื่อเป็นตัวแทนการเชื่อมต่อระหว่างประเทศบนแผนที่


9

ในเกมที่ฉันพัฒนาขึ้นสำหรับลูกค้าแนวคิดของเกมที่สำคัญเกี่ยวข้องกับการเคลื่อนที่ไปมาบนแผนที่ ในกรณีนี้ขนาดและรูปร่างและประเทศต่าง ๆ ไม่เกี่ยวข้อง: การย้ายจากประเทศหนึ่งไปยังประเทศที่อยู่ติดกันนับเป็นขั้นตอนเดียว

ฉันพยายามหาโครงสร้างข้อมูลที่ดีที่สุดสำหรับการเชื่อมต่อระหว่างประเทศ สำหรับประเทศใดประเทศหนึ่งเกมจำเป็นต้องรู้ว่าประเทศใดที่อยู่ติดกันทั้งคู่ต้องรู้ว่าผู้เล่นสามารถเคลื่อนย้ายได้อย่างไรและอนุญาตให้ AI ของเกมวางแผนเส้นทางโดยกำหนดเส้นทางที่เป็นไปได้จากประเทศหนึ่งไปยังอีกประเทศหนึ่ง AI ยังต้องการประเมินว่าประเทศที่เชื่อมโยงกันดีเพียงใดไม่เพียง แต่กับประเทศเพื่อนบ้านที่อยู่ติดกันในทันที แต่ยังรวมถึงประเทศเพื่อนบ้านของประเทศเหล่านั้น ฯลฯ

ฉันพบความเป็นไปได้สองสามอย่าง แต่พวกเขาดูไม่สุภาพและไร้ประสิทธิภาพ เนื่องจาก AI จะต้องคำนวณเส้นทางที่เป็นไปได้จำนวนมากเพื่อการตัดสินใจที่ดีเกี่ยวกับการเคลื่อนไหวของมัน "ไม่มีประสิทธิภาพ" จึงเป็นปัญหาอย่างมาก

ฉันสงสัยว่านี่เป็นเกมไขปริศนา CS ทั่วไปและมีวิธีแก้ปัญหาร่วมกัน แต่ฉันไม่สามารถค้นหาได้มากนักโดยการค้นหา ข้อเสนอแนะใด ๆ ยินดีต้อนรับ


หากฉันควรถามสิ่งนี้ใน GameDev.StackExchange เพียงแจ้งให้เราทราบ ฉันถามที่นี่เพราะฉันแน่ใจว่าสิ่งนี้จำเป็นสำหรับปัญหาการพัฒนาทุกประเภทและฉันไม่ต้องการความช่วยเหลือในด้าน "เกม" ของมันต่อ se เพียงส่วนการวางแผนเส้นทาง
Matthew Frederick

คุณต้องการกราฟหรือเมทริกซ์การเชื่อมต่อ (ซึ่งมีประโยชน์เพราะการปิดเป็นเรื่องง่ายที่จะคำนวณ) บางทีคุณต้องการทั้งคู่ เงยหน้าขึ้นมอง

2
ดูโครงสร้างข้อมูลและอัลกอริธึมกราฟ: en.wikipedia.org/wiki/Graph_%28data_structure%29

1
สิ่งนี้ไม่ได้ดูในหัวข้อสำหรับฉัน มันควรจะอยู่ใน GameDev หรือ Stack Overflow เนื่องจากเป็นหัวข้อที่เกินไปสำหรับที่นี่

คำตอบ:



6

กราฟอย่างชัดเจน ลองดูที่นี่ทฤษฎีกราฟโดยพื้นฐานแล้วคุณมีโหนดและขอบ โหนดอาจมี 0 หรือมากกว่าขอบเพื่อโหนดอื่น ๆ

มีอัลกอริทึมมากมายในการคำนวณเส้นทางที่สั้นที่สุด (กระโดดหรือระยะทาง) ตรวจสอบ cicles (มากกว่าหนึ่งวิธีในการเข้าถึงตัวตนเดียว) ฯลฯ

ตอนนี้เพื่อให้สามารถใช้งานโซลูชันที่มีประสิทธิภาพได้นั้นซับซ้อนกว่าเล็กน้อย แต่เช่นเคยมีหลายวิธี


ยอดเยี่ยมขอบคุณ คุณมีข้อเสนอแนะใด ๆ สำหรับการค้นหาอัลกอริธึมดังกล่าวหรือไม่? ฉันไม่ต้องการเส้นทางที่สั้นที่สุด แต่สิ่งต่าง ๆ เช่นการตรวจสอบวงกลม ฯลฯ จะมีประโยชน์มาก
Matthew Frederick

2

ดังกล่าวแล้วคุณจะต้องกราฟแสดงการเชื่อมต่อที่เป็นไปได้ทั้งหมดระหว่างประเทศ การเชื่อมต่อแต่ละอันจะรักษาระยะห่างระหว่างสองประเทศ

จากนั้นอัลกอริทึมการค้นหาเส้นทางเช่น A * สามารถใช้เพื่อกำหนดเส้นทางที่สั้นที่สุดระหว่างสองประเทศ

นอกจากนี้ยังมีหนังสือดีๆเกี่ยวกับ game ai: Game AI ตามตัวอย่างโดย Mat Buckland http://www.ai-junkie.com/books/toc_pgaibe.html

หรือชุด AI Game Programming Wisdom http://www.aiwisdom.com/ หนังสือเล่มแรกมีหลายบทเกี่ยวกับการหาเส้นทาง


ยอดเยี่ยมขอบคุณสำหรับคำแนะนำหนังสือ ดูเหมือนว่าหนังสือ AI จำนวนมากและคำแนะนำส่วนบุคคลนั้นดีกว่าผลลัพธ์ในวงกว้างที่ฉันได้รับจากการค้นหา
Matthew Frederick
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.