1. 複習上週亂數洗牌
(1) 複製上週程式碼(設定排色、亂數洗牌)
(2) 簡化程式碼 強化洗牌 - 設立 myShuffle 函式
(3) 完成
2. 顯示 52 張牌
(1) 開新視窗(crtl + n)
(2) 輸入程式碼
void setup(){
size(600,600);
}
void draw(){
background(#FFFFF2);
for(int i=0; i<52; i++){
int x = (i%10)*60; ///除法10餘數,個位數
int y = int(i/10)*120; ///十位數
rect( x, y, 60, 120);
}
}
(3) 加入 faces 陣列、修改牌面
(3) 修改成13進位
(4) 增加 if、else(如果是紅心或是方塊顯示紅色)
(5) 完成
4. 52 張牌洗牌
(1) 增加程式碼(faces[a] 和 faces[b] 交換)
void mousePressed(){
int a = int(random(52));
int b = int(random(52));
String temp = faces[a];
faces[a] = faces[b];
faces[b] = temp;
}
(2) 完成
5. 52 張牌洗牌 2.0
(1) 以第一個程式碼當基底,放入新的程式碼
(2) Pressed 改成 Dragged
(3) 完成
6. 完整程式碼
void setup(){size(800,600);PFont font = createFont("標楷體" , 16);textFont(font);} //洗牌的英文 ShuffleString [] faces = {"黑桃A","黑桃2","黑桃3","黑桃4","黑桃5","黑桃6","黑桃7","黑桃8","黑桃9","黑桃10","黑桃J","黑桃Q","黑桃K","紅心A","紅心2","紅心3","紅心4","紅心5","紅心6","紅心7","紅心8","紅心9","紅心10","紅心J","紅心Q","紅心K","方塊A","方塊2","方塊3","方塊4","方塊5","方塊6","方塊7","方塊8","方塊9","方塊10","方塊J","方塊Q","方塊K","梅花A","梅花2","梅花3","梅花4","梅花5","梅花6","梅花7","梅花8","梅花9","梅花10","梅花J","梅花Q","梅花K",};void draw(){background(#FFFFF2);for(int i=0; i<52; i++){int x = (i%13)*60;int y = int(i/13)*120;fill(255); rect( x, y, 60, 120);if(faces[i].indexOf("紅心") == -1 && faces[i].indexOf("方塊") == -1 ) fill(0);else fill(255, 0, 0);text( faces[i], x+10, y+60);}}void mouseDragged(){int a = int(random(52));int b = int(random(52));String temp = faces[a];faces[a] = faces[b];faces[b] = temp;}
沒有留言:
張貼留言