Week04
week04_1_uno_for_for_rect
建置視窗大小和卡片 ▼
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*30, i*50, 32, 50); //卡片大小 } } }
week04_2_uno_color_red_yellow_green_blue
陣列準備四個顏色 ▼
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*30, i*50, 32, 50); //卡片大小 } } }
week04_3_uno_better_card_func
做好牌的底色和外框 ▼
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); //白背景 rect(x, y, 32, 50, 7); noStroke(); fill(c); rect(x+3, y+3, 32-5, 50-5, 4); }
week04_4_uno_ellipse_translate_rotate
▼ 畫出每張牌傾斜的橢圓
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); //白背景 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();}
week04_5_uno_ellipse_text_textSize
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); //白背景 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(); textAlign(CENTER,CENTER); textSize(9); text( n, x+7, y+6); // n 根據j改變卡片號碼 textSize(20); fill(c); text( n, x+16, y+22); }
week04_6_uno_shuffle_wash_card
▼ 洗牌
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); //gray stroke 灰邊框 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(); textAlign(CENTER,CENTER); textSize(9); text( n, x+7, y+6); // n 根據j改變卡片號碼 textSize(20); fill(c); text( n, x+16, y+22); }
week04_7_uno_shuffle_many_times
void setup(){ size(400,400); myShuffle(); } void myShuffle(){ for(int i=0; i<8; i++){ for(int j=0; j<11; j++){ cardC[i*11+j] = C[i%4]; cardN[i*11+j] = j; } } 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]); } } } void drawCard(int x, int y, color c, int n){ stroke(128); //gray stroke 灰邊框 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(); textAlign(CENTER,CENTER); textSize(9); text( n, x+7, y+6); // n 根據j改變卡片號碼 textSize(20); fill(c); text( n, x+16, y+22); }
week04_8_uno_big_card_interaction
void setup(){ size(800,400); myShuffle(); } void myShuffle(){ for(int i=0; i<8; i++){ for(int j=0; j<11; j++){ cardC[i*11+j] = C[i%4]; cardN[i*11+j] = j; } } 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[7], cardN[77], 128); } void drawCard(int x, int y, color c, int n, int w){ float s = w/32.0; //Scale size 128/32 stroke(128); //gray stroke 灰邊框 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(); textAlign(CENTER,CENTER); textSize(9*s); text(""+n, x+7*s, y+6*s); // n 根據j改變卡片號碼 textSize(20*s); fill(c); text(""+n, x+16*s, y+22*s); }
week04_9_uno_pool_get_card_interaction
▼ 右鍵偷看牌堆,左鍵抽牌
void setup(){ size(800,400); myShuffle(); } void myShuffle(){ for(int i=0; i<8; i++){ for(int j=0; j<11; j++){ cardC[i*11+j] = C[i%4]; cardN[i*11+j] = j; } } 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 128/32 stroke(128); //gray stroke 灰邊框 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(); textAlign(CENTER,CENTER); textSize(9*s); text(""+n, x+7*s, y+6*s); // n 根據j改變卡片號碼 textSize(20*s); fill(c); text(""+n, x+16*s, y+22*s); }
week04_A_uno_pool_spread_4_people
void setup(){
size(850,850);
myShuffle();
}
void myShuffle(){
for(int i=0; i<8; i++){
for(int j=0; j<11; j++){
cardC[i*11+j] = C[i%4];
cardN[i*11+j] = j;
}
}
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++){
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; //Scale size 128/32
stroke(128); //gray stroke 灰邊框
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();
textAlign(CENTER,CENTER);
textSize(9*s);
text(""+n, x+7*s, y+6*s); // n 根據j改變卡片號碼
textSize(20*s);
fill(c);
text(""+n, x+16*s, y+22*s);
}
沒有留言:
張貼留言