如何在基于2D阵列的游戏的单元格中随机放置对象? Java的

时间:2016-02-25 14:36:07

标签: java arrays random multidimensional-array

我在这里要求为游戏做一个随机将怪物放在地图中的方法。我不确定要开始并且如何在一个对象中放置一个对象(ex.Boss)( 0,0)使用嵌套for循环的2D数组或随机放置弱敌。 如何将这个想法转化为代码?

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

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

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

感谢任何帮助..谢谢你

1 个答案:

答案 0 :(得分:0)

在方法开始时在两个arraylists上使用它

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()并获取该索引处的元素但是我使用的简单方法两者的方法相同。上面的代码将根据您正在起诉的结构而改变,但逻辑应该是合理的。

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