week11
第一個程式和第二個程式
先劃出格子並在裡面放入隨機數字
void setup(){ size(600,500); for(int i=0;i<4;i++){ for(int j=0;j<6;j++){ value[i][j] = int(random(40)); } } } int [][] value = new int [4][6]; void draw(){ background(255); for(int i=0;i<4;i++){ for(int j=0;j<6;j++){ fill(#F5B4B4);rect(j*100,i*100,100,100); fill(0);text(value[i][j],j*100+25,i*100+50); } } }
第三個程式
讓數字不要重複出現
void setup() { size(600, 500); for (int i=0; i<4; i++){ for (int j=0; j<6; j++){ value[i][j] = i*6+j+10; // 從10開始, 數字不重複 } } for (int k=0; k<2; k++){ int i = int(random(4)), j = int(random(6)); int i2 = int(random(4)), j2 = int(random(6)); int tmp = value[i][j]; value[i][j] = value[i2][j2]; value[i2][j2] = tmp; } } int [][]value = new int[4][6]; void draw() { background(255); for (int i=0; i<4; i++){ for (int j=0; j<6; j++){ fill(#F5B4B4); rect(j*100, i*100, 100, 100); fill(0); text(value[i][j], j*100+25, i*100+50); } } }
第四個程式
讓每一關都不一樣
int state = 0; void setup(){ size(400,400); } void draw(){ if(state==0){ background(255); fill(0); text("Click to start",80,200); } else if(state==1){ background(255,0,0); } else if(state==2){ background(0,0,255); } } void mousePressed(){ if(state==0) state=1; }
第五個程式
需要用鍵盤 移動方塊至指定位置 即通關
int state = 0; void setup(){ size(400,400); } int x=50,y=50; void draw(){ if(state==0){//第0關 白 background(255); fill(0); text("Click to start",80,200); }else if(state==1){//第1關 紅 background(255,0,0); fill(255); rect(300,50,50,50); fill(128); rect(x,y,50,50); }else if(state==2){//第2關 藍 background(0,0,255); } } void mousePressed(){ if(state==0) state=1; } void keyPressed(){ if(state==1 && keyCode ==RIGHT){ x+=10; if(x==300)state=2; } }
第六個程式和第七個程式
到藍色畫面後等待一段時間後回到第0關重新開始
int state = 0; void setup(){ size(400,400); } int x=50,y=50,t=100; void draw(){ if(state==0){//第0關 白 background(255); fill(0); text("Click to start",80,200); x=50; }else if(state==1){//第1關 紅 background(255,0,0); fill(255); rect(300,50,50,50); fill(128); rect(x,y,50,50); t=100; }else if(state==2){//第2關 藍 background(0,0,255); fill(255,255,0);text("Wait"+t,80,200); t--; if(t==0)state = 0; } } void mousePressed(){ if(state==0) state=1; } void keyPressed(){ if(state==1 && keyCode ==RIGHT){ x+=10; if(x==300)state=2; } }
第8個程式投籃遊戲
PImage imgRack; void setup(){ size(300,300); imgRack = loadImage("rack.png"); } void draw(){ background(255); image(imgRack,0,0); if(mousePressed){ fill(255); ellipse(posX,posY,20,20); line(posX,posY,mouseX,mouseY); } fill(#FFA652); ellipse(mouseX,mouseY,20,20); } float posX = -100,posY = -100; void mousePressed(){ posX=mouseX; posY=mouseY; }
第9個程式投籃遊戲球會飛出去
PImage imgRack; void setup(){ size(300,300); imgRack = loadImage("rack.png"); } void draw(){ background(255); image(imgRack,0,0); if(flying){ fill(#FFA652); ellipse(x,y,20,20); x+=vx; y+=vy; vy+=0.98; } else{ x=mouseX; y=mouseY; if(mousePressed){ fill(255); ellipse(posX,posY,20,20); line(posX,posY,x,y); } } fill(#FFA652); ellipse(x,y,20,20); } boolean flying = false; float x,y,vx,vy; float posX = -100,posY = -100; void mousePressed(){ x=posX=mouseX; y=posY=mouseY; flying = false; } void mouseReleased(){ vx = posX-mouseX; vy = posY-mouseY; flying = true; }
第10個程式籃球停止
PImage imgRack; void setup(){ size(300,300); imgRack = loadImage("rack.png"); } boolean gameOver=false; void keyPressed(){ gameOver = true; } void draw(){ background(255); image(imgRack,0,0); if(flying){ if(! gameOver){ x+=vx; y+=vy; vy+=0.98; } } else{ x=mouseX; y=mouseY; if(mousePressed){ fill(255); ellipse(posX,posY,20,20); line(posX,posY,x,y); } } fill(#FFA652); ellipse(x,y,20,20); } boolean flying = false; float x,y,vx,vy; float posX = -100,posY = -100; void mousePressed(){ x=posX=mouseX; y=posY=mouseY; flying = false; } void mouseReleased(){ vx = posX-mouseX; vy = posY-mouseY; flying = true; }第11個程式踩地雷
int [][] mine = new int[9][9]; void setup(){ size(450,450); for(int i=0; i<9; i++) mine[i][0]=9; for(int k=0; k<1000; k++){ int i = int(random(9)), j = int(random(9)); int i2 = int(random(9)), j2 = int(random(9)); int temp = mine[i][j]; mine[i][j] = mine[i2][j2]; mine[i2][j2] = temp; } for(int i=0; i<9; i++){ for(int j=0; j<9; j++){ if(mine[i][j]==9){//遇到紅色地雷,附近要+1 addNumber(i-1, j-1); addNumber(i-1, j); addNumber(i-1, j+1); addNumber(i, j-1); //addNumber(i, j);//自己本身 addNumber(i, j+1); addNumber(i+1, j-1); addNumber(i+1, j); addNumber(i+1, j+1); } } } } void addNumber(int i, int j){ if(i<0 || j<0 || i>=9 || j>=9) return; if(mine[i][j]!=9) mine[i][j]++; } void draw(){ for(int i=0;i<9;i++){ for(int j=0; j<9; j++){ if(mine[i][j]==9) fill(255, 128, 128); else fill(255); rect(j*50, i*50, 45, 45); if(mine[i][j]!=0){ fill(0); text(""+mine[i][j], j*50+23, i*50+23, 45, 45); } } } }
第12個程式

沒有留言:
張貼留言