2022年9月26日 星期一

week03

 Step01 增加洗牌


void setup(){

  size(500,500);

  PFont font = createFont("標楷體", 40);

  textFont(font);

  myShuffle();

}

void myShuffle(){

  String[]flower ={"黑桃","紅心","方塊","梅花"};

  face1 = flower[int(random(4))]+int(random(13)+1);

  face2 = flower[int(random(4))]+int(random(13)+1);

  face3 = flower[int(random(4))]+int(random(13)+1);

  face4 = flower[int(random(4))]+int(random(13)+1);

}

void mousePressed(){

  myShuffle();

}

String face1,face2,face3,face4;

void draw(){

  drawPokerCard(100,100, face1);

  drawPokerCard(130,150, face2);

  drawPokerCard(160,200, face3);

  drawPokerCard(190,250, face4);

}

void drawPokerCard(int x, int y, String face){

  int W=25;

  fill(255);

  rect(x-W/2,y-W/2,150+W, 250+W, 20);

  fill(#FFA7A7);

  rect(x,y,150, 250, 20);//弧度

  //fill(0);

  if( face.indexOf("黑桃") == -1 && face.indexOf("梅花") == -1) fill(#FF0000);

  else fill(0);

  textSize(40);

  text( face, x, y+40);

}

Step02

void setup(){
  size(700,700);
}
void draw(){
  background(#FFFFF2);
  for(int i=0; i<52; i++){
    int x = (i%10)*60;
    int y = int(i/10)*120;
    rect( x, y, 60, 120 );
  }
}

step02-2加上花色編號
void setup(){
  size(700,700);
  PFont font = createFont("標楷體", 10);
  textFont(font);
}
String [] face = {
  "黑桃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%10)*60;
    int y = int(i/10)*120;
    fill(255); rect( x, y, 60, 120 );
    fill(0);   text(face[i], x+25, y+80); 
  }
}
step02-3使特定花色變成紅字
void setup(){
  size(800,600);
  PFont font = createFont("標楷體", 16);
  textFont(font);
}
String [] face = {
  "黑桃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( face[i].indexOf("紅心") == -1 && face[i].indexOf("方塊") == -1) fill(0);
    else fill(255,0,0);
    text(face[i], x+10, y+60); 
  }
}
step02-3全部洗牌

void setup(){
  size(800,600);
  PFont font = createFont("標楷體", 16);
  textFont(font);
}
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 mousePressed(){
  int a = int(random(52));
  int b = int(random(52));
  //目標: face[a] vs. faces[b]交換
  String temp = faces[a];
  faces[a] = faces[b];
  faces[b] = temp;
}




沒有留言:

張貼留言