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();
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]); } } }myShufflevoid 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 numberint []cardC = new int[88];//card colorcolor [] C = {#FF5555,#FFAA00,#55AA55,#5555FF};void draw(){background(255);if(mousePressed && mouseButton==RIGHT){ //cheat key,peek allfor(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 herefor(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 sizestroke(128);//gray strokefill(255);//whiterect(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);}}










沒有留言:
張貼留言