2022年10月17日 星期一

week05

 step01-1畫棋盤

size(500,700);

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

  line( x, 50, x, 500);

}

//10條

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

  line( 50, y, 450, y);

}

step01-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,550);
}
void draw(){
  for(int x=50; x<=450; x+=50){
    line( x, 50, x, 250);
    line( x, 300, x, 500);
  }
  //10條
  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);
    }
  }
}

step01-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},
  {1,0,1,0,1,0,1,0,1},
};
String [] name = {"將","士","象","車","馬","包","卒"};
void setup(){
  size(500,550);
  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);
  }
  //10條
  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);
    }
  }
}

step01-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,550);
  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);
  }
  //10條
  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);
      }
    }
  }
}

step01-5利用按下滑鼠的指令

//畫棋子(要下棋,要互動)
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,550);
  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);
  }
  //10條
  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;
      }
    }
  }
}

step01-5利用按下滑鼠的指令(移動)

//畫棋子(要下棋,要互動)
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,550);
  PFont font = createFont("標楷體",30);
  textFont(font);
  textAlign(CENTER, CENTER);
}
void draw(){
  background(#F0B82C);
  for(int x=50; x<=450; x+=50){
    line( x, 50, x, 250);
    line( x, 300, x, 500);
  }
  //10條
  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;
  int j = (mouseX+25-50)/50;
  board[i][j] = handChess;
  handChess = 0;
}














沒有留言:

張貼留言