[工作范文]毕业论文致谢词.doc

上传人:sccc 文档编号:4667193 上传时间:2023-05-06 格式:DOC 页数:37 大小:1.90MB
返回 下载 相关 举报
[工作范文]毕业论文致谢词.doc_第1页
第1页 / 共37页
[工作范文]毕业论文致谢词.doc_第2页
第2页 / 共37页
[工作范文]毕业论文致谢词.doc_第3页
第3页 / 共37页
[工作范文]毕业论文致谢词.doc_第4页
第4页 / 共37页
[工作范文]毕业论文致谢词.doc_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《[工作范文]毕业论文致谢词.doc》由会员分享,可在线阅读,更多相关《[工作范文]毕业论文致谢词.doc(37页珍藏版)》请在三一办公上搜索。

1、烟台大学毕业论文(设计)1 综述1.1 课题背景 1.1.1 概述网络游戏起源早期电子游戏中的RPG 游戏(角色扮演游戏)。RPG游戏是电子游戏中历史最为悠久的一种,也是数量最为庞大的一种,因为RPG游戏相对于其他类型的游戏,技术要求最低,电脑配 置要求也最低,因此开发起来相对容易很多。在电子游戏发展史中,也留下了许许多多的经典作品,像家用电视游戏机上的最终幻想系列,PC机上魔法门系列,还 有中文电脑RPG游戏的经典仙剑奇侠传。正是因为RPG游戏的竞争十分激烈,许多厂商开始力图在RPG游中引入一些新鲜的因素。1997年,暴雪公司发布了DIABLO(暗黑破坏神),这其实是一款全新的游戏类型,严格

2、意义上来说这并不是一款传统的RPG游戏,它更像是即时战略游戏与传统RPG的结合,但它又确实包含了许多传RPG的因素在里面,最为关键的就是完整包括了角色的升级系统,所以业界给这种游戏定义为ARPG(动作角色扮演游戏)。DIABLO对游戏界的贡献还不只于此,这款游戏还首创了战网游戏系统,所有正版游戏用户都可以得到一个CDKEY,用这个CDKEY可以上到暴雪为用户免费开发的服务器上进行多人游戏,这虽然有别于现在的网络游戏,但无疑为后来的网络游戏开发商提供了一个很好的思路。随着电脑软硬件技术和互联网的飞速发展,电脑游戏也突飞猛进,成功游戏不断涌现。比较成熟的项目主要有:反恐精英(CS)、星际争霸、魔兽

3、争霸2、FIFA2003、帝国时代、FIFA2004等等。这时也出现了越来越多的网络小游戏,休闲类项目包括网络围棋、中国象棋、四国军棋、桥牌、麻将、拱猪、斗地主、拖拉机、连连看等。由于手机的飞速发展,手机游戏开始进入市场并开始迅速发展。越来越多的游戏以手机以平台进入人们的生活。1.1.2 历史而今的手机游戏种类繁多.最常见的是已经内嵌在手机中,比如很多品牌手机提供的贪食蛇游戏.这些是由手机制造商开发,在出厂前就直接固化在手机中的游戏,用户既不能添加也无法删除,当然玩的时候也无需付费.现在游戏有的也是提前固化在手机中,比如常见的移动QQ,但这种游戏是游戏商和手机厂商合作的结果,用户在玩游戏的时候

4、需要支付一些费用.还有一种则是供用户自行选择下载的游戏,用户可以根据自己的兴趣爱好和手机的硬件支持来决定下载某一款游戏,或是删除已经下载的游戏.通过这种方式,在手机有限的系统资源限制下,用户可以不断地体验新款游戏.由于可以满足用户的个性化需求,下载类游戏显示出了巨大的市场潜力,可能成为游戏产业新的增长点。对于游戏玩家来说,则从单机游戏发展到可以随意与其他高手在线游戏,实现一部手机在手,随时随地娱乐的功能。手机游戏的兴起与传统游戏的发展演变之路不同.这种差别已不仅仅表现为游戏终端设备的差异,而是体现在游戏传输载体以及游戏参与方式的变革.技术融合带来游戏跨平台的发展,通过网络,个人电脑,大型游戏机

