2021年10月25日 星期一

岩壁悲歌 Week04

 2021/10/25 陣列、迴圈運用

-----------------------------------------------------------------------------------

想要劃出9條線就要打9行line,這樣太過於操勞,於是運用迴圈

如下圖:

再加上橫線

先練習陣列運用

有個上面的觀念之後,把陣列中帶有1的白棋帶入棋盤中

多新增了mousePressed這5行,目的是為了無條件捨去,假如X,Y的

位置在(5.99 , 5.99)白棋最後的位置會在在(5,5)的位置

若將-50改成-25,可直接達成四捨五入的效果

接著用滑鼠的左、右、中鍵,分別代表白、黑、無棋子

int [][]go={

  {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,}, };

void setup(){

  size(500,500);

}

void draw(){

  background(253,236,180);

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

    line(50+50*i,50,50+50*i,450);

    line(50,50+50*i,450,50+50*i);

  }

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

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

      if(go[i][j]==1){

        int x=50+50*j, y=50+50*i;

        fill(255); ellipse(x,y,40,40);

      }else if(go[i][j]==2){

        int x=50+50*j, y=50+50*i;

        fill(0); ellipse(x,y,40,40);

      }

    }

  }

}

void mousePressed(){

  int j =(mouseX-25)/50;

  int i =(mouseY-25)/50;

  if(mouseButton==LEFT) go[i][j]=1;

  if(mouseButton==RIGHT) go[i][j]=2;

  if(mouseButton==CENTER) go[i][j]=0;

}

---------------------------------------------------------

藉由有變化的數值,畫出不同大小跟顏色的圈圈

/*void setup(){

  size(500,500);

}

void draw(){

  background(255);

  noFill();

  stroke(mouseX,mouseY,255);

  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,mouseY,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=30;

}

沒有留言:

張貼留言