Câu trả lời:
Có rất nhiều cách khác nhau để tạo ra mê cung. Có một danh sách rất lớn về họ và những mô tả của họ ở đây: http://www.astrolog.org/labyrnth/algrithm.htm
Tôi nghĩ rằng tôi đã sử dụng một trong những mô tả dưới "Hoàn hảo".
Tôi thích những mê cung vết thương chặt chẽ mà Thuật toán của Kruskal tạo ra.
Mô tả chuẩn của Thuật toán Kruskal không phù hợp ở chỗ nó không phân biệt được các vị trí trong biểu đồ với các nhóm vị trí, trong khi dựa vào cách chơi chữ về lựa chọn cơ sở hạ tầng, dẫn đến sự mơ hồ mô tả gây nhầm lẫn cho người mới. Vì vậy, tôi từ chối thuật ngữ của Kruskal.
Tôi sẽ sử dụng các điều khoản sau đây:
Và từ những thứ đó, chúng ta có được:
Wikipedia có một nguồn tài nguyên lớn về thế hệ mê cung . Tôi đã sử dụng thuật toán prims ngẫu nhiên với kết quả tuyệt vời. Thuật toán phân chia có vẻ thú vị nhưng tôi chưa bao giờ sử dụng nó.
Dưới đây là ví dụ wikipedia của prim's tại nơi làm việc.
Một cách dễ dàng là lập danh sách các bức tường phía bắc và bức tường phía tây, sau đó hoán vị chúng. Cho mỗi phòng một số. Sau đó, thổi tung một trong những bức tường trong danh sách, miễn là hai phòng không có cùng một số, sau đó truyền một trong các số cho tất cả các phòng khác có cùng số. Tiếp tục đi cho đến khi bạn hết tường Điều này hoạt động cho mê cung hình chữ nhật hoặc, thực sự, bất kỳ mê cung khác mà bạn có thể đưa ra một danh sách "các phòng có khả năng kết nối". Thêm vào đó, nó khá đơn giản để lập trình.
Tôi cũng sẽ xem xét một số thuật toán được sử dụng trong phát triển Roguelike. Có một nguồn khởi đầu tốt tại Rogue Basin
Có một hoạt động tốt mặc dù ở đây: https : // journal. Warewith ware.com / 2014/21/21 /rooms -and- maces /
Các bước cơ bản là:
Bạn hỏi tôi đã sử dụng cái nào, vì vậy tôi sẽ đảm bảo trả lời nó. Tôi đã sử dụng Thuật toán Backtracker đệ quy trong trò chơi mê cung của mình trên Rootbeer Games .
Đây là bằng chứng cho thấy tôi đã sử dụng thuật toán, xin đừng xem nó như một quảng cáo về công việc của tôi.