5、,家用游戏机,交互电视,手持终端设备都可以进行互动交流.不同的设备可以通过网络运行相同的游戏,游戏按照终端设备分类的界线越来越模糊.甚至我们可以期待以后的手机就是一部小型的电脑,而在电脑上可以玩的游戏都可以在手机上得到实现。1.1.3 现状和问题具体到游戏行业产业链:运营商的支持和重视程度还不够。目前的移动运营商手机游戏内容平台还远远不能满足大部分手机用户方便了解和方便下载手机 游戏的需要,市场上也缺乏更多的平台选择,而运营商以外的平台又往往因为政策和管理等约束而没有得到良性的发展。用户需要更方便的游戏获取方式和下载途 径,有更快捷的、门槛更低,让用户更方便下载的平台的支持,这样的平台离不开运

6、营商的支持。终端标准不统一:尤其到07年以后,问题尤其明显,手机种类繁多、屏幕小,容量小,导致在手机上只能玩小游戏,加上色彩、操作性等不足,导致用户体验差。许多手机没有游戏的支持功能,许多手机游戏无法下载到手机上玩。这些成为手机游戏发展的重要瓶颈。1.1.4 发展趋势 手机游戏已经向WAP方面发展,手机网游也已经出现,相信在不久的将来,在手机上也可以开发出一个相当成功的大型网游。1.2 课题提出学习j2me方面的知识,最好实际开发一个手机游戏,以便能深入理解。基于此,我设计开发了连连看这个手机游戏。1.3 开发工具和开发环境本文件系统采用JAVA语言实现,编译器为wtk 。JAVA是一种非常强

7、大而复杂的语言,现在已经在工程开发中占据了重要地位。开发环境为EditPlus V2.31(402),运行模拟环境为WTK 2.52版。1.4 系统文件结构本系统共包含6个源程序文件:LLKMIDlet.java、LLKCanvas.java、MainMenu.java、LLKMatrix.java、TimerTask.java、GameWinCanvas.java,其中LLKMIDlet类是主类,它调用MainMenu类,其它各类之间相互调用。 2 需求分析 2.1 系统开发目的 网络小游戏制作的目的是满足了人们休闲的需要,在紧张工作之余休闲类的小游戏能够给人带来最大程度的放松,也可以增进人

8、们之间的交流,沟通,通过游戏还可以认识更多的朋友。另外也通过本程序将四年来所学的专业知识和其他方面的知识融入到实际应用中。2.2 系统功能要求 游戏中能正确判断鼠标两次点下的图片是否可以消去、不同的消去能得到不同的分数、不同的键代表不同的功能、每过一关后矩阵的重排以及能不能正确判断游戏是否已经结束。3系统设计针对上面的需求分析,我们把整个软件分成两个模块:1、整体界面的设计和图片的随机生成;2、图片路径判断函数。以下就是系统图:LLKMIDlet(主类)MainMenu(菜单)LLKCanvas(绘图类)GameWinCanvas(LLKCanvas的父类)TimerTask(时间控制类)LL

9、KMatrix(控件处理类)继承调用调用调用3.1 基本思路3.1.1 解决游戏区域问题这个问题最简单,但是却是最花时间的。正所谓:万事开头难。刚开始想了好多控件来实现。比如Label,Panel等等,后来在参考文献中发现一个扫雷游戏可以通过image控件来画图。因此在几天之后才解决这个最早的最简单的也是最头疼的问题。3.1.2 获取图片位置的思路首先,最基本的就是关于程序图片的位置怎么获取,以及如何控制。这里采用最常用的方法数组。考虑到图片是多行多列的格式。所以采用二维数组(数组名为matrix)的方式来控制比较直观,并且为了程序容易解读,统一在不同过程中用名为X和Y的变量来分别表示行列。程

10、序开始时给数组中的各个元素赋初值为0,即表示没有图片。然后数组控制整个游戏区域,游戏区域最外围为空白区域,即相关元素的值为0。这样就可以保证游戏刚开始后,第二层显示的图片之间的相连路径处理时就没有阻碍了。现在介绍matrix数组具体控制图片的过程,首先,由于每张图片显示的宽度高度为2323,所以整个控件设置为230230(包括外围空白的两行两列)。而每张图片可 以用matrixXY来表示,它在image内部的位置为HSize=X*23到(X+1)*23,VSize=Y*23到(Y+1)*23这样image控件内的 一点M(x,y)所对应的图片就可以转化为数组matrixx,y的值来判断。这个思

