Java 随机生成二维平铺游戏的湖泊

Java 随机生成二维平铺游戏的湖泊,java,map,2d,tile,Java,Map,2d,Tile,我有一个关于在一个基于2d瓷砖的游戏中随机生成的湖的问题。我使用了一个二维int,它保存了tiles的值。每个值代表一个图像(16x16平方米,例如草) 所以我提出了这个方法,这里可能已经知道了,但我用的是“青蛙”。青蛙跳跃着创建源块。每个源块与其他源块的距离不能超过2-4个磁贴。然后,围绕源绘制一个特定图形: map[startX][startY] = tile; map[startX-1][startY] = tile; map[startX-

我有一个关于在一个基于2d瓷砖的游戏中随机生成的湖的问题。我使用了一个二维int,它保存了tiles的值。每个值代表一个图像(16x16平方米,例如草)

所以我提出了这个方法,这里可能已经知道了,但我用的是“青蛙”。青蛙跳跃着创建源块。每个源块与其他源块的距离不能超过2-4个磁贴。然后,围绕源绘制一个特定图形:

        map[startX][startY] = tile;
        map[startX-1][startY] = tile;
        map[startX-2][startY] = tile;
        map[startX+1][startY] = tile;
        map[startX+2][startY] = tile;
        map[startX][startY-1] = tile;
        map[startX][startY-2] = tile;
        map[startX][startY+1] = tile;
        map[startX][startY+2] = tile;
        map[startX+1][startY+1] = tile;
        map[startX-1][startY+1] = tile;
        map[startX+1][startY-1] = tile;
        map[startX-1][startY-1] = tile;
startX,startY是图形绘制的坐标。 当然,这些都是硬编码的。我想知道,有没有什么算法或方法可以自动做到这一点?你可以给出图形的大小(这个设置为2),它可以为你做


图如下:

我认为这应该可行:

int size=2;

for(int i=0;i<=size;i++)
{
    for(int j=i-size;j<=size-i;j++)
    {
        map[startX+i][startY+j]=tile;
        map[startX-i][startY+j]=tile;
    }
}
int size=2;
对于(int i=0;i