2017-03-03 10 views
-1

私のプログラムは、私のグリッド内の矩形の約50%の色をランダムに変更したいと思っています。色を変更するための矩形の数を無作為に選択する方法

私はボードの長さの配列を持っており、これらの数字の50%が青色であることを望みます。

FALSE =グレー

TRUE =青

注:これはpaintメソッド内である

grid = new boolean[board.length]; 

    Random r = new Random();  
    for(int i = 1;i <grid.length;i++){ 
     int rand = r.nextInt(i); 
    } 
+0

あなたはおそらく2色のおおよその50/50ミックスを取得する代わりのgetIntのgetBoolean()メソッド(int)を使用したいです –

答えて

0

グラフィックgを使用してボード上の正方形の数を取り、ターゲットパーセントを掛け。 8x8ボードと仮定して、64個の正方形* .50 = 32. すべての長方形のリストを作成します。
ループを開始します。 0から矩形リストのサイズまでの乱数を生成します。その位置を外して青くします。 32個すべての矩形が識別された場合はループを終了します。

//擬似コード

java.util.Random random = new Random(); 
List<Integer> rectangles = new ArrayList<Integer>(); 
for(int i = 0; i < grid.length; i++) 
{ 
    rectangles.add(i); 
} 
//Fill the rectangles 
for(int i = 0; i < 32; i++) 
{ 
    int position = random.nextInt(rectangles.size()); 
    Integer toConvert = rectangles.remove(position); 
    //perform operation to make toConvert blue. 
    grid[toConvert] = true; 
} 
関連する問題