1、 课程设计说明书 NO.1 沈 阳 大 学 五子棋小游戏五子棋小游戏 1.课程设计的目的课程设计的目的 通过此次课程设计,巩固所学 Java 语言基本知识,增进 Java 语言编辑基本功,掌 握 JDK、Editplus、Eclipse、JCreator 等开发工具的运用,拓宽常用类库的应用。使 我们通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握 Java 语 言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。 2. .设计设计方案论证方案论证 2.1 设计思路设计思路 (1)界面棋盘设计 在对棋盘界面设计方面要考虑简洁友好,符合游戏者需求。棋子的设计方
2、面系统中 设置了两种棋子颜色,white 或者 black, 游戏者可自行选择。棋子怎样画出来,怎样使 棋子按我们所想的方式来绘制出来是设计的主要难题。运行时要求当每次点击鼠标的时 候就在点击鼠标的地方画一个棋子,所以得定义一个棋子的类使点击鼠标时系统把棋子 绘制出来。这样主界面里的棋子就确定了,而且也确定了几个所需要的类。可以先定义 好这些类了。 有了以上的准备就可以把棋盘绘制出来了,下棋时每次在适当位置点击鼠标的时候 就在所点击的位置上画出你这个角色的颜色,然后计算机会自动的下棋,计算机自动下 棋要有一个控制变量来控制能不能下棋。人可以随意的下子,可是计算机就要计算在哪 个位置下子了。这里
3、由计算机下子的算法来确定,人人对战的话就不象单机游戏一样, 要计算机来判断人下子之后计算机下那一个地方了, 人人对战只要在双方下子的时候判 断赢棋情况,当然还要同步的控制两个人下棋的顺序,这样的话就要用到线程了,各自 都继承或实现线程类或接口,以便各自能随时单独控制接发消息。 (2)算法设计 对于五子棋游戏,无论人机对战,还是双人对战,都需要判断棋盘上是否存在五子 连珠情况, 这既是游戏名字的由来, 也是游戏结束的标志。 判断五子连珠的原理是从横, 竖,左斜线,右斜线 4 条线上判断是否存在 5 个相连的同类棋子。 课程设计说明书 NO.2 沈 阳 大 学 对战一方落子后,在该处向 8 个方向
4、检测连续的同类棋子,如果检测到直线方向上 存在 5 个连续的同类棋子(包含本位置棋子) ,则判断为“连五”并结束检测循环。基 于检测结果,可以判断游戏是否结束,并根据获胜方的落子代码判断获胜方是谁。 由于不考虑禁手问题,在实现“连五”过程中,我们可以考虑完成“双四” , “四三” , “双三” , “冲四” , “活三” , “活四”来实现目的。 活四:有两个点能形成“连五”的四就是活四; 冲四:只有一个点能形成“连五”的四叫做“冲四” ,或者叫做“单四” ; 活三:己方在落一子就能形成“活四”的三叫做“活三” 。 “活三”分为“连活三” 和“跳活三” 。连活三:在棋盘某一条阳线或阴线上有同色三子相连,且在此三子两端 延长线上有一端至少有一个,另一端至少有两个无子的交叉点与此三子紧密相连。跳活 三:中间仅间隔一个无子交叉点的连三,但两端延长线均至少有一个无子的交叉点与此 三子相连。 双三: 由于黑方走一着在无子交叉点上同时形成二个或二个以上黑方 “ 活 “ 的局 面。 双四: 由于黑方走一着在无子交叉点上同时形成二个或二个