關於我的第二個程序——黑白棋



        自從上次的五子棋之後,黑白棋已經做了半個多月了,這裏寫下自己在這短時間的一些感悟,更多的是犯的錯誤,希望能給其他小白一點借鑑。

        另外要說的是,黑白棋還沒做完,所以到後來的話,可能會有很多的問題不斷出現。這種情況在寫代碼的時候也是經常出現的。黑白棋是8X8的棋盤,下子原理,界面什麼的都和五子棋都差不多。不同的是清盤,初始條件等,還有額外的變棋。

        首先是初始條件和清盤,棋盤一開始就有兩黑兩白四個棋子,這個只要事先吧棋子放進去並給予邏輯座標不難解決。同時,在五子棋清盤的處理上,我使用的是“悔棋到無棋可悔”的思路。但這種思路在黑白棋上行不通,所以我把所有棋子拿掉並清除所有邏輯座標後,重新放四個初始棋子這種方法。

        然後,下棋過程中會出現吃子的情況需要移除棋子並改變邏輯座標(上面的清盤也是),同時在黑白棋中不能和五子棋一樣使用pop來移除。因此還需要再創建一個數組來存放棋子,以做到“指哪刪哪”。把blackchess whitechess存入數組中,隨後可以用removeChild掉棋子。

        還有吃子,這一方面我只有一個雛形,不完善會發生一些bug,所以我主要講一下思路吧。和五子棋類似(以黑棋爲例),向某個方向開始判斷,如果是白棋,繼續判斷一步。都最後不是白棋時,再加一個判斷是否下一步是黑棋,是的話,一步一步把白棋變成黑棋回來。一共8個方向,兩種棋子,這種方法比較長(而且發生了不明bug。。。)。

        最後,勝負判斷,相對於五子棋,黑白棋的簡單多了。只要數一遍座標裏面的棋子數,並判斷兩者數量大小即可。要注意自己數的是邏輯座標裏的棋子還是存棋子的座標,弄混了會發生一些意想不到的bug。

發佈了9 篇原創文章 · 獲贊 4 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章