2023年10月5日 星期四

91 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);
    fill(255);
    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);
    fill(255);
    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);
    fill(255);
    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(9);
    textAlign(CENTER,CENTER);
    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);
    fill(255);
    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(9);
    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];
int [] cardC=new int[88];
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);
    fill(255);
    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(9);
    textAlign(CENTER,CENTER);
    text(""+n,x+7,y+6);
    
    textSize(20);
    fill(c); 
    text(""+n,x+16,y+22); 
}
加入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 [][] card=new int [8][11];
int [] cardN=new int[88];
int [] cardC=new int[88];
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);
    fill(255);
    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(9);
    textAlign(CENTER,CENTER);
    text(""+n,x+7,y+6);
    
    textSize(20);
    fill(c); 
    text(""+n,x+16,y+22); 
}
任意兩張牌交換:
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;
}
//int [][] card=new int [8][11];
int [] cardN=new int[88];
int [] cardC=new int[88];
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);
    fill(255);
    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(9);
    textAlign(CENTER,CENTER);
    text(""+n,x+7,y+6);
    
    textSize(20);
    fill(c); 
    text(""+n,x+16,y+22); 
}
洗牌次數增加到10000次:
  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];
      }
   }
  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];
int [] cardC=new int[88];
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);
    fill(255);
    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(9);
    textAlign(CENTER,CENTER);
    text(""+n,x+7,y+6);
    
    textSize(20);
    fill(c); 
    text(""+n,x+16,y+22); 
}
右邊出現大牌面:
  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];
int [] cardC=new int[88];
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,cardC[i*11+j],cardN[i*11+j],32);
      }
   }
   drawCard(500,100,cardC[7],cardN[77],128);
}
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);
    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(9*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); 
}
黑色牌隱藏牌型,增加偷看牌的功能右鍵,發牌左鍵:
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];
int [] cardC=new int[88];
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,cardC[i*11+j],cardN[i*11+j],32);
      }
   }
}else drawCard(50,50,#000000,99,128);
   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);
    fill(255);
    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(9*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); 
}
發牌完整版:
void setup(){
  size(850,850);
  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];
int [] cardC=new int[88];
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,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);
    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(9*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); 
}


沒有留言:

張貼留言