2021年10月25日 星期一

豹笑英文 (陣列、for迴圈 week04)

 

//第一個作業-棋盤

//陣列、for迴圈:五子棋(棋盤)

void setup(){

  size(500,500); //棋盤大小

}

void draw(){

  background(253,236,180); //背景色

  for(int i=0;i<9;i++){

    line(50+i*50,50,50+i*50,450); //畫直線

    line(50,50+i*50,450,50+i*50); //畫橫線

  }

}



//完成棋盤樣式

//陣列、for迴圈:五子棋(棋盤)

void setup(){

  size(500,500); //棋盤大小

}

void draw(){

  background(253,236,180); //背景色

  for(int i=0;i<9;i++){

    if(i==0 || i==8){

      strokeWeight(2);

    }else{

      strokeWeight(1);

    }

    line(50+i*50,50,50+i*50,450); //畫直線

    line(50,50+i*50,450,50+i*50); //畫橫線

    //畫棋盤上的四個小點

    for(int j=0;j<2;j++){

      ellipse(150+j*200,150,5,5); //左上和右上的點

    }

    for(int k=0;k<2;k++){

      ellipse(150,150+k*200,5,5);

      ellipse(150+k*200,150+k*200,5,5); //左下和右下的點

    }

    fill(#050505);

  }

}


//總程式碼
//陣列、for迴圈:五子棋(棋盤)
int[][] c = new int[9][9]; //棋子迴圈
void setup(){
  size(500,500); //棋盤大小
  for(int i=0;i<9;i++){
    for(int j=0;j<9;j++){
      c[i][j]=0;
    }
  }
}
void draw(){
  background(253,236,180); //背景色
  for(int i=0;i<9;i++){
    if(i==0 || i==8){
      strokeWeight(2);
    }else{
      strokeWeight(1);
    }
    line(50+i*50,50,50+i*50,450); //畫直線
    line(50,50+i*50,450,50+i*50); //畫橫線
    for(int j=0;j<2;j++){  //畫棋盤上的四個小點
      for(int k=0;k<2;k++){
        ellipse(150+j*200,150+k*200,5,5);
      }  
    }
    fill(#050505);
  }
  for(int i=0;i<9;i++){ //下棋
    for(int j=0;j<9;j++){
      int x=50+50*j,y=50+50*i;
      if(c[i][j]==1){
        fill(255);  //白子
        strokeWeight(0.5);
        ellipse(x,y,40,40);
      }else if(c[i][j]==2){
        fill(#050505); //黑子
        strokeWeight(0.5);
        ellipse(x,y,40,40);
      }
    }
  }
}
int count=1;
void mousePressed(){
  int j=(mouseX-25)/50; //4.999升一半5.499 =>無條件捨去為5
  int i=(mouseY-25)/50;
  if(c[i][j] == 0){
    if(count%2==1){
      c[i][j]=1;
    }else if(count%2==0){
      c[i][j]=2;
    }
    count++;
  }
  if(mouseButton==RIGHT) c[i][j]=0;
  //mouseButton有LEFT(左鍵)、RIGHT(右鍵)、CENTER(中鍵)
}




//第二個作業-圓圈
/*
void setup(){ //第一個圖
  size(500,500);
}
void draw(){
  for(float a=0;a<360;a++){
    float x = 250+250*cos(radians(a));
    float y = 250+250*sin(radians(a));
    ellipse(x,y,4,4);
  }
}
*/
/*
void setup(){ //第二個圖
  size(500,500);
}
void draw(){
  for(float a=0;a<360;a+=1){
    float x = 250+mouseX*cos(radians(a));
    float y = 250+mouseY*sin(radians(a));
    ellipse(x,y,mouseX,mouseY);
  }
}
*/
/*
void setup(){ //第三個圖
  size(500,500);
}
void draw(){
  background(255);
  for(float a=0;a<360;a+=1){
    float x = 250+mouseX*cos(radians(a));
    float y = 250+mouseY*sin(radians(a));
    noFill();
    ellipse(x,y,mouseX,mouseY);
  }
}
*/
void setup(){ //第四個圖
  size(500,500);
}
void draw(){
  background(255);
  for(float a=0;a<360;a+=1){
    float x = 250+mouseX*cos(radians(a));
    float y = 250+mouseY*sin(radians(a));
    noFill();
    stroke(mouseX,mouseY,255);
    ellipse(x,y,mouseX,mouseY);
  }
}


//自動畫圈

void setup(){ //自動畫圈

  size(500,500);

}

float w=30;

float r=0, g=255, b=0;

void draw(){

  stroke(r,g,b); noFill();

  r+=random(3); if(r>255)r=0;

  g+=random(3); if(g>255)g=0;

  b+=random(3); if(b>255)b=0;

  ellipse(mouseX,mouseY,w,w); 

  w+=0.5;

  if(w>100) w=300;

}

沒有留言:

張貼留言