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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

蜘蛛纸牌游戏设计 计算机科学与技术毕业论文Word格式.docx

1、休闲游戏的种类很多,但是最为人们所熟知的应该就是Windows系统中的蜘蛛纸牌游戏了。它非常的简单上手也很快,不需要长时间进行,随时都可以停止游戏,而且有较高的娱乐性。1.2 游戏的背景蜘蛛纸牌游戏是一款粉丝众多的休闲娱乐小游戏,Oberon Games对该游戏进行开发,并由微软公司在2010年发行。而且在Windows ME以及更高级的版本中该游戏都是系统自带的游戏。随着科学技术的不断发展游戏的功能开始变得越来越强大,界面变得越来越美观,用户体验也变的更加美好,是大家在休闲时玩的最佳益智小游戏。游戏的主要目的是能够通过移动次数最少的情况下,将玩牌区的扑克牌全部进行移走,这样就获得了胜利。1.

2、3 国内外研究现状2在当前科技和大数据的发展之下,休闲娱乐市场也进入了白热化的竞争程度,尤其是以棋牌为代表的小游戏,当前市场前景非常巨大,让众多的游戏开发公司加入进来,业态竞争相当激烈。在市场竞争非常激烈的情况下,各个公司为了在市场中脱颖而出,他们对于游戏内容不断丰富,对于界面不断进行优化,在很大程度上推动了产业的快速发展,也让产品更加的丰富起来。之后众多的棋牌了小游戏便层出不穷,使得本就激烈的竞争更加惨烈。很多公司都在不断推陈出新,而且游戏数量也在不断增加,同时也在不断丰富游戏内容,实现的功能也越来越多。游戏平台抗压能力和稳定性等也都显著增强;由于各大公司的努力游戏可玩性也在不断增加等等。蜘

3、蛛纸牌游戏是典型的两副牌游戏。所有传统的休闲游戏中玩家最为熟知的应该就是Windows ME以及更高级的版本中系统自带的游戏。当前市面来看,很多蜘蛛纸牌游戏都是Windows ME以及更高级的版本中自带的游戏版本进行开发的,比如手机端的游戏就是典型的代表。1.4 工作内容主要工作包括了资料的收集与准备,参考资料的提炼与汇总,查看书籍以及掌握必要的开发工具,安装编辑软件Eclipse,了解开发程序的工具。首先,确定游戏程序实施的具体方案。其次设计程序的具体流程图,然后编写程序,修改并完善程序。最后系统调试、测试,优化处理,产生产品。本论文设计对游戏功能进行了基本实现:包括游戏开局、游戏发牌、级别

4、选择、可执行的相关操作以及界面的操作等等。程序是采用Java语言来编写的1.5 开发语言的简介3詹姆斯戈士林博士研发设计出了JAVA语言,其还对基于该语言技术的原始编译设备和虚拟设备进行了研发设计。Java语言是一种面向对象的程序设计语言,在1995年由Sun Microsystems公司推出。与C、C+语言对比来看,Java的风格非常相似,其对于面向对象技术的C+语言予以了继承,同时也对C+语言中造成错误的指针、重载运算符以及多重继承等问题进行了舍弃,同时对垃圾回收功能进行了增加,这样就能让不需要引用对象消除内存空间的占用,让操作员不必对内存管理进行考虑。和传统的编译执行语言与解释执行语言对

5、比来看,Java不同点较多。JAVA能够将源代码进行编译,比如可以编译成二进制代码,其后按照平台的不同一虚拟机进行解释,比如可以解释为执行字节码,实现跨平台作用,也就是“一次编译、随处执行”。但是其编译执行耗费的时间较多,并且在很大程度上也会影响JAVA程序的处理效率。1.6 开发语言特点4JAVA语言特点较多,其非常简单、采取分布式和解释性方式,能够实现面向对象,同时具备性价比高、线程多等诸多优点,下面结合JAVA特点进行详细说明。1.Java语言较为简单。与C+语言规则对比来看,其规则具有一致性。从特定层面来看,对于研发设计人员来讲,可以在C程序设计中能够较为熟练的应用JAVA语言的语法规

