如何在基于 2D 数组的游戏的单元格中随机放置对象?爪哇岛



在这里,我被要求为游戏做一个随机放置怪物的方法。我不太确定要开始以及如何放置对象(例如。Boss) 在单元格 (0,0) 中使用嵌套的 for 循环用于 2D 数组 或者随机放置弱小的敌人。如何将这个想法转化为代码?

public void generateMap(ArrayList weakFoes, ArrayList strongFoes)://它应该随机生成整个地图网格。它应该填充:

• 1 个老板:随机老板应位于地图的左上角,即单元格 (0,0)。

• 15 个弱敌:弱小的敌人应该随机定位在地图上。弱敌人应该从输入的弱敌人中随机选择。

任何帮助不胜感激。谢谢

在方法开始时在两个数组列表中都使用它

Collections.shuffle(strongFoes);
Collections.shuffle(weakfoes);

这两个列表现在都将是随机的,您可以使用 for 循环将它们正常添加到单元格中,例如

int i monsterCount = 0;
map[0][0].add(strongFoe.get(0);
for(int i = 0; i<mapWidth; i++)
{
  for(int j = 0; i<maplength; j++)
  {
    map[i][j].add(weakfoe.get(monsterCount));
    monsterCount++;
  }
}

那么你需要做的就是根据你想要添加它们的频率来建立你的逻辑,对于strongFoe来说,更有效的方法是只使用Math.rand()并在该索引处获取元素,但为了简单起见,我对两者都使用了相同的方法。上面的代码会根据您要起诉的 strucutre 而变化,但逻辑应该是合理的。

在重读原始问题时,看到您只希望它发生 15 次,因此我将有一个循环,而不是我上面的循环循环到 15 会生成两个随机数作为地图坐标,并将怪物放在该正方形中(除非怪物已经在其中,然后选择另一个)

最新更新