2023年10月5日 星期四

10160163-week4

 weeek04  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);
  fill(255);
  rect(x,y,32,50,7);
  fill(c);
  rect(x+2,y+2,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);
  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];//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);
  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];//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(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];//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,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);
}

一次發4副牌

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,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  +40*i/4, 350,cardC[i],cardN[i],128);
  if(i%4==2) drawCard(430-80  +40*i/4, 650,cardC[i],cardN[i],128);
  if(i%4==3) drawCard(230-120 +40*i/4, 450,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);
}





沒有留言:

張貼留言