如何交换随机敌人?我能够得到随机的x和y位置,但问题是有些敌人正在互相交换。如何编辑以下代码?
Random r = new Random();
for(int i = 0; i < 5; i++){
//x, y
enemy e = new enemy(r.nextInt(GamePanel.WINDOW_WIDTH), r.nextInt(GamePanel.WINDOW_HEIGHT));
enemiesStore.add(e);
}
答案 0 :(得分:0)
你可以这样做:
int y;int x;
ArrayList<String> listXY=new ArrayList();
Random r = new Random();
for(int i = 0; i < 5; i++){
x=r.nextInt(GamePanel.WINDOW_WIDTH);
y=r.nextInt(GamePanel.WINDOW_HEIGHT);
if(!listXY.contains(x+","+y))
{
enemy e = new enemy(x, y);
listXY.add(x+","+y);
enemiesStore.add(e);
}
else
{
i--;
}
}
但它有一个问题:如果随机永远不会获得一个propper位置,它可能是一个无限循环。
编辑:另一种方法是下一个:左 您可以列出可能的位置,然后随机选择它们并在选中时从列表中删除它们。