Week16
小葉說程式要大修(´,_ゝ`)
ArrayList<Integer> deck = new ArrayList<Integer>();
void setup(){
size(600,400);
for(int i=0;i<13;i++){//產生13張牌
deck.add( int(random(13)) );//加陣列、亂數挑數字
}
}
void draw(){
background(#FFFFF2);
for(int i=0;i<deck.size();i++){//原for(Integer i:deck){
fill(255);//白色
rect(50,i*10,50,50);//直的放牌
fill(0);//黑色
text(""+deck.get(i),75,i*10+25,25);//字位置
}
} for(int i=0;i<3;i++){//產生3張牌可以修改成我要的大小及座標
ArrayList<Integer> deck = new ArrayList<Integer>();
void setup(){
size(1000,800);
for(int i=0;i<13;i++){//產生13張牌
deck.add( int(random(13)) );//加陣列亂數挑數字
}
}
void draw(){
background(#FCF2EA);
for(int i=0;i<deck.size();i++){//for(Integer i:deck){
fill(255);//白色
rect(50,i*50,83,109,10);//直的放牌
fill(0);//黑色
text(""+deck.get(i),55,25+i*50);//字位置
}
}一絡牌存成一個ArrayList --> deck1、2、3......
ArrayList<Integer> deck1 = new ArrayList<Integer>();
ArrayList<Integer> deck2 = new ArrayList<Integer>();
ArrayList<Integer> deck3 = new ArrayList<Integer>();
void setup(){
size(600,400);
for(int i=0;i<7;i++){
deck1.add( int(random(13)) );
}
for(int i=0;i<6;i++){
deck2.add( int(random(13)) );
}
for(int i=0;i<5;i++){
deck3.add( int(random(13)) );
}
}
void draw(){
background(#FFFFF2);
//for(Integer i:dock){
for(int i=0;i<deck1.size();i++){
fill(255); rect(450,i*10,50,50);//直的放牌
fill(0); text(""+deck1.get(i),475,i*10+25,25);//字位置
}
for(int i=0;i<deck2.size();i++){
fill(255); rect(350,i*10,50,50);//直的放牌
fill(0); text(""+deck2.get(i),375,i*10+25,25);//字位置
}
for(int i=0;i<deck3.size();i++){
fill(255); rect(250,i*10,50,50);//直的放牌
fill(0); text(""+deck3.get(i),275,i*10+25,25);//字位置
}
}如果要每個牌堆都宣告分開宣告deck會很麻煩,用ArrayList<ArrayList<Integer>>??
ArrayList<ArrayList<Integer>> decks = new ArrayList<ArrayList<Integer>>();//decks:大牌堆
void setup(){
size(600,400);
for(int i=0;i<7;i++){
ArrayList<Integer> deck = new ArrayList<Integer>();
for(int k=0;k<=i;k++){
deck.add( int(random(13)) );
}//第i個牌堆,第k張牌
decks.add( deck );//小牌堆加進大牌堆裡
}
}
void draw(){
background(#FFFFF2);
for(int i=0;i<decks.size();i++){
ArrayList<Integer> deck = decks.get(i); //從decks取出來
for(int k=0;k<deck.size();k++){
fill(255); rect(200+ i*50, 150+k*20, 40, 50);//x:100+ L*50
fill(0);
text(""+ deck.get(k),200+i*50+25, 175+k*20);//y:50+ k*30
}
}
}只秀最後一張牌的數字
if(k==deck.size()-1){//之後做最後一張牌移動也是這個 fill(0);text(""+ deck.get(k),200+i*50+25, 175+k*20);}加入滑鼠控制
ArrayList<ArrayList<Integer>> decks = new ArrayList<ArrayList<Integer> >();
void setup(){
size(600,400);
for(int i=0;i<7;i++){
ArrayList<Integer> deck = new ArrayList<Integer>();
for(int k=0;k<=i;k++){
decks.add( deck );
}//第i個牌堆,第k張牌
decks.add( deck );
}
}
void draw(){
background(#FFFFF2);
for(int i=0;i<decks.size();i++){
ArrayList<Integer> deck = decks.get(i);
for(int k=0;k<deck.size();k++){
if(pressedI == i && k == deck.size()-1) continue;//按到最後一張牌
fill(255); rect(200+ i*50, 150+k*20, 40, 50);//x:100+ L*50
if(k==deck.size()-1){
fill(0); text(""+ deck.get(k),200+i*50+25, 175+k*20);//y:50+ k*30
}
}
}
if(pressedI!=-1){
int i = pressedI, k = (decks.get(pressedI).size()-1);
fill(255,255,0);//填充黃色
rect(200+ pressedI*50+dx ,150+k *20+dy, 40, 50);
fill(0); text(""+ decks.get(i).get(k),200+i*50+25+dx, 175+k*20+dy);//y:50+ k*30
}
}
void mousePressed(){
for(int i=0;i<decks.size();i++){
int k = decks.get(i).size()-1;
if( insideCard(200+ i*50, 150+k*20, 40, 50) ){
pressedI = i;
return;//return迴圈
}
}
pressedI = -1;//有選到i 沒選到-1
}
void mouseReleased(){
pressedI = -1;
dx=0;dy=0;
}ArrayList<ArrayList<Integer>> decks = new ArrayList<ArrayList<Integer>>();
void setup() {
size(600, 400);
for (int i=0; i<7; i++) {
ArrayList<Integer> deck = new ArrayList<Integer>();
for (int k=0; k<=i; k++) {
deck.add( int(random(13)) );
} //第i個牌堆,第k張牌
decks.add( deck );
}
}
void draw() {
background(#FFFFF2);
for (int i=0; i<decks.size(); i++) {
ArrayList<Integer> deck = decks.get(i);
for (int k=0; k<deck.size(); k++) {
if(pressedI == i && k==deck.size()-1) continue;
fill(255); rect(200 + i*50, 150+k*20, 40, 50); //x:100 + L * 50;
if(k==deck.size()-1){
fill(0); text( ""+deck.get(k), 200+i*50+25, 175+k*20); //y: 50 + k * 30;
}
}
}
if(pressedI!=-1){
int i = pressedI, k = (decks.get(i).size()-1);
fill(255,255,0);
rect(200 + i*50 + dx, 150+k*20 + dy, 40, 50);
fill(0); text( ""+decks.get(i).get(k), 200+i*50+25+dx, 175+k*20+dy);
}
}
void mouseDragged(){
dx += mouseX-pmouseX;
dy += mouseY-pmouseY;
}
int pressedI = -1, dx=0, dy=0;
boolean insideCard(int x, int y, int w, int h){
if(x<mouseX && mouseX<x+w && y<mouseY && mouseY<y+h){
return true;
}
return false;
}
void mousePressed(){
for (int i=0; i<decks.size(); i++) {
int k = decks.get(i).size()-1;
if(insideCard(200 + i*50, 150+k*20, 40, 50)){
pressedI = i;
return;
}
}
pressedI = -1;
}
void mouseReleased(){
for(int i=0; i<7; i++){
int x = 200+i*50;
if(x<mouseX && mouseX<x+40) {
int kk = decks.get(pressedI).size()-1;
decks.get(i).add( decks.get(pressedI).get(kk) );
decks.get(pressedI).remove(kk);
}
}
pressedI = -1;
dx=0; dy=0;
}
ArrayList<Integer> deck = new ArrayList<Integer>(); void setup(){ size(600,400); for(int i=0;i<13;i++){//產生13張牌 deck.add( int(random(13)) );//加陣列、亂數挑數字 } } void draw(){ background(#FFFFF2); for(int i=0;i<deck.size();i++){//原for(Integer i:deck){ fill(255);//白色 rect(50,i*10,50,50);//直的放牌 fill(0);//黑色 text(""+deck.get(i),75,i*10+25,25);//字位置 } }for(int i=0;i<3;i++){//產生3張牌可以修改成我要的大小及座標 ArrayList<Integer> deck = new ArrayList<Integer>(); void setup(){ size(1000,800); for(int i=0;i<13;i++){//產生13張牌 deck.add( int(random(13)) );//加陣列亂數挑數字 } } void draw(){ background(#FCF2EA); for(int i=0;i<deck.size();i++){//for(Integer i:deck){ fill(255);//白色 rect(50,i*50,83,109,10);//直的放牌 fill(0);//黑色 text(""+deck.get(i),55,25+i*50);//字位置 } }一絡牌存成一個ArrayList --> deck1、2、3...... ArrayList<Integer> deck1 = new ArrayList<Integer>(); ArrayList<Integer> deck2 = new ArrayList<Integer>(); ArrayList<Integer> deck3 = new ArrayList<Integer>(); void setup(){ size(600,400); for(int i=0;i<7;i++){ deck1.add( int(random(13)) ); } for(int i=0;i<6;i++){ deck2.add( int(random(13)) ); } for(int i=0;i<5;i++){ deck3.add( int(random(13)) ); } } void draw(){ background(#FFFFF2); //for(Integer i:dock){ for(int i=0;i<deck1.size();i++){ fill(255); rect(450,i*10,50,50);//直的放牌 fill(0); text(""+deck1.get(i),475,i*10+25,25);//字位置 } for(int i=0;i<deck2.size();i++){ fill(255); rect(350,i*10,50,50);//直的放牌 fill(0); text(""+deck2.get(i),375,i*10+25,25);//字位置 } for(int i=0;i<deck3.size();i++){ fill(255); rect(250,i*10,50,50);//直的放牌 fill(0); text(""+deck3.get(i),275,i*10+25,25);//字位置 } }如果要每個牌堆都宣告分開宣告deck會很麻煩,用ArrayList<ArrayList<Integer>>?? ArrayList<ArrayList<Integer>> decks = new ArrayList<ArrayList<Integer>>();//decks:大牌堆 void setup(){ size(600,400); for(int i=0;i<7;i++){ ArrayList<Integer> deck = new ArrayList<Integer>(); for(int k=0;k<=i;k++){ deck.add( int(random(13)) ); }//第i個牌堆,第k張牌 decks.add( deck );//小牌堆加進大牌堆裡 } } void draw(){ background(#FFFFF2); for(int i=0;i<decks.size();i++){ ArrayList<Integer> deck = decks.get(i); //從decks取出來 for(int k=0;k<deck.size();k++){ fill(255); rect(200+ i*50, 150+k*20, 40, 50);//x:100+ L*50 fill(0); text(""+ deck.get(k),200+i*50+25, 175+k*20);//y:50+ k*30 } } }只秀最後一張牌的數字 if(k==deck.size()-1){//之後做最後一張牌移動也是這個fill(0);text(""+ deck.get(k),200+i*50+25, 175+k*20);}加入滑鼠控制 ArrayList<ArrayList<Integer>> decks = new ArrayList<ArrayList<Integer> >(); void setup(){ size(600,400); for(int i=0;i<7;i++){ ArrayList<Integer> deck = new ArrayList<Integer>(); for(int k=0;k<=i;k++){ decks.add( deck ); }//第i個牌堆,第k張牌 decks.add( deck ); } } void draw(){ background(#FFFFF2); for(int i=0;i<decks.size();i++){ ArrayList<Integer> deck = decks.get(i); for(int k=0;k<deck.size();k++){ if(pressedI == i && k == deck.size()-1) continue;//按到最後一張牌 fill(255); rect(200+ i*50, 150+k*20, 40, 50);//x:100+ L*50 if(k==deck.size()-1){ fill(0); text(""+ deck.get(k),200+i*50+25, 175+k*20);//y:50+ k*30 } } } if(pressedI!=-1){ int i = pressedI, k = (decks.get(pressedI).size()-1); fill(255,255,0);//填充黃色 rect(200+ pressedI*50+dx ,150+k *20+dy, 40, 50); fill(0); text(""+ decks.get(i).get(k),200+i*50+25+dx, 175+k*20+dy);//y:50+ k*30 } } void mousePressed(){ for(int i=0;i<decks.size();i++){ int k = decks.get(i).size()-1; if( insideCard(200+ i*50, 150+k*20, 40, 50) ){ pressedI = i; return;//return迴圈 } } pressedI = -1;//有選到i 沒選到-1 } void mouseReleased(){ pressedI = -1; dx=0;dy=0; }ArrayList<ArrayList<Integer>> decks = new ArrayList<ArrayList<Integer>>(); void setup() { size(600, 400); for (int i=0; i<7; i++) { ArrayList<Integer> deck = new ArrayList<Integer>(); for (int k=0; k<=i; k++) { deck.add( int(random(13)) ); } //第i個牌堆,第k張牌 decks.add( deck ); } } void draw() { background(#FFFFF2); for (int i=0; i<decks.size(); i++) { ArrayList<Integer> deck = decks.get(i); for (int k=0; k<deck.size(); k++) { if(pressedI == i && k==deck.size()-1) continue; fill(255); rect(200 + i*50, 150+k*20, 40, 50); //x:100 + L * 50; if(k==deck.size()-1){ fill(0); text( ""+deck.get(k), 200+i*50+25, 175+k*20); //y: 50 + k * 30; } } } if(pressedI!=-1){ int i = pressedI, k = (decks.get(i).size()-1); fill(255,255,0); rect(200 + i*50 + dx, 150+k*20 + dy, 40, 50); fill(0); text( ""+decks.get(i).get(k), 200+i*50+25+dx, 175+k*20+dy); } } void mouseDragged(){ dx += mouseX-pmouseX; dy += mouseY-pmouseY; } int pressedI = -1, dx=0, dy=0; boolean insideCard(int x, int y, int w, int h){ if(x<mouseX && mouseX<x+w && y<mouseY && mouseY<y+h){ return true; } return false; } void mousePressed(){ for (int i=0; i<decks.size(); i++) { int k = decks.get(i).size()-1; if(insideCard(200 + i*50, 150+k*20, 40, 50)){ pressedI = i; return; } } pressedI = -1; } void mouseReleased(){ for(int i=0; i<7; i++){ int x = 200+i*50; if(x<mouseX && mouseX<x+40) { int kk = decks.get(pressedI).size()-1; decks.get(i).add( decks.get(pressedI).get(kk) ); decks.get(pressedI).remove(kk); } } pressedI = -1; dx=0; dy=0; }







沒有留言:
張貼留言