6、则。而且在C和C+语言转变来看,JAVA语言得到了转换,推动C+语言得到简化和提升。举例来看,通过JAVA使用接口能够实现多重继承,而且也能对指针进行取消,并让程序得到简化。通过JAVA语言能够实现程序简化,并且能够让设计资源实现有效管理。 当前对于JAVA学习者来讲,能够通过源代码进行分析,可以促进研发人员的编程能力提升,由于JAVA在类库丰富程度上得到提升,同时在API文档提供和三方开发商提供了较大的支持,另外,基于很多JAVA开发项目的源代码分析项目,可以让开发人员提升编程能力。基于JAVA的开源项目可以通过JDK作为开源代码。2.平台无关性。针对平台无关来看,主要是JAVA可以在差异化

7、的平台进行操作。对于JAVA来讲,其运用了虚拟设备的原理,可以通过虚拟设备运行,打通了平台不同的接口。从数据类型来看,JAVA数据类型和机器本身关联不大,而基于硬件与操作系统的JAVA虚拟机可以实现二进制代码的解释执行功能,并能够为JAVA通过不同平台运行提供接口支持。能够在全球内实现JAVA编程共享。3.安全性。通过C+语言学习,能够让用户对JAVA原理进行深入理解,而且从编程来看,C+编程语言和JAVA非常类似。在运行JAVA程序时,需要由操作系统分配内存资源,而对C+指针对存储器操作上可以进行舍弃,能够让病毒难以通过指针对系统造成损害。JAVA可以让程序强化安全管控,有助于程序阻止程序非

8、正常进入。4.面向对象。Java在对象分类上支持较大,通过继承父类方式进行处理。从类继承关系来看,在JAVA中关系相对单一,而且某个子类仅有单一父类进行对应。在JAVA提供众多的Object类中,可以将其继承关系表述成倒立着的树,树根就是Object类,而且其功能十分强大,能够应用到Object类和派生类别。5.分布式。基于TCP/IP网络平台的扩展,JAVA可以帮助程序设计人员应用网络文件如本机文件一样方便,主要是库函数进行HTTP和FTP协议传送与信息接收。6.健壮性。Java的强类型特征比较突出,能够通过运行与编译检查,防止错误数据类型产生。而且JAVA本身设计了垃圾集收功能,能够阻止内

9、存分配问题。还对真数组进行实现,可以对覆盖数据问题进行组织,这都有利于提升JAVA应用的周期。而且JAVA语言还对异常问题建立了处理机制。7.解释性。Java能通过程序编译将自节代码转换成中间代码。与机器码非常接近,字节码可以在JAVA虚拟设备上任何系统中被解释操作。对比于C,C+等语言,通过CPU芯片编译形成机器代码,而机器代码运行与指定的中央处理器关联较大,其并不是基于CPU芯片而单独进行编译。8.动态。众所周知,C+缺少档期类库,在程序升级之后,要想让程序基于新类库的功能使用,必须要对程序进行修改,要进行另外编译。但是JAVA程序组成单元就是以类基础,可以通过类别进行编写,也能引入到类库

10、之中,但其运行通过动态装载进行,这就让JAVA难以在分部环境中进行维护和分类处理。9.可移植性。Java程序与体系结构不相关的特征,能够让JAVA程序可以快捷的移入到网络差异化的微机之中。与之相对应的是,JAVA的类库中也配备了与不同平台的接口,能够对类库进行移植。10.多线程。对于多线程来讲,主要是通过应用程序在同一时段内进行多个任务的处理,并且与同步机制相对应,就能够保证线程可以对数据进行共享。基于编程的运用,能够通过多个线程处理实现更佳的交互能力与时效性。11.高性能。与交互应用程序对比看,JAVA的运行速度要比交互程序块,主要是由于JAVA编译后通过解释器运行字节码,同时在程序执行中可

