2021年10月25日 星期一

week06

畫五子棋啦!!!

void setup(){

  size(500,500);


    void draw(){

    background(253,236,180);

    line(50,50,50,450);

    line(100,50,100,450);

    line(150,50,150,450);

    line(200,50,200,450);

    line(250,50,250,450);

    line(300,50,300,450);

    line(350,50,350,450);

    line(400,50,400,450);

    line(450,50,450,450);

}

一開始是直接定位每條線的長度跟位置,等等會用迴圈的方式做!













改用迴圈的方式去撰寫

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);

  }

}















直線的迴圈加上橫線的迴圈棋盤就完成啦!!
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);

  }
}












加那一大段程式碼看起來雖然沒啥但要放棋子的話就一定要用到他歐!

void setup(){

  size(500,500);

}

///int [][]go=new int[9][9];

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 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);

  }

}













順便來複習一下陣列的用法,等一下就知道怎麼放棋子了!

int [][]c={

  {1,0,0},

  {1,0,0},

  {1,0,0}};

void setup(){

  size(300,300);

}

void draw(){

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

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

      if(c[i][j]==0) fill(128);

      else fill(255,0,0);

      rect(j*100,i*100,100,100);

    }

  }

}

看下方的圖就知道陣列對應的是棋盤上的位置,只要是1就會出現白旗

void setup(){

  size(500,500);

}

///int [][]go=new int[9][9];

int [][]go={

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

  {1,0,0,0,1,0,0,0,0},

  {0,0,0,0,0,0,0,0,0},

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

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);

      }

    }

  }

}













只能利用陣列變1加白旗也太憋屈了八,所以要加上用滑鼠點擊就可以下棋的程式碼!!

void setup(){


  size(500,500);


}


///int [][]go=new int[9][9];


int [][]go={

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

 {1,0,0,0,1,0,0,0,0},

 {0,0,0,0,0,0,0,0,0},

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

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);

      }

    }

  }

}

void mousePressed()

{

    int j=(mouseX-50)/50;    -50點棋盤會不準確可以改成-25會比較準確歐!!!

    int i=(mouseY-50)/50;    可以改成-25會比較準確歐!!!

    go[i][j]=1;


}













最後再加上黑棋的程式碼就完成啦!!!!

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;

}















































1237

沒有留言:

張貼留言