2022年10月3日 星期一

week_05新手上碌

 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.    四捨五入法>>>加一半再減使感應區塊變成前後一半(紅框)
        6.    拿起棋子後鼠標旁顯示棋子:如果手上有棋>>滑鼠位置畫棋





1-5.優化程式
"畫棋子"重複很多次>>>
void drawChess( int x,    int y,    int id){
                            //x、y座標        判斷顏色
}


 2.暗棋
2-1.放棋子
棋盤減半    >>    4*8
從放在交點改放到棋格裡   >>    座標都+25
蓋棋    >>    放遮罩show陣列,當show為0不顯示
翻棋    >>    按下滑鼠時show[ i ][ j ]=1

2-2.洗棋盤


沒有留言:

張貼留言