2017-03-03 37 views
-1

我希望我的程序隨機更改我的網格中大約50%矩形的顏色,這是使用jframe完成的。如何隨機選擇多個矩形來改變顏色

我有一個數組與董事會的長度,我希望這些數字的50%是藍色的。

FALSE =灰

TRUE =藍色

注意:這是使用圖形克

grid = new boolean[board.length]; 

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

你可能想使用getBoolean()方法,而不是getInt(int)以得到近似的比例混合的兩種顏色 –

回答

0

採取電路板上的方格數和由目標百分比乘以paint方法內。 假設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; 
}