




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计(论文)题目: 基于C#的连连看游戏开发 系 别 信息工程系专业名称 电子信息工程班级学号 088205208学生姓名 指导教师 二O 年 月 毕业设计(论文)任务书I、毕业设计(论文)题目:基于C#的连连看游戏开发II、毕 业设计(论文)使用的原始资料(数据)及设计技术要求:1、游戏界面的设计。 2、连连看方块的造型。3、连连看方块是否能够相连的判断。 4、游戏图片种类和重复数量的选择。 5、游戏得分的计算与存储。 6、游戏菜单选项的设计及功能实现。III、毕 业设计(论文)工作内容及完成时间: 第01-02周:收集资料,学习开发工具等,要求完成需求分析说明书。 第03-04周:模块结构设计,要求完成概要设计说明书 第05-07周:实现各个模块的实现算法。 第08-12周:编写各个模块的代码。 第13-14周:进行模块测试、集成测试和系统测试。 第15-18周:完成毕业论文撰写。 、主 要参考资料:1.梁立新,C#核心技术应用开发,电子工业出版社,2010.9 2.孙永强等. Visual C#.NET入门与提高.北京:清华大学出版社, 200214-16 3.郭胜等.C#.NET程序设计教程.北京:清华大学出版社, 2002 4.王昊亮,李刚等.Visual C#程序设计教程.北京:清华大学出版社,20035.明月创作室.Visual C#编程精彩百例.北京:人民邮电出版社, 20016.John Sharp Jon Jagger. Microsoft Visual C#.NET, 2002 信息工程 系 电子信息工程 专业类 0882052 班 学生(签名): 填写日期: 年 月 日指导教师(签名): 助理指导教师(并指出所负责的部分):信息工程 系主任(签名):学士学位论文原创性声明本人声明,所呈交的论文是本人在导师的指导下独立完成的研究成果。除了文中特别加以标注引用的内容外,本论文不包含法律意义上已属于他人的任何形式的研究成果,也不包含本人已用于其他学位申请的论文或成果。对本文的研究作出重要贡献的个人和集体,均已在文中以明确方式表明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期:2012年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权南昌航空大学科技学院可以将本论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 作者签名: 日期:导师签名: 日期:基于C#的连连看游戏开发学生姓名: 曹丛 班级:0882052 指导老师: 廖远 摘要:C#是一种最新的、面向对象的编程语言,C#看起来与Java有着惊人的相似;它包括了诸如单一继承、界面、与JAVA几乎同样的语法,和编译成中间代码再运行的过程。正是由于C#面向对象的卓越设计,使它成为构建各类组件的理想之选,无论是高级的商业对象还是系统级的应用程序。使用简单的C#语言结构,这些组件可以方便的转化为XML网络服务,从而使它们可以由任何语言在任何操作系统上通过INTERNET进行调用。 连连看游戏是一个经典的传统游戏,它因操作简单、娱乐性强而广受欢迎。现在,人们已不满足于传统游戏简单的功能,已对该游戏在功能上有了更多的需求。本文基于C#技术开发了一个操作简单、界面美观、功能较齐全的“连连看”游戏。实现了游戏的开始游戏、游戏重列、游戏剩余计时、重新开始、图片种类和重复数的设置、分数显示。通过本游戏的开发,达到学习C#技术和熟悉软件开发流程的目的。关键词:C#,面向对象,连连看游戏 指导老师签字:Based on the c # lianliankan game developmentStudent Name: Cao Cong Class: 088205208Supervisor: Liao YuanAbstract: C# is one of the latest object-oriented programming language similar to C # looks alarming and Java; it includes such as single inheritance, interfaces, and JAVA almost the same syntax, and compiled into intermediate code re-run the process. It is precisely because the C # object-oriented design excellence, making it the ideal choice to build the various components, whether it is a high-level business object or system-level applications. Using a simple C # language constructs, these components can be easily converted to XML web services, so that they can be called by any language on any operating system through the INTERNET.Lianliankan game is a classic game, because it is simple, entertaining and popular. Now, people no longer satisfied with simple function of traditional games for the game have more demands on the function. Based on C # technology to develop a simple operation, beautiful interface, and complete Lianliankan game. Game to start the game, the game is restated, and the remaining timing of the game, start again, the set of picture type and the number of repeats, score display. Through the development of this game, to learn C # technology and familiar with the purpose of the software development process.Keywords: C #, object-oriented, Lianliankan game Signature of Supervisor:目 录1 引言2 绪论2.1连连看游戏发展概况33 游戏规则和设计目的3.1连连看游戏的规则53.2设计游戏的目的54 方案论证4.1设计原理74.2方案选择74.3主要问题74.4技术要求85 游戏设计5.1技术原理95.1.1开发语言95.1.2 面向对象105.2设计构思135.2.1 游戏画面目标135.2.2游戏的路径判断145.2.3 游戏的系统结构图155.3程序算法设计165.3.1 游戏地图的数据设计165.3.2 游戏图片的加载设计175.3.3 游戏音乐设计206 连连看游戏主要功能事件6.1游戏主界面226.2 开始游戏236.3 游戏重列246.4 游戏重新开始25 6.5 游戏得分267 游戏测试308 结论31参考文献32致谢33附录34 34 基于C#连连看开发1 引言 C#是微软公司在2000年6月发布的一种新的编程语言,并定于在微软职业开发者论坛(PDC)上登台亮相,它简单、安全、面向对象语言的设计。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、界面、与Java几乎同样的语法,和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,而且它是微软公司.NET windows网络框架的主角。C#是专门为.NET的应用而开发的语言。它吸收了C+、Visual Basic、Java等语言的优点,体现了当今最新的程序设计技术的功能和精华。C#继承了C语言的语法风格,同时又继承了C+的面向对象特性。不同的是,C#的对象模型已经面向Internet进行了重新设计,使用的是.NET框架的类库;C#不再提供对指针类型的支持,使得程序不能随便访问内存地址空间,从而更加健壮;C#不再支持多重继承,避免了以往类层次结构中由于多重继承带来的可怕后果。.NET框架为C#提供了一个强大的、易用的、逻辑结构一致的程序设计环境。游戏产业作为现代电脑电子技术的产物,正在以其独特的魅力在全世界的娱乐领域占据主流位置,我们在承认广大娱乐网民的选择空间狭小的同时,也必须明确的一点就是游戏本身所具有的强大的吸引力。游戏的吸引力主要在于,它在让玩家打发时间的同时,可以让人实现在显示生活中不能实现的理想,得到在现实中不能得到的东西。而且游戏产业促动高科技技术不断升级,作为经济增长的一大支撑点,已经成为经济腾飞的“第四产业”。连连看游戏是一种桌面益智小游戏。它简单易上手好玩还锻炼人深受人们喜爱,网上有各种不同的连连看版本,从FLSASH版本的连连看到社交网络的连连看,很多用户深深喜爱这款小游戏,所以如何编写更好版本的连连看,也就意味着更好的市场前景。休闲益智简单的游戏设计的目的是满足了人们休闲的需要,在紧张工作之余休闲类的小游戏能够给人带来最大程度的放松。现在桌面小游戏、在线网页游戏、社交游戏越来越受网民欢迎,除了玩的方法简单外,很多游戏不乏经典。连连看游戏就是一个典型。不管走到哪个网页游戏网站,哪个社交游戏平台,连连看游戏总是排在玩家欢迎排名的前5位,休闲、趣味、益智是连连看玩不厌的精华,且不分男女老少、工薪白领,是一款适合大众的经典网络休闲小游戏。游戏“连连看”是源自台湾的桌面小游戏,自从流入大陆以来风靡一时,也吸引众多程序员开发出多种版本的“连连看”。这其中,顾方编写的“阿达连连看”以其精良的制作广受好评,这也成为顾方“阿达系列软件”的核心产品。并于2004年,取得了国家版权局的计算机软件著作权登记证 并且玩连连看能锻炼人的观察仔细的能力,越相似的越难分辨这就要看你不是有耐心,还能考察人得反应能力,当然这个能力也是能慢慢培养的,玩连连看还有好多优点,以上的这几点玩连连看都能帮你很好的实现。连连看游戏顾名思义就是找出相关联的东西,这个连连看在网上基本是用在小游戏中,就是找出相同的两样东西,在一定的规则之内可以做为相关联处理。连连看是源自台湾的桌面小游戏,自从流入大陆以来风靡一时,也吸引众多程序员开发出多种版本的“连连看”。“连连看”的发展经历了从桌面游戏、在线游戏、社交游戏三个过程。同样使用C#也能开发出界面优美,操作简单人性化和充满挑战的连连看游戏。2 绪论2.1连连看游戏发展概况连连看,又称对对卡,是指图案配对的一种益智游戏,有多种形式,如卡片游戏、电子游戏或网络游戏)。 与“找出两幅图片中的不同”类游戏同为比眼力的游戏。最早期的形式是一副卡片中每种图案有相同的两张,先洗牌,然后排好卡片,背面朝上,玩家轮流揭开卡片,每次揭两张,如两张图案不同则回复背面朝上的状态,如揭到两张图案相同则取走卡片,到桌上所有卡片都被取走时即结束游戏,手上最多卡片者为胜利者。由于玩法简单,常用作儿童启蒙教育游戏。又有一种字图连连看,是一种专供幼童识字认图的游戏,与一般连连看不同的是它并非以一对相同图案成对,而是以字配图成对。相关内容连连看则是以两张内容相关的卡片(可以是字或图)配成对代替相同图案。也有以扑克牌进行游戏的,把相同点数视为相同图案。连连看”的发展经历了从桌面游戏、在线游戏、社交游戏三个过程。游戏“连连看”是源自台湾的桌面小游戏,自从流入大陆以来风靡一时,也吸引众多程序员开发出多种版本的“连连看”。这其中,顾方编写的“阿达连连看”以其精良的制作广受好评,这也成为顾方“阿达系列软件”的核心产品。并于2004年,取得了国家版权局的计算机软件著作权登记证书。随着Flash应用的流行,网上出现了多种在线Flash版本“连连看”。如“水晶连连看”、“果蔬连连看”等,流行的“水晶连连看”以华丽界面吸引了一大批的女性玩家。2008年,随着社交网络的普及和开放平台的兴起,“连连看”被引入了社交网络。“连连看”与个人空间相结合,被快速的传播,成为一款热门的社交游戏,其中以开发者Jonevey在Manyou开放平台上推出的“宠物连连看”最为流行。最新连连看版本:连连看5.0,很多人玩过单机版的连连看,但很少有人知道连连看的生命史,连连看是台湾的陈一进、简诚志先生改编、发明的一种桌面游戏。 连连看的最新版本区别与以往各个版本主要特点有: 1全新引擎,游戏更为华丽、不再是静止不动。 2总共五种游戏模式、三种难度等级、十三种关卡。 3主题模式可自定义主题、玩家自己的图片、头像、音乐、链接将可进入游戏。 4革新的动态头像。 5漂亮的动态背景。 6联机模式、可以边和朋友语音聊天,边玩连连看。 7自带地图编辑器,可自己制作地图,并加入游戏。 8更多改进期待您在游戏中发掘。 3 游戏规则和设计目的3.1 连连看游戏的规则 (1)进行连连看游戏时用鼠标点击2张相同图片,2张图片就可以消除,游戏得分和游戏剩余时间也随之增加,但是连接线的折点不能多于2个。(2)当游戏开始进行一段时间后发现找不到连接线的折点少于2个以上的,可以进行剩余图片重列,但剩余时间不改变,这样使玩这个游戏显得更简单更人性化,当然也可以进行重新开始游戏。(3)在游戏开始前可以对游戏图片的种类数和种类出现的重复数进行设置,图片种类数的设置不能超过图片的总数,重复数不能设置为奇数,最后总的图片不能超过游戏限制。(4)在剩余时间50s没有走到0s内,将游戏界面内的图片全部消除即为过关并进入下一个关,通关后图片重新排列分数不丢失同时游戏的剩余时间也变为最大值,如果在剩余时间为0后界面上的图片没有完全消除即为Failed!结束游戏。 3.2 设计游戏的目的 连连看游戏是一种桌面益智小游戏。它简单易上手好玩还锻炼人深受人们喜爱,网上有各种不同的连连看版本,从FLSASH版本的连连看到社交网络的连连看,很多用户深深喜爱这款小游戏。休闲益智简单的游戏设计的目的是满足了人们休闲的需要,在紧张工作之余休闲类的小游戏能够给人带来最大程度的放松。现在桌面小游戏、在线网页游戏、社交游戏越来越受网民欢迎,除了玩的方法简单外,很多游戏不乏经典。连连看游戏就是一个典型。不管走到哪个网页游戏网站,哪个社交游戏平台,连连看游戏总是排在玩家欢迎排名的前5位,休闲、趣味、益智是连连看玩不厌的精华,且不分男女老少、工薪白领,是一款适合大众的经典网络休闲小游戏。 并且玩连连能锻炼人的观察仔细的能力,越相似的越难分辨这就要看你不是有耐心,还能考察人得反应能力,不过这些能力不都是天生的也是可以通过慢慢培养而产生,比如玩连连看游戏就能让这些能力得到一个很好的锻炼,连连看还有好多优点,比如简单易学等。开发游戏行业无疑有着很好的发展空间和前景,现在这方面的人才非常紧缺,成为一个优秀的游戏开发者是许多开发者梦寐以求的一件事情,但做任何一件工作都是需要实际的经验的,这次连连看游戏的开发可以增加对游戏开发的经验,对开发游戏的编程语言也有着加深理解的作用,是一次理论和实践的完美结合,同时也是为以后的职业生涯奠定了坚实的基础。4、方案论证 4.1设计原理 本设计采用单机模式,当在规定的时间内消完全部的图片则当前关卡通过,如果在规定的时间内没能消完所有的图片则游戏结束,结束后可以选择重新开始新游戏。游戏规则是模仿普通的连连看游戏,主要是鼠标两次点击的图片能否消去的问题。当前,前提是点击两张相同的图片,若点击的是同一张图片或者两张不同的图片,则不予处理。在两张相同图片用三根以内的直线能连在一起,就可以消去;否则,不予处理。 游戏过程,如果玩家在一定的时间内消完则提示玩家胜利,并进入下一关。如果在一定时间内图片没有消完则提示玩家Failed。考虑到本游戏软件是单机小游戏,所以充分考虑到了它的娱乐性,并没有很复杂的功能。4.2 方案选择 在概要设计阶段,主要有两中方案可供选择: 一、所有的图片都是按约定好的种类数和在同一区域的重复次数随机出现,并且每张图片的的出现次数为偶数 ,时间会有限制,每一关的图片数量或时间是不同的,这样就增加了游戏的难度。二、在同一区域中,图片出现的重复次数是可以由玩家选择的,时间由游戏约定。不过玩家选择的种类数和重复次数必须是偶数才可以顺利完成游戏,否则游戏虽然可以正常运行,但无法完成游戏。 在第一种方案中,由于出现的图片的种类数和重复次数都由软件约定,这样就缺乏玩家自主选择的空间,只是在玩游戏时系统已经是设定好的游戏,不能改变什么,这样就在无意中降低了玩家在游戏的过程中乐趣,最后致使玩家放弃继续玩下去。我们参考了网络上的连连看游戏,考虑到游戏的娱乐性。所以我们放弃第一种方案的设计思想,参考网络上流行的连连看的游戏,选用第二种方案。 4.3主要问题 开始制作游戏时,主要要解决的问题有以下几个方面:如何设置整个游戏的界面;如何控制连连看游戏中随机图片的生成且每种图片必须为偶数个;游戏开始后,判断鼠标两次点击的图片能否消去,即图片是否相同且图片之间路径的判断;如何判断游戏是否结束以及输赢问题等。 4.4 技术要求 本游戏软件可以再大多数计算机上运行,游戏中能正确判断鼠标两次点下的图片是否可以消去、能正确判断游戏是否已经结束。 5 游戏设计5.1 技术原理5.1.1开发语言C#是一种编程语言,它简单、安全、面向对象语言的设计。C#是微软公司研究员Anders Hejlsberg的成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、界面、与Java几乎同样的语法,和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NET windows网络框架的主角。C#是专门为.NET的应用而开发的语言。它吸收了C+、Visual Basic、Delphi、Java等语言的优点,体现了当今最新的程序设计技术的功能和精华。C#继承了C语言的语法风格,同时又继承了C+的面向对象特性。不同的是,C#的对象模型已经面向Internet进行了重新设计,使用的是.NET框架的类库;C#不再提供对指针类型的支持,使得程序不能随便访问内存地址空间,从而更加健壮;C#不再支持多重继承,避免了以往类层次结构中由于多重继承带来的可怕后果。.NET框架为C#提供了一个强大的、易用的、逻辑结构一致的程序设计环境。C#看起来与Java有着相似之处;它包括了诸如单一继承、界面、与Java几乎同样的语法,和编译成中间代码再运行的过程,它吸收了JAVA语言的很多优点。使用了简单的C语言结构,C#有些组件可以方便的转化为XML网络服务,从而使它们可以由任何语言在任何操作系统上通过INTERNET进行调用。 C#具备JAVA和C语言的一些特点,它是面向对象的语言设计,还要JAVA和C语言不具备的特点,对C语言中的一些易出现问题的语法进行了一定的改进,使得它能既简单又方便的解决问题。在C#中类的声明与Java很相似.这是合理的因为经验告诉我们Java模型工作得很好.Java的关键字import已经被替换成using,它起到了同样的作用.一个类开始执行的起点是静态Main()方法.下面的Hello World程序展示了程序基本结构形式: using System; class Hello static void Main() Console.WriteLine(Hello,world); Console.ReadLine(); 在这个例子中,System这个名字指向一个包括了基本C#实用类集合的命名空间(namespace).这个命名空间包括了Console类,它在这个例子中被用来输出一个字符串.类可以是抽象的和不可继承的:一个被申明成abstract的类不能被实例化;它只能被用做一个基类.C#关键字lock就象Java关键字final,它申明一个类不是抽象的,但是它也不能被用做另一个类的基类.界面:就象在Java中一样,一个界面是一组方法集合的抽象定义.当一个类或结构体实现一个界面的时候,它必须实现这个界面中定义的所有方法.一个单一的类可以实现几个界面.也许以后会出现一些微妙的差别,但是这个特点看起来与Java相比没有变化.布尔运算:条件表达式的结果是布尔数据类型,布尔数据类型是这种语言中独立的一种数据类型.从布尔类型到其他类型没有直接的转换过程.布尔常量true和false是C#中的关键字.错误处理:如Java中那样,通过抛出和捕捉异常对象来管理错误处理过程.内存管理:由底层.NET框架进行自动内存垃圾回收.一个基本的C#类中包含数据成员、属性、构造器和方法。属性可以是静态或实例成员。 C#是一个强类型的语言,它的数值类型有一些可以进行隐式转换,其他的必须显式转换,隐式转换的类型只能是长度短的类型转换成长的类型,例如int可以转换成long,float,double,decimal.反之必须显式的转换. 例: int a=7; float b=a; /隐式转换 long c= 12L ; /和C+一样必须加上后缀L才能定义为long型不然就为int型了 a=(int)c; /显式转换 使用上面的显示转换不能用在bool和string类型上。2.2.3 提高性能提升 在性能提高方面,ASP.NET团队会在在微软的分布式缓存Velocity发布之后,为ASP.NET提供相应的各类provider。这样ASP.NET便可以将数据缓存,会话状态等各种信息存放在进程外的的分布式缓存中,以此得到更好的性能和健壮性。这些provider实现可以与ASP.NET现有的扩展方式良好集成,对开发人员的使用保持透明。5.1.2面向对象面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象的基本概念:1. 对象。对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。2. 对象的状态和行为。对象具有状态,一个对象用数据值来描述它的状态。对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中3. 类。具有相同或相似性质的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象。类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。4. 类的结构。在客观世界中有若干类,这些类之间有一定的结构关系。通常有两种主要的结构关系,即一般-具体结构关系,整体-部分结构关系。(1) 一般具体结构称为分类结构,也可以说是“或”关系,或者是“is a”关系。(2) 整体部分结构称为组装结构,它们之间的关系是一种“与”关系,或者是“has a”关系。5. 消息和方法。对象之间进行通信的结构叫做消息。在对象的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息。发送一条消息至少要包括说明接受消息的对象名、发送给该对象的消息名(即对象名、方法名)。一般还要对参数加以说明,参数可以是认识该消息的对象所知道的变量名,或者是所有对象都知道的全局变量名。面向对象的特征:1. 对象唯一性。每个对象都有自身唯一的标识,通过这种标识,可找到相应的对象。在对象的整个生命期中,它的标识都不改变,不同的对象不能有相同的标识。2. 分类性。分类性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。一个类就是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。任何类的划分都是主观的,但必须与具体的应用有关。3. 继承性。继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。继承性是面向对象程序设计语言不同于其它语言的最重要的特点,是其他语言所没有的。在类层次中,子类只继承一个父类的数据结构和方法,则称为单重继承。在类层次中,子类继承了多个父类的数据结构和方法,则称为多重继承。在软件开发中,类的继承性使所建立的软件具有开放性、可扩充性,这是信息组织与分类的行之有效的方法,它简化了对象、类的创建工作量,增加了代码的可重性。采用继承性,提供了类的规范的等级结构。通过类的继承关系,使公共的特性能够共享,提高了软件的重用性。4. 多态性(多形性)。多态性是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。多态性允许每个对象以适合自身的方式去响应共同的消息。多态性增强了软件的灵活性和重用性。面向对象的要素:1. 抽象。抽象是指强调实体的本质、内在的属性。在系统开发中,抽象指的是在决定如何实现对象之前的对象的意义和行为。使用抽象可以尽可能避免过早考虑一些细节。类实现了对象的数据(即状态)和行为的抽象。2. 封装性。封装性是保证软件部件具有优良的模块性的基础。面向对象的类是封装良好的模块,类定义将其说明(用户可见的外部接口)与实现(用户不可见的内部实现)显式地分开,其内部实现按其具体定义的作用域提供保护。对象是封装的最基本单位。封装防止了程序相互依赖性而带来的变动影响。面向对象的封装比传统语言的封装更为清晰、更为有力。3. 共享性。面向对象技术在不同级别上促进了共享同一类中的共享。同一类中的对象有着相同数据结构。这些对象之间是结构、行为特征的共享关系。在同一应用中共享。在同一应用的类层次结构中,存在继承关系的各相似子类中,存在数据结构和行为的继承,使各相似子类共享共同的结构和行为。使用继承来实现代码的共享,这也是面向对象的主要优点之一。在不同应用中共享。面向对象不仅允许在同一应用中共享信息,而且为未来目标的可重用设计准备了条件。通过类库这种机制和结构来实现不同应用中的信息共享。5.2 设计构思5.2.1游戏画面目标一个精美的游戏画面往往能够吸引更多的玩家来尝试娱乐,这不仅仅是增加了娱乐者的好奇,一个的游戏画面能使游戏者的心情愉快达到娱乐休闲的目的,再者一个游戏画面,对于设计者来说,可以算是简单的地方;但对于玩家,这却是重要的,一般玩家不会关心你是怎么实现的,他所关心的是画面的美观,漂亮,是不是能让人赏心悦目。本文设计的画面虽不完美,也整体得当,设置合理和和更人性化。5.2.2游戏的路径判断1:两张图片是相同的2:两张图片之间连线的折点不超过两个。那么两张图片的连接情况可以分为三种情况:(1):直线相连(2):一个折点(3):两个折点;由此分析我们知道,每一个折点必定有且至少有一个坐标(x或者y)和两张图片中的任意一张图片是相同的,即折点必定在两张图片所在的x方向或y方向的直线上,只有这样两张图片才能在不超过两个折点进行连接。所以得出路径的判断是:假设两张图片A,B,如果有两个折点分别在x,y 那么(1): 如果验证A,B直线连线,则连接成立(2): 搜索以A,B的x,y方向四条直线(可能某两条直线会重合)上的有限点,每次取两点作为z1,z2,验证A到z1/z1到z2/z2到B是否都能直线相连,是则路径连接成立否则连接不成立。5.2.3游戏的系统结构图图5.1(游戏的系统结构图)5.3 程序算法设计算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。一个算法的评价主要从时间复杂度和空间复杂度来考虑。算法的时间复杂度是指执行算法所需要的时间;算法的空间复杂度是指算法需要消耗的内存空间。开发一个游戏,分析算法前,应先抽象出游戏基本结构,对于连连看游戏来说,核心的部分应该是整个游戏界面内的地图数据。下面分析游戏特性,然后设计出标识地图的数据结构。5.3.1游戏地图的数据设计在游戏界面内,不管选择图片数量是否相同图片都是随机分布在地图的不同位置,并且每张图片都有与之相应的一个方块位置。图5.2(游戏地图模型图)有游戏地图模型图可知,整个游戏界面被抽象成一个有坐标位置属性的平面,平面上随机分布着N张图片方块,并且图片方块是成对的。由前面的描述和分析,可以把游戏界面地图用一个数组gmap来表示。gmap是把地图设计成一个动态分配的int整形一维数组./地图位置相关属性组int*gmap; /动态地图数据头指针intMAPHEIGHT;/地图的行数(虚拟)intMAPWIDTH; /地图的列数(虚拟)上面的成员变量中定义了一个整形指针标量gmap,用于记录动态分配出来的一维数组地图空间的首地址。对于地图区域内的某张图片的类型,可以用一个整形的ID来进行识别。这里为标识地图的行列位置分别添加MAPHEIGHT和MAPWIDTH变量。现在,地图的数据结构已经设计好。下面对游戏进行初始化。由于图片需要成对,因此在做地图的初始化时,不仅仅是对图片种类
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 培训机构入股合同范本
- 海尔空调采购合同范本
- 海绵鞋料售卖合同范本
- 社区广告合作合同范本
- 商场店面装修合同范本
- 宜州租房转租合同范本
- 石材施工采购合同范本
- 简单的付款合同范本
- 工程押金协议合同范本
- 外卖代理合同范本
- 废铅酸蓄电池回收处置项目可行性研究报告立项计划书
- 《网络传播概论》考试复习题库(重点160题)
- AO 史密斯热水器EES系列说明书
- 昏迷患者的评估
- 高中俄语教材必修一第一课
- 智能家居市场分析报告与操作手册
- 管理会计说课
- 云南省昭通市镇雄县2024年小升初数学高频考点模拟卷含解析
- 2024-2029年中国合成红宝石行业市场现状分析及竞争格局与投资发展研究报告
- 深化政府采购制度改革方案
- 甲状腺围手术期的护理
评论
0/150
提交评论