1. 象棋
(1) 先有棋盤 - 等差級數
# 等差級數:500,100,150,200,250,300,350,400,450
# 用 for(int x=50;x<=450;x+=50)
---------------------------------- github ----------------------------------
(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},
};//1:將 2:士 3:象 4:車 5:馬 6:卒
for(int i=0;i<4;i++){
for(int j=0;j<9;j++){
text(board[i][j],50+j*50,50+i*50);
}
}
---------------------------------- github ----------------------------------
(3) 棋子改成象棋字 - String
String[]name={"將","士","象","車","馬","包","卒"};
void setup(){
size(500,500);
PFont font =createFont("標楷體",30);
textFont(font);
textAlign(CENTER,CENTER);
}
for (int i=0;i<4;i++){
for (int j=0;j<9;j++){
int id =board[i][j]; //陣列 1 開始
if(id==0) continue; //陣列回去繼續
text(name[id-1],50+j*50,50+i*50);
}
}
---------------------------------- github ----------------------------------
2. 象棋 2.0
(1) 畫紅黑象棋
{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[]name2={"帥", "仕", "相", "俥", "傌", "炮", "兵"};
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);
}
---------------------------------- github ----------------------------------
(2) 移動象棋 - MousePressed()
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;
}
}
}
---------------------------------- github ----------------------------------
(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; //y 是50+i*50
int j=(mouseX+25-50)/50; //x是50+j*50
board[i][j]=handChess; //手上的棋子放回棋盤
handChess=0; //手上的棋子清空
}
---------------------------------- github ----------------------------------
2. 暗棋
(1) 格子比較少
---------------------------------- github ----------------------------------
沒有留言:
張貼留言