连连看游戏设计报告1.docx
《连连看游戏设计报告1.docx》由会员分享,可在线阅读,更多相关《连连看游戏设计报告1.docx(19页珍藏版)》请在冰点文库上搜索。
连连看游戏设计报告1
淮海工学院计算机工程学院
课程设计报告
设计名称:
面向对象课程设计
选题名称:
姓名:
学号:
专业班级:
网络工程122
系(院):
计算机工程学院
设计时间:
2013.6.14~2013.6.28
设计地点:
软件实验室、教室
成绩:
指导教师评语:
签名:
年月日
1.课程设计目的
《面向对象程序设计》是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。
其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力。
2.课程设计任务与要求:
课程设计可选用NetBeans、Eclipse、JBuilder等作为开发平台以提高开发效率,尽可能熟练掌握其中一种集成开发环境。
建议采用UML建模技术进行系统的分析设计,在Visio中画出系统用例图和类图,并将UML图复制到设计报告中。
通过这次设计,要求掌握以下内容:
1)面向对象技术中的继承与多态(重载和覆盖)机制、各种修饰符的使用
2)类、包、接口的定义与使用
3)常用工具类与算法的实现(数组、向量、字符串、链表)
4)Java常用标准GUI组件及其事件处理
5)Java的异常处理机制
6)Java的数据库连接技术
7)Java的多线程技术与动画制作
8)Java的网络编程
3.课程设计说明书
3.1游戏功能
❑游戏采用美女连连看的方式,界面美观友好,用户使用灵活、方便、快捷、准确,数据存储安全可靠。
❑设置开始.刷新两个按钮
❑游戏分为简单,中等,高难,三个等级,每个等级有各自的关数。
❑用漏斗来表现用掉的时间,提示时间用完,游戏结束。
❑图片的消除、排列清晰。
❑计分自动完成,提高工作效率。
❑可方便快捷地进行下一盘游戏,并且两盘的分数在规定的时间内会叠加起来。
❑操作员可以随时退出游戏。
❑对用户输入的信息,系统进行严格的信息检验,尽可能排除人为的错误。
❑系统最大限度地实现了易维护性和易操作性。
❑系统运行稳定、安全可靠。
3.2游戏规则
1、条件:
程序的关键在于判断用户连续点击的两个图案能否消除。
两个图片可以消除的条件有两个:
▍图片相同
▍图片间连线的转角数不得超过2个。
2.具体操作:
第一次使用鼠标点击游戏界面中的牌,该牌此时为"被选中",以特殊方式显示;再次以鼠标点击其他牌,若该牌与被选中的牌图案相同,且把第一个牌到第二个牌连起来,中间的直线不超过3根,则消掉这一对牌,否则第一个牌恢复成未被选中状态,而第二个牌变成被选中状态。
在规定的时间内将游戏界面上的牌全部消除掉。
则游戏胜利,在规定时间,界面上的牌仍未全部消掉。
则游戏失败.
根据转角数不得超过2个的规则,我们可以分为转角数分别为0个、1个、2个这三种情况分别讨论。
[3]
(1)0转角连通(直线连通):
两个图片的纵坐标或横坐标相等,且两者连线间没有其他图案阻隔。
(2)一个转角连通:
其实相当于两个图片的横向与纵向的直线相交只有一个焦点。
图4.4.2一个转角连通
(3)两个转角连通:
判断图片A与图片B能否经过有两个转角的路径连通实质上可以转化为判断能否找到一个点C,这个C点与A可以直线连通,且C与B可以通过有两个转角的路径连通。
若能找到这样一个C点,那么A与B就可以经过有两个转角的路径连通。
判断是否经两个转角连通的算法需要做两个方向上的扫描:
水平扫描和垂直扫描。
水平判断。
如下图所示,为了判断A,B能否通过2个转角连通,则从A开始在水平方向上向左右扫描,并判断经过的点能否与B点经过1个转角连通。
显然C点能与B点经1个转角连通,故A,B能经2个转角连通。
垂直判断。
如下图所示,为了判断A,B能否通过2个转角连通,则从A开始在垂直方向上下扫描,并判断经过的点能否与B点经过1个转角连通。
显然C点能与B点经1个转角连通,故A,B能经2个转角连通。
3.3游戏模块
(1)游戏思路
获取图片:
最基本的就是用button代替图片进行布局了,然后将图片set到button用来做背景图片。
这里采用最简单的方法——数组。
考虑到图片是多行多列的格式。
所以采用二维数组(数组名为game_grid[][]方式来控制比较直观,并且为了程序容易解读,统一在不同过程中用名为i和j的变量来分别表示行列。
程序开始时给数组中的各个元素赋初值为0,即表示没有图片。
然后数组控制整个游戏区域,游戏区域最外围为空白区域,即相关元素的值为0。
这样就可以保证游戏刚开始后,第二层显示的图片之间的相连路径处理时就没有阻碍了。
这个游戏考虑到玩家对图片的爱好不同,故可以自由修改。
将数组game_grid
的数据与图片名匹配(如:
game_grid的数据为1~25则图片名为1,2...25与之一一对应),玩家则只需要将自己喜欢的图片改变图片名字去替换就可以了。
其button背景图片的方法是用ImageIcon来存储图片信息然后set到button中。
(2)游戏结构图
(3)游戏详细流程图
Y
N
Y
3.4游戏类的实现
JFrame
lianliankan
Lianliankan()
lianliankanJPanel
publiclianliankanJPanel()
publicvoidpaintComponent(Graphicsg)
publicvoidchongzai()
publicvoidnewGame()
publicvoidguoguan()
publicvoidnewMap()
publicbooleanlinecheck(inty1,intx1,inty2,intx2)
publicbooleanzhejiaocheck(inty1,intx1,inty2,intx2)
publicbooleanliangcizhejiaocheck(inty1,intx1,inty2,intx2)
publicbooleanifcanTouch(inty1,intx1,inty2,intx2)
publicvoidclearBlock()
publicvoidactionPerformed(ActionEvente)
PublicvoiditemStateChanged(ItemEvente)
JPanel
loudou
publicloudou()
publicvoidsetdijiguan(intx)
publicvoidpaintComponent(Graphicsg)
publicvoidsetTimes(intx)
publicintgetTimes()
publicvoidrun()
4.课程设计成果
4.1游戏界面
4.2等级选择界面及代码
4.3消去相同图片及代码实现
//判断能否两次折角相连
4.4重新开始游戏
代码实现如下:
4.5游戏结束提示界面及代码
游戏结束代码
5.课程设计心得
游戏“连连看”顾名思义就是找出相关联的东西,这个连连看在网上基本是用在小游戏中,就是找出相同的两样东西,在一定的规则之内可以做为相关联处理。
现在网络小游戏、网页游戏越来越受网民欢迎,除了玩的方法简单外,很多游戏不乏经典。
连连看游戏就是典型。
不管走到哪个网页游戏网站,连连看游戏总是排在受玩家欢迎排名的前5位,休闲、趣味、益智是连连看玩不厌的精华,且不分男女老少、工薪白领,是一款适合大众的经典网络休闲小游戏。
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.
回顾此次连连看游戏设计,从理论到实践,学到了很多很多的东西的同时也意识到不足,由于以前对Java的swing编程不是很熟悉,所以在写代码时遇到了一些问题。
如:
游戏界面的布局在重列的时候其button有可能显示不完全,
连连看其判断路径的算法开始编写时有漏洞等。
这次连连看设计实现了:
游戏界面的窗体实现,连连看消除路径的判断算法,button界面布局,button的背景图片set写入,相关游戏区总体布局以及玩家的人机互动性操作。
这个连连看游戏还诸多不足之处,如:
没有实现玩家排行榜设计,游戏内容设计,趣味性不足等。
关于后续改进方案如下:
实现已有不足之处,以及根据自己的技术去实现连连看局域网对战,玩家互动性操作等。
总体上这次连连看游戏设计让我懂得:
实践才是真理。
而你所想到的并不一定能够完全实现。