五子棋游戏(二)

文章讲述了在五子棋程序中如何处理棋盘和棋子的重绘问题,以及实现判断输赢、悔棋和复盘的功能。通过重写paint方法确保界面状态保存,输赢判断涉及对棋局的八方向检查,悔棋功能需要记录棋步并能撤销,复盘则是按顺序重新绘制棋子。
摘要由CSDN通过智能技术生成

在上一篇文章中几经讲了关于五子棋棋盘和棋子的问题,在这一篇中就继续讲述关于五子棋的其他问题。

三,棋盘和棋子的重绘

在我们上一次做的五子棋程序中虽然可以进行下棋,但是当你将界面拖动或者让它最小化在打开时,你会发现棋盘和棋子消失不见了,如何将它们保存下来,就是要将五子棋游戏进行重绘。

我们首先需要在MyPanel类中重写paint方法,再绘制绘制棋盘和棋子

 四,.设置判断输赢,悔棋,复盘等功能;

判断输赢:需要在八个方向上判断棋子连续的情况,每两个相对的方向为一组,一共就需要判断四组就可以了,首先定义4个count来记录四组棋子的连续情况,在count后加上数字便于区分。

 棋子颜色如果相同,就将count++,如果不同就跳出循环,另外三组也是一样。

如果最后count小于5,就返回一个false值,反之返回true值。

 在每次下完一颗棋子之后都要进行判断,如果为false,则游戏继续;如果为true则结束游戏,并判断哪方获得胜利

 悔棋:在悔棋功能中我们需要记录双方下棋的顺序,所以要定义两个一维数组记录棋子交点值,先将chesscount--,获取棋子x,y值,清空对应chessArr中保存的数据,这样就可以将棋子消除了,然后再重复一次悔棋就完成了,但是要判断当chesscount小于2时,无法悔棋,最后将棋子进行重绘就完成了。

 复盘:首先要将棋盘清空,在按照下棋顺序绘制棋子。在清空棋盘前要将棋子数据保存在一个新数组中,

再将棋盘清空,重新绘制棋子,每绘制一颗棋子后进行延时操作,

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值