《黑白棋游戏设计与实现毕业论文.pdf》由会员分享,可在线阅读,更多相关《黑白棋游戏设计与实现毕业论文.pdf(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、摘要在我们的童年没有所谓的安卓手机,游戏也很简单,都是由本子 和一些伙伴自己手工做的小玩意儿,最让我印象深刻的是就是黑白棋 游戏,这款游戏也是我童年最喜爱游戏之一。本设计就是一款单击棋类游戏,参考于一些象棋的基本操作原 理,使用了 Android StudioAndroid Studio编写的。这个游戏仅仅就是个纯娱乐游戏,设计的使用对象仅面向青少年 和儿童,一些关于本设计的总体设计以及、需求、分析、一些复杂的 算法和内部数据的具体处理和计算进行细化叙述。关键词:安卓;安卓智能系统;黑白棋游戏,Android StudioAndroid Studio目录第1章系统概述.51.1课题背景和意义.
2、51.2开发工具以及语言简介.51.2.1 Android Studio 平台简介:.51.2.2 java 语言简介:.61.2.3 xml 技术:.6第2章需求分析.72.1欢迎界面.72.2主页界面.72 3数据显示界面.82.4游戏界面.8第3章黑白棋设计的内容.93.1游戏功能介绍.93.2黑白棋游戏设计说明.10第4章 详细设置与主要功能模块的实现.134.1主界面.134.2游戏界面.13第5章具体数据说明.155.1游戏包类架构:.165.2各类关系说明:.185.2.1 MainActivity.195.2.2 game.205.2.3 card.205.2.4 sound.
3、2 1致谢.2 4参考文献.253-引言如今这样一个多元化的时代面前,许多东西慢慢映入眼帘,安卓 系统,一种继续Linux的开元系统,悄无声息的发展蓬勃起来,慢慢 就渗透到我们每个人的身边,安卓应用游戏,发展的非常之快。从以前舟车劳顿,什么都没现在便捷,但是现在随着4g网融入 我们的生活当中,人们就就已经不断通过突破自己的想象能力来突破 更新的技术来方便使人,恰恰我们现在炙手可热的手机和电脑就是为 了人们方便而用大脑构想并且发明出来的工具。恰恰是因为我们生活的时代是一个美好而又和平的时代,人们的 娱乐生活得不到满足,于是乎手机游戏就这样诞生了。就现状而言,每人几乎是人手一部智能机,并且还有个毛
4、病就是手机不离身。所以来说这种现状足够能说明安卓手机的软件已经普遍化,市场 需求极大,而且游戏的款式以及放松自己的游戏也是极好的。这款游戏就是应用安卓系统的游戏,就是“黑白棋游戏”,以下 就是对该游戏的剖析和分析。整个过程当中,实现了欢迎界面,与手机之间良好的,人机交互并且 还带有帮助提示,使玩家参与游戏当中去。游戏点击开始之后,可以看到双方都含有两颗棋子,只要将棋子 下到对应位置就能够将对方棋子吃掉转变为你的颜色,对角线,和纵 向以及横向有棋子就能够吃掉。游戏难度分为低等,中等,高等。-4-第章系统概述1.11.1课题背景和意义人们的生活离不开娱乐的陪伴,游戏正是众多娱乐当中陪伴最久 的一项
5、。当我们疲倦的时刻,心烦意乱的时刻,手机游戏就能满足我 们的需求,能随时随地的放松自我,从而释放心里面的压力与烦恼。正是因为手机的飞速发展,安卓系统才成为了手机系统里面的龙 头,当这种代码开源的优势遍及开来,所以能更好的方便开发者编写 程序。使得各种五花八门而又意义非凡的游戏App越来越多,使得越 来越多爱好安卓的开发者动用自己的脑力使得安桌软件越来越稳健、高效、界面酷炫的掉渣。而黑白棋的开发运用了安卓基础的代码、与多线程的应用、动态 展示等基本元素。1.21.2开发工具以及语言简介开发这个游戏系统,主要使用了 Android Studio平台,设计过 程当中页面的布局采用了 xml技术,运用
6、了 java语言。以下就是我 要对Android、xml、java语言的介绍。1.2.1 Android Studio 1.2.1 Android Studio 平台简介:Anroid Studio是Goole公司推出最新的Android开发环境,简 称AS,含有多种语言开发版本,为不同国界的而热爱安卓的人们提 供了很多的便利,也带有提示功能,优化小贴士等多种便于开发者的5 功能,而我开发这款软件使用的就是2015年在Goole I/O开发者大 会上推出的最新版本,Android Studiol.3版。1-2.2 java1-2.2 java语言简介:Java的原名字叫做Oak,俗称(爪哇),
7、与c+/c相比,java 的编程风格他们的风格极为的相似,java没有它类似的指针,运算 符重载,多重继承等特性,java特别之初就是应用,接口等特性。而且大多数安卓游戏软件开发都是基于java语言基础上完成的。所 以我认为移动端游戏以后将会为我们的生活中增添更多意想不到的 乐趣。1.2.3 xml 1.2.3 xml 技术:Xml技术在安卓系统的作用有部分类似与html语言差不多起到 使界面变的优美。当然不管实在安卓系统当中的使用还是在Web上的 使用都有举足轻重的作用,即可布局界面也可在web或者其它多种数 据源之间进行数据的交换。XML技术用途广泛,在一些网站开发里面经常被使用到,但是它
8、 做为安卓系统的布局属性,对我们游戏有很重要的作用,它直接布局 好游戏的界面然后和java代码绑定,当然一些数据都包含其中,定 义一些重要的数据以及传输数据都离不开XML技术,它非常适合一些 游戏的界面开发以及网络游戏数据的传输。6 第2章需求分析本游戏中有欢迎界面,主界面,记录游戏数据界面,帮助界面,以 退出事件,四大基础界面的设定:2.12.1欢迎界面在一个单击游戏里,一个简单而又优美的欢迎界面可以使得玩家 心情愉悦,欢迎界面主要是玩家点开程序呈现出来欢迎玩家进入游戏 的界面,类似于微信和QQ进入软件会显示三秒的欢迎界面图。欢迎 界面图片如2-1图2-1(欢迎界面图)2.22.2主页界面在
9、欢迎界面之后就是主页界面,背景简单而又优美,在取材方面 我们要慎重的多,因为图片的大小啊又或者分辨率的不同会导致游戏 界面的模糊而使得玩家看不清楚界面图片,所以游戏的图片素材最好 是自己自定义制作,自己设计logo,背景的颜色以及形状。主页界面还含有其他类的构造,使用按钮插件,在上面写上 retract(悔棋),newgame(新游戏),hint(提示),让玩家能够 简单而又直观的操作。图2-2-7-图2-2(按钮插件图)2.32.3数据显示界面这个界面主要使得用户知道,游戏敌我双方的棋子数量,从而分 出胜负之分。如图2-3图2-3(棋子数据图)2.42.4游戏界面这个由自己用自定义的方式构成
10、,以每个小正方块绘制每一个格 子,而每一个格子就是棋子落子的地方,棋盘是8*8的大小。如图2-4图2-4(游戏界面)-8第3章黑白棋设计的内容3.13.1游戏功能介绍1.界面功能首先就是一个就是游戏的等级选择、重新开玩、游戏的帮助提示 以及游戏进行时相应的设置。2.接受手指的触屏功能一般在手机上运行的游戏App,都是以触屏为主,然后将制定的 棋子放在相应的位置。3.参照游戏规则翻转对应的棋子在用户运行时,不管是人机或是与玩家在棋盘落下对应的棋子 后,能够参照对应的规则,把横向、纵向以及对角线上的棋子翻转过 来,最终转变为落下棋子的颜色,然后才能对棋子的数目进行增减,从而显示胜负之分。4.评判胜
11、负的功能在当游戏对弈双方没有落子的地方了,以棋子的数目来计算胜 负,可想而知数目多的为胜者。当然还有另外一种可能,游戏者任何 一方的被对方吃完,则GameOver,被吃光的一方,惨败收场。5.人机对战功能大多数棋牌游戏都有支持人工智能的功能,相应的等级模式,算 法的结构不同,对应落子位置就不同。所以才有难度可言。6.游戏等级设置-9-这个功能的主要目的呢,就是玩家在游戏感觉对手不是同一程度 对手而设定的,从而激发用户对自己智力的一种提升。7.提示帮助说明用一个控件,将游戏的运行方式以及操作方法,编写在内。对那 些不熟悉本类型的游戏玩家有一个带动的作用。黑白棋功能架构如图3-1:黑臼棋游戏设计*
12、棋子的数组更新 棋子的翻转功能、:/模子动画翻转 棋子操作功能棋子主界面的显示 主界面显示功能人工智能功能 游戏等级的设贾帮助功能图3-1(功能架构图)3.23.2黑白棋游戏设计说明1.设计思路黑白棋的开发与设计含有sdk软件开发工具包的帮助。此类游戏 含有类似网页排版思想,将各个功能模块细分开来然后在加以实现。主界面欢迎界面类:主要是玩家点开程序呈现出来欢迎玩家窗口棋盘类:接受玩家用手指输入棋子位置和黑白棋的翻转动画 等,以及处理。10-人工智能算法类:处理手机人工智能算法的处理。规则处理类:最后棋子的数据统计、落子有效范围和胜负的评判 等处理。帮助dialog类:一些辅助玩家的提示信息。如
13、图3-2如图3-2(设计思路图)11-2.游戏运行结构(图3-3)图3-3(运行结构图)12-第4章详细设置与主要功能模块的实现4.14.1主界面黑白棋游戏主界面不同于其他游戏哪样复杂,只有一个游戏进口,点击开始就进入游戏界面:如:图4-1:图 4-1(主界面 activity_main.xml)4.24.2游戏界面这个界面主要是多线程和二维数组和复杂的算法以及棋子翻转 的动态图而构成。游戏界面由双方棋子的数目和Timing以及那个棋子先落子,和 悔棋(retract)重新开始(New game)、棋子落子提示(Hint)三 个按钮组成。等到棋子在8*8的棋盘中落满在根据双方的棋子多少判定谁赢
14、 从而判定谁赢睡输。用手触碰屏幕来控制棋子的落子地方,当然没有落到规则制定的 地方会有中断提示,如果想退出游戏界面就按下退回界面,反回游戏 主界面。如图4-2:13-14-第5章具体数据说明根据系统所得的必备数据:表5-1(游戏数据记录表)类型字段名字中文说明IntCardsMap整个游戏界面的布局坐标IntScpre记录棋子的比分IntBlackchess黑棋落下的坐标IntWhite_chess白棋子落下的坐标bitmapchessBackground背景图片的加载BitmapChess棋子图片的加载MediaplayerNp背景音效的加载游戏数据存储表格:表5-2(数据存储表)类型字段名
15、称中文说明StringReversi游戏名称StringHint游戏提示StringTime s游戏时间限制StringList_d不正确的落子位置的中断15 activity_main.xml重要控件介绍表:表5-3(控件介绍表)名称Id类别功能说明开始StartButton布局游戏界面背景声音SoundCheckBox背景音效的开关activity_main.xml部分相关联的文件介绍表:表5-4(文件介绍表)名称主要作用activity_welcome.xml欢迎玩家进入retract,xml悔棋背景显示black,win.xml设置黑棋赢的背景white_win.xml设置白棋赢的背景
16、colors,xml文字颜色string,xml设置activity_main.xml控件文字styles,xml设置activity_main.xml文字和背景pass,xml完胜的背景图5.15.1游戏包类架构:为了让玩家对游戏有一个充分的了解,我将所需的重要包类以及存储位置例举如下:如图5 T5.1.1 src5.1.1 src目录-程序文件:16 和一般java项目一样,“src”目录下保存的是项目的所有包以 及源文件(.java),“res”目录下包含了项目中所有的资源。例如,程序图标(drawable)、布局文件(layout)和常量(values)等。还包含必须有的Android
17、Manfest.xml文件。5.1.2 AndroidManfest.xml 5.1.2 AndroidManfest.xml 文件一设置文件1.manifest:根节点,描述了 package中所有的内容。2.xmlns:android:包含命名空间的声明。Xmlns android=htt/schemes.android,com/apk/res/android,确保 android中各种标准属性能在文件中使用,提供大部分元素中的数据3.package:声明应用程序包4.application:包含package中application级别组件声明的根节 点。此元素也可包含applicati
18、on的一些全局和默认的属性,如标签 和默认的属性,如标签、图标、主题、必要的权限,等等。一个manifest 能包含零个或一个此元素(不能大于一个)5.android:icon:应用程序图标6.android:label:应用程序名字7.activity:activity是与用户交互的主要工具,是用户打开一个 应用程序的初始界面,大部分被使用到的其他页面也由不同的 activity所实现,并声明在另外的activity标记中。注意,每一个 activity必须有一个activity标记对应,无论它给外部使用或是 只用于总控的package中。如果一个activity没有对应的标记,程 序将不能
19、运行起来。另外,为了支持运行时查找activity,可包含-17-一个或多个intent-filter元素来描述activity所支持的操作8.android:name:应用程序默认启动的activity。9.intent-filter:声明了指定的一组组件支持的intent值,从而形 成了 Intent Filter。除了能在此元素下指定不同类型的值,属性 也能放在这里来描述一个操作所需的唯一的标签、图标和其他信息1 0.action:组件支持的 intent action1 1.category:应用程序默认启动的activity1 2.uses-sdk:所使用的sdk版本5.1.35.1
20、.3常量的定义文件一一露脸的文件在android中有一个布局文件那就是所谓“露脸的文件,那就是 布局(layout)文件,这个文件一般位于res/layout/main.xml”。所谓露脸是直接显示在手机屏幕上,就像动态网站html-样。DKbs Bsre D BndroifTert亡亡 rsettuigs Et BSSrtSA 口口 bin 口口 gen Ejjava 也也 ccm exampte-dusiincf ti Cardh ChessBoardS i Gameo MalnActivi it Sound c o WdccmeActivitE anim Hl drawable layo
21、ut萤萤 rrapmap-hdpi El mipniap-mdH图5-1(包和类的架构图)5.25.2各类关系说明:游戏的总体框架分为六个部分,游戏相关部分类是游戏的重中之 重。启动游戏,首先被创建的就是Welcomeactivity,而welcome类 就是运行的欢迎界面,之后跳转到主菜单类也就是Game类,并且对18-各个按钮进行监听。MainActivity是起到链接所有辅助界面类(Sound 类,card类,chessboard类,game类)的作用,游戏的机制运行才 能更加完善。关系概述表:表5-5(关系概述表)类名概述MainActivity主类名Card棋子类Sound背景音效类
22、Welcome欢迎界面类ChessBoard棋盘类Game游戏主类5.2.1 MainActivity5.2.1 MainActivity在 mainactivity 类中有接口 可以跳转到 We 1 come SoundGame,当然在游戏界面也可以同样的原理返回至mainactivityo图5-2图5-2(跳转页面图)19-5.2.2 game5.2.2 game编写game类,此类和前面不一样,这个主要是编写主界面一些 按钮的功能的实现。Game类中的方法接口概述表:表5-6(Game类中方法接口概述表)名称属性作用SetMessage方法获取对话框内容Setcontentview方法提
23、示框视图setOnClickListener接口按钮功能的实现Oncreate方法将数据添加如回话框SetStartButton方法获取响应5.2.3 card5.2.3 card这个类包含了棋子的翻转控制,当下到对应的位置能将对方的棋 子吃掉,随之就是棋子翻转为自己棋子一样的颜色。动画的控制使用。Card类中的方法接口概述表:表5-7(card类方法接口概述表)名称属性作用SetNum方法提示棋子的数目SetImage方法提示图片-20-Sethint方法落子提示Move方法移动提示5.2.4 sound5.2.4 sound这是一个继承service服务类,定义一个接口与对应的控件相绑 定
24、,就可以实现控制背景音效的开关,当用户在某个场合不适合开启 声音的时候可以点击CheckBox关闭。sound类中的方法接口概述表:表5-8(sound类方法接口概述表)名称属性作用Mediaplayer方法获取背景音乐Ondestroy方法声音的关闭onStartCommand方法获取游戏开始的背景音效5.35.3控件的绑定控件绑定之后由主类拿来使用,从而使用,实现一些必要的功能,以及主界面的布局,达到游戏的完善。如图5-3所示:-21 chessBoard=(ChessBoard)f indViewById(R*id,ChessBoard);buttonlewGaBe=(ImageButt
25、on)findViewById(R.id.ner_gae);tvBlackCount=(TextView)findViewById(R.id.black_count);tvfhiteCount=(TextView)findViewById(R.id.vhi te_count);ivCurrentTurn=(ImageView)findViewById(R.id.current_ turn);chTiwe=(Chronometer)findViewById(R.id.cosued_;buttonRetract=(ImageButton)findViewById(R.id.retract);but
26、tonBint=(ImageButton)findVieById(R.id.ButtonHint);图5-3-2 2-总结在听到我们要写毕业设计的那一刻,才知道这三年的时光匆匆而 过,老师这三年唯一没骗我们的一句话就是“三年真的很快,一眨眼 就过去了仿佛往日那副刚进校园的场面就是昨天一般。从提交任务书到现在设计的完美成功,差不多已经过了大半个 月,在这个时间段里我们都在即将毕业就要失业的压抑当中,在12 月的时间里,我们比往日过的充实而且还要加倍勤奋的去赶设计,很 喜欢这段时间的充实感。大学就是一个自我督促学习的时间段,虽然我们在大学的日子里 接近了尾声,但是学习是一个伴随一生而长年积累的过程
27、,不管是年 迈衰老还是年幼无知,学习是我终生都不能鄙弃的一项技能。就我完成的这项设计,我认为能更好的有一个视觉效果以及声 效,但是由于素材的缺乏而导致不是让我本人太满意。在这里我想说的就是每个畅玩的游戏app只有在不断的测试和 优化,以及更新颖的开发思想才能更加完善更加让用户爱不释手。-23-致谢经过了半个月的不休不眠的努力终于将该软件完成,毕业设计也 即将完成,在这次设计开发当中,我特别感谢我的好伙伴,他给予了 我很好的灵感,当然这也是我毕业设计的作品。在我们毕业之际,王老师为了让我们能及早的进入社会去追寻自 己的梦想,时常用社交软件指点我们如何将毕业设计完成,当然也离 不开老师的教导,他教
28、会了我们什么事情都要自己亲力亲为,不要贪 图捷径,他时常要我们自己多看书学习,不要被现状所满足,多多看 看别人代码,好好掌握别人的代码。只要能读懂别人的代码,才能将别人的东西为我所用,老师为 了我的课题也提点了一二,让我对自己的设计有了不一样的想法。在 校园里面的三年时光,我谢谢王老师,没有您和同学们的帮助,我想 我很难完成这项设计的开发。很感谢王老师和同学这三年的陪伴,在你们的陪伴下我渐渐的成 长,有过欢声有过笑语,当然也由不予人知的委屈与难过。-24-参考文献1 吴亚峰.于复兴.杜化美.Android应用案例开发大全(第二版)J.北京:人民邮电出版社,20132 欧阳零.Android编程
29、兵书J.北京.电子工业出版社,2013任玉刚.Android开发艺术探索J.北京.电子工业出版社,20154 孔令德.毕业设计案例教程一从系统开发到设计写作M.北京:国防工业出版社,2 007.5 雍俊海编著.Java程序设计习题集.北京:清华大学出版社,20066 朱福喜编著.Java语言习题与解析.北京:清华大学出版社,20067 吴其庆编著.Java程序设计实例教程.北京:冶金工业出版社,20068 赵文靖编著.Java程序设计基础与上机指导.北京:清华大学出 版社,20069 赵毅主编.跨平台程序设计语言一一Java.西安:西安电子科技 大学出版社,20061 0 王克宏 著.Java技术教程(基础篇).北京:高等教育出版社,2 002.0425