《Java 》课程设计报告模板.doc
《《Java 》课程设计报告模板.doc》由会员分享,可在线阅读,更多相关《《Java 》课程设计报告模板.doc(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、南京晓庄学院JAVA程序设计课程设计报告题 目:贪吃蛇游戏系统的设计与实现姓 名:刘婷婷 学 号: 班 级:12软转1班 指导教师:王铮 完成时间2015年6月25号 成 绩:信息工程学院2015年6月目录1 引言11.1 系统开发背景11.2 完成的主要工作12需求分析和总体设计22.1 需求分析与设计思路22.1.1关键技术说明22.1.2需求分析2213系统目录结构说明22.2 系统功能设计22.2.1 蛇、食物的表示22.2.2 蛇的移动32.2.3 蛇的移动方向32.2.4 如何显示蛇身32.2.5 蛇身的移动方向32.2.6 吃到食物的判定33.1 系统模块实现43.1.1 英雄榜
2、模块实现43.1.2 自定义模块实现83.1.3 计时器模块实现113.1.4 外挂模块实现11其实我是这学期才开始接触Java语言,所以做出这个游戏对我来说还蛮难的,其次,eclipse这个软件我也只是在刚结束的软件开发综述的课程里刚接触,所以做这个游戏的一开始很难,什么都要不停的请教同学,在做这个游戏的过程中也是不断查阅文献资料来完成的。做这个游戏过程中,我觉得最简单的应该算是计时器模块,最难得就是自定义模块,虽然设计内容繁多,过程繁琐但我的收获却更加丰富。124系统运行界面13游戏开始界面13点击高级,出现16*30界面,左边显示雷数:9914点击自定义15点击排行榜15游戏成功16游戏
3、开始点击外挂,标记处雷区175 课程设计总结18扫雷游戏系统的设计与实现1 引言1.1 系统开发背景贪吃蛇是世界知名的益智类小游戏,选择这个题目一方面的原因是为了将我们自己的所学知识加以运用;另一方面,虽然很小就接触这个游戏,但是它的制作方法对我们而言还是很神秘的。我们希望通过自己的所学知识把它剖析开来,通过自己的动手实践,真正的了解它的本质和精髓。希望通过这次实践,我们能从中提高自己的编程能力。并从中学会从零开始分析设计程序。本游戏的开发语言为Java。开发工具选用EclipseJava是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言
4、。这里采用Java作为开发语言主要是基于Java的面向对象和可移植性。Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。1.2 完成的主要工作本系统主要是完成贪吃蛇游戏的基本操作。用户可以自己练习和娱乐。本系统需要满足以下几点要求:(1)利用方向键来改变蛇的运行方向。(2)空格键暂停或继续游戏,并在随机的地方产生食物。(3)吃到食物就变成新的蛇体,碰到壁或自身则游戏结束,否则正常运行。2需求分析和总体设计2.1 需求分析与设计思路 2.1.1关键技术说明 贪吃蛇游戏是一种简单的大众的游戏,自从计算机实现以来,深
5、受广大电脑玩家的喜爱,做一个简单的贪吃蛇小游戏。 贪吃蛇的核心算法时如何实现移动和吃掉食物,没有碰到食物的时候,把当前运动方向上的下个节点入队,并以蛇节点的颜色绘制这个节点,然后把头指针所指的节点出队,并以游戏框架内部背景色重绘出队的节点,这样就可以达到移动的效果。而在吃到食物的时候,则只需把食物入队即可。实现贪吃蛇的基本的蛇身移动、吃到食物身体增长、和碰到墙壁或自身死亡,能够暂停和开始。 本次设计我将主要运用java语言来完成。Java语言是一种跨平台,适合于分布式计算环境的面向对象编程语言,用Java写的应用程序不用修改就可在不同的软硬件平台上运行。2.1.2需求分析本软件是针对贪吃蛇小游
6、戏的Java程序,利用方向键来改变蛇的运行方向,空格键暂停或继续游戏,并在随机的地方产生食物,吃到食物就变成新的蛇体,碰到壁或自身则游戏结束,否则正常运行。213系统目录结构说明对系统包结构、文件结构列表说明,如表2-1、2-2所示。表2-1文件名作用Dir.java指蛇的运动方向Egg.java代表食物,实现组成蛇身的单位-食物Snack.java代表蛇,该文件实现蛇类Yard.java代表蛇的活动区域2.2 系统功能设计2.2.1 蛇、食物的表示 我们可以把显示区域想象成一个大大地表格,里面的格子就是组成蛇的基本单位,一个格子代表一个食物,也可以代表蛇身的一部分,几块连在一起就是一条蛇。2
7、.2.2 蛇的移动蛇向前移动一步,可以看作是蛇头前面增加了一个节点,蛇的尾巴上少了一个节点(即去尾部加头部)2.2.3 蛇的移动方向这里讨论蛇的移动方向控制。蛇的下一步移动到哪里,是由方向来控制的。这里我们用L,U,R,D代表蛇运动的4个方向。2.2.4 如何显示蛇身显示蛇身,其实就是填充,即用颜色填充格子。2.2.5 蛇身的移动方向(1) 相反方向 和上一次移动的方向相反的方向是相反方向,这种输入应该被忽略。这样可以防止蛇从自己的身体中穿过。(2) 无效方向 在蛇的这一次移动之后和下一次移动之前这个时间间隔内输入多个非相反方向,只是最后一个是有效方向,其他的都是无效方向。 蛇的最终运动方向以
8、有效方向为准。2.2.6 吃到食物的判定 这里是判定蛇头是否和食物重合就可以了,因为蛇的身体都是走蛇头走过的地方。3详细设计3.1 系统模块实现3.1.1 英雄榜模块实现一、 实现原理点击游戏菜单下的扫雷英雄榜,弹出排行榜,有相应等级(初级、中级、高级)和成绩(扫雷完成时间)及玩家姓,开始时成绩都为999,玩家都为匿名,顺利完成一局扫雷后会自动弹出 提示框提示输入姓名,提交后再次打开排行榜,刚刚提交的等级,成绩和玩家会改变和保存。二、 关键代码分析public class ShowWin extends JDialog private JLabel jlabel1;/级别、成绩、玩家标签pri
9、vate JLabel jlabel2;private JLabel jlabel3;private JLabel jlabel4;/初、中、高三个级别标签private JLabel jlabel5;private JLabel jlabel6;private JLabel time1;/初、中、高三个最短时间private JLabel time2;private JLabel time3;private JLabel name1;/初、中、高三个最短时间玩家姓名private JLabel name2;private JLabel name3;private JButton jbutto
10、n1;/确定和重新设置2个按钮private JButton jbutton2;private SartFrame sartsrame;private JPanel jpanel;public ShowWin(SartFrame sartsrame)this.sartsrame=sartsrame;this.setTitle(扫雷排行榜);/左上角对话框名字this.setVisible(true);this.setSize(220,210);/设置对话框长和宽this.setResizable(false);this.setLocationRelativeTo(sartsrame);this
11、.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);init();public JLabel getJLabel1() return jlabel1;public void setJLabel1(JLabel jlabel1) this.jlabel1 = jlabel1;public JLabel getJLabel2() return jlabel2;public void setJLabel2(JLabel jlabel2) this.jlabel2 = jlabel2;public JLabel getJLabel3() return
12、 jlabel3;public void setJLabel3(JLabel jlabel3) this.jlabel3 = jlabel3;public JLabel getJLabel4() return jlabel4;public void setJLabel4(JLabel jlabel4) this.jlabel4 = jlabel4;public JLabel getJLabel5() return jlabel5;public void setJLabel5(JLabel jlabel5) this.jlabel5 = jlabel5;public JLabel getJLab
13、el6() return jlabel6;public void setJLabel6(JLabel jlabel6) this.jlabel6 = jlabel6;public JLabel getTime1() return time1;public void setTime1(JLabel time1) this.time1 = time1;public JLabel getTime2() return time2;public void setTime2(JLabel time2) this.time2 = time2;public JLabel getTime3() return t
14、ime3;public void setTime3(JLabel time3) this.time3 = time3;public JLabel getName1() return name1;public void setName1(JLabel name1) this.name1 = name1;public JLabel getName2() return name2;public void setName2(JLabel name2) this.name2 = name2;public JLabel getName3() return name3;public void setName
15、3(JLabel name3) this.name3 = name3;public void init()HeroListener heroListener = new HeroListener();jlabel1 = new JLabel( 级别);jlabel2 = new JLabel( 成绩);jlabel3 = new JLabel( 玩家);jlabel4 = new JLabel( 初级:);jlabel5 = new JLabel( 中级:);jlabel6 = new JLabel( 高级:);time1 = new JLabel(+Tools.time1);time2 =
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java Java 课程设计报告模板 Java 课程设计 报告 模板
限制150内