资源预览内容
第1页 / 共43页
第2页 / 共43页
第3页 / 共43页
第4页 / 共43页
第5页 / 共43页
第6页 / 共43页
第7页 / 共43页
第8页 / 共43页
第9页 / 共43页
第10页 / 共43页
亲,该文档总共43页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
JAVA语言程序设计课程设计汇报 2048智力小游戏设计专业班级: 计算机科学和技术嵌入13-1 学生姓名: 卓海有 学生学号: 小组组员: 单建飞 堵文斐 李栋承 梅孔伟指导老师姓名: 宋 强 目录1.序言12.游戏需求分析12.1 需求分析12.2 可行性分析23.概要设计34.具体设计44.1步骤图44.2界面整体布局44.3方法模块分析55.测试86.总结106.参考文件107.部分源代码:10一、序言最近以来,移动手游越来越成为当下游戏产业中关键一环,市场也在加大对这一产业投入,涌现出了愤怒小鸟,水果忍者,flappy bird,2048等很多优异手游,然而任何一款手游能够风靡,关键还是依靠其简单操作性,所以此次java课设我选择其中经典2048PC版作为此次课设课题。2048游戏规则很简单,玩家每次能够选择上下左右其中一个方向去移动,每移动一次,全部数字方块全部会往移动方向靠拢外,系统也会在空白地方随机出现一个数字方块,相同数字方块在靠拢、相撞时会相加。系统给数字方块不是2就是4,玩家要想措施在这小小16格范围中凑出“2048”这个数字方块。二、游戏需求分析2.1需求分析现代社会对休闲小游戏需求是:提升游戏操作可行性,降低游戏操作难度,降低游戏上手难度,降低游戏竞争需求,对使用设备要求趋于简单化和多样化,游戏界面愈加人性化,功效愈加贴合使用。(1)界面一款好游戏其界面必需友好,简练已经成为当今UI设计主流,简单易上手才能得到玩家青睐。(2)功效需求能够显示游戏目前得得分,并统计游戏最高分并显示,当在次打开游戏时,能够显示最高分;在游戏进行过程中循环播放音乐,并能够关闭音乐或打开音乐;游戏主界面上,相同数字要显示相同颜色。游戏结束要有对应提醒。游戏关键目标是经过上下左右移动来将相邻相同数字相加,经过不停地累加最终加到2048。(3)操作性需求游戏体验是衡量一款游戏关键,本游戏可经过键盘w,s,a,d和方向键来控制方块移动,还能够经过在游戏主面板中向上下左右拖动鼠标来控制方块移动,左右手全部能够操作,充足考虑便捷性。 不一样人有不一样习惯,经过多个方法来操作游戏,能够多种习惯人需求。2.2可行性分析(1)面向对象程序设计方法Java面向对象程序设计基础思想是经过结构和组织对象来求解问题。对象是很好了解,任何一个物体全部能够被认为是对象,比如,汽车就是一个对象。对象含有两个最基础属性:含有一定物质基础和一定功效,这两种基础属性在Java语言中表现为拥有一定存放单元并含有一定功效。了解了Java这种面向对象程序设计基础思想以后,在以后编程过程中,就应该个结构大家轻易了解更靠近于真实物理世界物体对象。Java面向对象程序设计过程很简单。这里介绍一个自顶向下程序设计方法,首先结构一个类来处理需要处理问题,然后依据已经拥有类(比如以前求解其它问题时实现类),分析和结构新类,设法将问题分解下去,而最开始结构类经过组织这些新结构类、已经有类及由她们生成实例来求解指定问题。这个过程能够继续递归下去,用在新结构类上,直到最终处理了指定问题,比如Java应用程序和小应用程序全部必需有一个类作为入口求解问题。在计算机语言中,面向对象类通常含有三个基础特征:封装性、继承性和多态性,这三种特征深入简化了Java求解模型,提升了程序复用性,节省了程序代码量,从而提升了软件生产率。(2)java技术分析图形用户界面不仅能够提供多种数据基础图形直观表示形式,而且能够建立友好交互方法,从而使计算机软件能够设计得十分简单易用。从Java语言诞生到现在,Java语言已经提供了两代图形用户界面。第一代图形用户界面AWT提供了基础图形用户界面,它强烈地依靠于具体计算机操作系统,而且缺乏基础剪贴板和打印支持功效。现在第二代图形用户界面Swing对AWT进行了扩展,Swing不仅在功效上比AWT强大,而且在很大程度上克服了AWT上述缺点,它所设计图形用户界面和具体计算机操作相关性很小,而且能够定制指定操作系统风格图形用户界面。GUI(图形用户界面)组件组成了图形用户界面基础。在Java程序设计中,要求根据一定布局方法将组件安排在容器中,然后经过事件处理方法实现人机交互,而容器本身也是组件,这么在容器中也能够含有容器,从而能够经过这种嵌套方法方便地组合多种组件。事件处理模型是Java语言提供一个人机交互模型,它使得用户能够经过鼠标、键盘或其它输入设备来控制程序实施步骤,从而达成人机交互目标。对鼠标、键盘或其它输入设备多种操作通常也称为事件。Java语言对这些事件处理模型是采取面向对象方法,即经过对象形式把多种事件进行封装和处理。这种事件处理模型三个基础要素是事件源、事件对象和事件监听器。事件源是多种组件,是接收多种事件对象。在多种事件源上利用鼠标、键盘或其它输入设备进行多种操作,就会有事件发生。每种操作通常全部对应着事件,Java语言经过事件对象来包装这些事件。对事件进行处理是经过事件监听器实现。因为鼠标事件也是一个事件,所以对鼠标事件进行处理要遵照事件处理模型。鼠标事件处理也是建立在事件源基础之上,以事件对象本身,最终经过事件监听器进行处理。类java.awt.event.MouseEvent包装常见鼠标事件,比如,按下鼠标键和放开鼠标键等。类MouseEvent实例对象统计了鼠标目前位置和状态发生改变鼠标键等。对鼠标事件进行处理最关键是实现事件监听器接口。这些相关接口包含MouseListener,MouseMotionListener,MouseWheelListener,MouseInputListener。前面三个是包java.awt.event中接口,最终一个接口MouseInputlistener来自包javax.swing.event。接口Java.awt.event.MouseListener关键用来处理按下鼠标键、放开鼠标键、单击鼠标键、鼠标进入组件内和鼠标离开组件区域等事件。对鼠标事件进行处理,就是要设计类,实现上面鼠标事件监听器接口,然后在事件源中注册处理鼠标事件监听器对象,方便对鼠标事件进行处理。三、 概要设计 四、 具体设计(1) 步骤图(2) 界面整体布局分别构建mainPane,scoresPane两大模块放入游戏窗体,其中scoresPane包含2048字样提醒,目前得分和最高分,当得分超出最高分时,将得分存入工程文件夹下myRecording.txt,覆盖最高分,同时在最高分显示最新myRecording.txt内容。经过Create方法随机产生2号方块或4号方块,经过setColor方法设置每个数字代表方块颜色。(3) 方法模块分析方法1:设置标签颜色,每次随机产生2或4和数字合并以后就要调用该方法来设置标签颜色public void setColor(int i, int j, String str) if (.equals(str) textsij.setBackground(new Color(120,221,247);return;int result = Integer.parseInt(str);switch (result) case 2: textsij.setBackground(new Color(240,240,0); break;case 4: textsij.setBackground(Color.pink); break;case 8: textsij.setBackground(new Color(240,150,10); break;case 16: textsij.setBackground(Color.green); break;case 32: textsij.setBackground(Color.magenta); break;case 64: textsij.setBackground(new Color(155,10,190);break;case 128: textsij.setBackground(Color.blue); break;case 256: textsij.setBackground(Color.gray); break;case 512: textsij.setBackground(Color.cyan); break;case 1024: textsij.setBackground(Color.DARK_GRAY); break;case 2048: textsij.setBackground(Color.red); break;case 4096: textsij.setBackground(Color.white); break;default: break;方法2:在随机位置产生一个2号或4号方块方法,同时该方法也用于判定游戏是否结束。public void Create() int i, j;/用于统计产生二维方阵下标值boolean r = true;String str;if (times 0 & biaoji = 1) while (r) i = random.nextInt(4);j = random.nextInt(4);str = textsij.getText();if (str.compareTo() = 0) int ima = 2 * (int) (1 + Math.random() * 2);/ 随机产生2或4String imass = String.valueOf(ima);textsij.setText(imass);setColor(i, j, imass);times-;r = false;p1 = p2 = p3 = p4 = 0;/统计目前状态for(int p = 0; p 4; +p)for(int q = 0; q 0 & p2 0 & p3 0 & p
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号