11、路的具体算法可以后面的3.2.2的第二个步骤中得以体现。3.2 界面的设计和图片的随机选择由于这个程序的界面并不是很复杂,所以用到的控件也不多,主要核心内容还是后台的代码设计。图片的随机生成主要是用到一个random()函数将随机数赋值给matrix数组中的每个元素,然后根据数组元素值,来显示图片。(这个在3.1.2的思路中有详细的介绍)3.2.1 界面的设计将整体界面分为两个大的部分,上面部分为游戏图片显示区域,即主区域,用IMAGE控件。下面部分则是状态栏,显示相关提示信息(如图)。3.2.2图片的随机生成实现这个功能需要很多个步骤:1.程序运行时即载入游戏所需的35张图片,通过一个循环把

12、35个png形式的图片载入到数组的各个元素。2.当确认游戏开始时,通过画图过程完成图片生成,画图的过程代码如下:Image img = Image.createImage(/figures.png);/利用Image.createImage()来绘制背景 for (int i = 1; i = SeedCount; i+) imagesi - 1 = Image.createImage(HSize - 2, VSize - 2);/利用Image.createImage(windth,height)来绘制背景 /HSize ,VSize初始值是25,25Graphics g = imagesi

13、 - 1.getGraphics(); g.drawImage(img, (1-i) * (HSize - 2), 0, 0); 3.3 图片是否可消除的判断本模块包括两部分:一是判断两张图片是否相同;二是路径判断问题。3.3.1 两张图片是否相同这个部分功能只与一个事件相关,就是image控件按下的事件。这个事件算法,其中很重要的一点就是在鼠标按下后要获取图片值,这个思路在前面的3.1.1有详细介绍,另外本过程还有一个解决问题就是,要判断前后两次选中的图片是否相同,及其相应位置(路径判断时需要用到)。所以用两个变量xx和yy来分别存储前次选中图片的行列位置。下面是实现的算法代码:matrix

14、 = new intHSizeVSize; int j = 0; int b = 0; for (int x = 0; x HSize; x+) for (int y = 0; y LLK22、项目-包-产生包3、生成4、运行计算机屏幕如图1点击启动,进入菜单界面如图2难度设置如图3操作说明如图4关于游戏如图5退出游戏如图1进入游戏如图6暂停*键如图7帮助#键如图8闯关全过后如图9没有通过游戏如图10 图1 图2 图3 图4图5 图6(难度中等) 图7 图8 图9 图104.3测试结论经测试,本系统可实现有关连连看的基本操作,使用较为方便。不同的难度都可实现相应的功能。结束语紧张而充实的毕业设

15、计即将结束了。回顾这十个周的工作,感慨颇多。毕业设计是对我们每名学生智力、毅力的一次艰巨考验,是对我们每名学生知识体系的一次丰富升华,是对我们每名学生整个大学的学习成果的一次检验。在毕业设计过程中,既有成功的喜悦,也有失败的苦恼;既学习了大量新知识,又对很多旧知识进行了提炼升华;既得到了同学们的帮助,又得到了老师的指导。这种经历弥足珍贵。在本次毕业设计过程中,我真的收获了好多。致 谢非常感谢我的指导教师李凯里教授。感谢他在总体方案设计,课题分析等各方面对我的帮助。非常感谢我们小组成员郭红霞和姬超,感谢你们对我的敦促和帮助。非常感谢和我一块做毕业设计的同志们。非常感谢我们宿舍的氛围,它让我提前开

16、始了毕业设计。参考文献1 Brett Spell,Java高级编程(第二版)清华大学出版社,2006,112 Harvey M.Deitel Paul J.Deitel,Java程序设计教程,机械工业出版社,2004,93 JavaTM 2 Platform Standard Edition 5.0 API 规范4 雍俊海,Java程序设计,清华大学出版社,2006年1月附录:本系统包括六个源文件,其中重要程序代码如下:文件一:LLKMIDlet.javaimport javax.microedition.lcdui.Display;import javax.microedition.midl

17、et.MIDlet;public class LLKMIDlet extends MIDlet private MainMenu mainmenu; private LLKCanvas canvas; public LLKMIDlet() mainmenu = new MainMenu(this); /创建菜单 public void startApp() Display.getDisplay(this).setCurrent(mainmenu); /显示菜单 public void pauseApp() / mainmenu.goPause(); public void destroyApp

18、(boolean flag) public void exit() destroyApp(true); notifyDestroyed(); public void startGame(int level) canvas= new LLKCanvas(this, mainmenu,level); Display.getDisplay(this).setCurrent(canvas);/显示 文件二:LLKMatrix.javaimport java.util.Random;public class LLKMatrix private int matrix; private int VSize

19、= 0; private int HSize = 0; private int SeedCount = 0; private int Score1 = 10; private int Score2 = 20; private int Score3 = 50;/三种得分 public int VConn = - 10; public int HConn = - 11; public int SConn = - 10; public int LDConn = - 12; public int LUConn = - 13; public int RDConn = - 14; public int R

20、UConn = - 15; public LLKMatrix(int h, int v, int s) if (v * h) % 2 = 0) VSize = v; HSize = h; SeedCount = s;/任意选择的图片数 initMatrix(HSize, VSize); public int getAt(int x, int y) if (x HSize | x VSize | y HSize | x VSize | y 1) return 0; else matrixx - 1y - 1 = b; return 1; public void shuffleMatrix()/重

