Roguelike của tôi tạo ra một số phòng tròn. Tôi khá thích kết quả hiện tại, trông giống như thế này:
Nó được tạo ra bằng cách khắc ra các vòng tròn ngẫu nhiên trong một không gian đầy.
Tôi có một vấn đề chính với nó: một số vòng tròn hoàn toàn không được kết nối. Tôi hoàn toàn không biết nên sử dụng thuật toán nào để kết nối chúng.
Tôi đã thử "cho mỗi vòng tròn, tìm vòng tròn gần nhất và đường hầm đến trung tâm của nó (theo chiều ngang sau đó theo chiều dọc)", nhưng tôi nhận được một cái gì đó khủng khiếp thay vào đó (cùng bản đồ như trên):
Những gì có vẻ phù hợp là một cái gì đó như "cho mỗi không gian tự khép kín, tìm không gian trống gần nhất và đường hầm đến đó." Điều đó có vẻ phức tạp - mặc dù (đối với mỗi không gian kín hình tròn, hãy tính khoảng cách đến mọi không gian khác) và có thể sẽ chậm (cũng chạy trên Ruby)
Có một giải pháp đơn giản cho vấn đề này?