2022年9月26日 星期一

鯉魚week04

 1.球移動
void setup(){
   size(500,500);
}
int x=250,y=250;
void draw(){
   ellipse(x,y,10,10);
   x=x+1;
   y=y-1;
}
2.精細移動(碰到邊框折返)
void setup(){
   size(500,500);
}
float x=250,y=250; //變數位置(精細)
float vx=1.0,vy=-0.5;
void draw(){
   ellipse(x,y,10,10);  //橢圓
   x=x+vx;
   y=y+vy;
   if(x>500) vx=-vx;
   if(y<0) vy=-vy;
}
3.球碰到板子反彈(遊戲)
void setup(){
   size(500,500);
}
float x=250,y=250; //變數位置(精細)
float vx=2.0,vy=-1.5;
void draw(){
  background(#FFFFF2);  //背景(去除殘影)
  int boardX = mouseX;
  rect(boardX,470,100,20);  //控制的板子
   ellipse(x,y,10,10);  //橢圓
   x=x+vx;
   y=y+vy;
   if(x>500) vx=-vx;
   if(y<0) vy=-vy;
   if(x<0) vx=-vx;
   if(y>470 && x>boardX && x<boardX+100) vy=-vy; //碰到板子反彈
}
4.遊戲增加板子大小變化,抽球
void setup(){
   size(500,500);
}
float x=250,y=250; //變數位置(精細)
float vx=2.0,vy=-2.5;
float boardX,boardY=470,boardW=100,boardH=20;
void draw(){
  background(#FFFFF2);  //背景(去除殘影)
  boardX = mouseX - boardW/2;
  rect(boardX,boardY,boardW,boardH);  //控制的板子
   ellipse(x,y,10,10);  //橢圓
   x=x+vx;
   y=y+vy;
   if(x>500) vx=-vx;
   if(y<0) vy=-vy;
   if(x<0) vx=-vx;
   if((y>boardY && y<boardY+boardH) &&
     (x>boardX && x<boardX+boardW)){
        vy = -vy;
        vx +=(mouseX - pmouseX)/2; //mouse移動速度
     }
    if(mousePressed && mouseButton == LEFT)boardW*=1.01; //按滑鼠左鍵板子變大
    if(mousePressed && mouseButton == RIGHT)boardW*=0.99;
}
5.畫出很多棋
void setup(){
   size(500,500); 
}
void draw(){
   for(int x=50;x<=450;x+=50){ //用回圈畫出很多棋
      for(int y=50;y<=450;y+=50){
         ellipse(x,y,50,50); 
      }
   }
}
6.用陣列畫黑子
void setup(){
   size(500,500); 
}
int [][] go={
   {0,0,0,0,0,0,0,0,1}, 
   {0,0,0,0,0,0,0,0,1}, 
   {0,0,0,0,0,0,0,0,1}, 
   {0,0,0,0,0,0,1,0,1}, 
   {0,0,0,0,0,0,0,0,0}, 
   {0,0,0,0,0,0,0,0,0}, 
   {0,0,0,0,0,0,0,0,0}, 
   {0,0,0,0,0,0,0,0,0}, 
   {0,0,0,0,0,0,0,0,0}, 
};
void draw(){
   for(int i=0;i<9;i++){ //用回圈畫出很多棋
      for(int j=0;j<9;j++){
        if(go[i][j]==1)fill(0);
        else fill(255);
         ellipse(50+j*50,50+i*50,50,50); 
      }
   }
}
7.增加棋盤顏色,白子,格子
void setup(){
   size(500,500); 
}
int [][] go={ //1:黑子 2:白子
   {0,0,0,0,0,0,0,0,1}, 
   {0,0,0,0,0,0,0,0,1}, 
   {0,0,0,0,0,0,0,2,1}, 
   {0,0,0,0,0,0,1,0,1}, 
   {0,0,0,0,0,0,0,0,0}, 
   {0,0,0,0,0,0,0,0,0}, 
   {0,0,0,0,0,0,0,0,0}, 
   {0,0,0,0,0,0,0,0,0}, 
   {0,0,0,0,0,0,0,0,0}, 
};  
void draw(){//用回圈畫出很多棋
  background(246,194,108);//木頭色棋盤
   for(int i=1;i<=9;i++){ //畫線條
     line(50,50*i,450,50*i);
     line(50*i,50,50*i,450);
   }
   for(int i=0;i<9;i++){
      for(int j=0;j<9;j++){
        if(go[i][j]==1){
        fill(0);
        ellipse(50+j*50,50+i*50,40,40); 
      }else if(go[i][j]==2){
        fill(255);
        ellipse(50+j*50,50+i*50,40,40);
      }
   }
}
}
8.用滑鼠下棋
void setup(){
   size(500,500); 
}
int [][] go={ //1:黑子 2:白子
   {0,0,0,0,0,0,0,0,0}, 
   {0,0,0,0,0,0,0,0,0}, 
   {0,0,0,0,0,0,0,0,0}, 
   {0,0,0,0,0,0,0,0,0}, 
   {0,0,0,0,0,0,0,0,0}, 
   {0,0,0,0,0,0,0,0,0}, 
   {0,0,0,0,0,0,0,0,0}, 
   {0,0,0,0,0,0,0,0,0}, 
   {0,0,0,0,0,0,0,0,0}, 
};  
int N=0;
void mousePressed(){
   int j = (mouseX-25)/50;
   int i = (mouseY-25)/50;
   go[i][j]=(N%2==0) ? 1:2;
   N++;
}
void draw(){//用回圈畫出很多棋
  background(246,194,108);//木頭色棋盤
   for(int i=1;i<=9;i++){ //畫線條
     line(50,50*i,450,50*i);
     line(50*i,50,50*i,450);
   }
   for(int i=0;i<9;i++){
      for(int j=0;j<9;j++){
        if(go[i][j]==1){
        fill(0);
        ellipse(50+j*50,50+i*50,40,40); 
      }else if(go[i][j]==2){
        fill(255);
        ellipse(50+j*50,50+i*50,40,40);
      }
   }
}

沒有留言:

張貼留言