11、以通过字节码转译成平台的而机器命令,进而提升运行速度。1.7 开发工具Eclipse5Eclipse作为基于JAVA整合类型与开放源码可以实现集成开发功能。从其自身来看,Eclipse作为框架和服务模式,能够通过插件组成进行环境开发。基于多个插件的支持,能够让其功能相对稳定,而且IDE软件相对固定难以有一定的灵活度。基于Eclipse集成开发的平台,其主要用于开发JAVA语言,而且通过不同插件安装实现计算机语言的多重支持。对于Eclipse而言,其还涵盖了基于Eclipse扩展的相关插件以及开发环境,由于相关组件可以通过Eclipse实现无缝集成。对于Eclipse来讲,每一样都可以作为插件使

12、用,在插件提供中可以通过用户提供集成和统一的开发环境,这样研发人员都具备同样的开拓场所。JAVA开发工具本身并不受平等性和一致性的限制,另外在开发中对于C、C+、PHP等语言进行支持。基于JAVA语言设计开发的Eclipse,其用途不单单局限在JAVA语言中。1.8 本游戏开发的意义作为新兴行业之一的游戏产业,其发展空间广阔,而且游戏产业也备受公众热议和争论。以电子、计算机、软件和网络技术为一体的游戏产业,属于新兴娱乐产业范畴。游戏可以给人们带来无尽的乐趣,由于我个人也比较喜欢玩游戏,所以对游戏还是有一定的接触,虽然很多时候都是玩的网络游戏,但是由于课题的需要,就研究了偶尔也在玩的蜘蛛纸牌游戏

13、,这款游戏有利益锻炼智力。以前一直很崇拜能开发出游戏的人,所以也想了解游戏是怎么开发出来的,就自己做了一些相关的研究,然后模仿Windows7中的蜘蛛纸牌游戏用Java语言实现它的基本功能。做本游戏的目的就是为了对Java有一个更好的了解。第2章 需求分析设计2.1 程序设计的任务概述6由于我的能力有限,这款游戏的功能不会很强大,但游戏的主要功能以及游戏的界面还是实现了。游戏的目的通过移动次数最少的情况下,将玩牌区的扑克牌进行移走,这样就获得了胜利。玩家通过玩游戏可以使工作学习之后疲惫身心有一个轻松愉快的放松方式。目前来看蜘蛛纸牌这款游戏已经很平常了,开发这个游戏主要是以锻炼为主。2.2 系统

14、特点蜘蛛纸牌这种游戏主要采用了两副104张纸牌进行游戏。其中分别由一种、两种或者四种不同的花色组成。根据不同的难度等级,花色的组成也不同。游戏想要取得胜利,就必须得把纸牌从玩牌区移走到界面左下角,从纸牌的排列顺序来看,采取的的是K到A排列的顺序。在纸牌游戏级别当中,比如在高级与中级级别中,要求相同的纸牌花色,同时也要求按照降序的方式对纸牌进行排列,在纸牌排好之后,玩牌区才能将这一列的纸牌进行移除,并将其移动到页面的左下。在纸牌不能移动时,可以通过对纸牌游戏区域右侧的发牌叠部分进行点击,这样窗口将会开启新的发牌,发牌的节奏是按照一列发一张进行。但是假如按照顺序排列的一串纸牌如果花色也完全一致的话

15、,那么就能将它们一起移动到其他列中,不限制一次仅移动一张。2.3 功能需求从蜘蛛纸牌游戏涵盖的功能来看,主要涵盖以下:1.游戏页面涵盖以下的功能组件:游戏开始、发牌重启、设置级别:初级、中级、高级分别对应单一、两个及四个花色。同时显示相关操作,游戏推出、暂停以及帮助等等。2.游戏窗体设计通过功能按键实现,对于游戏规则与游戏声明予以显示。3.载入游戏纸牌的图片。4.根据程序算法设计研发的纸牌游戏操作方法。.2.4 界面的设计1.通过游戏主页面对游戏背景色、框架以及不同发牌及玩牌区域和相应纸牌回收区域予以设置。页面按钮如下:开局按键、重新发牌按键、可行操作显示按键、初级按键、中级按键、高级按键等以

