ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:2MB ,
资源ID:19677384      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19677384.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于安卓的斗地主游戏课程设计文档格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于安卓的斗地主游戏课程设计文档格式.docx

1、在程序里可以用到的绘图功能分为2D与3D两个方面。在2D方面,Android提供了一套特有的类库(SGL;而在3D方面则是使用OpenGLES1.0(openGL for Embedded systems)规范的类库。它们是一种非常快的图形引擎,并且支持硬件加速。(4) SQLite数据库SQLite提供结构化的数据存取。SQLite是一款轻型的数据库,它的设计目标是嵌入式的,目前已经在很多嵌入式产品使用了它,它占用的资源非常低。它能够支持Windows/Linux/Unix等主流的操作系统,同时能够跟很多程序语言相结合,比如php,Java等,还有ODBC接口,同样比起Mysql,Postg

2、reSQL来讲,它的处理速度比它们都快。它无需安装和管理配置,它是一个储存在单一磁盘文件中的完整数据库,体积小,虽只有250KB但支持数据库大小至2TB。它虽然很小巧,但是支持的SQL语句毫不逊色于其它开源数据库。同时它还支持事务功能和并发处理等等。SQLite也是一套开放性的关联式资料库,其特点在于轻量性方面的设计结构,更适合在手机上使用。(5)多媒体的支持能力主要用于播放媒体文件。这同时包括对音频(如播放MP3或其他音乐文件等)和视频(如播放从网上下载的视频)的支持,并支持“播放URI地址”(Note: URI即是统一资源识别地址)模式,即在网络上直接播放的流媒体。另外支持各种通用的静态图

3、像格式,例如:JPG、PNG、GIF等格式。1.3 斗地主游戏简介(1)斗地主游戏的起源斗地主起源于湖北,据传是一位叫吴修全的年轻人,根据当地流行的扑克玩法“跑的快”改编的。斗地主玩法简单,娱乐性强,老少皆宜,如今已风靡整个中国,并流行于互联网上。四人斗地主的规则是由中国象棋棋王胡荣华总结和定型的,92181棋牌更是多次用这套规则举行网络斗地主比赛,上海也曾经用这套规则举办过多次电视转播的群众比赛。斗地主对抗性和配合性都很强。该游戏由三个人玩(四人也能玩),用一副牌共54 张牌。每局牌有一个玩家是“地主”,地主为一方,其余两家农民为另一方,双方对战,地主的目标是(以合法的出牌方式)先出完手里所

4、有的牌,而农民的目标是在地主出完牌以前,先出完手里所有的牌。先出完牌的人所代表的一方获胜。斗地主属于基础类扑克游戏的范畴。斗地主后期又增加了网络斗地主,纳入了比赛制,已竞技为中心。如:淘汰赛制、循环赛制、双败淘汰赛制、积分晋级赛制、分组出线赛制、打立出局赛制、瑞士移位赛制、复活赛制等。(2)斗地主规则游戏被运行时,首先生成三方玩家,然后游戏开始发牌,并规定该局首先叫牌者,使之进入叫牌状态。最终叫到地主的客户端必须首先出牌。玩家的任何动作必须调用规则控制接口。当接口返回动作合法的结果时,玩家才能做出所请示的动作(实际上只是显示动作的结果,因为接口已经处理了该动作,在发送许可的同时发送了处理结果)

5、。否则,接口返回拒绝消息,玩家则显示有关错误信息。电脑玩家根据牌局生成出牌方案,然后返回数据,并执行相应的显示与相关的游戏设置。发牌:一副牌54张,一人17张,留3张做底牌,在确定地主之前玩家不能看底牌。叫牌:玩家有且只有一次“抢地主”的机会。玩家选择“抢地主”后,如果没有其他玩家继续“抢地主”则地主权利属于该名“抢地主”的玩家。上牌:有人出牌后,其他玩家按逆时针顺序依次跟牌。轮到玩家跟牌时,可选择不跟,或者用比所出的牌大的牌套管住,称为上牌。过牌:对前面人出的牌不跟,称为过牌。一轮结束:一轮牌中当某玩家出牌后,其余两位玩家不再跟牌时,此轮结束。下一轮牌由该玩家先发牌。一局结束:当一玩家手中的

6、牌全部打光时,一局牌结束,开始定胜负。判断胜负:如果地主第一个出完牌,地主赢;否则,地主输。二、开发工具与环境2.1 JAVA集成开发环境eclipseEclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。虽然大多数用户很乐于将 Eclipse 当作 Java 集成开发环境(IDE)来使用,但 Eclipse 的目标却不仅限于此。Eclipse 还包括插件开发环境(Plug-in Devel

7、opment Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。这种平等和一致性并不仅限于 Java 开发工具。尽管 Eclipse 是使用Java语言开发的,但它的用途并不限于 Java 语言; Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础。2.2 eclipse下安卓环境的搭建Android是Google于2

8、007年11月5日宣布的基于Linux平台的开源手机操作系统的名称。目前已经有2亿激活的android设备,而且每天正以55万部新设备的速度激增,并在在全世界137个国家和地区获得使用。该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。可以把它简单理解成Linux上套了一个JAVA的壳。为了使得Android应用的创建,运行和调试更加方便快捷,本文即将使用Eclipse IDE作为Android应用的开发的环境。1安装Java开发包与Eclipse集成开发环境JDK(Java Development Kit,Java开发包)是一个写Java的

9、applet和应用程序的程序开发环境。确认已经安装了JAVA JDK,他是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库,本文要求JDK的版本在5.0以上。Eclipse是一个开放源代码的、基于JAVA的可扩展开发平台。就其本身来说,它只是一个框架和服务,用于通过插件组件构建开发环境。将Eclipse由压缩包中解压到相关目录即可使用。2. 安装Android开发工具(ADT)Android的开发团队专门针对Eclipse集成环境定制了一个插件:ADT(Android Development Tools)。在Eclipse编译IDE环境中,安装ADT,为Androi

10、d开发提供开发工具的升级或者变更,简单理解为在Eclipse下开发工具的升级下载工具。启动Eclipse,选择HelpInstall New Software,在出现的对话框里,点击Add按钮,在对话框name一栏输入”ADT”,然后点击Archive,浏览和选择已经下载的ADT插件压缩文件。点击OK,返回可用软件的视图,你会看到这个插件,然后选择Developer Tools,点击Next,最后重启Eclipse。当进入Eclipse后,工具栏出现图标 ,即知ADT插件已经安装成功。3. 安装Android软件开发工具包(SDK)SDK(Software Development Kit)一般

11、是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。在Android中,它为开发者提供了运行android程序的库文件和运行android程序的所需要的环境,及其开发所要用到的工具。因此可以将android sdk简单理解为开发工具包集合,是整体开发中所用到的工具包,如果你不用Eclipse作为你的开发工具,你就不需要下载ADT,只下载SDK即可开发。SDK开发的API代码与其对应的安卓版本。下载完Android SDK后,把.zip文件解压到你电脑上合适位置。启动Eclipse,选择window-preference,在打开的视图,选择andro

12、id一项,即弹出SDK Location选项,在这里填入android sdk解压包的位置,选择相应的android开发版本,点击apply即可。2.3 Android权限的获取Android安全中的一个重要的设计点是在默认情况下应用程序没有权限执行对其它应用程序、操作系统或用户的有害操作。这些操作包括读/写用户的隐私数据(例如联系方式或(e-mail),执行网络访问,保持设备Activity,等等。应用程序的进程是一个安全的黑盒子,它不能干扰其它应用程序,除非给它声明权限,现对权限的命名和获取问题做下说明6。(1)权限命名一个基本的Android应用程序没有与其相关联的权限,意味着它不能做任

13、何影响用户体验或设备中数据的有害操作。在应用程序需要时,可在AndroidManifest.xml文件中列举一个或更多的标签来声明此权限。(2)在AndroidManifest.xml文件中支持权限通过AndroidManifest.xml文件可以设置高级权限,用来限制访问组件或应用程序。所以如果要访问某组件,需要在这个文件里声明一个权限,现对跟本系统有关的组件权限做以下说明。Activity权限(使用标签)限制能够启动与Activity权限相关联的组件或应用程序。此权限在Context.startActivity()和Activity.startActivityForResult期间要经过检

14、查;如果调用者没有请求权限,那么会为调用抛出一个安全异常。BroadcastReceiver权限(使用标签)限制能够为相关联的接收器发送广播的组件或应用程序。在Context.sendBroadcast()期间,此权限将被检查,同时系统设法将广播递送至相关接收器。因此,权限失败将会导致抛回给调用者一个异常。2.4 Android用户界面构建Android生成用户界面有三种方式:xml配置生成、通过用户自己的界面接口生成和直接用代码生成。对于一个Activity应用来说,android.app.Activity类是一个最基本的功能单元。一个Activity实例可以做很多的事情,但是它本身无法显示

15、在屏幕上,而是借助于View group和View,这两个是Android平台上最基本的两个用户界面表达单元。下面介绍下主要的布局对象:线性布局(Linear Layout):以单一方向对其中的显示对象进行排列显示。如以垂直排列显示,则布局管理器中将只有一列;如以水平排列显示,则布局管理器中将只有一行。同时,还可以对个别的显示对象设置显示比例2。表格布局(Table Layout):以拥有任意行列的表格对显示对象进行布局,每个显示对象被分配到各自的单元格之中,但单元格的边框线不可见。绝对布局(Absolute Layout):允许以坐标的方式,指定显示对象的具体位置,左上角的坐标为(0,0),

16、向下及向右,坐标值变大。这种布局管理器由于对象的位置固定了,所以在不同的设备上,有可能会出现不一样的显示效果。相对布局(Relative Layout):允许通过指定显示对象相对于其它显示对象或父级对象的相对位置来布局。一个按钮可以放于另一个按钮的右边,或者可以放在布局管理器的中央。对于Android应用中的一个屏幕,它的屏幕元素是按层次结构来描述的。要将一个屏幕元素层次树绑定在一个屏幕上显示,Activity会调用它的setContentView()方法并且传入这个层次树的根节点引用。三、系统需求分析3.1 需求分析需求分析阶段的工作,可以分为四个方面:问题识别,分析与综合,制订规格说明,评

17、审。(1)问题识别:就是从系统角度来理解软件,确定对所开发系统的综合要求,并提出这些需求的实现条件,以及需求应该达到的标准.这些需求包括:功能需求(做什么),性能需求(要达到什么指标),环境需求(如机型,操作系统等),可靠性需求(不发生故障的概率),安全保密需求,用户界面需求,资源使用需求(软件运行是所需的内存,CPU等),软件成本消耗与开发进度需求,预先估计以后系统可能达到的目标。(2)分析与综合:逐步细化所有的软件功能,找出系统各元素间的联系,接口特性和设计上的限制,分析他们是否满足需求,剔除不合理部分,增加需要部分。最后,综合成系统的解决方案,给出要开发的系统的详细逻辑模型(做什么的模型

18、)。(3)制订规格说明书:即编制文档,描述需求的文档称为软件需求规格说明书。注意需求分析阶段的成果是需求规格说明书,向下一阶段提交。(4)评审:对功能的正确性,完整性和清晰性,以及其它需求给予评价。评审通过才可进行下一阶段的工作,否则重新进行需求分析。3.2 可行性分析可行性研究是为了弄清楚系统开发的项目是不是可以实现和值得进行研究的过程,实际上是一次大大简化系统分析和系统设计的过程,所以,进行可执行性的分析是非常必要的,也是很重要的,经过最初的设计目标和进行的实时调查得出以下三点的可行性分析:(1)技术可行性:Eclipse + Android ADT的技术已经较为成熟,通过SUN公司(现被

19、ORCEL公司收购)推出的跨平台、动态的JAVA语言进行开发。(2)运行可行性:该系统需要Android虚拟机环境,Eclipse中安装ADT,DDMS等Google Android相关插件。其运行环境已经相当稳定,它功能丰富,包括了完备的Android程序的编码、调试、测试和发布功能,其中支持所有Android应用开发相关技术,包括SQLite,Skia,3D制作,Android XML,能够很好的发布Android的应用程序APK包。(3)法律可行性:因为是自主开发设计,所以不会构成侵权,在法律上是可行的。通过以上的可行性分析,将采用Eclipse+Android ADT + DDMS技术

20、,运用JAVA语言进行系统的开发。3.3 系统定义本游戏是斗地主游戏(Android版),是根据湖北地区民间的盛行的扑克牌游戏斗地主,融合最新的移动平台Android的特点和管理需要,推出的体现当前行业最具有代表意义的解决方案。作为面向广大用户网络游戏,主要用于提供斗地主的游戏平台,提供发牌、叫牌、出牌、胜负判定等主要功能。用户动作信息录入功能输入。系统信息显示功能输出。我的整个游戏开发流程如图:图3.1 Android斗地主游戏开发流程四、系统总体设计4.1创建Android应用实例要创建一个Android应用实例,按如下步骤操作:1新建项目:打开Eclipse,选择FileNewProje

21、ctAndroid Project;2依次输入工程的项目名称,所要使用的android平台,点击finish即可完成工程的创建。随后编辑我们所要编写的java文件;3随后运行android项目,选择菜单:Run-Run,在对话框中选择Android Application,点击OK即可。4.2模块设计(1)游戏规则的实现通过封装相应的类来实现规则。类card :卡片类(牌),数据成员为花色(color),牌面(value),数目(num),存在标志(exist)。枚举colors :包括方块,梅花,红心,黑桃,小鬼,大鬼总共六种花色。结构体comb :内含头头是单,双,三顺,炸弹,火箭等所有牌

22、型的标记位。类player :玩家类,数据成员:玩家靓号(m_strplayerID),个性签名(m_strName),登陆密码(m_strPassword)等。类playingCards :游戏规则类,数据成员:玩家数目(numPlayers),有牌数目(numCards),每个玩家有牌数目(cardsEach)等。成员函数:游戏初始化initgame(),洗牌suffle(),发牌sendCards()叫地主candlander(int seat,int point),出牌outcards(player &ThisPlayer)等等。Card是游戏的对象,一般而言,特定的游戏都有特定的游戏

23、对象。Colors,comb都是根据需要,对card 的补充。Colors 是各个 牌的花色共有6种,后两种是小鬼(Bjoke)大鬼(Rjoke),不用于其他牌。Comb是combo的意思,指牌的类型。在斗地主中,牌型有单牌 ,顺子,对子, 3带*, 4带*,炸弹,火箭等。Player是玩家在服务器中的一个映射,玩家的任何动作都由它代为完成,然后将结果返回给服务器的相关内存。playingCards 充分利用以上几个类的对象,一副牌的规则进行了模拟实现,做到了一样。并且加上了方法。封装起来,外界通过类的对象,只要调用它的方法,就可以实施对玩家出牌 的合法性判断,并做相关结果的存储工作。(2)游

24、戏平台的实现:对话框CdisplayflashDlg :客户端游戏界面,内含与flash UI通信的接口。数据成员:积分 m_nintegral,剩牌数目m_nsparecards 座位号m_norder_seats,放弃动作m_nPass,手上的牌m_strpcards 选择的牌m_strselectcards,合法牌m_stroutcards等等。接收数据OnReceive(),关闭 OnClose()等。在客户端,只通过接收机制判断命令是否针对自己,若是,则执行之,显示服务器处理结果。否则,不执行,只获取当前玩家状态。该接收机制就是OnReceive方法。它通过switch()-case

25、 机制区分不同的消息;通过msg.InfoAbout和m_norder_seats来判断消息中的指令是否针对自己发出的。4.3总体设计(1)本次课程设计基于Android应用平台进行设计的,其目的是设计出一个三人斗地主程序;设计过程中可以把程序分为3部分。第一部分是界面;第二部分是游戏内核,用来计算是否可以出牌,由谁出牌,比较所出牌的大小,游戏是否结束等;第三部分是网络部分。图4.1斗地主游戏综合设计图(2)其系统流程图如下图所示:图4.2系统流程图五、系统详细设计详细设计是整个设计过程中,最重要的步骤之一。本系统的功能主要分成两大模块:服务器端和客户端。 每个模块有可以分成几个子模块。下面分

26、几个部分对各个模块进行详细设计:数据接收功能,显示信息功能,数据捕获功能,合法性判断功能,游戏退出功能。5.1 洗牌及发牌模块设计(1)游戏开始对洗牌和发牌部分进行操作。部分代码如下: public void washCards() /洗牌 /打乱顺序 for(int i=0;i100;i+) Random random=new Random(); int a=random.nextInt(54); int b=random.nextInt(54); Card k=carda; carda=cardb; cardb=k; public void handCards()/开始发牌 int t=0

27、;3; playerListi=new Vector();54;i+) if(i50)/地主牌 /放置地主牌 cardi.setLocation(screen_width/2-(3*i-155)*cardWidth/2,0); dizhuList.add(cardi); update(); continue; switch (t+)%3) case 0:/左边玩家 cardi.setLocation(cardWidth/2,cardHeight/2+i*cardHeight/21); playerList0.add(cardi); break; case 1:/我cardi.setLocation(screen_width/2-(9-i/3)*cardWidth*2/3,screen_height-cardHeight); cardi.rear=false;/翻开 playerList1.add(cardi); bre

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1