五子棋

博主是一名java初学者,通过一周的学习,逐步理解并解决了五子棋编程中的问题,如ArrayList数据类型转换、输赢判断的逻辑错误以及悔棋功能的实现。通过与同学交流和老师的指导,逐渐克服困难,深化对编程的理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

          我是一名初学者,学习不到一个月的时间。当我上五子棋的时候,我就很担心我会听不懂。事实上也是如此,有很多地方我都不懂。但与同学一起交流,不懂的问老师,也懂得差不多了。刚开始学,我是有点胆怯的,对于一个对java几乎什么都不懂的自己,有信心写好五子棋那才有怪呢!

            经过一周的学习,努力跟上老师的上课进度。我也总是跟不上节奏,写代码总有一些错,不会改。例如:在写棋子重绘的时候,需要取出之前存入ArrayList的数据(二维坐标x,y与颜色color),而ArrayList保存数据的类型是Object类。在取坐标的时候,采用int x1=(int)array.get(array.size()-3)是不行的,(新版本)编译器会直接报错,并提示Object类不能直接强转为int类。解决这个问题就得采用Integer类。在判断输赢的方法中,我就犯了好些错误:先是粗心大意,将一个判断里面的条件写错了,也就是二维数组chesses[i][j]写成了chesses[i][i],改了好久都没有发现这个错误,还是同学帮我发现的;另一个问题就比较深刻了,就是我们在写判断条件的时候一定要注意优先级,二义性。我在写if(chesses[i][j]==1&&(count>=5||count1>=5||count2>=5||count3>=5))这个判断的时候,之前没有将那几个或条件用小括号括起来,就像上面着重部分一样,将两个条件合并成一个条件判断了,结果判断结果就错了。在写悔棋方法也是错误不断,悔棋的要求是将最后一颗棋子去掉,并且可以重新下,颜色得和悔棋前棋子一样。我写的先是在界面上将棋子去掉了,可是不能在悔棋的那颗棋子的地方重新下,这就是我没有将数据重新初始化。当我重新初始化数据后,下棋的颜色又不对了,为了解决这个问题,(我将要悔棋的那颗棋子的数据用全局变量存起来)我加了一个标志flaghuiqi=false;然后当我们点击悔棋按钮时,就将flaghuiqi=true;在下棋子方法中再多加一个判断,将存起来的数据在判断体中重新将数据复制在新的下棋点。

     人人算法我写的差不多了,感觉学到了很多,我会再接再厉学的,将人机写好!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值