16、及退出按键。主界面显示纸牌各个区域。2.通过鼠标的点击、拖拽、释放等操作实现不同的纸牌处理方式。3.纸牌按从小到大的顺序排列,且类型相同,就可以移动放置一组或单个直排式。4.要想实现程序自动回收这组纸牌到收牌的区域,纸牌就必须按照从K到A的顺序排列。5.在用户以单击方式对纸牌发牌区单击时,假设十列纸牌当中不存在空白列的话,就能将纸牌成功的移动到每列纸牌的下部区域。不然的话,将会弹出空位不能发牌的提示。6.当玩家不知道游戏的下一步该怎么走时,可以点击游戏菜单项显示可行操作。系统就会进行提示。7.设置游戏的级别,对于玩家来讲,可以通过游戏菜单中的相应级别选项进行游戏等级的设置。游戏默认的是初级也就

17、是最简单的级别。假设游戏玩家对这个等级不感兴趣的话,那么可以按照自己的期望选择中级或者高级模式。2.5 游戏设计主流程分析本游戏的游戏设计的主流程分析如图2-1所示:图2-1 主流程分析图2.6 综合要求1.硬件配置:CPU=Pentiurn41.6G,内存=512MB,硬盘剩余空间=2GB。2.软件环境:操作系统是MicrosoftWindows7,安装Sun公司的Java运行环境JRE1.8安装Java开发工具包(JDK-8u121)及Eclipse2018-097。2.7 模型8蜘蛛纸牌游戏可以分为4个功能模块,分别是:Spider.java,SpiderMenuBar.java,PKC

18、ard.java,AboutDialog.java。其中每个部分都实现了一定的功能,每个部分的名字都包含一个类,如Spider.java部分需要实现的功能主要包括了蜘蛛纸牌游戏框架形成,以及游戏方式实现,具体涵盖了随机生成纸牌,摆放的位置等等,Spider的public类别包含在其中。SpiderMenuBar.java部分主要功能是形成纸牌游戏的菜单任务栏,通过任务栏的不同组件进行处理。具体涵盖了三大功能模块,具体是图像用户页面创建、实现监听组件接口、可操作性线程的执行与显示,SpiderMenuBar类别涵盖其中。PKCard.java的主要作用是对纸牌属性进行定义,具体涵盖了位置和名称等

19、等,以方案设计和执行实现纸牌的有序移动,PKCar的public类包含其中。AboutDialog.java主要应用于蜘蛛纸牌游戏帮助菜单栏,AboutDialog的public类包含其中。2.8 游戏程序需要解决的问题9以Eclipse Java 2018-09作为开发平台进行Java蜘蛛纸牌游戏的设计开发。绘图与键盘事件将会以较高的频率在后台等待响应,假设一点微小的差别都会导致错误的发生,更有可能陷入死循环的状态。鉴于此,要求设计要十分严密,而且要将将要发生的多个事件以及意外状况均要在设计时进行充分考虑。Java蜘蛛纸牌游戏中采用了外部文件引入的图片贴图,其目的是为了界面的美观和增强适用性

20、。还有,我们采用了双缓冲机制来作为程序中普遍存在的闪烁现象的相应的解决方案。对于一款爆棚游戏来看,友好的客户界面是吸引用户的关键,而对于游戏来讲,其开始、结束和信息动态画面都是程序必要的组成。基于此,更加友好的页面设计、人性化的特征以及动画显示都要融入其中。第3章 程序的总体设计3.1 线程的设计对于操作系统来讲,很多系统都能够对多项任务积极支持,而且一项任务本身就作为一项程序,程序的运行都是进程的实现,在运行程序时,内部涵盖了顺序执行流,而且每个线程就是对应着不同顺序执行流。采用两种方式对JAVA进行线程设计,一种方式就是通过Thread类子类进行创建,另一种方式就是通过Runnable接口

