如何使用随机对象交换随机敌人?

时间:2016-03-21 23:21:46

标签: java

如何交换随机敌人?我能够得到随机的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);
    }

1 个答案:

答案 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位置,它可能是一个无限循环。

编辑:另一种方法是下一个:左 您可以列出可能的位置,然后随机选择它们并在选中时从列表中删除它们。