2023年10月5日 星期四

m week04

 week04

畫出格子
void setup(){
  size(400,400);
}
int [][] card = new int[8][11];
void draw(){
  background(255);
  for(int i=0; i<8; i++){
    for(int j=0; j<11; j++){
      rect(j*32, i*50, 32, 50);
    }
  }
}
做出uno卡牌的顏色
void setup(){
  size(400,400);
}
int [][] card = new int[8][11];
color [] C ={#FF5555, #FFAA00, #55AA55, #5555FF};
void draw(){
  background(255);
  for(int i=0; i<8; i++){
    for(int j=0; j<11; j++){
      fill(C[i%4]);
      rect(j*32, i*50, 32, 50);
    }
  }
}

把卡片變圓弧,增加邊框
void setup(){
  size(400,400);
}
int [][] card = new int[8][11];
color [] C ={#FF5555, #FFAA00, #55AA55, #5555FF};
void draw(){
  background(255);
  for(int i=0; i<8; i++){
    for(int j=0; j<11; j++){
      drawCard(j*32, i*50, C[i%4]);
    }
  }
}
void drawCard(int x, int y, color c){
  stroke(128); //gray stroke
  fill(255); //white
  rect(x, y, 32, 50, 7);
  noStroke();
  fill(c);
  rect(x+3, y+3, 32-5, 50-5, 4);
}

增加白色橢圓在卡牌中
void setup(){
  size(400,400);
}
int [][] card = new int[8][11];
color [] C ={#FF5555, #FFAA00, #55AA55, #5555FF};
void draw(){
  background(255);
  for(int i=0; i<8; i++){
    for(int j=0; j<11; j++){
      drawCard(j*32, i*50, C[i%4]);
    }
  }
}
void drawCard(int x, int y, color c){
  stroke(128); //gray stroke
  fill(255); //white
  rect(x, y, 32, 50, 7);
  noStroke();
  fill(c);
  rect(x+3, y+3, 32-5, 50-5, 4);
  
  pushMatrix();
  fill(255);
  translate(x+16, y+25);
  rotate(radians(45));
  ellipse(0, 0, 20, 30);
  popMatrix();
}

增加卡牌的數字
void setup(){
  size(400,400);
}
int [][] card = new int[8][11];
color [] C ={#FF5555, #FFAA00, #55AA55, #5555FF};
void draw(){
  background(255);
  for(int i=0; i<8; i++){
    for(int j=0; j<11; j++){
      drawCard(j*32, i*50, C[i%4]);
    }
  }
}
void drawCard(int x, int y, color c){
  stroke(128); //gray stroke
  fill(255); //white
  rect(x, y, 32, 50, 7);
  noStroke();
  fill(c);
  rect(x+3, y+3, 32-5, 50-5, 4);
  
  pushMatrix();
  fill(255);
  translate(x+16, y+25);
  rotate(radians(45));
  ellipse(0, 0, 20, 30);
  popMatrix();
  
  textAlign(CENTER,CENTER);
  textSize(9);
  text("1", x+7, y+6);
  
  textSize(20);
  fill(c);
  text("1", x+16, y+22);
}

讓卡牌有數字排序
void setup(){
  size(400,400);
}
int [][] card = new int[8][11];
color [] C ={#FF5555, #FFAA00, #55AA55, #5555FF};
void draw(){
  background(255);
  for(int i=0; i<8; i++){
    for(int j=0; j<11; j++){
      drawCard(j*32, i*50, C[i%4], j);
    }
  }
}
void drawCard(int x, int y, color c , int n){
  stroke(128); //gray stroke
  fill(255); //white
  rect(x, y, 32, 50, 7);
  noStroke();
  fill(c);
  rect(x+3, y+3, 32-5, 50-5, 4);
  
  pushMatrix();
  fill(255);
  translate(x+16, y+25);
  rotate(radians(45));
  ellipse(0, 0, 20, 30);
  popMatrix();
  
  textAlign(CENTER,CENTER);
  textSize(9);
  text(""+n, x+7, y+6);
  
  textSize(20);
  fill(c);
  text(""+n, x+16, y+22);
}
另一種方法 Shuffle
void setup(){
  size(400,400);
  mySuffle();
}
void mySuffle(){
  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];
    }
  }
}
//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);
  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]); 
    }
  }
}
void drawCard(int x, int y, color c , int n){
  stroke(128); //gray stroke
  fill(255); //white
  rect(x, y, 32, 50, 7);
  noStroke();
  fill(c);
  rect(x+3, y+3, 32-5, 50-5, 4);
  
  pushMatrix();
  fill(255);
  translate(x+16, y+25);
  rotate(radians(45));
  ellipse(0, 0, 20, 30);
  popMatrix();
  
  textAlign(CENTER,CENTER);
  textSize(9);
  text(""+n, x+7, y+6);
  
  textSize(20);
  fill(c);
  text(""+n, x+16, y+22);
}

