2023年11月23日 星期四

bb-week11

 void setup(){

 size(600,400); 
}
void draw(){
 background(255);
 for(int i=0;i<4;i++){
  for(int j=0;j<6;j++){
    rect(j*100,i*100,100,100);
  }
 }
}//畫出格子

void setup(){
 size(600,400); 
}
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("HELLO",j*100+25,i*100+50);//文字
  }
 }
}



void setup(){
 size(600,400); 
 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 temp = value[i][j];
  value[i][j] = value[i2][j2];
  value[i2][j2] = temp;
 }
}
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;//0=white,1=red,2=blue
void setup(){
 size(400,400);
}
void draw(){
  if(state==0){//第0關白色
   background(255); 
  }else if(state==1){//第1關紅色
    background(255,0,0);
  }else if(state==2){//第2關藍色
    background(0,0,255);
  }
}

按下按鍵後就會變成紅色換到下一個場景

到了第一關後用鍵盤右鍵移動方塊到相對應位置就會進入到第二關
int state = 0;//0=white,1=red,2=blue
void setup(){
 size(400,400);
 textSize(50);
}
int x = 50 , y = 50,t = 100;//t是倒數
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;//等到倒數到0時,回到第0關
  }
}
void mousePressed(){
 if(state==0) state=1; 
}
void keyPressed(){
 if(state==1 && keyCode==RIGHT){
  x += 10;
  if(x==300) state=2;
 }
}


 PImage imgRack;//圖片
void setup(){
 size(1000,1000);
 imgRack = loadImage("rack.jpg");
}
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;
}

PImage imgRack;
void setup(){
 size(1000,1000);
 imgRack = loadImage("rack.jpg");
}
void draw(){
 background(255);
 image(imgRack,0,0);
 if(flying){
  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;
}
放開滑鼠後小球就可以畫出拋物線

時間暫停
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){//遇到紅色的地雷,附近要加一
     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]++;//不是地雷就可以+1
}
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);
    fill(0); text(""+mine[i][j],j*50+23,i*50+23,45,45);
  }
 }
}

void setup(){
 size(600,400); 
}
float x= 300,y=200,dir=0;
void draw(){
  //background(128);
  joker(x,y,dir);
  x += cos(dir);
  y += sin(dir);
}
void joker(float x,float y,float dir){
  ellipse(x,y,50,50);
  line(x,y,x+25*cos(dir),y+25*sin(dir));
}
void keyPressed(){
 if(keyCode==RIGHT) dir += 0.1; 
 if(keyCode==LEFT) dir -= 0.1; 
}


沒有留言:

張貼留言