2023年10月5日 星期四

Doing Nothing Losing Life Week04

 Week04    

準備好陣列和迴圈,用rect畫出卡片格子


用陣列畫出四個顏色


新增一個drawCard函式,畫出有弧度的卡片邊框


在卡片中間畫上橢圓


讓每個都加1號字,文字大小和位置





新增一個myShuffle函式,把牌的顏色變陣列和數字排好


交換一張卡片


加入迴圈,讓它不要只洗一次牌


將印在右邊的卡片大小全部*s



按左鍵秀出一張牌,按右鍵秀出所有牌


取餘數放在不同位置


void setup(){
  size(800,800);
  myShuffle();
}
void myShuffle(){
  for(int i=0;i<8;i++){
    for(int j=0;j<11;j++){
      cardN[i*11+j] = j;
      cardC[i*11+j] = C[i%4];
    }
  }
  for(int i =0;i<10000;i++){
    int a = int(random(88)), b = int(random(88));
    int temp = cardN[a];
    cardN[a] = cardN[b];
    cardN[b] = temp;
    temp = cardC[a];
    cardC[a] = cardC[b];
    cardC[b] =temp;
  }
}

//int [][]card = new int[8][11];
int [] cardN = new int[88];//card number
int [] cardC = new int[88];// card color
color [] C = {#FF5555, #FFAA00, #55AA55 ,#5555FF};
void draw(){
  background(255);
  if(mousePressed && mouseButton == RIGHT){
  for(int i=0;i<8;i++){
    for(int j=0;j<11;j++){
      //drawCard(j*32,i*50,C[i%4],j);
      drawCard(j*32,i*50,cardC[i*11+j],cardN[i*11+j],32);
      }
    }
  }else drawCard(50,50,#000000,99,128);
  
  for(int i=0;i<myCard;i++){
  if(i%4==0) drawCard(430+40*i/4,50,cardC[i],cardN[i],128);
  if(i%4==1) drawCard(630+40*i/4,350,cardC[i],cardN[i],128);
  if(i%4==2) drawCard(430+40*i/4,650,cardC[i],cardN[i],128);
  if(i%4==3) drawCard(230+40*i/4,350,cardC[i],cardN[i],128);
  }
}
int myCard = 0;
void mousePressed(){
  if(mouseButton==LEFT) myCard++;
}
void drawCard(int x, int y ,color c,int n,int w){
    float s =w/32.0;
    stroke(128); //灰色
    fill(255);
    rect(x,y,32*s,50*s,7*s);
    fill(c);
    rect(x+2.5*s,y+2.5*s,32*s-5*s,50*s-5*s,5*s);
    
    pushMatrix();
    fill(255);
    translate(x+16*s,y+25*s);
    rotate(radians(45));
    ellipse(0,0,20*s,30*s);
    popMatrix();
    
    
    textAlign(CENTER,CENTER);
    textSize(9);
    text(""+n,x+7*s,y+6*s);
    
    textSize(20);
    fill(c);
    text(""+n,x+16*s,y+22*s);
    
}











沒有留言:

張貼留言