斷斷續續做了1個礼拜終究做好了簡單的象棋游戲,但是現在只能自娛自樂,接下來研究1下AI。。。
說說自己的基本思路
1.包括兩個大類棋盤類Board和棋子類APices,其中APices是抽象類,由于不同的棋子有不同的行動規則,需要在派生類中實現;
2.基本線條都使用GDI畫圖實現,為了方便實現點擊事件這兩個類都繼承子Panel;
3.棋子如何移動:
首先定義棋盤線條交點為棋子的可用點,以此點為中心畫1矩形,當鼠標在此矩形中點擊時,判斷是不是符合移動規則,決定是不是把棋子移動到對應坐標;
4.如何吃掉棋子:
判斷已選擇棋子和當前點擊棋子的坐標是不是符合移動規則,這里炮比較特殊,由于他的移動規則和吃子規則是不1樣的,需要單獨處理; 吃掉的棋子使用Visible為False隱藏掉,并未真正釋放;
5.悔棋:
使用棧來寄存記錄,移動的話就把始末坐標對調,吃子的話就需要把之前被隱藏的棋子顯示出來;
有興趣的朋友可以去這里下載看看,共同進步。