關於黑白棋悔棋


       我在上一篇博客中已經寫到,黑白棋悔棋和五子棋不同,黑白棋悔一步不是像五子棋pop一下那麼簡單。往往要把上一步喫掉的子變回來。同時如果強行記錄喫掉的子使其在悔棋時重新變回來,這種思路寫的程序無疑很繁瑣,一不留神就會出錯。

       所以,我想到會有這麼一種方法,把每走一步的棋盤記錄下來,悔棋的時候直接把上一步棋盤記錄的棋子信息復原。形象一點就是每一步都是一個新棋盤,然後依次疊起來。

       沒錯,就相當於增加了一個維度,這個時候只要創建一個三維數組,前兩個維度i,j意義不變,第三個變量k是第三個維度。每走一步,k++。悔棋的時候,k--,再清盤(黑白棋裏是清盤比悔棋先做的),然後把k減了1的數組記錄的棋子信息覆盤。當然,事先每走一步都要把全盤的棋子信息存儲的三維數組裏。當然隨手恢復變量好習慣,避免影響其他部分的函數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章