洗牌
void setup(){
  size(400,400);
  mySuffle();
}
void mySuffle(){
  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];
    }
  }
  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);
  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]); 
    }
  }
}
void drawCard(int x, int y, color c , int n){
  stroke(128); //gray stroke
  fill(255); //white
  rect(x, y, 32, 50, 7);
  noStroke();
  fill(c);
  rect(x+3, y+3, 32-5, 50-5, 4);
  
  pushMatrix();
  fill(255);
  translate(x+16, y+25);
  rotate(radians(45));
  ellipse(0, 0, 20, 30);
  popMatrix();
  
  textAlign(CENTER,CENTER);
  textSize(9);
  text(""+n, x+7, y+6);
  
  textSize(20);
  fill(c);
  text(""+n, x+16, y+22);
}
洗牌洗很多次
void setup(){
  size(400,400);
  mySuffle();
}
void mySuffle(){
  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);
  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]); 
    }
  }
}
void drawCard(int x, int y, color c , int n){
  stroke(128); //gray stroke
  fill(255); //white
  rect(x, y, 32, 50, 7);
  noStroke();
  fill(c);
  rect(x+3, y+3, 32-5, 50-5, 4);
  
  pushMatrix();
  fill(255);
  translate(x+16, y+25);
  rotate(radians(45));
  ellipse(0, 0, 20, 30);
  popMatrix();
  
  textAlign(CENTER,CENTER);
  textSize(9);
  text(""+n, x+7, y+6);
  
  textSize(20);
  fill(c);
  text(""+n, x+16, y+22);
}

在右邊放大卡片
void setup(){
  size(800,400);
  mySuffle();
}
void mySuffle(){
  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);
  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); 
    }
  }
  drawCard(450,50, cardC[7], cardN[77], 128);
}
void drawCard(int x, int y, color c , int n, int w){
  float s = w/32.0;
  stroke(128); //gray stroke
  fill(255); //white
  rect(x, y, 32*s, 50*s, 7*s);
  noStroke();
  fill(c);
  rect(x+2.5*s, y+2.5*s, 32*s-5*s, 50*s-5*s, 4*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*s);
  text(""+n, x+7*s, y+6*s);
  
  textSize(20*s);
  fill(c);
  text(""+n, x+16*s, y+22*s);
}

互動卡牌,按下右鍵能增加卡牌,按下左鍵能顯示卡牌
void setup(){
  size(800,400);
  mySuffle();
}
void mySuffle(){
  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){ //cheat key, peek all
  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); //get card here
  
  for(int i=0; i<myCard; i++){
    drawCard(430+40*i, 50, 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); //gray stroke
  fill(255); //white
  rect(x, y, 32*s, 50*s, 7*s);
  noStroke();
  fill(c);
  rect(x+2.5*s, y+2.5*s, 32*s-5*s, 50*s-5*s, 4*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*s);
  text(""+n, x+7*s, y+6*s);
  
  textSize(20*s);
  fill(c);
  text(""+n, x+16*s, y+22*s);
}
發四組牌
void setup(){
  size(850,850);
  mySuffle();
}
void mySuffle(){
  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){ //cheat key, peek all
  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); //get card here
  
  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); //gray stroke
  fill(255); //white
  rect(x, y, 32*s, 50*s, 7*s);
  noStroke();
  fill(c);
  rect(x+2.5*s, y+2.5*s, 32*s-5*s, 50*s-5*s, 4*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*s);
  text(""+n, x+7*s, y+6*s);
  
  textSize(20*s);
  fill(c);
  text(""+n, x+16*s, y+22*s);
}






沒有留言:

張貼留言