关于黑白棋悔棋


       我在上一篇博客中已经写到,黑白棋悔棋和五子棋不同,黑白棋悔一步不是像五子棋pop一下那么简单。往往要把上一步吃掉的子变回来。同时如果强行记录吃掉的子使其在悔棋时重新变回来,这种思路写的程序无疑很繁琐,一不留神就会出错。

       所以,我想到会有这么一种方法,把每走一步的棋盘记录下来,悔棋的时候直接把上一步棋盘记录的棋子信息复原。形象一点就是每一步都是一个新棋盘,然后依次叠起来。

       没错,就相当于增加了一个维度,这个时候只要创建一个三维数组,前两个维度i,j意义不变,第三个变量k是第三个维度。每走一步,k++。悔棋的时候,k--,再清盘(黑白棋里是清盘比悔棋先做的),然后把k减了1的数组记录的棋子信息覆盘。当然,事先每走一步都要把全盘的棋子信息存储的三维数组里。当然随手恢复变量好习惯,避免影响其他部分的函数。

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