加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

关于黑白棋悔棋

发布时间:2020-12-15 20:11:26 所属栏目:百科 来源:网络整理
导读:?? ???????我在上一篇博客中已经写到,黑白棋悔棋和五子棋不同,黑白棋悔一步不是像五子棋pop一下那么简单。往往要把上一步吃掉的子变回来。同时如果强行记录吃掉的子使其在悔棋时重新变回来,这种思路写的程序无疑很繁琐,一不留神就会出错。 ???????所以,
??
???????我在上一篇博客中已经写到,黑白棋悔棋和五子棋不同,黑白棋悔一步不是像五子棋pop一下那么简单。往往要把上一步吃掉的子变回来。同时如果强行记录吃掉的子使其在悔棋时重新变回来,这种思路写的程序无疑很繁琐,一不留神就会出错。

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读