1.象棋
1-1.畫棋盤
一格50cm>>>50 100 150 200 ....
等差級數>>>用迴圈
楚河漢界
試著放棋子在交點上
棋子 >>>> 用陣列代表位置
放在交點上 >>>>雙層迴圈 左i右j、i控Y座標 j控X座標
1-2.放棋子
創新字體 : PFont font=createFont("字體",大小);
textFont(font);
字體中心由預設值(左下)改至正中間 textAlign("CENTER","CENTER");
陣列從0開始 >> name[id-1]
1-3.加上紅子
加大board陣列>>>>以負號作為紅棋
加上新字串(紅棋的部分)
放在棋盤上 >>>>以id正負區分顏色, 畫圓棋 ellipse( x, y , 大小);
因為紅棋是負的 所以name2[ -id-1 ]
1-4.移動棋子
按下滑鼠時 void mousePressed( ){ }
兩點距離 dist( x1 , y1 , x2 , y2 )
滑鼠點到哪?? 離鼠標最近的棋子
>>>> mouseX,mouseY-棋子位置(=圓盤位置) 距離<20 因棋格間距50
X座標是 50+J*50
Y座標是 50+I*50
1.會重複 2.拿起來沒被清掉 3.放錯位置(因預設以左上角為0.0)
1. 設定handChess手上的棋子,以控制拿棋
2. 拿起棋子:按下右鍵時 void mousePressed( ){ }
3 . 放下棋子:釋放右鍵時 void mouseReleased( ){ }
4. 拿起後清除>>board[i][j]=0
5. 四捨五入法>>>加一半再減使感應區塊變成前後一半(紅框)
1-5.優化程式
"畫棋子"重複很多次>>>
void drawChess( int x, int y, int id){
//x、y座標 判斷顏色
}
2.暗棋2-1.放棋子
棋盤減半 >> 4*8
棋盤減半 >> 4*8
從放在交點改放到棋格裡 >> 座標都+25
蓋棋 >> 放遮罩show陣列,當show為0不顯示
翻棋 >> 按下滑鼠時show[ i ][ j ]=1
沒有留言:
張貼留言