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); }













沒有留言:
張貼留言