基于Android平台的中国象棋人机对弈游戏开发毕设论文.docx
- 文档编号:6540530
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:36
- 大小:1.73MB
基于Android平台的中国象棋人机对弈游戏开发毕设论文.docx
《基于Android平台的中国象棋人机对弈游戏开发毕设论文.docx》由会员分享,可在线阅读,更多相关《基于Android平台的中国象棋人机对弈游戏开发毕设论文.docx(36页珍藏版)》请在冰豆网上搜索。
基于Android平台的中国象棋人机对弈游戏开发毕设论文
学位论文诚信声明书
本人郑重声明:
所呈交的学位论文(设计)是我个人在导师指导下进行的研究(设计)工作及取得的研究(设计)成果。
除了文中加以标注和致谢的地方外,论文(设计)中不包含其他人或集体已经公开发表或撰写过的研究(设计)成果,也不包含本人或其他人在其它单位已申请学位或为其他用途使用过的成果。
与我一同工作的同志对本研究(设计)所做的任何贡献均已在论文中做了明确的说明并表示了致谢。
申请学位论文(设计)与资料若有不实之处,本人愿承担一切相关责任。
学位论文(设计)作者签名:
日期:
学位论文知识产权声明书
本人完全了解学校有关保护知识产权的规定,即:
在校期间所做论文(设计)工作的知识产权属西安科技大学所有。
学校有权保留并向国家有关部门或机构送交论文的复印件和电子版。
本人允许论文(设计)被查阅和借阅;学校可以公布本学位论文(设计)的全部或部分内容并将有关内容编入有关数据库进行检索,可以采用影印、缩印或其它复制手段保存和汇编本学位论文。
保密论文待解密后适用本声明。
学位论文(设计)作者签名:
指导教师签名:
年月日
论文题目:
基于Android平台的中国象棋人机对弈游戏开发
专业:
电子信息科学与技术
学生:
签名:
__________
指导教师:
张龙妹签名:
__________
摘要
随着生活节奏的加快,智能手机的发展,人们在智能手机上进行娱乐的机会越来越多,这在一定程度上推动了手机游戏的发展。
Android是开放性体系架构,不仅具有非常好的开发、调试环境,而且还支持各种可扩展的用户体验,包括丰富的图形组件、多媒体支持功能以及强大的浏览器。
因此,对于软件从业人员来说,Android平台具有无限的吸引力。
本文研究和分析了Android平台下的中国象棋的相关技术,设计和实现了基于Android平台的中国象棋人机对弈游戏。
并对游戏的运行情况进行了测试,测试结果表明,游戏移植到手机上运行良好,基本符合设计初衷。
通过本论文的设计和实现,掌握了Android平台下游戏开发的相关技术和设计流程,为以后从事进一步的研究和软件开发工作奠定了基础。
【关键词】Android,中国象棋,人机对弈,游戏开发
【论文类型】应用
Title:
DesignofChineseChessGameBasedonAndroidplatform
Major:
Electronicinformationscienceandtechnology
Name:
Signature____________
Supervisor:
ZhangLongmeiSignature____________
ABSTRACT
Withthepaceoflifeaccelerated,thedevelopmentofsmartphones,people'sentertainmentonthesmartphonemoreandmoreopportunities,whichtosomeextent,promotethedevelopmentofmobilegames.Androidisanopenarchitecture,notonlyhasaverygooddevelopinganddebuggingenvironment,butalsosupportavarietyofscalableuserexperience,includingrichgraphicalcomponents,multimediasupport,andpowerfulbrowser.Thus,forsoftwarepractitioners,theAndroidplatformhasunlimitedappeal.Inthispaper,westudyandanalyzethetechnologyrelatedtotheAndroidplatformundertheChinesechess,thedesignandimplementationoftheAndroidplatformbasedonChinesechessman-machinechessgame.Andtheoperationofthegamewastested,thetestresultsshowthatthegameisportedtothemobilephone,thebasicaccordwiththedesignintention.Throughthedesignandimplementationofthispaper,therelevanttechnologyanddesignprocessofthegamedevelopmentoftheAndroidplatformaremastered,whichlaysthefoundationforthefurtherresearchandsoftwaredevelopment.
【Keywords】Android;Chinesechess;human-computerinteraction;gamedesign
【Typeofthesis】Applicationdesign
目录
第一章绪论1
1.1研究背景1
1.1.1中国象棋的历史起源1
1.1.2国内外研究现状1
1.1.3Android系统的优势2
1.1.4手机游戏的发展趋势3
1.2研究意义5
1.3研究内容6
1.4论文结构6
第二章游戏开发相关技术概述7
2.1Android开发平台简介7
2.2Android的体系结构7
2.2.1应用程序层7
2.2.2应用程序框架层8
2.2.3Android运行时库8
2.2.4Linux内核9
2.3Android的四大组件9
2.4Java语言概述10
2.4.1Java语言特点10
2.4.2Java的应用领域11
2.4.3Java程序的运行过程11
第三章基于Android平台的中国象棋人机对弈游戏设计12
3.1中国象棋需求分析12
3.2中国象棋规则设计12
3.2.1棋盘12
3.2.2棋子13
3.2.3走棋13
3.2.4吃棋17
3.2.5判定胜负17
3.3类框架的设计17
3.4主要模块设计19
3.5游戏流程设计20
第四章基于Android平台的中国象棋人机对弈游戏实现21
4.1Android开发环境的搭建21
4.2游戏的策划21
4.3计算机博弈系统的构成22
4.3.1数据结构22
4.3.2着法生成23
4.3.3局面评估24
4.3.4搜索算法24
4.4各个类的实现24
4.4.1公共类的实现24
4.4.2辅助界面类的实现25
4.4.3游戏界面相关类的实现27
4.4.4象棋规则类的实现28
4.5游戏的运行及测试30
第五章总结及展望32
5.1论文总结32
5.2问题与展望32
致谢33
参考文献34
第一章绪论
1.1研究背景
1.1.1中国象棋的历史起源
中国象棋具有悠久的历史。
战国时期,已经有了关于象棋的正式记载,如:
《楚辞·招魂》中有“蓖蔽象棋,有六簿些;分曹并进,遒相迫些;成枭而牟,呼五白些”。
由此可见,远在战国时代,象棋已在贵族阶层中流行开来了。
早期的象棋,棋制由棋、箸、局等三种器具组成。
两方行棋,每方六子,分别为:
枭、卢、雉、犊、塞(二枚)。
棋子用象牙雕刻而成。
春秋战国时的兵制,以五人为伍,设伍长一人,共六人,当时作为军事训练的足球游戏,也是每方六人。
由此可见,早期的象棋,是象征当时战斗的一种游戏。
秦汉时期,塞戏颇为盛行。
从湖北云梦西汉墓出土的塞戏棋盘和甘肃武威磨嘴子汉墓出土的彩绘木俑塞戏,可以映证汉代边韶《赋》中对塞戏形制的描写。
三国时期,象棋的形制不断地变化,并已和印度有了传播关系。
至南北朝时期的北周朝代,标志着象棋形制第二次大改革的完成。
隋唐时期,象棋活动稳步开展,史籍上屡见记载。
唐代的象棋形制,和早期的国际象棋颇多相似之处。
当时象棋的流行情况,从诗文传奇中诸多记载中,都可略见一斑。
宋代是象棋广泛流行,形制大变革的时代。
经过近百年的实践,象棋于北宋末定型成近代模式:
32枚棋子,有河界的棋盘,将在九宫之中等等。
南宋时期,象棋“家喻户晓”,成为流行极为广泛的棋艺活动。
元明清时期,象棋继续在民间流行,技术水平不断得以提高,大批著名棋手的涌现,显示了象棋受到社会各阶层民众喜爱的状况。
新中国建立之后,象棋进入了一个崭新的发展阶段。
1956年,象棋成为国家体育项目。
以后,几乎每年都举行全国性的比赛。
1962年成立了中华全国体育总会的下属组织──中国象棋协会,各地相应建立了下属协会机构。
40多年来,由于群众性棋类活动和比赛的推动,象棋棋艺水平提高得很快,优秀棋手不断涌现,其中以杨官璘、胡荣华、柳大华等最为著名。
1.1.2国内外研究现状
机器棋类博弈的研究最早始于国际象棋,著名数学家,信息论创始人香农,于1950年提出了国际象棋程序编写的原则方法,给出了构建博弈程序的理论依据。
他提出以函数评价来评价局面的优劣,把思维结果进行了量化,用简化的估计方法用以剔除次要的变化。
1958年,IBM704成为第一台能同人下棋的计算机,计算速度每秒200步。
1973年,B.SlateandAtkin开发出来的CHESS4.0成为未来程序的基础。
1979年,国际象棋软件4.9达到专家级水平。
1983年,KenThompson开发了国际象棋硬件BELLE,达到了大师水平。
1997年,卡内基梅隆大学的“深蓝”小组研究开发出“更深的蓝”,挑战人类大师。
“超级深蓝”击败了棋王卡斯帕罗夫。
成为人工智能历史上里程碑式的事件。
2005年7月,在超级计算机Hydra与国际象棋大师、英国象棋冠军迈克尔·亚当斯对决中,电脑以5.5:
0.5大获全胜。
至此,从最初人类完全胜过机器到如今的电脑可以击败99.999%人类棋手,电脑的博弈水平迅速上升。
和国际象棋相比,中国象棋机器博弈起步比较晚,八十年代才开始。
1981年张耀腾发表的《人造智慧在电脑象棋上的应用》,是第一篇研究中国象棋机器博弈的文章。
他以残局做实验,提出审局函数为静态子力值,棋子位置值,棋子灵活度值,威胁与保护等四项之和。
1982年廖嘉成发表的《利用计算机象棋的实验》又进了一步。
他发表的硕士论文《利用计算机下象棋之实验》研究了开局、中局和残局三个对弈阶段,并实现了一个比较完备的中国象棋人机对弈程序。
该程序在复杂的开局阶段采用了棋谱信息库但预存的着法很少;中局编写了审局函数并且采用了棋子路径搜索法。
他实现的中国象棋程序已经具备了一定的智能。
现在的中国象棋软件普遍采用了这种针对不同的对局阶段进行不同处理的主要思想。
1985年,对计算机中国象棋博弈的全面探索开始,中国计算机象棋之父台湾大学的许舜钦教授在《电脑对局的搜寻技巧》一文中整理了国外从40年代初冯·诺依曼和Morgenstern一起提出的极大-极小搜索算法到90年代初为止提出的全部算法,而且他还结合中国象棋自身的特点对其进行了细致的剖析。
同一年他在《电脑象棋的盲点解析》一文中更是从“审局函数偏差”和“搜寻深度不足”这两个方面对计算机象棋搜索算法的七种误区进行了详细地论述。
他的研究也极大地推动和指导了计算机中国象棋博弈的发展。
九十年代后,中国象棋计算机博弈逐渐发展起来,人们研究出了各种博弈软件。
1.1.3Android系统的优势
Android平台具有以下5大优势:
1)开放性
其开放性包含底层的操作系统以及上层的应用程序等。
这样会使大量的程序开发人员投入到Android程序的开发中,这将为Android平台带来大量的应用程序。
2)挣脱运营商的束缚
3)丰富的硬件选择
由于平台的开放,众多的硬件制造商推出了各种各样的产品,但这些产品功能上的差异并不影响数据的同步和软件的兼容。
4)不受任何限制的开发商
Android平台为开发人员提供了大量实用库及方便的工具,只需简单的几行代码调用代码即可将强大的功能添加到自己的程序中。
5)无缝结合的Google应用
开发人员可以很轻松的将自己开发的程序和其它应用程序进行交互。
比如应用程序需要播放声音的模块,你的手机正好有一个比较成熟的音乐播放器,就不需要再重复开发音乐播放功能。
1.1.4手机游戏的发展趋势
如果将2013年比作手游元年的话,经历了2014年的疯狂增长,整个手游已经开始趋于理性,2015年不可避免的进入大面积的洗牌期。
现今为止,整个移动互联网市场活跃移动设备已经突破9亿台,市场已从增量市场进入存量市场,人口红利已经消失,手游的进入门槛和开发成本将大幅提高。
1)手游的玩法将更呈多样化
2015年将是手游市场走向更加成熟的一年,市场走向成熟的标志在于细分市场的逐步完善。
从图1-1各类游戏数量占比可以看出,卡牌和休闲益智类游戏虽然占比依旧较高,但与其他类型游戏的差异已不太明显,手游市场已呈现玩法的多样化。
图1-1各类游戏数量占比图
2)重度手游有较大的增长空间
从图1-2及1-3可以看出,14年下半年重度手游有明显的增长趋势。
特别是伴随IP的爆发,设备以及网络环境的升级,未来15年重度手游还有明显的机会可以挖掘。
重度游戏相对轻度休闲游戏,游戏的内容更加丰富,玩家更为成熟,付费意愿更为明显,因此15年很可能迎来重度高付费玩家的集中爆发,重度游戏的市场占比将进一步上升。
图1-22014年上新游戏大类分布图
图1-32014年前100游戏中度和重度分布比
3)手游的时间碎片化特征已不再明显
图1-4手机游戏的日均使用时长
从图1-4可以看出,伴随游戏内容的重度化,手游玩家游戏时间碎片化现象越来越不明显。
日均使用时长大于30min的玩家达39%,日均使用次数超过5次的玩家达53%。
手游玩家对单款游戏的粘度越来越高,主要由于动作竞技及角色扮演类游戏崛起,手游产业逐渐从轻中度游戏转向中重度游戏。
4)针对年轻女性玩家群体的机会巨大
图1-5手机游戏玩家的年龄比例和性别比例
从图1-5可以看出,男性手游玩家多于女性,但女性玩家约占40%,相比端游、页游中男女玩家比例失调的现象,手游中男女比例表现较为均衡。
62%的手游活跃玩家年龄是16-30岁之间,成为手游玩家中的主要力量。
2015年针对年轻女性玩家的手游将会是市场的一个爆发点。
目前来看年轻女性群体庞大,但真正针对这一人群的游戏却极度匮乏。
2015年整体来说手游市场竞争将更加激烈,但是手游增长势头依旧强劲,预计仍将保持20%的增速。
未来手游在整个游戏市场的份额还会持续上升,打破端游的主体地位,但竞争会更加激烈。
从产业链角度来看,单一发行的角色越来越少,未来更多的会采用研运一体的方式,数据化的运营能力至关重要。
设备、网络的变迁也导致了玩家体验游戏的场景变化,分发形态的变化,端游的一些重度高付费玩家逐步开始向移动端迁移,这些都蕴藏巨大的机会,所以锐意创新才是真正决胜的关键。
1.2研究意义
以往的博弈程序的研究大多集中在理论的研究层面,一般都是单一的理论点的深入。
而本论文将以理论结合实际,以工程化的方法来实现理论与实践的转化,着重于游戏架构的整体把握和关键技术的选取,通过论文研究可以了解人机对弈程序各个方面的实现细节。
同时通过对象棋程序整体界面的设计,棋子和棋盘的表示,走子算法的研究等软件设计,深刻的体会到软件设计的思想在程序设计当中的重要性,对本人今后工作方面有具体而且深刻的指导意义。
它的实际意义在于,使读者可以了解中国象棋的设计与实现细节。
用户在工作之余如乘坐公车、地铁以及候机等场合进行一些有意义的娱乐活动。
同时由于博弈程序的水平普遍高于普通用户,所以用户在游戏过程中,棋艺可以得到很大的提高。
1.3研究内容
论文研究是基于Android开发平台开发一款传统的中国象棋人机对弈游戏,能够移植到手机上供人娱乐,同时要具有良好的声音和视觉效果。
本文分析了机器博弈的主体思想,深入了解并掌握了人机对战象棋游戏程序的编写思路。
研究了象棋走棋智能化的相关算法,给出了设计系统相关类的架构和功能描述。
1.4论文结构
本文总共分为五章,论文的主要结构如下所示:
第一章是绪论。
主要介绍了中国象棋人机对弈游戏的研究背景、意义和国内外研究现状,并给出了论文主要的研究内容和论文结构。
第二章是游戏开发平台相关技术的概述。
主要介绍了Android开发平台、体系结构、四大组件以及Java语言的基础知识,简述了游戏开发中要用的相关技术。
第三章是基于Android平台的中国象棋人机对弈游戏的设计。
主要介绍了中国象棋的需求分析、规则设计、各个类框架的设计、主要模块的设计。
第四章是基于Android平台的中国象棋人机对弈游戏的实现。
主要介绍了Android开发环境的搭建、游戏的策划、计算机博弈系统的构成以及各个类的实现、游戏的运行及测试过程。
并根据游戏测试结果进行分析。
第五章对论文研究进行了总结与展望。
总结了本文完成的所有工作,对已完成的工作内容进行反思,指出目前的不足。
第二章游戏开发相关技术概述
2.1Android开发平台简介
Android是Google公司于2007年11月5日发布的基于Linux内核的移动平台,该平台由应用软件、操作系统、中间件、用户界面组成,是一个真正开放的移动开发平台。
并且在这天谷歌宣布建立一个全球性的联盟组织,该组织由34家手机制造商、软件开发商、电信运营商以及芯片制造商共同组成,并与84家硬件制造商、软件开发商及电信营运商组成开放手持设备联盟(OpenHandsetAlliance)来共同研发改良Android系统,这一联盟将支持谷歌发布的手机操作系统以及应用软件,Google以Apache免费开源许可证的授权方式,发布了Android的源代码。
2.2Android的体系结构
图2-1Android体系架构图
从软件分层的角度来说,Android平台有应用程序、应用程序框架、Android运行时库层以及Linux内核共4部分组成,本节将分别介绍各层的功能,分层结构如图2-1所示。
2.2.1应用程序层
本层所有的应用程序都是用Java编写的,一般情况下,很多应用程序都是在同一系列的核心应用程序包中一起发布的,主要有拨号程序、通讯录、浏览器、音乐播放器等。
该层的程序是完全平等的,开发人员可以任意将Android自带的程序替换成自己的应用程序。
2.2.2应用程序框架层(ApplicationFramework)
对于开发人员来说,接触最多的就是应用程序框架层。
该应用程序的框架设计简化了组件的重用,其中任何一个应用程序都可以发布其功能供其它应用程序调用,这也使用户可以很方便地替换程序的组件而不影响其他模块的使用。
当然,这种替换需要遵循框架的安全性限制。
该层主要包含以下9部分
●活动管理(ActivityManager)。
用来管理程序的生命周期,以及提供最常用的导航回退功能。
●窗口管理(WindowManager)。
用来管理所有的应用程序窗口。
●内容供应商(ContentProviders)。
通过内容供应商,可以使一个应用程序访问另一个应用程序的数据,或者共享数据。
●视图系统(ViewSystem)。
用来构建应用程序的基本组件,包括列表、按钮、网格、文本框,甚至是可嵌入的Web浏览器。
●包管理(PackageManager):
用来管理Android系统内的程序。
●电话管理(TelephonyManager)。
所有的移动设备的功能统一归电话管理器管理。
●资源管理(ResouceManager)。
资源管理器可以为应用程序提供所需要的资源,包括图片、声音、文本、本地字符串,甚至是布局文件。
●位置管理(LocationManager)。
该管理其使用来提供位置服务的,如GPRS定位等。
●通知管理(NotificationManager)。
主要对手机顶部状态栏的管理,开发人员在开发Android程序时会经常使用,如来短信提示、电量低提示,还有后台运行程序的提示等。
2.2.3Android运行时库(Libraries)
该层包含两部分,程序及Android运行时库。
程序库能被Android系统中不同的应用程序调用,并通过应用程序框架为开发者提供服务。
而Android运行时库包含了Java编程语言核心库的大部分功能,提供了程序运行时所需调用的功能函数。
程序库主要包含的功能库
●Libc。
是一个从BSD继承来的标准C系统函数库,专门针对移动设备优化过的。
●Mediaframework。
基于packetvideo公司的openCORE。
支持多种常用音频、视频格式回放和录制,并支持多种图像文件,如MPEG-4、H.264、MP3、AAC、AMR、JPG、PNG等。
●SurfaceManager。
SurfaceManager主要管理多个应用程序同时执行时,各个程序之间的显示与存取,并且为多个应用程序提供了2D和3D图层无缝的融合。
●SQLite。
所有应用程序都可以使用的轻量级关系型数据库引擎。
●WebKit。
是一套最新的网页浏览器引擎。
同时支持Android浏览器和一个可嵌入的Web视图。
●OpenGLIES。
是基于OpenGLIES1.0API标准来实现的3D绘制函数库。
该函数库支持软件和硬件两种加速方式执行。
●FreeType。
提供位图(bitmap)和矢量图(vector)两种字体显示。
●SGL。
提供了2D图形绘制的引擎。
Android运行时库包括核心库及Dalivik虚拟机。
●核心库(CoreLibraries)。
该核心库包括Java语言所需要的基本函数以及Android的核心库。
与标准Java不一样的是,系统为每个Android的应用程序提供了单独的Dalvik虚拟机来执行,即每个应用程序拥有自己单独的线程。
●Dalvik虚拟机(DalvikVitualMachine)。
大多数虚拟机都是基于栈的,而Dalvik虚拟机是基于寄存器的,它可以支持以转换为.dex格式的Java的应用程序的运行.dex格式是专门为Dalvik虚拟机设计的,更适合内存和处理器速度有限的系统。
2.2.4Linux内核
Android平台中操作系统采用的是Linux2.6内核,其安全性、内存管理、进程管理、网络协议层和驱动模型等基本依赖于Linux。
对于程序开发人员,该层为软件与硬件之间增加了一层抽象层,使开发过程中不必时时考虑底层硬件的细节。
而对于手机开发商而言,对此层进行相应的修改即可将Android平台运行到自己的硬件平台之上[16]。
2.3Android的四大组件
Android应用程序的基本组件分别是Activity、Service和ContentProvider,BroadcastRe
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Android 平台 中国象棋 人机 对弈 游戏 开发 论文
![提示](https://static.bdocx.com/images/bang_tan.gif)