检查多维数组 C# 中的矩形重叠

Checking for rectangle overlap in multi-dimensional array C#

所以我正在制作程序地牢制造器,现在我将地图存储在多维数组中。我绘制了 n 个随机位置和随机大小的房间,所有这些房间都是矩形。如下所示:

'X' 代表房间的一部分,'.'代表空space。如您所见,由于我随机生成了这些房间的大小和位置,其中一些房间重叠,因此可以在图像中看到。

我的问题是如何检查是否有重叠的矩形并因此删除重叠的矩形?没有要求任何人编写代码,我只是在努力理解逻辑。

谢谢

1) 制作一个这样的二维数组,并在放置房间之前检查 X;-) 如果有 X,则不要将新房间放在那里。不一定是火箭科学。请记住,您可以控制它。将房间制作逻辑放在可以看到您的网格和房间尺寸的方法中,让它以 2 种模式运行:mode1=return TRUE 如果重叠,模式 2,更新网格。打一次电话看看你有没有新房间的好位置,如果没有,再做一个房间!

2)蛮力比较:(伪代码)这是如果你有一个单独绘图的数组。2d.rectangles。

bool collides(rect newrect, rect[] allrects) 
    for each item in allrects
        if item.intersects(newrect)
            return true

那里,我没有 'code' ;-)

在添加新矩形之前,调用此例程。