【发布时间】:2020-11-10 18:37:27
【问题描述】:
我目前正在制作一个程序,优化网格上房屋的布局以获得最大利润。
区域平面图位于网格上 - 所有房屋详细信息(尺寸等)均由用户输入。
所有房屋都必须放置在道路旁边 - 道路已经被用户添加到网格中。
我目前正在努力编写一个函数来检查网格是否有任何可用空间来添加另一个房子(我的优化算法的停止条件)。
可用空间不是网格上的空方格,而是与道路相邻的空方格。 (这条路可以横也可以竖)
网格:
Coords[][] grid;
如果网格上的坐标是道路:
grid[x][y].getRoad() == true
以下函数查找任意坐标的所有相邻正方形: (cols - 网格中的列数) (rows - 网格中的行数)
public static Coords[] addNeighboursSquare(Coords coord, int x, int y, int cols, int rows)
{
Coords[] neighbours = null;
//right
if (x < cols - 1)
{
neighbours[0] = AStarAlgorithm.grid[x + 1][y];
}
//left
if (x > 0)
{
neighbours[1] = AStarAlgorithm.grid[x - 1][y];
}
//top
if (y < rows - 1)
{
neighbours[2] = AStarAlgorithm.grid[x][y + 1];
}
//bottom
if (y > 0)
{
neighbours[3] = AStarAlgorithm.grid[x][y - 1];
}
return neighbours;
}
如何循环遍历网格中的所有道路方格,并创建一个包含道路上所有“间隙”大小的整数数组?
【问题讨论】:
标签: java arrays optimization grid coordinates