2016-03-21 7 views
0

どのようにランダムな敵を交換するには?私はランダムなxとyの位置を得ることができましたが、問題はいくつかの敵がお互いに交換していることです。下のコードはどのように編集できますか?ランダムなオブジェクトを使ってランダムな敵をスワップする方法は?

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--; 
    } 
} 

をしかし、それは問題を抱えている:

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

「while(xとyの敵はありません)x =ランダム、y =ランダム; – Maljam

+0

私はそれについてはやったが、単純な解決策があるように感じる。ループを使用しない理由 – user1924249

+0

ループを使用しない理由はありますか?これは、ランダムにポジションを選択するときに問題を解決する唯一の方法です。 –

答えて

0

あなたはこれを行うことができ、ランダムな、それは無限ループすることができpropper位置を取得することはありません場合。

EDIT:同じことを行う別の方法は、次のようになります:
あなたが可能な位置のリストを行い、その後、ランダムに選択し、選んだときに、リストから削除することができます。

関連する問題