2023年10月5日 星期四

week04咻消失

 week04

畫出放uno牌的格子
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);
     }
  }
}
小畫家選顏色,用陣列宣告顏色
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);
}

畫uno中間橢圓  
pushMatrix();
fill(255);
translate(x+16,y+25);
rotate(radians(45));
ellipse(0,0,20,30);
popMatrix();  













 
加uno中間數字
textSize(5);
textAlign(CENTER,CENTER);
text("1",x+7,y+6);
textSize(20);
fill(c);
text("1",x+16,y+22);








int n,不同數字
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();
  
  textSize(5);
  textAlign(CENTER,CENTER);
  text(""+n,x+7,y+6);
  
  textSize(20);
  fill(c);
  text(""+n,x+16,y+22);
  
}














洗牌
void setup(){
  size(400,400);
}
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]);
     }
  }
}


myShuffle
void setup(){
  size(400,400);
  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];
    }
  }
}
  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;只能洗一張牌
  
洗很多次牌 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;
}










void setup(){
  size(800,400); 視窗變大
  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);
  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[0],cardN[77],128);
}
void drawCard(int x,int y, color c,int n,int w){
  float s = w/32.0; //scale size
  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();
  
  textSize(5*s);
  textAlign(CENTER,CENTER);
  text(""+n,x+7*s,y+6*s);
  
  textSize(20*s);
  fill(c);
  text(""+n,x+16*s,y+22*s);
  
}全部都*s,等比放大

按左鍵新增牌,按右鍵偷看全部的牌
















void setup(){
  size(800,400);
  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){ //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; //scale size
  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();
  
  textSize(5*s);
  textAlign(CENTER,CENTER);
  text(""+n,x+7*s,y+6*s);
  
  textSize(20*s);
  fill(c);
  text(""+n,x+16*s,y+22*s);
  
}
  
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);
  }
}


  



沒有留言:

張貼留言