21、排矩阵 Random r = new Random(); clearTrace(); for (int x = 0; x HSize; x+) for (int y = 0; y VSize; y+) int xx = Math.abs(r.nextInt() % HSize; int yy = Math.abs(r.nextInt() % VSize; int b = matrixxy; matrixxy = matrixxxyy; matrixxxyy = b; public void clearTrace()/ for (int x = 0; x HSize; x+) for (int

22、y = 0; y VSize; y+) if (matrixxy - 1) matrixxy = - 1; public int judge(int x, int y, int xx, int yy, boolean mark) x-; y-; xx-; yy-; / outputMatrix(matrix); if (x = xx & y = yy) return 0;/同一个位置 if (x HSize - 1 | y VSize - 1 | xx HSize - 1 | yy VSize - 1) return 0;/不在区域 if (matrixxy != matrixxxyy) re

23、turn 0;/不匹配 if (matrixxy 0 | matrixxxyy yy) int c = y; y = yy; yy = c; a = 0; for (i = y + 1; i yy; i+) a += matrixxi; if ( - a = yy - y - 1) if (mark) for (i = y + 1; i xx) int c = x; x = xx; xx = c; a = 0; for (i = x + 1; i xx; i+) a += matrixiy; if ( - a = xx - x - 1) if (mark) for (i = x + 1; i

24、xx) int c = x; x = xx; xx = c; c = y; y = yy; yy = c; if (y yy) for (i = x + 1; i = xx; i+) a += matrixiy; for (i = y + 1; i yy; i+) a += matrixxxi; if ( - a = (xx - x) + yy) - y - 1) if (mark) for (i = x + 1; i = xx; i+) matrixiy = HConn; for (i = y + 1; i yy; i+) matrixxxi = VConn; matrixxxy = LDC

25、onn; return Score2; a = 0; for (i = x; i xx; i+) a += matrixiyy; for (i = y + 1; i yy; i+) a += matrixxi; if ( - a = (xx - x) + yy) - y - 1) if (mark) for (i = x; i xx; i+) matrixiyy = HConn; for (i = y + 1; i yy; i+) matrixxi = VConn; matrixxyy = RUConn; return Score2; else for (i = x + 1; i = xx;

26、i+) a += matrixiy; for (i = yy + 1; i y; i+) a += matrixxxi; if ( - a = (xx - x) + y) - yy - 1) if (mark) for (i = x + 1; i = xx; i+) matrixiy = HConn; for (i = yy + 1; i y; i+) matrixxxi = VConn; matrixxxy = LUConn; return Score2; a = 0; for (i = x; i xx; i+) a += matrixiyy; for (i = yy + 1; i y; i

27、+) a += matrixxi; if ( - a = (xx - x) + y) - yy - 1) if (mark) for (i = x; i xx; i+) matrixiyy = HConn; for (i = yy + 1; i yy) y1 = yy; y2 = y; else y1 = y; y2 = yy; i = x; for (int s = 0; Math.abs(s) = 0) s+; i = x + s; if (i = 0) a = 0; for (int j = y1; j i) for (int c = i; c x; c+) a += matrixcy; else for (int c = x + 1; c = i; c+)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号