

免费预览已结束,剩余15页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
登云科技职业学院 毕业设计(论文)报告昆山登云科技职业学院学生毕业设计(毕业论文)题 目 手机游戏设计之欢乐五子棋姓 名 学 号 系、专业 信息技术系 班 级 计算机应用08级(1)指导教师 2011年4月20日1目 录摘要21 前言31.1 课题背景31.2方法31.3 意义31.4 游戏的介绍32 游戏的详细设计42.1 开始界面4 2.1.1 功能键的设置42.2.1 游戏图片加载52.2.2 绘制棋盘52.3棋子的移动与碰撞检测73.3.1 棋子的移动73.3.2 落子83.3.3 电脑ai的处理83.3.4 ai的运算方法83游戏的测试与结果103.1 测试原因10 3.2 测试方法103.3 实施测试123.4 测试报告133.5 手机移植问题133.6 真实手机设备运行14结论15致谢16参考文献 16摘 要在这个网络游戏发展的时代,手机游戏看似冷门其实却隐藏着新的动机。据易观国际近期的统计,移动通信各细分市场目前的业务功能中,话音、短信、电话簿或记事方面使用之外,对游戏的使用达到了35.7%的比例。相形之下,用户对彩信、邮件、mp3等其他增值业务的使用都还没有超过10%。 由此可见,手机娱乐市场最为旺盛的需求可能就是手机游戏。在此毕业设计中,我们将要设计一款名字叫做欢乐五子棋,预期要实现游戏的功能菜单,图片的加载及棋盘的绘制等功能。前 言1.1课题背景在计算机逐步计算机已经成为人们日常生的一部分,越来越多的人使用计算机办公、娱乐等等。欢乐五子棋的益智类的小游戏。在过去的几年里,这款小游戏以其独有的特点休闲,娱乐,刺激等始终深受广大朋友的喜爱。游戏过程操作上左右四个导航键控制光标的行走,利用确定键控制落子。1.2 研究的方法通过对一些类似游戏的了解,利用java语言为基础,在j2me为平台上,系统的,科学的,合理的完成这个游戏的开发。1.3 研究的意义经过三年的大学学习,我对理论知识已经有了一定的了解与认知,本次的毕业设计便是将书本上所学的理论知识与实际相结合,同时也是对所学知识的一种检查,希望通过本次的毕业设计使自己在程序的开发和设计上有新的认识并能有所提高 1.4 游戏的介绍 五子棋是起源于中国古代的传统黑白棋种之一。现代五子棋日文称之为 “ 连珠 ” ,英译为 “renju” ,英文称之为 “gobang” 或 “fir”(five in a row 的缩写 ) ,亦有 “ 连五子 ” 、 “ 五子连 ” 、 “ 串珠 ” 、 “ 五目 ” 、 “ 五目碰 ” 、 “ 五格 ” 等多种称谓。五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。五子棋既有现代休闲的明显特征 “ 短、平、快 ” ,又有古典哲学的高深学问 “ 阴阳易理 ” ;它既有简单易学的特性,为人民群众所喜闻乐见,又有深奥的技巧和高水平的国际性比赛;它的棋文化源渊流长,具有东方的神秘和西方的直观;既有 “ 场 ” 的概念,亦有 “ 点 ” 的连接。它是中西文化的交流点,是古今哲理的结晶。 五子棋起源于古代中国,发展于日本,风靡于欧洲。对于它与围棋的关系有两种说法,一说早于围棋,早在 “ 尧造围棋 ” 之前,民间就已有五子棋游戏;一说源于围棋,是围棋发展的一个分支。在中国的文化里,倍受人们的青睐。古代的五子棋的棋具与围棋相同,纵横各十七道。五子棋大约随围棋一起在我国南北朝时先后传入朝鲜、日本等地。据日本史料文献介绍,中国古代的五子棋是经由高丽 ( 朝鲜 ) ,于 1688 年至 1704 年的日本元禄时代传到日本的。到日本明治 32 年 ( 公元 1899 年 ) ,经过公开征名, “ 连珠 ” 这一名称才被正式确定下来,取意于 “ 日月如合壁,五星如连珠 ” 。从此,连珠活动经过了不断的改良,主要是规则的变化 ( 即对执黑棋一方的限制 ) ,例如, 1899 年规定,禁止黑白双方走 “ 双三 ” ; 1903 年规定,只禁止黑方走 “ 双三 ” ; 1912 年规定,黑方被迫走 “ 双三 ” 亦算输; 1916 年规定,黑方不许走 “ 长连 ” ; 1918 年规定,黑方不许走 “ 四、三、三 ” ; 1931 年规定,黑方不许走 “ 双四 ” ,并规定将 1919 的围棋盘改为 1515 的连珠专用棋盘。本世纪初五子棋传入欧洲并迅速风靡全欧。通过一系列的变化,使五子棋这一简单的游戏复杂化、规范化,而最终成为今天的职业连珠五子棋,同时也成为一种国际比赛棋。 游戏的详细设计2.1 开始界面2.1.1 功能键的设置 功能键,就是玩家能够登陆游戏,退出游戏和对游戏的介绍与帮助。为此,在此添加了1个comand组键。和1个list4个选项代码如下: list.append(开始游戏,null);list.append(开发者,null);list.append(游戏说明,null);list.append(退出,null);list.addcommand(new command(确定,command.ok,1);list.setcommandlistener(this);用于玩家开始游戏,以及退出游戏的选择,command用于用户确定自己的选择。2.1.2菜单 它的功能是介绍游戏的规则,如何使新玩家快速掌握游戏的操作,是它的体现。过程如下:开始菜单界面如图:帮助界面如图:代码如下:case 0:display.setcurrent(ec);break;case 1:/开发者alert a1 = new alert(欢乐五子棋);a1.settype(alerttype.info);a1.settimeout(3000);a1.setstring(本程序由耿龙设计.);display.setcurrent(a1);break;case 2:/游戏说明alert a2 = new alert(欢乐五子棋);a2.settype(alerttype.info);a2.settimeout(3000);a2.setstring(黑棋先走,电脑执白子,谁先五子一排谁胜利小时侯都完过 );display.setcurrent(a2);break;case 3:/退出destroyapp(false); notifydestroyed();break;2.2 棋盘的绘制与游戏图片加载2.2.1加载图片开始画面的载入图片的设计利用ps将图片做出来以以png格式保存。运行代码如下:try image = image.createimage(/five.png); catch (ioexception e1) e1.printstacktrace();alert = new alert(null,null,image,alerttype.info);int value = new int5;string tmp = ;2.2.2 绘制棋盘绘制棋盘的效果:游戏界面坐标分15行15列背景是蓝色的,棋盘线是黑色的,重要的是光标移动都在线条的交界处。代码如下: private void mydrawrect(int x, int y, int width, int height) int a, b; a = (x - basex) / gridwidth + 1; b = (y - basey) / gridheight + 1; if (a 1 | b linenumber | b linenumber)return; if (a != linenumber & b != linenumber) gg.setcolor(0,0,0); gg.drawrect(x, y + 1, width, height); drawchessman(x, y); /*public void setparam(int value) linenumber = value0; gridwidth = value1; gridheight = value2; basex = value3; basey = value4; qipan = new intlinenumber * linenumber; q = new int3linenumber * linenumber; m = new int3linenumber * linenumber; g0 = 1; g1 = linenumber ; g2 = linenumber - 1; g3 = linenumber + 1; public void paint(graphics g) if (!loadedmenu) addcommand(cmdexit); addcommand(cmdrestart); setcommandlistener(this); loadedmenu = true; if (gg = null) gg = g; if (intrunmode = 0) buildchessboard(); 2.3光标的移动以及落子 设立光标初始在棋盘中间,让后利用导航键移动。效果如图:代码如下:protected void keypressed(int keycode) if (intrunmode != 1)return; switch (getgameaction(keycode) case canvas.left: if (currentx basex + gridwidth * (linenumber - 2)return; currentx = currentx + gridwidth; currenta+; movefoucs(currentx - gridwidth * 3 / 2, currenty - gridheight / 2, gridwidth * 3, gridheight * 2); break; case canvas.up: if (currenty basey + gridheight * (linenumber - 2)return; currenty = currenty + gridheight; currentb+; movefoucs(currentx - gridwidth / 2, currenty - gridheight * 3 / 2, gridwidth * 2, gridheight * 3); break; case canvas.fire: if (intplayer = 0) int gotovalue; if (qipanlinenumber * (currentb - 1) + currenta - 1 != 0) system.out.println(此处有子); return; 2.2.3落子和电脑ai的处理:代码如下:case canvas.fire: if (intplayer = 0) int gotovalue; if (qipanlinenumber * (currentb - 1) + currenta - 1 != 0) system.out.println(此处有子); return; qipanlinenumber * (currentb - 1) + currenta - 1 = 1; drawchessman(currentx + gridwidth / 2, currenty + gridheight / 2); gotovalue = tk(); /检查人是否胜利 if (checkvictory()return;在电脑ai的运算中的处理方法tk: for (p = 0; p 3; p+) /对两个大数组清零 for (a0 = 0; a0 linenumber * linenumber; a0+) qpa0 = 0; mpa0 = 0; for (a0 = 0; a0 linenumber * linenumber; a0+) for (d = 0; d 4; d+) if ( (a0 / linenumber (linenumber - 4) | d = 0) & (a0 % linenumber 3 | d != 2) c1 = 0; c2 = 0; for (z = 0; z 5; z+) cqipana0 + z * gd+; if (c1 = 0) p = 2; else if (c2 = 0) p = 1; else p = 0; if (p != 0) for (z = 0; z = 2) qpa += ecp; if (cp mpa) mpa = cp; for (p = 1; p = e4) h = 2 * mpa0; if (p = 2) h+; if (q0a0 linenumber * linenumber) q0a0 += linenumber * linenumber * h; else if (q0a0 q0g_b) n = 0; if (q0a0 = q0g_b) n+; if ( (rnd.nextint() & 0x7fffffff) % 1000 * n / 1000 1) g_b = a0; return g_b; catch (exception e) system.out.println(tk error: + e); return 0;游戏的测试与结果3.1测试原因 测试就是发现问题并进行改进,从而提升软件产品的质量。游戏测试也具备了以上的所有特性,不过由于游戏的特殊性,所以游戏测试则主要分为两部分组成,一是传统的软件测试,二游戏本身的测试,由于游戏特别是网络游戏,它相当于网上的虚拟世界,是人类社会的另一种方式的体现,所以也包含了人类社会的一部分特性,同时它又是游戏所以还涉及到娱乐性,可玩性等独有特性,所以测试的面相当的广。称之为游戏世界测试,主要有以下几个特性:游戏情节的测试:主要指游戏世界中的任务系统的组成。3.2测试的方面四、 游戏设计与测试:设计阶段是做测试案例设计的最好时机。五、 集成测试阶段:集成测试是对整个系统的测试。六、 游戏可玩性测试:游戏可玩性测试也是非常重要的一块,主要包含四个方面:1.游戏世界的搭建,包含聊天功能,交易系统,组队等可以让玩家在游戏世界交互的平台。2.游戏世界事件的驱动,主要指任务。3.游戏世界的竞争与平衡。4.游戏世界文化蕴涵,游戏的风格与体现。 3.3实施测试由于一些限制,所以测试时只对代码进行测试。3.3.1 测试是否正常显示并切换到主线程。测试效果如下: 3.3.2 测试棋盘的绘制结果。测试效果如图:3.3.3落子检测。测试效果如图:3.3.4游戏运行结果 3.4测试报告 通过这次大胆的尝试,我发现还需要继续努力,在把游戏做的精细方面还很多路要走的。在做游戏的时候有许多的问题,但是经过仔细的分析,弄清楚基本原理,其实发现游戏都是在做一些基本的动作,反复的做。这次的尝试,使我对一些常用的类有了进一步的了解。对程序有了自己的想法,提高了自信。希望进一步努力,在编程方面有所发展。3.5 手机移植问题 1、处理屏幕尺寸这也是最重要的一点。不同型号的手机。屏幕大小不同。分辨率不同。我所用模拟器的大小为118*220,而我移植到nokia5700 像素320*240,就需要修改坐标。2、修改按键值在此次的移植中没有遇到这类问题。3、完整汉化 在此次移植中就遇到了此类问题,本来在模拟器中使用的是中文字符,但是当移植到手机中时就出现乱码,后来就把原来中文字符改成了英文,就可以正常显示了。3.6 真实手机设备运行首先得将程序打包,然后将.jad和.jar格式放在手机中就可以运行了。效果图如下:游戏开始画面: 进入选项:开始游戏: 和电脑对弈:玩家胜利: 电脑胜利:结 论手机游戏的发展趋势前景广阔,但目前手机游戏市场还远未成熟,隐藏在背后的是网络综合服务、网络兼容、游戏质量等不容忽视的问题。 第1,手机游戏规模化不足。目前,手机游戏并没有一个统一的业界标准,游戏开发商推出的游戏只能在特定的平台上运行,这就大大削弱了其市场潜力。各手机游戏服务商提供的游戏虽然不少,但却是各自为政,影响甚微第2是要引导消费观念的改变。据有关报道:在美国,虽然现在有近2000万用户在他们的手机上享受游戏带来的愉悦,但真正下载游戏付费的还不足十分之一。这组悬殊的数字说明,虽然人们乐于在闲暇时间享受手机游戏的快感,但是真正要他们为这个传统认识中纯粹消遣的产品付费,还需要一段很长的时间来改变观念。第3是要手机内存也是一个制约因素。有限的手机内存可满足今天大多数普通游戏和其他娱乐应用的需要,但是面对新一代游戏则成了最大的障碍。例如,一般手机一次只能保存4个游戏。这意味着玩家的游戏体验受到限制。他们必须做出选择:要么保留喜爱的游戏,要么在他们希望尝试新游戏时放弃他们以前的所爱。 这3点都是制约掌游发展的关键因素,但我们却不可否认。未来游戏的发展可能就是从手机开始。因为掌游的发展空间是非常大的。最后,管理有待加强。无线游戏如何避免网络游戏中的简单克隆、重复建设、张扬暴力,以及不健康游戏和缺乏节制的消费给社会带来的隐患,是行业管理机构必须面对,亟待解决的问题。 手机游戏产业本质上仍属于文化产业,立足于民族性的文化内容,更易获得玩家人群以及社会大环境的心理认同,得以稳固玩
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025定点采购的房地产销售合同范本
- 2025年度安保技术研发与应用合同
- 2025车库租赁合同范本汇编:车位租赁合同争议解决途径
- 2025年大型商场电梯采购、安装与运营管理服务合同范本
- 2025版高端皮毛服装定制与销售合作协议
- 2025代办知识产权维权及侵权纠纷处理合同
- 2025年度挖掘机租赁施工合同风险控制范本
- 2025版高端餐饮机构食堂管理委托合同
- 诸葛亮的谏子书课件
- 说明文的课件
- 百师联盟2025-2026学年高三上学期开学摸底联考化学试卷
- 茶壶课件教学课件
- 孟良崮战役课件
- 幼儿园物资采购应急预案(3篇)
- 卫生院医疗质量管理方案
- 2025年山东省济南中考数学试卷及标准答案
- 2025-2026学年人教版(2024)初中数学七年级上册教学计划及进度表
- 2025-2026学年冀教版(2024)小学数学三年级上册教学计划及进度表
- 医学检验职称评审答辩
- 医药药品采购平台建设方案
- 人力资源招聘流程规范及操作手册
评论
0/150
提交评论