2022年10月3日 星期一

END interaction week05

1.棋盤

size(500,700);

for(int x=50;x<=450;x+=50)

{

  line(x,50,x,500);

}


for(int y=50;y<=500;y+=50)

{

  line(50,y,450,y);

}



2.分界及數字

int [][]board={

  {4,5,3,2,1,2,3,5,4},

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

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

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

};


void setup()

{

  size(500,700);

}

void draw()

{

  for(int x=50;x<=450;x+=50)

  {

    line(x,50,x,250);

    line(x,300,x,500);

  }

  

  for(int y=50;y<=500;y+=50)

  {

    line(50,y,450,y);

  }

  for(int i=0;i<4;i++)

  {

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

    {

      text(board[i][j],50+j*50,50+i*50);

    }

  }

}



3."將","士","象","車","馬","包","卒"


int [][]board={

  {4,5,3,2,1,2,3,5,4},

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

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

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

};


String [] name={"將","士","象","車","馬","包","卒"};


void setup()

{

  size(500,700);

  PFont font=createFont("標楷體",30);

  textFont(font);

  textAlign(CENTER,CENTER);

}

void draw()

{

  for(int x=50;x<=450;x+=50)

  {

    line(x,50,x,250);

    line(x,300,x,500);

  }

  

  for(int y=50;y<=500;y+=50)

  {

    line(50,y,450,y);

  }

  for(int i=0;i<4;i++)

  {

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

    {

      int id=board[i][j];

      if(id==0) continue;

      text(name[id-1],50+j*50,50+i*50);

    }

  }

}




4.黑紅棋

int [][]board={

  {4,5,3,2,1,2,3,5,4},

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

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

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

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

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

  {-7,0,-7,0,-7,0,-7,0,-7},

  {0,-6,0,0,0,0,0,-6,0},

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

  {-4,-5,-3,-2,-1,-2,-3,-5,-4}

};


String [] name={"將","士","象","車","馬","包","卒"};

String [] name2={"帥","仕","相","俥","傌","炮","兵"};


void setup()

{

  size(500,700);

  PFont font=createFont("標楷體",30);

  textFont(font);

  textAlign(CENTER,CENTER);

}

void draw()

{

  for(int x=50;x<=450;x+=50)

  {

    line(x,50,x,250);

    line(x,300,x,500);

  }

  

  for(int y=50;y<=500;y+=50)

  {

    line(50,y,450,y);

  }

  for(int i=0;i<10;i++)

  {

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

    {

      int id=board[i][j];

      if(id==0) continue;

      if(id>0)

      {

        fill(255);

        ellipse(50+j*50,50+i*50,40,40);

        fill(0);

        text(name[id-1],50+j*50,50+i*50-3);

      }

      else if(id<0)

      {

        fill(255);

        ellipse(50+j*50,50+i*50,40,40);

        fill(255,0,0);

        text(name2[-id-1],50+j*50,50+i*50-3);

      }

    }

  }

}



5.multi"將"

int [][]board={

  {4,5,3,2,1,2,3,5,4},

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

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

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

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

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

  {-7,0,-7,0,-7,0,-7,0,-7},

  {0,-6,0,0,0,0,0,-6,0},

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

  {-4,-5,-3,-2,-1,-2,-3,-5,-4}

};


String [] name={"將","士","象","車","馬","包","卒"};

String [] name2={"帥","仕","相","俥","傌","炮","兵"};


void setup()

{

  size(500,700);

  PFont font=createFont("標楷體",30);

  textFont(font);

  textAlign(CENTER,CENTER);

}

void draw()

{

  for(int x=50;x<=450;x+=50)

  {

    line(x,50,x,250);

    line(x,300,x,500);

  }

  

  for(int y=50;y<=500;y+=50)

  {

    line(50,y,450,y);

  }

  for(int i=0;i<10;i++)

  {

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

    {

      int id=board[i][j];

      if(id==0) continue;

      if(id>0)

      {

        fill(255);

        ellipse(50+j*50,50+i*50,40,40);

        fill(0);

        text(name[id-1],50+j*50,50+i*50-3);

      }

      else if(id<0)

      {

        fill(255);

        ellipse(50+j*50,50+i*50,40,40);

        fill(255,0,0);

        text(name2[-id-1],50+j*50,50+i*50-3);

      }

    }

  }

}

void mousePressed()

{

  for(int i=0;i<10;i++)

  {

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

    {

      if(dist(mouseX,mouseY,50+j*50,50+i*50)<20)

      {

        board[i][j]=1;

      }

    }

  }

}



6.移動


int [][]board={

  {4,5,3,2,1,2,3,5,4},

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

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

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

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

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

  {-7,0,-7,0,-7,0,-7,0,-7},

  {0,-6,0,0,0,0,0,-6,0},

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

  {-4,-5,-3,-2,-1,-2,-3,-5,-4}

};


