2022年9月19日 星期一

Week_03 2022.09.19

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 陣列、修改牌面

(4) 完成  


3. 顯示 52 張牌 2.0

(1) 修改視窗、字體大小

 

(2) 修改牌面

 

(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);
}  //洗牌的英文 Shuffle

String [] 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;
}

 

沒有留言:

張貼留言