五子棋游戏

源码的github链接:https://github.com/CaesarLH/learngit/blob/master/homeworktwo.txt

 截图 :

 总体设计:

 

1.本程序要实现五子棋的游戏功能,必须先有一个棋盘,所以,通过继承 JPanel,然后在JPanel上画出一个棋盘,另外还有三个按钮:开始、重置游戏和退出,提醒用户进行相应的操作。当然,JPanel必须放在JFrame中,所以,又通过继承JFrame得到一个实例。

 

2.对于下棋的操作,通过对JPanel增加鼠标事件监听器MouseListener,每次 当用户点击鼠标时,先取得点击的坐标值,然后换算成对应棋盘上(即棋盘数组)的位置(数组的下标)。

 

3.判断该颜色棋子的上下左右是否满足连续五个,是的话提醒相应玩家获胜, 不是的话,更换玩家下棋。

 

4.对于玩家的更换是程序自动的,每次用户点击鼠标后,若本局还未结束则 会变换玩家,从而画出对应黑方白方的棋子,直到有一方获胜程序技术。

心得体会:

    这个课设题对我来说有一定的挑战性,因为我自己也不知道自己到底学到了一个什么样的境界。但可以肯定,这个课设题的要求绝对在我的能力范围以上。之所以选择这个题目是想逼着自己去查更多的资料,学到更多的东西。

    结果也确实是这样的,我在这次课设中学到了不少东西,也理解了许多原来不理解的东西。尽管这个系统做的并不是那么的完善。

    对于Java中的引用,初始化类等,开始我并不是非常的理解,知道就这么做就能实现相应的功能了,并没有很深刻的去理解它为什么要这么做。但是真正的要用Java去做一个东西不理解它是不行的,而且其间这课设涉及到了Java 中的绝大多数的知识点,如Java图形用户界面设计、Java的异常处理机制、Java中的多线程程序设计、Java输入输出流,要应用这些东西更要求我去好好理解Java的这些规则。

    好在有一定的C++基础Java 与C++语法类似,并把C++中一些较低级和较难以理解的功能都去掉了,如多继承、指针等,同时Java增强了部分功能。所以理解起来也比较容易。

    但是理解了Java的规则要把这个课设做好也不是那么容易,最难的部分是如何实现各个功能的划分和类的通讯问题。我在这方面就遇到了不少的问题。

    总结这次课设,我还是收获不少。虽然界面也不是很美观,有点功能间的连接做的也不是特别的好,但是我能认识到自己的不足,并且在跟同学的交流中也学到了一些他们的设计思路,也知道今后要加强哪些方面的知识。

 

posted @ 2015-04-29 22:31  Nidhogg  阅读(812)  评论(4编辑  收藏  举报