五子棋

来源:互联网 发布:淘宝买东西用苏宁快递 编辑:程序博客网 时间:2024/04/29 22:36

          我是一名初学者,学习不到一个月的时间。当我上五子棋的时候,我就很担心我会听不懂。事实上也是如此,有很多地方我都不懂。但与同学一起交流,不懂的问老师,也懂得差不多了。刚开始学,我是有点胆怯的,对于一个对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;在下棋子方法中再多加一个判断,将存起来的数据在判断体中重新将数据复制在新的下棋点。

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

0 0
原创粉丝点击