String [] name={"將","士","象","車","馬","包","卒"};

String [] name2={"帥","仕","相","俥","傌","炮","兵"};


void setup()

{

  size(500,700);

  PFont font=createFont("標楷體",30);

  textFont(font);

  textAlign(CENTER,CENTER);

}

void draw()

{

  background(#564218);///不放會有殘影(紅圈)

  for(int x=50;x<=450;x+=50)

  {

    line(x,50,x,250);

    line(x,300,x,500);

  }

  

  for(int y=50;y<=500;y+=50)

  {

    line(50,y,450,y);

  }

  for(int i=0;i<10;i++)

  {

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

    {

      int id=board[i][j];

      if(id==0) continue;

      if(id>0)

      {

        fill(255);

        ellipse(50+j*50,50+i*50,40,40);

        fill(0);

        text(name[id-1],50+j*50,50+i*50-3);

      }

      else if(id<0)

      {

        fill(255);

        ellipse(50+j*50,50+i*50,40,40);

        fill(255,0,0);

        text(name2[-id-1],50+j*50,50+i*50-3);

      }

    }

  }

  if(handchess!=0) ellipse(mouseX,mouseY,40,40);

}

int handchess=0;

void mousePressed()

{

  for(int i=0;i<10;i++)

  {

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

    {

      if(dist(mouseX,mouseY,50+j*50,50+i*50)<20)

      {

        handchess=board[i][j];

        board[i][j]=0;///消失

      }

    }

  }

}

void mouseReleased()

{

  int i=(mouseY+25-50)/50;///4捨5入

  int j=(mouseX+25-50)/50;

  board[i][j]=handchess;

  handchess=0;

}


7. 暗棋


int [][]board={

  {1,2,2,3,3,4,4,5},

  {5,6,6,7,7,7,7,7},

  {-1,-2,-2,-3,-3,-4,-4,-5},

  {-5,-6,-6,-7,-7,-7,-7,-7}

};


String [] name={"將","士","象","車","馬","包","卒"};

String [] name2={"帥","仕","相","俥","傌","炮","兵"};


void setup()

{

  size(500,400);

  PFont font=createFont("標楷體",30);

  textFont(font);

  textAlign(CENTER,CENTER);

}

void draw()

{

  background(#564218);

  for(int x=50;x<=450;x+=50)

  {

    line(x,50,x,250);

  }

  

  for(int y=50;y<=250;y+=50)

  {

    line(50,y,450,y);

  }

  for(int i=0;i<4;i++)

  {

    for(int j=0;j<8;j++)

    {

      int id=board[i][j];

      drawchess(50+25+j*50,50+25+i*50,id);

    }

  }

}

void drawchess(int x,int y,int id)

{

  fill(255);

  ellipse(x,y,40,40);

  if(id>0)

  {

    fill(0);

    text(name[id-1],x,y-3);

  }

  else

  {

    fill(255,0,0);

    text(name2[-id-1],x,y-3);

  }

}


8.翻棋

int [][]show={

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

  {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 [][]board={

  {1,2,2,3,3,4,4,5},

  {5,6,6,7,7,7,7,7},

  {-1,-2,-2,-3,-3,-4,-4,-5},

  {-5,-6,-6,-7,-7,-7,-7,-7}

};


String [] name={"將","士","象","車","馬","包","卒"};

String [] name2={"帥","仕","相","俥","傌","炮","兵"};


void setup()

{

  size(500,300);

  PFont font=createFont("標楷體",30);

  textFont(font);

  textAlign(CENTER,CENTER);

}

void draw()

{

  background(#564218);

  for(int x=50;x<=450;x+=50)

  {

    line(x,50,x,250);

  }

  

  for(int y=50;y<=250;y+=50)

  {

    line(50,y,450,y);

  }

  for(int i=0;i<4;i++)

  {

    for(int j=0;j<8;j++)

    {

      if (show[i][j]==0)

      {

        fill(255);

        ellipse(50+25+j*50,50+25+i*50,40,40);

      }

      else

      {

        int id=board[i][j];

        drawchess(50+25+j*50,50+25+i*50,id);

      }

    }

  }

}


void mousePressed()

{

  for(int i=0;i<10;i++)

  {

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

    {

      if(dist(mouseX,mouseY,50+25+j*50,50+25+i*50)<20)

      {

        if(show[i][j]==0) show[i][j]=1;

      }

    }

  }

}


void drawchess(int x,int y,int id)

{

  fill(255);

  ellipse(x,y,40,40);

  if(id>0)

  {

    fill(0);

    text(name[id-1],x,y-3);

  }

  else

  {

    fill(255,0,0);

    text(name2[-id-1],x,y-3);

  }

}



沒有留言:

張貼留言