ฉันจัดการเพื่อให้ได้ระดับการมองที่ดีพอสมควรโดยใช้อัลกอริทึมต่อไปนี้โดยยึดตามตารางสี่เหลี่ยม:
ขั้นแรกสร้างชุดของห้อง พารามิเตอร์แบบสุ่มจะกำหนดขนาดของห้องและหมายเลข อัลกอริทึมแบบปรับตัวยังสามารถกำหนดโซนบางส่วนที่ทำจากโถงทางเดินขนาดใหญ่และส่วนอื่น ๆ ของห้องขนาดเล็กมาก
จากนั้นคุณต้องตรวจสอบให้แน่ใจว่าห้องทั้งหมดเชื่อมต่อกัน สำหรับเรื่องนี้ให้ใช้เครื่องมือหาทางเดินเพื่อขุดทางเดิน (เช่น A *) ในระหว่างแต่ละคู่ของห้องโดยให้น้ำหนักแบบสุ่มที่เลือกไปยังช่องว่างที่มีอยู่ (ห้องหรือทางเดินอื่น ๆ ) เทียบกับพื้นที่ที่ยังไม่แกะสลัก (ผนัง) หากความแตกต่างของน้ำหนักมีขนาดเล็กการขุดทางเดินใหม่จะมีราคาถูกพอสมควรและอัลกอริทึมจะสร้างทางเดินหลายแห่งระหว่างห้องโดยมีความเป็นไปได้หลายทางที่จะเปลี่ยนจากที่หนึ่งไปอีกที่หนึ่ง หากความแตกต่างของน้ำหนักสูงอัลกอริทึมจะชอบที่จะผ่านห้องและทางเดินที่มีอยู่ทำให้เส้นทางคดเคี้ยวมากขึ้นและมีทางเลือกน้อยลงเพื่อไปยังปลายทางที่แน่นอน
สิ่งนี้ช่วยให้คุณจากพารามิเตอร์จำนวนเล็กน้อยเพื่อสร้างระดับการมองที่แตกต่างกันมากตั้งแต่ห้องโถงขนาดใหญ่ที่มีทางเดินเล็ก ๆ ที่เชื่อมโยงพวกเขาไปยังเขาวงกตที่มองหากลุ่มเขาวงกตที่เชื่อมต่อกันอย่างใกล้ชิด
นี่คือตัวอย่างของระดับที่สร้างขึ้น
จากอัลกอริทึมนี้คุณสามารถเพิ่มการตกแต่งผนังที่ขึ้นอยู่กับโซนทำให้ทางเดินเล็กลงหรือใหญ่ขึ้นสร้างห้องพิเศษและอื่น ๆ