《疯狂Java讲义》——用JAVA实现五子棋

          在学习完《JAVA疯狂讲义》第四章流程控制和数组后,自己想利用现学的东西编一个稍微有意义的东西就是所谓的驱动学习。在这章最后一节提到利用数组可以实现一些小游戏,比如功能简单的五子棋。看了一下书上提供的代码,不懂得东西很多,比如异常的抛出,读取用户键盘输入等知识。

初级篇

    在稍微学习了一下本书第七章和第十章之后,终于能看懂这个代码了。然后自己凭着对代码的理解,实现了一下。

第一步:实现在控制台上输出棋盘

《疯狂Java讲义》——用JAVA实现五子棋_第1张图片
其结果为:

《疯狂Java讲义》——用JAVA实现五子棋_第2张图片

第二步:编译、运行,在控制台显示棋盘以及棋子

《疯狂Java讲义》——用JAVA实现五子棋_第3张图片
其结果为:
《疯狂Java讲义》——用JAVA实现五子棋_第4张图片

     发现一个问题:对试图在已经有棋子的地方再次放棋子的时候,没有提示,于是我改进了一下代码,用throw抛出了一个异常,当出现这种情况时控制台能提示用户重新输入棋子的坐标。

《疯狂Java讲义》——用JAVA实现五子棋_第5张图片

其结果为:

《疯狂Java讲义》——用JAVA实现五子棋_第6张图片

提高篇

     在用初级篇中的代码实现五子棋游戏后,我发现,这个代码还是不够方便,比如输出是在控制台上,而且下棋的时候要输入坐标,太麻烦了。而且还有一个问题就是功能太不完善了,比如五子相连时,不能判赢;也没有实现白棋黑棋交替进行等功能。于是又稍微看了一下第十一章的图形用户界面(GUI)的一些知识,比如组件,事件处理等,实现了一个功能较多的一个五子棋。

第一步:绘制棋盘(因为以前接触AWT比较少,所以在查API文档时,加了很多注释,主要是为了能更好的理解这些函数)

注:在棋盘时,为了能更好的取色,量尺寸。发现一个小软件——FastStone Capture,极力推荐。

《疯狂Java讲义》——用JAVA实现五子棋_第7张图片

《疯狂Java讲义》——用JAVA实现五子棋_第8张图片

《疯狂Java讲义》——用JAVA实现五子棋_第9张图片

其结果为:

《疯狂Java讲义》——用JAVA实现五子棋_第10张图片

                                     

第二步:是处理一些事件,比如鼠标释放应该做什么处理等。目的是可以实现用鼠标点击来确定棋子的位置

《疯狂Java讲义》——用JAVA实现五子棋_第11张图片
《疯狂Java讲义》——用JAVA实现五子棋_第12张图片

第三步:是判赢,就是五子相连时,即赢

《疯狂Java讲义》——用JAVA实现五子棋_第13张图片

《疯狂Java讲义》——用JAVA实现五子棋_第14张图片

《疯狂Java讲义》——用JAVA实现五子棋_第15张图片

《疯狂Java讲义》——用JAVA实现五子棋_第16张图片

其结果为:

《疯狂Java讲义》——用JAVA实现五子棋_第17张图片

第四步:当五子相连时,用一个界面显示出来五子相连

《疯狂Java讲义》——用JAVA实现五子棋_第18张图片
《疯狂Java讲义》——用JAVA实现五子棋_第19张图片
其结果为:
《疯狂Java讲义》——用JAVA实现五子棋_第20张图片

     点击退出游戏按钮,则棋盘将消失。不过现在我还没完全实现重新开始按钮,只能实现当点击该按钮时控制台做出相应的提醒。

《疯狂Java讲义》——用JAVA实现五子棋_第21张图片

     还可以在很多方面进行提高,还可以在此基础上加很多功能,可能现在还有很多知识点没掌握,后面再看看书,再在这个基础上可以实现高级篇。




你可能感兴趣的:(Java)