零基础又不太勤奋的编程小白这周只完成了一个悔棋功能~~~~(>_<)~~~~,下面来分享一下我的五子棋是如何实现这个悔棋的。
首先,要实现悔棋功能的话,首先要明白这几件事。第一,要使之前记录棋子的数组aGridState[i][j]=0;第二,要把棋盘上的棋子删除掉;第三,悔棋之后再下的那颗棋必须和之前悔掉的那颗棋颜色一致。
所以,第一:使之前记录棋子的数组aGridState[i][j]=0
思路:用两个for循环遍布整个棋盘,新建一个数组chessbox,令其等于step(步数,因为我想通过记录棋子的步数,状态,来方便删除对应的棋子),每走一步step++。插入一个叫house的影片剪辑,用来装棋子,将所有的棋子全部装进去。然后定义一个color来记录棋子颜色,当启用悔棋按钮的时候,直接令aGridState[i][j]=0
第二:要把棋盘上的棋子删除掉
思路:每下一步棋,step会记录步数0,1,2,3.....所以删棋子的话,就删除对应的step-1(因为step是从0 开始计数的)就好了,每删一次,step--。
if(step>0) {
house.removeChildAt(step-1);
step--;
}
第三:悔棋之后再下的那颗棋必须和之前悔掉的那颗棋颜色一致
思路:用if语句来判断颜色,如果删除的棋子是黑色的话,就强制令num(之前定义的一个判断黑白棋的东西,下棋的时候用的就是它)=1(白棋),反之一样。
if(color === -1) {
num = 1;
} else if(color === 1) {
num = -1;
}
心得体会:其实,昨天没有做出来的时候内心是崩溃的,但是看了很多心灵鸡汤,听了很大神的肺腑之言,感触很深。生活就是问题叠着问题嘛,大家都是零基础开始学习的,所以不要轻易气馁放弃。加油↖(^ω^)↗