欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    毕业设计(论文)-基于Android的五子棋游戏.doc

    • 资源ID:3946484       资源大小:2.53MB        全文页数:34页
    • 资源格式: DOC        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    毕业设计(论文)-基于Android的五子棋游戏.doc

    北京联合大学 毕业论文 引 言随着当今社会的不断发展变化,智能化、网络化已经成为未来社会的发展趋势。智能手机的迅速普及早已对我们的生活产生了巨大的影响,智能手机数量在2014年将极有可能首次超过组装电脑,并且用户数量还保持着大幅的增长速度。同时伴随着3G、4G甚至是5G等移动电话行动通信标准技术的不断发展,将给人们带来更加优越的用户体验。对于移动互联网这个巨大的市场,智能手机领域的争夺更是愈演愈烈。在移动终端设备成本不断下降、移动开发技术快速更新升级的大背景下,抢占市场份额、瓜分已有用户群,同时挖掘潜在用户群将更加艰难。在智能手机领域,手机游戏的开发与推广已经成为手机制造商和运营商的重要业务增长点,依此可以进而实现提升游戏软件产业价值的目的。时至今日,社会的发展步伐逐渐加快,面对人们日益增长的物质文化需求,尤其是在精神层面上更高的需求,能够在工作之余缓解压力、在生活中获得身心的享受成为更多人们的追求。手机游戏作为手机软件产业的高附加值操作软件之一,在持续推动手机软件技术升级进步的同时,恰好迎合了一部分大众通过玩手机游戏的方式来调节情绪、放松心情的想法,来满足他们精神上的需求。面对当今快节奏的生活方式,手机游戏俨然已成为了人们在繁重工作之余娱乐生活的一部分,并且扮演的角色越来越重。所以,在智能手机上开发一款寓教于乐的手机游戏,从而实现让客户满意、让开发商获利的双赢目标。目前,使用手机进行游戏占手机用途中的很大一部分比例,在手机用途多样化的今天,手机游戏已经成为人们考核手机使用体验的一项标准。近几年来手机产业快速发展,形式多样的手机游戏更是层出不穷,但在让用户享受手机游戏带来的娱乐体验的同时,也遇到了一些使用中的困惑和问题。一款好的手机游戏可以在适合它的智能手机平台上良好运行使用,但一款开发不完善的手机游戏则会给用户带来许多不必要的麻烦。一个成熟的下载平台与购买机制可以让用户更快的体验手机游戏,反之会让用户面对自己感兴趣的手机游戏望而却步。想体验一下,却因为没有良好的购得渠道而放弃这款游戏,这种情况对于开发商来说更是一个巨大的损失。一款游戏在设备以及系统平台上不能够完美的运行,是影响用户体验的一大问题。往往对于手机游戏开发考虑的不够全面,导致开发不完善,因为一些小的问题或者兼容性的问题导致用户直接放弃此游戏的情况不在少数,也就不能使开发商的利益达到最大化。用户使用一款游戏软件一段时间之后,对此款游戏有了一定的感受和认识,对其也有了自身的意见和建议,此时用户和开发商之间的沟通显得尤为重要。一个完善的沟通渠道可以让开发商最快的了解用户的需求,从而调整已有的产品和服务、更好的制定未来的发展方向,这样才能在市场竞争中处于不败之地。总之,诸如此类的出现在手机游戏系统中的问题,使得这样的手机游戏无法合理有效的满足用户的需求。针对上述的诸多问题,我们要本着从实际出发的原则进行手机游戏开发,其中我们要考虑到多方面的因素来开发一个五子棋手机游戏系统。在游戏系统中主要能够实现五子棋的基本对战功能,其中包括人机对战功能、人人对战功能、基本的设置功能,本着这三个功能需求来进行系统的开发设计。主游戏功能由人机对战功能和人人对战功能组成。人机对战功能的实现可以让用户在一个人的时候进行游戏,单人与系统进行五子棋游戏的对战。经过人机双方对战之后,根据两方的实际对战情况,系统自动判断双方哪一方获胜、哪一方失败或者是否打平这三种情况,最终给出人机对战的结果。人人对战功能的实现可以让两位用户进行游戏,两位用户同时在一台设备上进行五子棋游戏的对战。经过两位用户轮流下棋,根据两方的实际对战情况,系统自动判断两位用户之间哪一方获胜、哪一方失败或者是否打平这三种情况,最终给出人人对战的结果。这样,通过实现人机对战与人人对战两个功能,能够使用户在手机上进行游戏,完成最基本也是最关键的五子棋游戏功能。对于五子棋手机游戏的开发,我们不仅要对各各功能的设计进行合理高效的规划,更重要的是选择适合的手机游戏平台。例如Android操作平台,通过智能手机上的Android操作系统实现五子棋游戏。充分利用Android平台的特性,借鉴众多优秀的开发经验与资源,可以对现存的客户群需求进行系统的分析,从而使自己开发的手机游戏系统更容易达到客户的需求预期,同时对潜在客户群进行挖掘、让系统软件可持续性发展,到达开发商利益的最大化。开发五子棋手机游戏软件更需符合市场的规律和需求,面对用户越来越多、越来越新颖的需求,就使得开发商在完成以往基本功能之后,更具备创新意识。依托现有的Android平台开发实现更多的用户需求,更多的在细节处完善系统软件产品,通过更多、更细致的功能设置来吸引客户。因此,根据目前五子棋手机游戏的现状,故选择开发基于Android平台的五子棋游戏,满足大众使用Android手机进行游戏娱乐的需求。1.绪论1.1课题研究背景能够运行于手机上的游戏软件叫做手机游戏。手机游戏需要具备一定硬件环境和一定系统级程序作为运行基础,用来编写手机游戏程序的开发语言也是种类繁多。随着技术的不断进步,现在手机的功能越来越多,也越来越强大。而手机游戏也已不是我们印象中画面简陋,规则简单的游戏的样子,而是依托现今强大的移动设备平台,进而向掌上游戏机、甚至是PC机方向发展。在保持了自身移动便捷的特点的同时,向具有更强的娱乐性和交互性的复杂形态融合。但是手机游戏的开发也面临着一些问题,入门门槛低、市场竞争更加激烈,开发商对于市场宣传和推广经验不足、对产品的后续服务不够重视,产品创新意识不足、没有很强的知识产权意识等因素还影响着手机游戏的发展。虽然还存在着这样或那样的一些问题,但手机游戏已经足够满足我们大部分的娱乐需要了。当今智能手机已经成为大众不可替代的随身工具。手机游戏已逐渐成为一种普遍的娱乐方式。其便携性与移动性迎合了人们快节奏的生活方式,能够让用户随时随地的体验游戏,不受环境的限制,凸显了手机游戏碎片化的特性。同时会形成庞大的潜在用户群,所以手机游戏潜在的市场更是无法估量。在实际开发中,利用智能手机可支持网络的利好条件可更好的增加用户的体验感,同时结合手机游戏益智、趣味和休闲的特点迎合了消费者的娱乐需求。在游戏软件产业价值不断提升的大背景下,手机游戏成为手机的一种高附加值操作软件,游戏编程是手机软件编程的重要组成,同时也持续推动手机软件技术升级进步。随着Android手机终端的热销,基于Android所开发的手机游戏拥有巨大潜力已成为行业共识。棋牌类游戏作为众多游戏中益智性较强的一类,有着广泛的市场空间和一定的娱乐价值。五子棋因其可玩性强和操作简单等特点,成为棋牌类游戏中最受欢迎的游戏之一。五子棋游戏编程对于计算机行业来说已经不是一个新鲜词语,各种优秀的设计充斥于已有的市场平台。大多数软件对于基本功能和算法都有比较不错的实现,用户也对基于Android平台的五子棋游戏有了一定的认识与体验,同时对于不同风格作品的受众也有了基本的划分。介于当下用户的不同需求,所以对现今基于Android平台开发的五子棋手机游戏也提出了更高的要求。因此,综合本课题的多方面背景,开发基于Android平台的五子棋手机游戏,最终在Android系统平台的手机上运行,满足用户在Android手机上进行五子棋游戏娱乐的需求。1.2课题意义与目的本项目名称为基于Android平台的五子棋游戏的设计与实现,设计与开发一套基于Android平台的五子棋游戏,该系统可应用于Android系统手机。它通过Android平台和智能手机相结合,开发基于Android平台的五子棋游戏,使用户可以通过智能手机进行休闲娱乐。进而通过五子棋这款益智游戏,以欢乐轻松的方式让用户在娱乐中学习,在学习中娱乐,在愉快的氛围中达到寓教于乐的目的。另一方面,随着移动互联技术的发展,特别是智能手机已经深入到大众的工作和生活的各个方面,逐渐成为人们休闲娱乐的一种重要方式。现今人们的工作压力日益增大,生活节奏不断加快,需要更好的劳逸结合才能达到更高的工作效率,在工作之余的休闲放松对人们来说更是必不可少的。所以通过日趋成熟完善的Android平台开发的五子棋游戏,可以随时随地的增加生活中的趣味性和消遣性,拉近了人与人的距离,从而成为人们休闲娱乐的不错选择。在移动通信技术飞速发展的今天,每一次的技术变革都可能对我们的生产生活产生影响。移动通信设备,尤其是手机设备更加人性化、智能化、多样化,往往现在的一个设备可以实现以前几个设备所能实现的功能。只有这样才能满足用户不断变化个需求,但同样也对开发商的研发提出了更高的要求。所以,在开发过程中开发商借鉴了不少PC机上研发、运营游戏的经验,更是有很多成功将PC机上游戏移植到智能手机上的成功案例。这样,在赋予这款软件系统新的意义的同时,更是开拓了更大、更有潜力的市场。但若要将市场价值最大化,不是生搬硬套就可以完成的,要根据手机硬件便捷、简单、有局限性和软件Android系统平台开放、多元的特性进行研发。所以五子棋这类游戏与我们的开发条件是有契合点的,其游戏本身容易上手、老少皆宜、锻炼思维、寓教于乐的特点可以在Android平台上很好的呈现,也可实现一定的商业价值。对于五子棋这个有着悠久历史的游戏来说,其本身深厚的内涵、完善的规则、多样的博弈过程都可以通过现代计算机技术来实现和完善。在研发设计手机五子棋这样一个益智性极强的游戏过程中,将涉及到计算机技术中人工智能这一领域。博弈是人工智能的一个主要分支,它涉及人工智能算法中的决策规划、推理技术和搜索方法。本文运用这些知识技术,设计一个基于Android平台的五子棋手机游戏,实现其中的人机对战与人人对战功能。五子棋博弈问题作为五子棋游戏研发当中人工智能算法的关键,研究如何使电脑AI通过设计的算法进行分析、逻辑推理、统筹规划来解决面临的种种实际问题。以此在完成五子棋游戏功能的基础上,对博弈过程中涉及到的算法进行深入浅出的学习与研究。1.3五子棋简介五子棋是一种两人对弈的纯策略型棋类游戏,起源可以追溯到上古时期, 主要流行于华人和汉字文化圈的国家以及欧美一些地区。通常双方分别使用黑白两色的棋子,落子顺序是黑先白后,轮流下棋,棋子下在棋盘直线与横线的交叉点上,直到分出胜负。五子棋这个名字简单明了的告诉我们了五子棋胜负判定的方法,即横向,纵向,斜向45度与反斜向45度有连续单一颜色棋子相连就可以判定游戏结束。游戏规则简单,容易上手,老少皆宜,不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性,已在各个游戏平台有应用。因此,这注定是一款老少皆宜的棋类游戏。五子棋,日文亦有“连五子、五子连、串珠、五目、五目碰、五格、五石、五法、五联、京棋”等多种称谓,英文则称之为“FIR(Five In A Row的缩写)、Gomoku(日语“五目”的罗马拼音)、Gobang等。标准的现代五子棋的棋盘是横竖各15条直线垂直相交而成的,即15*15,共225个交点。棋盘大小是根据长期实践得出的比较均衡的结果。五子棋棋盘越大,先手的优势越大。如果棋盘纵横在10*10以下的话,高手相遇就谁也无法取胜了。Louis Victor Allis 在计算机上的模拟连珠时计算表明,15*15的标准棋盘下,存在先手不负的着法,前提是没有引入其他禁手或交换规则。而且普遍相信,很可能在更大的棋盘上也存在类似着法。连珠在没有附加规则的版本,存在完美对策使得后手不可能获胜。1.4 Android操作系统简介Android是专门为移动设备开发的基于Linux内核的移动平台,该平台包含操作系统、中间件、用户界面和应用软件,是一个真正开放的移动开发平台。Android操作系统在移动设备上有广泛应用,如智能手机和平板电脑。Android操作系统由Google公司和开放手机联盟领导及开发,尚未有统一中文名称,中国大陆地区较多人翻译为“安卓”。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2013年的第四季度,Android平台手机的全球市场份额已经达到78.1%。2013年09月24日Google开发的操作系统Android在迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。Android发布以来,其开源操作系统的特性,使得越来越多的人关注Android的发展。Android平台其具备的开放、平等、无界、方便、丰富的特性也让更多的开发人员能够在这个标准化、开放式的移动平台上进行开发,这也将为Android平台带来更丰富的软件资源,进而使得Android受到越来越多的人青睐。Android平台的体系架构从软件分层的角度来说,主要由APPLICATIONS、APPLICATION FRAMEWORK、LIBRARIES和LINUX KENRNEL这几部分构成,如图1-4所示:图1-4 Android体系结构图(1). APPLICATIONS(应用程序层)应用程序层都是用Java语言编写的运行在Android平台上的程序,一般情况下,大多数应用程序都是在同一系列的核心应用程序包中一起发布的,如浏览器、播放器、日历、拨号程序及通讯录等程序。该层的程序是完全平等的,Android开发人员通常需要做的就是编写在应用层上运行的应用程序。(2). APPLICATION FRAMEWORK(应用程序框架层)该应用程序的框架设计简化了组件的重用,并且其中任何一个应用程序都可以发布自身的功能来供其他应用程序调用,这样也使用户很方便地替换程序的组件而不影响其他模块的使用。这种替换需要遵循框架的安全性限制。(3). LIBRARIES(Android运行时库)该层由两部分构成,程序库及Android运行时库。程序库为一些C或者C+库,这些库能够被Android系统中不同的应用程序调用,并通过应用程序框架为开发者提供服务。而Android运行时库包含了Java编程语言核心库的大部分功能,提供了程序运行时所需调用的功能函数。(4). LINUX KENRNEL(Linux内核)Android平台中操作系统是基于Linux内核的,如安全性、内存管理、进程管理、网络协议栈和驱动模型等都依赖于该内核。该层为软件与硬件之间增加了一层抽象层,使开发过程中不必时时考虑底层硬件细节。1.5论文主要工作本论文以软件系统的实际应用为开发的最终目标,设计实现一套基于Android平台的五子棋游戏,该系统可应用于Android系统手机。论文按照软件工程的工作流程对开发平台与五子棋游戏本身进行了广泛的调研和细致的分析,采用面向对象的编程思想进行程序系统的类结构设计以及代码的实现。本文的主要工作是基于Android平台对五子棋游戏进行设计实现的。五子棋游戏本身作为一款大众所熟知的棋类游戏,有广泛的群众基础。但在其简单、易上手的同时,也有精深的棋型、棋势变化,专业的禁手规则、复杂的棋谱算法分析等不为大众所了解的一面。所以我在完成一般玩家用户人机对战、人人对战需求的同时,增加了各种游戏功能设置,增加了游戏的趣味性和娱乐性,而并没有对专业的算法及规则进行深入的研究。完成这样的一个基于Android平台的五子棋游戏,让用户可以在手机上进行休闲娱乐,基于此类用户群定位自身系统软件及市场价值。满足当下用户更新更高的娱乐休闲要求。系统设计实现的主要内容包括:如何设置整个游戏的界面,实现人机对战与人人对战,拓展功能的设置,如何控制五子棋游戏中棋子的摆放,算法的研究,如何判断游戏是否结束以及输赢问题等。实现上述操作的可用性及高性能运行。最终提交一套基于Android平台的五子棋游戏运行程序。在Android五子棋游戏的专业性与娱乐性之间找到一个更好的平衡点,完成一个风格独树一帜的作品。2 需求分析2.1 系统需求分析1. 基于PC的虚拟移动终端环境的搭建:智能终端的操作系统各异,本次设计选择在PC上虚拟移动终端环境,选择了应用广泛、用户众多的Android平台。2. 虚拟平台开发环境的选取:我们在虚拟环境中选取对Java、Android语言支持较好的IDE,选择使用Eclipse进行设计实现。 3. 游戏实现中的资源约束考虑:移动终端由于受其本身资源(主要包括处理器、存储器、网络带宽等)的约束,对应用程序的支持与PC环境差异较大,对数据结构和算法等要求较高,所以有效的算法模型的提取对应用程序的效率至关重要。2.2 用户需求分析娱乐生活在社会多元化的今天,成为了大多数人生活中不可或缺的一部分。随着移动互联技术的发展,手机游戏更是在快节奏生活的今天成为了人们休闲消遣的新选择。面对市面上种类繁多的手机游戏,要想占有一席之地更要从用户的实际需求出发。五子棋作为一款受众面广、群众基础好的游戏是一个很有价值的研发课题。想要比市场上的同类产品更有竞争力,要开发更友好的界面、基本功能更清晰易懂。五子棋手机游戏能够保证良好的用户使用时间,让用户在使用中放松心情、消遣休闲。对于青少年用户还能以欢乐轻松的方式让用户在娱乐中学习,在学习中娱乐,有着寓教于乐了的教育意义从而到达扩大产品影响力的效果。对于工作人群来说压力日益增大,生活节奏不断加快,在工作之余的休闲放松对人们来说更是必不可少的,所以五子棋手机游戏可以起到更好的劳逸结合作用。在实际应用中还可利用五子棋游戏的本身特性,拉近人与人之间的关系,在用户使用过程中潜移默化的推广产品、开拓市场,同时增加游戏的可玩性和生命力。相信通过日趋成熟完善的Android平台开发的五子棋游戏,可以随时随地的增加生活中的趣味性和消遣性,从而成为人们休闲娱乐的不错选择。基于Android平台的五子棋游戏包括:人机对战功能、人人对战功能、设置功能、帮助功能。人机对战功能是为了满足单人用户的游戏需求,用户可以与电脑AI进行对战来完成游戏。人人对战功能是为了满足两位用户的游戏需求,两位用户可以在同一台设备上进行对战来完成游戏。设置功能是为了满足用户对游戏多样化的需求,用户可以通过设置功能对游戏进行各方面的设置。帮助功能是为了满足用户对游戏认知使用的需求,用户可以通过设置功能了解游戏如何操作使用、反馈用户信息。2.3 功能需求分析手机屏幕尺寸分为物理尺寸和显示分辨率两个概念。物理尺寸是指屏幕的实际大小。一般来说,大的屏幕就要配备高的分辨率,显示分辨率就是在这个尺寸下可以显示多少个像素,显示的像素越多,可以表现的余地自然就越大。现在手机行业发展迅速,手机屏幕的大小也是各有不同,鉴于不同手机屏幕尺寸不同,在设计游戏的时候必须考虑到设计的手机游戏能否适应各种尺寸的手机屏幕和不同的显示分辨率,并且要让软件的界面简洁明了,操作简单容易。游戏软件在使用中需要极快的反应速度,所以软件具有的人工智能算法原理要简单并且运行要快速,手机处理器的频率直接要求需要使用简单实用的智能算法,充分体现其软件系统本身的灵活性和适应性。在设计本游戏时考虑到用户需要的是一个操作简便、界面精致的五子棋游戏软件。同时要提供人机对战和人人对战两个游戏模式。特别是人机对战功能,要考虑到此软件是在手机上运行,手机的性能与PC机有很大差距,因此在人工智能算法的设计上应该尽可能的缩短系统搜索、运算的时间,同时还要保证有一定的智能水平,否则对玩家来说丧失了一定的挑战性,可玩性大大降低,也就缺少了对用户的吸引力。此外,通过对软件功能的分析以及对五子棋爱好者的需求调研,得出还有如下需求信息:具有重新开始功能;具有音乐、音效开启关闭功能;具有帮助功能;具有返回功能;具有设置棋盘功能;具有退出游戏功能;具有判断胜负功能。2.4 系统用例图根据对系统、用户、功能的需求分析,确定了用户与AI两个主角,通过用例图说明它们与功能模块之间的需求关系,基于Android的五子棋游戏的用例图模型如图2-5所示: 人机对战 人人对战 棋盘设置 帮助功能 用户 重新开始 声音设置 棋盘绘制 棋势扫描 棋势排序 棋势评估 AI 择位落子 判断胜负图2-5 基于Android的五子棋游戏的用例图模型1.人机对战用例应用范围:用户;参与者:用户;用例类型:用户目标;用例描述:用户与电脑AI进行对战。2.人人对战用例应用范围:用户;参与者:用户;用例类型:用户目标;用例描述:用户与用户进行对战。3.棋盘设置用例应用范围:人机对战、人人对战;参与者:用户;用例类型:用户目标;用例描述:对游戏中棋盘大小进行设置。4.帮助功能用例应用范围:用户;参与者:用户;用例类型:用户目标;用例描述:帮助用户了解游戏内容、规则,游戏的使用方法,反馈用户信息。5.重新开始用例应用范围:人机对战、人人对战;参与者:用户;用例类型:用户目标;用例描述:在人机对战、人人对战中重新开始棋局。6.声音设置用例应用范围:人机对战、人人对战;参与者:用户;用例类型:用户目标;用例描述:在人机对战、人人对战中设置背景音乐、音效,实现开启关闭音乐。7.棋盘绘制用例应用范围:人机对战、人人对战;参与者:电脑AI;用例类型:AI目标;用例描述:绘制15*15的棋盘以及相关选项和背景,并负责用户、电脑AI落子后棋子的绘制。8.棋势扫描用例应用范围:人机对战、人人对战;参与者:电脑AI;用例类型:AI目标;用例描述:根据棋盘上的实际情况扫描搜索落子位置,获取当下这个棋局的棋型棋势。9.棋势排序用例应用范围:人机对战;参与者:电脑AI;用例类型:AI目标;用例描述:根据编写的算法程序对当下棋势进行排序,便于进行接下来的棋势评估。10.棋势评估用例应用范围:人机对战;参与者:电脑AI;用例类型:AI目标;用例描述:根据编写的算法程序,分别对玩家和电脑AI的棋型棋势进行评估,量化棋势以便分析运算。11.择位落子用例应用范围:人机对战;参与者:电脑AI;用例类型:AI目标;用例描述:结合对玩家和电脑AI的棋势分析,选取最优的下棋策略。若棋势有利于玩家,则采取“防守”策略,若棋势有利于电脑AI,则采取“进攻”策略。12.判断胜负用例应用范围:人机对战、人人对战;参与者:电脑AI;用例类型:AI目标;用例描述:每次玩家或者电脑AI落子之后,都进行胜负判断。若出现“五子连珠”的情况,则“五子连珠”一方获胜、另一方失败,并给出判定结果,此局游戏结束。3 系统开发环境3.1 开发环境操作系统:Windows 8(64位)开发软件:Eclipse 3.8JDK:jdk 1.6.0_37Android SDK:SDK Platform Android 4.2, API 173.2 开发环境的配置本系统设计与实现是基于PC操作系统下的虚拟移动终端之上的,开发环境的搭建主要包括JDK的配置、Android SDK的配置、Android开发插件ADT的安装、AVD模拟器的创建等。3.2.1 JDK的配置安装好下载的JDK文件,之后在系统的环境变量中进行配置。右键计算机->属性->高级系统设置,单击“环境变量”,在弹出对话框中单击“系统变量”栏中的“新建”按钮,创建新的系统变量。在变量名处输入 “JAVA_HOME”、在变量值处输入JDK安装路径。之后在“环境变量”对话框中双击Path变量对其进行修改,在原变量值最前端添加“.;%JAVA_ HOME%bin;”变量值,最后需在控制台中输入javac命令,若输出修改命令的语法和参数选项等信息,说明JDK环境搭建成功。3.2.2 AVD模拟器的创建AVD(Android Virtual Device)即Android模拟器,它是Android官方提供的一个可以运行Android程序的虚拟机,在运行Android程序之前,首先需要创建一个AVD模拟器。启动Eclipse,单击工具栏中的Android Virtual Device Manager按钮,在弹出窗口中单击New按钮。弹出 Create new Android Virtual Device(AVD)对话框,在该对话框中输入要创建的AVD名称、选择屏幕样式及AVD模拟器版本、设置SD卡内存大小,如图3-2-2-1所示:图3-2-2-1 设置AVD模拟器这样就创建好了一个AVD模拟器。选择该模拟器,可以通过单击右侧的Edit、Delete、Details和Start按钮,分别对其进行编辑、删除、查看和启动操作,如图3-2-2-2所示:图3-2-2-2 创建完成AVD模拟器4.总体设计4.1系统功能划分基于Android的五子棋游戏主要包括人机对战功能、人人对战功能、游戏设置功能、游戏帮助功能,系统功能模块图如图4-1所示基于Android平台的五子棋游戏游戏开始界面模块 人机对战人人对战游戏帮助游戏退出 游戏设置设置重玩、音乐、音效、帮助、返回主页退出棋盘设置 图4-1 系统功能模块图功能实现方面,通过这几个模块的切换,实现不同需求的满足,最终达到:友好的欢迎界面,增加游戏的兴趣;开始游戏主菜单选择游戏中不同的功能,清晰明了的了解游戏的模式;选择人机游戏对战,可与电脑AI进行人机对决;选择人人游戏对战,可两人之间在一台设备上进行人人比赛;通过设置功能,可对游戏的音乐、棋盘设置等基本游戏元素进行相应的设置。4.2系统模块结构设计4.2.1 游戏开始界面模块游戏开始界面是用户进入游戏后最先看到的,它给用户的第一印象至关重要,会影响到接下来的体验感受。游戏的主要功能都呈现在游戏开始界面上,游戏开始界面包括两种游戏模式的选择、游戏的设置、游戏的帮助以及退出游戏。游戏开始界面要给用户最简便、最直观的使用体验,方便用户操作。同时游戏开始界面需要美观、精致,在背景图片上以五个按钮的形式体现出人机对战、人人对战、游戏设置、游戏帮助、游戏退出这五个功能模块,分别点击五个按钮就可以进入其功能模块,实现其功能。4.2.2 人机对战模块人机对战是系统两种游戏模式之一,是游戏的核心功能模块。进入此模块后,便是五子棋游戏的主游戏界面。在绘制的背景、棋盘上与电脑AI进行对战,用户先下棋,由电脑AI进行胜负判断。主游戏界面作为游戏的核心,是双方对弈的界面,设计实现中除了要遵循五子棋游戏本身的规则标准外,还要让用户感到界面美观、清晰,因为此界面是用户游戏过程中使用时间最长的界面。在此界面中除实现对弈功能区,还要运用“MENU”功能键实现部分游戏元素的设置,包括重玩、音乐、音效、关于和主页五个设置功能模块,分别以五个按钮的方式实现。点击“重玩”按钮可以实现棋局重置,以重新开始游戏。点击“音乐”按钮,弹出设置对话框,对背景音乐的开启、关闭进行设置。点击“音效”按钮,弹出设置对话框,对游戏中诸如落子等音效进行开启、关闭设置。点击“关于”按钮,进入帮助页面,介绍游戏的简介、规则等信息以及提供用户反馈信息的方式。点击“主页”按钮,返回游戏开始主页界面。4.2.3 人人对战模块人人对战是系统两种游戏模式之一,是游戏的核心功能模块,此功能模块在同一台设备上实现。进入此模块后,便是五子棋游戏的主游戏界面。在绘制的背景、棋盘上两位用户间进行对战,两位用户轮流下棋,由电脑AI进行胜负判断。主游戏界面作为游戏的核心,是双方对弈的界面,设计实现中除了要遵循五子棋游戏本身的规则标准外,还要让用户感到界面美观、清晰,因为此界面是用户游戏过程中使用时间最长的界面。在此界面中除实现对弈功能区,还要运用“MENU”功能键实现部分游戏元素的设置,包括重玩、音乐、音效、关于和主页五个设置功能模块,分别以五个按钮的方式实现。点击“重玩”按钮可以实现棋局重置,以重新开始游戏。点击“音乐”按钮,弹出设置对话框,对背景音乐的开启、关闭进行设置。点击“音效”按钮,弹出设置对话框,对游戏中诸如落子等音效进行开启、关闭设置。点击“关于”按钮,进入帮助页面,介绍游戏的简介、规则等信息以及提供用户反馈信息的方式。点击“主页”按钮,返回游戏开始主页界面。4.2.4 游戏设置模块游戏设置模块可以帮助用户在游戏前对游戏进行设置。进入游戏设置模块对话框,可以选择棋盘大小。棋盘设置分为三档:小格棋盘、中等棋盘、大格棋盘,其中小格棋盘为五子棋标准棋盘15*15规格。三档棋盘的横纵格数依次递减,实现绘制出大小不同规格的棋盘,在设置后开始游戏将绘制所选择的棋盘规格,满足不同层次用户的需求。4.2.5 游戏帮助模块游戏帮助模块帮助用户了解游戏内容、操作等信息。进入游戏帮助界面后用户可以了解游戏的简介、基本规则以及提供关于软件使用后意见和建议的反馈渠道。4.2.6 游戏退出模块游戏退出模块实现退出系统软件的功能。点击“游戏退出”结束五子棋游戏系统,关闭应用软件。5 详细设计5.1 系统主流程根据各个模块功能和需求的不同,游戏系统有初始化模块、主控制模块、人工智能模块、落子模块、判断胜负模块。所画出的系统主流程图,如图5-1所示:游戏界面初始化游戏模式游戏主界面主循环控人机对战主循环控人人对战玩家1落子玩家2落子玩家落子分析棋盘得出最佳落子位置 AI落子判断胜负判断胜负重新开始游戏帮助游戏设置结束否某方胜利某方胜利否某方退出某方退出 图5-1 基于Android平台的五子棋游戏系统主流程图游戏界面初始化模块:载入背景图片,绘制棋盘、棋子,刷新棋盘,清空游戏双方落子集合等功能。主循环控制模块:负责控制下棋顺序,当轮到某一方下棋时,将程序流程转到相应的模块中,主要担当一个调度者的角色。玩家落子模块:用户在指定落子区域单击触摸后,程序进行响应并计算该子坐标,在相应的位置绘制出相应的棋子。分析棋盘得出最佳落子位置模块:是人机对战功能的核心,也是本系统软件的核心。通过程序设定的分析、运算方法,电脑AI进行棋型棋势分析,即人工智能模块。AI落子模块:通过分析、运算,电脑AI在最优的位置上绘制相应的棋子。判断胜负模块:根据编写程序的分析、运算规则,对人机双方或者人人双方进行游戏胜负的判定。5.2 建立模型棋子和棋盘是五子棋游戏的两大基本要素,棋子分为黑白两色,棋盘我们采用标准的15*15规格。五子棋游戏的棋子、棋盘模型建立流程如图5-2所示:把棋子数据载入设置好的点模型建立完成根据横纵坐标产生棋盘上的线设置棋盘每个点大小游戏界面上的横纵坐标根据点大小计算图5-2 模型建立流程图标准的五子棋棋盘是15*15规格的,本系统中可以对棋盘大小进行设置。棋盘由背景图片和线条组成,背景图片为系统加载,而线条是在进入主游戏界面的同时用相关函数画出来的。所以需设置棋盘上每个点的大小,从而计算出游戏界面上的横纵坐标。绘制出棋盘的框架,根据计算出的横纵坐标,绘制棋盘上的所有线,这样棋盘模型就建立好了。棋子的绘制是运用绘制方法与设置好的点对应,通过对点的属性修改载入的相应棋子模型,这样棋子模型就建立好了。5.3 控制模块设计控制模块分为主控制模块、判断胜负模块、落子模块中的处理分析部分。控制模块如图5-3所示:主控制模块落子模块 控制模块判断胜负模块图5-3 控制模块图主控制模块的作用是转换下棋顺序,当轮到某一方下棋的时候,主控制模块把整个数据和流程转到相对应的模块里。落子模块是接收并处理分析用户点击界面的事件,面向的对象时玩家与电脑AI落子模块的处理分析。判断胜负模块是根据编写的程序规则进行分析、运算,给出胜负结果。5.4 显示模块设计游戏显示模块包括游戏界面初始化模块,落子模块中的接收点功能与显示棋子功能。显示模块设计如图5-4所示:游戏开始显示游戏界面读取控制模块计算出的数据 显示棋子接收用户触摸信息计算棋子位置向控制模块汇报刷新棋盘图5-4 显示模块设计图开始游戏后用户进入游戏主界面,首先初始化模块运行,用户将看到游戏主界面上的游戏模式选择等按钮,选择游戏模式进入对弈界面,将显示棋盘等主游戏区,可以开始进行游戏。落子模块接受用户的触摸响应,并在棋盘上对应的位置显示出所下棋子。游戏分出胜负后在主游戏界面上显示胜负结果,再次触摸刷新棋盘,开始新一局游戏。5.5 AI算法的分析人工智能是一门新的技术科学,是计算机科学的一个分支。它能产生模拟人类智能的反应,根据不同算法把各种人类模拟完善。在人工智能算法方面,一般有极大极小树、深度优先搜索、剪枝这三种方法。目前大部分博弈类游戏中的人工算法都采用极大极小树这种方法。假设己方为MAX点,对方则为MIN点。如果当层的节点为奇数时那么就为MAX层,为偶数时就为MIN层。当在MAX层时,该层的值就应该为下一个MIN层中的最大一个的值。当在MIN层是,该层的值就应该为它子层MAX的最小的一个。深度优先搜索与广度优先搜索的区别在于下一个节点的选择。DFS先选择好节点,如果下个节点不存在或都已经遍历过了,就向上返回到上一个节点,再遍历其它的未被访问过的点,这要用到堆栈结构,使用一个递归来实现。BFS则是逐个的遍历它的联接接点,将已经访问过的点放入队列中,然后再依次取出继续这个过程。不必要的节点可以被Alpha-Beta剪枝去除,并且去除了这些节点也不会影响结果。5.5.1 极大极小树搜索算法五子棋双方对战,将其中一方叫做A方,另一方叫做B方。假设现在A走,那么他有15*15种走法(无论优劣),而B也有与之相对应的若干种走法,之后又轮到A走如此往复。可以用一个博弈树来表示五子棋游戏的这个过程,如图5-5-1-1所示,图中省略号表示游戏过程中的大量分枝。开局黑子先行白方下子白方下子15*15-1种黑15*15-2黑依次递推,直到棋子充满棋盘或者某一方获胜,游戏结束15*15-2图5-5-1-1 五子棋游戏的完整博弈树从图5-5-1中可以看出,从游戏开局默认黑子先行的情况下,第一步走法的可能性等于棋盘的大小15*15(不考虑禁手,默认空白点都是可以落子的点),第二步白子则有15*15-1种走法,如此往复,直到棋子下满棋盘或者某一方获胜。通过五子棋游戏的博弈树图,可以看出这是一个十分复杂的分析运算过程。对于大多数棋类游戏来说都是无法建立完整的博弈树的,因为很多情形根本无法到达叶子节点,即使能够建立完整的博弈搜索树其计算的工作量更是极为巨大,大多数情况很难完成。也就是说完成博弈算法需

    注意事项

    本文(毕业设计(论文)-基于Android的五子棋游戏.doc)为本站会员(爱问知识人)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开