所以,我想到会有这么一种方法,把每走一步的棋盘记录下来,悔棋的时候直接把上一步棋盘记录的棋子信息复原。形象一点就是每一步都是一个新棋盘,然后依次叠起来。
没错,就相当于增加了一个维度,这个时候只要创建一个三维数组,前两个维度i,j意义不变,第三个变量k是第三个维度。每走一步,k++。悔棋的时候,k--,再清盘(黑白棋里是清盘比悔棋先做的),然后把k减了1的数组记录的棋子信息覆盘。当然,事先每走一步都要把全盘的棋子信息存储的三维数组里。当然随手恢复变量好习惯,避免影响其他部分的函数。
所以,我想到会有这么一种方法,把每走一步的棋盘记录下来,悔棋的时候直接把上一步棋盘记录的棋子信息复原。形象一点就是每一步都是一个新棋盘,然后依次叠起来。
没错,就相当于增加了一个维度,这个时候只要创建一个三维数组,前两个维度i,j意义不变,第三个变量k是第三个维度。每走一步,k++。悔棋的时候,k--,再清盘(黑白棋里是清盘比悔棋先做的),然后把k减了1的数组记录的棋子信息覆盘。当然,事先每走一步都要把全盘的棋子信息存储的三维数组里。当然随手恢复变量好习惯,避免影响其他部分的函数。