我有一个x字段的网格.该网格应尽可能多地填充大小为2x2的sqaures(称之为"farm")(因此每个场的大小为4个字段).每个农场必须通过"道路"连接到某个区域("根").
我写了一种蛮力算法,它尝试了农场和道路的每一个组合.每次将场置于网格上时,算法都会检查Farm是否使用A*算法与根连接.它适用于小网格,但在大网格上,它太耗时.
这是一个已经解决的小网格
http://www.tmk-stgeorgen.at/algo/small.png
蓝色方块是农场,红色方块是自由空间或"道路",填充的红色方块是根区域,每个农场都需要连接.
我需要解决这个网格:
http://www.tmk-stgeorgen.at/algo/grid.png
有没有我可以使用的快速标准算法?
小智 0
我不知道这个解决方案是否会最大化您的农场数量,但您可以尝试以常规方式放置它们:水平或垂直对齐它们。您可以将 2 列(或行)粘在一起,以获得农场的最佳密度。您应该注意在顶部/底部(或左侧/右侧)留出 1 个空格。
当你无法放置更多的列(行)时,只需检查是否可以在网格边界附近放置一些农场。
希望它可以帮助你!