21、实现。上述线程设立方式本职上虽然差不多,但是对于某个类别要承继其他类别的Thread类进而让多个线程实现的话,只能以Runnable接口形式具体实现,而Java对多项继承是不许可的。3.1.1 通过Thread类实现通过对Thread类的子类进行定义,并对run()方法进行重写分类,此种方式能够代表线程实现的关键人物,而且该种方式就对应着线程执行体。此时,在该类实例初始化执行中,target目标对象能为null。对于JAVA来讲,其能够对单继承予以支持,此种方法对于其他继承类并不支持。以下就Thread类定义进行介绍,主要是其如何对线程进行管理和帮助。1.线程入口。void run()方法运用

22、在线程运行中。2.通过线程启动方式来实现调用运行,通过void start()方法将其从出生转入到就绪状态之中。3.等待一个线程终止是Join()。4.获得线程优先级是getPriority()。5.中断线程是void interrupt()。6.判断线程是否任然在运行,处于活动状态是boolean isAlive()。7.改变线程的名字是void stName(String threadName)。8.设置线程优先级是setPriority(int p)。3.1.2 实现Runnable接口Runnable接口类创建方式是线程创建的简单方式,能够按照线程设计的run方法进行重新设计,其后对此

23、类对象进行创建。在Runnable接口中通过run()的方式进行实现,可以实现基于对象线程创建的方式实现Runnable接口。 执行代码单元通过Runnable抽象反映。3.2 代码功能的设计本游戏共有Spider.java,SpiderMenuBar.java,PKCard.java,AboutDialog.java,4个模块组成。其中Spider.java主要形成了蜘蛛游戏纸牌的架构,并且游戏方式进行实现,比如随机生成的纸牌,摆放的位置等等。SpiderMenuBar.java在游戏纸牌菜单栏中生成作用突出,而且可以实现菜单不同组件的事件处理。其中涵盖了三大模块,一个是创建图像用户界面;一

24、个是实现组件监听;一个是线程可操作执行。PKCard.java主要是定义纸牌的属性,包括名称,位置等相关信息。并且通过相关的方案实现纸牌的移动等。AboutDialog.java主要是辅助实现纸牌游戏的帮助任务栏。3.3 总体设计流程图程序的总体设计流程如图2-2所示:图2-2 总体设计流程图3.4 模块一SpiderSpider.java文件作为游戏的主文件,其主要应用了Hashtable类型、Container类型、JFrame类以及PKCard类型等等。JFrame类及其子类主要对窗体进行构建,而标签创建主要是JLable类的负责范畴。而短文本类的字符串或者图像等由标签进行应用。容器对象

25、通过Container类创建,该容器涵盖的组件较多。其中纸牌对象通过PKCard类创建。而哈希表通过Hashtable类实现,通过该表能实现相应的键映射。主要变量有:publicstaticfinalintEASY=1;代表“简单”等级。publicstaticfinalintNATURAL=2代表“普通”等级。publicstaticfinalintHARD=3代表“难”等级。privateintgrade=Spider.EASY设定初始等级为简单等级;privateContainerpane变量为Container类创建的面板容器。privatePKCardcard变量为PKCard类创建

26、的纸牌数组。privateJLableclickLable1变量可以通过鼠标单击区域创建右下角发牌区。private JLable groudLable变量为JLable类创建的背景框数组。Hshtable类通过Hshtable table变量创建哈希对象,可以储存键值数据对。Private int c变量表示纸牌数量。Private int c变量表示纸牌级别。Private int a变量表示纸牌列号。Private intfinish变量表示纸牌由小至大成功排列次数。主要方法有:Public void setTittle(String s)设置一个标题为s的窗体。Public void

27、setVisible(boolean b)框体设计可见与否。可见的状态时,在b为true时。publicvoidsetSize(intwidth,intheigth)在窗体创建中,可以构建width和heigth为代表的宽度与高度的窗体。publicvoidsetDefaultCloseOperation(intoperation)在对窗体右上部分关闭图表进行设置后,程序的具体处理反应。EXIT_ON_CLOSE通过操作可以实现窗体应用程序结束。publicvoidsetMenuBar(MenuBarmb)将此窗体的菜单栏设置为指定的菜单栏。publicvoidpane.setBackground(Colorc

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

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