五子棋

      五子棋是来华信做的第一个项目。在做这个项目的过程中,我学到了很多,编程能力也有了些许进步。以前写代码,即使是照着敲,也会有很多的错误,而且还看老半天也不会改。做五子棋的时候,犯的错误减少了。因为是用的eclipse,大多情况下,也能根据提示即时改错,编译时的错误大都解决了,运行时的异常又出现了,有时能自己解决,有时有不得不向斌哥和左哥请教。也许改错对很多人来说根本不是什么问题,可是对于相当菜鸟的我来说是很头痛的 ,很开心,自己有了这样的进步。

       下面来说一下我做五子棋的一些收获。

      我们这次先写的是界面。界面没什么难以理解的,不过,要记得画布一定记得写在窗体可见的后面。判断输赢,比如判断横向的时候,要记得以最后下的一个棋子为起点,然后,先向左边或右边判断,然后向另一边判断。部分代码如下:

public void win(int i, int j) {
int count[] = { 1, 1, 1, 1 };
int m = 1;
while (j - m >= 0 && chess[i][j] == chess[i][j - m]) {
m++;
count[0]++;
}

m = 1;


while (j + m <= 9 && chess[i][j + m] == chess[i][j]) {
m++;
count[0]++;


}

然后比较头痛的是做悔棋这个功能。这时要用到一个和paint相关的repaint方法,后者是前者自带的一个用的很广泛的方法,后者的方法的实现和前者一模一样。但是前者是重绘所有的棋子方法,所以,这时我们要用到List里的remove方法,它是移除List中最后一个元素的方法(我们是用List保存棋子的特征的,包括行数,列数和棋子的颜色)。悔棋后,要把要把下棋标识(我们用数组保存下过棋子的行列数)和棋子的颜色设置为下期之前的状态,否则,悔棋过的地方会下不了棋,下得了的棋颜色也会不对。设置标识是编程里用得很多的一种方法,一定要学会灵活地运用。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值