基于java开发的蜘蛛纸牌程序设计图文稿.docx
- 文档编号:13097126
- 上传时间:2023-06-11
- 格式:DOCX
- 页数:32
- 大小:56.49KB
基于java开发的蜘蛛纸牌程序设计图文稿.docx
《基于java开发的蜘蛛纸牌程序设计图文稿.docx》由会员分享,可在线阅读,更多相关《基于java开发的蜘蛛纸牌程序设计图文稿.docx(32页珍藏版)》请在冰点文库上搜索。
基于java开发的蜘蛛纸牌程序设计图文稿
集团文件版本号:
(M928-T898-M248-WU2669-I2896-DQ586-M1988)
基于java开发的蜘蛛纸牌程序设计
编号:
本科毕业论文(设计)
题目:
学院
专业
学号
姓 名
指导教师职称:
完成日期
诚信承诺
我谨在此承诺:
本人所写的毕业论文《》均系本人独立完成,没有抄袭行为,凡涉及其他作者的观点和材料,均作了注释,若有不实,后果由本人承担。
承诺人(签名):
年月日
基于java开发的蜘蛛纸牌程序设计
姓名:
关俊生学号:
指导老师:
李林国
摘要:
java是由SunMicrosystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。
Java是面向对象的语言。
蜘蛛纸牌是一款受人喜欢的休闲游戏,微软的每一代操作系统中都装有这种纸牌游戏,很多人都玩过蜘蛛纸牌,都熟悉蜘蛛纸牌游戏所需要的功能。
本人做的蜘蛛纸牌游戏开发理念是基于WINDOWSXP操作系统中自带蜘蛛纸牌游戏。
利用java语言实现了蜘蛛纸牌游戏的主要功能如纸牌的移动、放置、回收、重发。
利用javax.swing包的类实现纸牌游戏的用户界面,通为各个菜单组件添加监视器来实现鼠标单击事件所触发的接口方法,使得用户可以单击菜单项来实现具体的功能。
通过设置纸牌的等级来初始化纸牌随机分配纸牌,为用户玩纸牌游戏提供相应的等级。
意义:
通过自己对蜘蛛纸牌游戏的开发,使我更加热爱java语言,让我懂得和洗去了更多程序开发的知识及经验,为以后进入编程工作提供条件。
关键字:
java语言、游戏背景、功能实现
Spidersolitaireprogrambasedonjavadevelopment
Name:
GuanJunshengStudentID:
200829010213Instructor:
LiLinguo
Abstract:
javaistheJavaprogramminglanguagefromSunMicrosystems,Inc.inMay1995(hereinafterreferredtoasthegeneraltermoftheJavalanguage)andJavaplatforms.Javaisobject-orientedlanguages.SpiderSolitaireisapeoplelikecasualgames,eachgenerationofMicrosoft'soperatingsystemareequippedwiththiscardgame,manypeoplehaveplayedSpiderSolitaireareallfamiliarwiththefunctionalityrequiredbythespidercardgame.IdospidersolitairegamedevelopmentphilosophyisbasedontheWINDOWSXPoperatingsystemcomeswiththespidersolitairegame.Javalanguagetoachievethemainfunctionofthespidersolitairegame,suchasmovementoftheplayingcards,place,recycling,re-issued.Theuseofthejavax.swingpackageclassthatimplementstheuserinterfaceofthecardgamepassforeachmenucomponenttoaddamonitortothemouseclickeventtriggeredbytheinterfacemethod,theusercanclickthemenuitemstoachieveaspecificfunction.Toinitializethecardsbythelevelofthesetofcardsrandomlyassignedtocards,toprovidetheappropriatelevelforusersplayingsolitaire.Meaning:
thespidersolitairegamedevelopment,sothatImorelovethejavalanguage,soIknowhowtowashawaythemoreknowledgeandexperienceofprogramdevelopment,andprovideconditionsforthefuturetoentertheprogrammingwork.
Keywords:
Javalanguage,thebackgroundofthegamefunctions
1.绪论
1.1游戏开发的背景知识.....................................
1.2需要做的准备工作......................................
2.开发工具介绍................................................
2.1java语言概述..........................................
2.2java语言的特点........................................
2.3Eclipse开发平台介绍...................................
3.总体设计...................................................
3.1代码功能模块的设计....................................
3.2程序总体设计流程图...................................
3.3模块一的详细介绍......................................
3.3.1主要的类.......................................
3.3.2主要的变量......................................
.......................................
3.4模块二的详细介绍.....................................
3.4.1主要的类.........................................
3.4.2主要的变量.....................................
3.4.3主要的方法.......................................
3.5模块三的详细介绍......................................
3.5.1主要的类..........................................
3.5.2主要的变量.......................................3.5.3主要的方法........................................
3.6模块四的详细.............................................
3.6.1主要的类...........................................
3.6.2主要的变量.......................................3.6.3主要的方法........................................
4.功能设计....................................................
4.1需要实现的主要功能......................................
4.2功能设计流程图..........................................
4.3主要功能的代码实现......................................
4.3.1游戏菜单栏内游戏菜单及帮助菜单功能展示............
4.3.2主界面的设计.........................................
4.3.3纸牌的初始化以及发牌操作.............................
4.3.4纸牌的移动以及放置....................................
4.3.5显示当前纸牌可行的操作................................
4.3.6回收纸牌.............................................
5.程序的运行及发布................................................
5.1运行程序....................................................
5.2发布程序....................................................
6.工作总结........................................................
参考文献..........................................................
1.绪论
1.1游戏开发的背景知识
相信很多人都玩过蜘蛛纸牌这款休闲游戏,现在随着生活水平的提高,人们拥有充分的时间来享受休闲游戏带来的快乐,越来越多的人亲睐蜘蛛纸牌游戏。
谈起这款游戏,大家并不陌生。
从WINDOWS2000系统开始,就嵌入了蜘蛛纸牌游戏,可是随着微软系统的不段升级,蜘蛛纸牌游戏的功能业变得越来越强大,游戏的界面也更加美观。
用户的体验感受也更加美好。
所以,蜘蛛纸牌游戏的开发对于人类的生活娱乐更加有意义。
了解蜘蛛纸牌的开发过程也是作为一名学习计算机专业大学生所应该尝试的过程。
游戏的目标是以最少的移动次数将牌面中的十叠牌以及待发的五组,共计八副牌整理移除。
当所有牌被移除整理到界面的左下方,游戏获胜。
1.2需要做的准备工作
需要做的工作有学习掌握开发程序的方法,开了解发工具,进行需求分析,根据得到的需求规格说明书设计具体的程序流程图,编写程序,修改程序,运行程序,系统调试程序、测试程序,发布程序。
2.开发工具介绍
2.1java语言概述:
java是由SunMicrosystems公司于1995年5月推出的java程序设计语言和java平台的总称。
用java实现的浏览器显示它的魅力:
跨平台的特点使得它越来越受到许多程序员的亲睐。
java除了可以开发动态的Web页还可以开发各种系统软件。
现在常用的浏览器比如说360浏览器,IE浏览器中均配备有javaapplet。
java平台由java虚拟机和各种java应用编程接口(简称API)构成。
java应用编程接口为java提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。
在操作系统上安装一个java平台就可以运行任何一个java程序啦。
现在java平台已经几乎嵌入到所有的操作系统党章。
这样java程序就可以只编译一次,就可以在各种系统当中运行啦。
java目前最新的版本是java1.7版本的。
2.2java语言的特点:
java语言是一种简单的、面向对象的、分布式的、健壮的、安全的、与平台无关的、多线程、高性能的、动态程序设计语言。
1.java语言简单易学的。
java语言的语法与C语言和C++语言很接近,使得多数程序员很容易学习和使用java。
另一方面,java丢弃了C++中很少使用的,很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。
特别地。
java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。
2.平台无关性 平台无关性是指Java能运行于不同的平台。
Java引进虚拟机原理,并运行于虚拟机,实现不同平台的Java接口之间。
使用Java编写的程序能在世界范围内共享。
Java的数据类型与机器无关,Java虚拟机(JavaVirtualMachine)是建立在硬件和操作系统之上,实现Java二进制代码的解释执行功能,提供于不同平台的接口的。
3.安全性 Java的编程类似C++,学习过C++的读者将很快掌握Java的精髓。
Java舍弃了C++的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针侵入系统。
Java对程序提供了安全管理器,防止程序的非法访问。
4.面向对象 Java吸取了C++面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性。
类的封装性、继承性等有关对象的特性,使程序代码只需一次编译,然后通过上述特性反复利用。
程序员只需把主要精力用在类和接口的设计和应用上。
Java提供了众多的一般对象的类,通过继承即可使用父类的方法。
在Java中,类的继承关系是单一的非多重的,一个子类只有一个父类,子类的父类又有一个父类。
Java提供的Object类及其子类的继承关系如同一棵倒立的树形,根类为Object类,Object类功能强大,经常会使用到它及其它派生的子类。
5.分布式 Java建立在扩展TCP/IP网络平台上。
库函数提供了用HTTP和FTP协议传送和接受信息的方法。
这使得程序员使用网络上的文件和使用本机文件一样容易。
6.健壮性 Java致力于检查程序在编译和运行时的错误。
类型检查帮助检查出许多开发早期出现的错误。
Java自己操纵内存减少了内存出错的可能性。
Java还实现了真数组,避免了覆盖数据的可能,这些功能特征大大提高了开发Java应用程序的周期。
并且Java还提供了Null指针检测、数组边界检测、异常出口、Bytecode校验等功能。
7.解释型 我们知道C,C++等语言,都是针对CPU芯片进行编译,生成机器代码,该代码的运行就和特定的CPU有关。
Java不像C或C++,它不针对CPU芯片进行编译,而是把程序编译成称为自字节码的一种“中间代码”。
字节码是很接近机器码的文件,可以在提供了java虚拟机(JVM)的任何系统上被解释执行。
8.动态 java程序的基本组成单元就是类,有些类是自己编写的,有些是从类库中引入的,而类又是运行时动态装载的,这就使得Java可以在分部环境中动态的维护程序及分类,而不像C++那样,没档期类库升级以后,如果想让程序具有新类库提供的功能,就需要修改程序,重新编译。
9.多线程
Java是支持多线程的语言。
多线程是一种应用程序设计方法。
线程是一大进程里分出来的,小的、独立的进程,使得在一个程序里可同时执行多个小任务。
多线程带来的好处是具有更好的交互性能和实时控制性能。
但采用传统的程序设计语言(如:
C/C++)实现多线程程序并非易事。
Java实现了多线程技术,提供了简便的实现多线程的方法,并拥有一组高复杂性的同步机制。
10.可以移植的。
这种可移植性来源于体系结构中立性,另外,java还严格规定了各个基本数据类型的长度。
java系统本身也具有很强的可移植性,java编译器是用java实现的,java运行环境是用ANSIC实现的。
2.3Eclipse开发平台简介:
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT)。
虽然大多数用户很乐于将Eclipse当作Java集成开发环境(IDE)来使用,但Eclipse的目标却不仅限于此。
Eclipse还包括插件开发环境(Plug-inDevelopmentEnvironment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。
由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。
这种平等和一致性并不仅限于Java开发工具。
尽管Eclipse是使用Java语言开发的,但它的用途并不限于Java语言;例如,支持诸如C/C++和COBOL等编程语言的插件已经可用,或预计将会推出。
Eclipse框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。
基于Eclipse的应用程序的一个突出例子是IBM®Rational®SoftwareArchitect,它构成了IBMJava开发工具系列的基础。
EclipseIDEforJavaEEDevelopers
44
3.总体设计:
3.1代码功能功能模块设计:
蜘蛛纸牌游戏共由4个部分组成,分别是:
Spider.java,SpiderMenuBar.java,PKCard.java,AboutDialog.java。
SpiderMenuBar.java
包含名为SpiderMenuBar的public类,其主要功能为生成蜘蛛纸牌游戏的菜单栏,实现菜单栏中各个组件的事件侦听。
主要包括3个模块:
图形用户界面的构建;组件监听接口的实现:
显示可执行操作的线程。
PKCard.java
包含名为PKCard的public类,其主要功能为:
定义纸牌的属性,包括名称,位置等相关信息。
并通过相关方法实现纸牌的移动等。
AboutDialog.java
包含名为AboutDialog的public类,其主要功能为生成蜘蛛纸牌游戏的帮助栏。
Spider.java
包含名为Spider的public类,其主要功能为生成蜘蛛纸牌游戏的框架,实现游戏中的方法,包括:
纸牌的随机生成,位置的摆放等。
3.2程序的总体设计流程图:
3.3模块一的详细介绍:
SpiderMenuBar.java的功能是生成蜘蛛纸牌游戏的菜单栏。
实现菜单栏中的各个组件的事件。
3.3.1主要的类:
JMenuBar类、JMenu类、JMenuItem类、JRadioButton类都是设计GUI(图形用户界面)的包javax.swing中的类。
可以用import引用这些类。
JMenuBar类是JComponent类的子类负责创建菜单条的。
即JMenuBar类的一个实例就是一个菜单条。
JMenu类是JComponent类的子类负责创建菜单组的。
即JMenu类的一个实例化就是一个菜单。
JMenuItem类是JMenu类的父类负责创建菜单项。
即JMenuItem类的一个实例化就是一个菜单项。
JRadioButtonMenuItem类负责一个单选按钮菜单项的实现。
JRadioButtonMenuItem是属于一组菜单项中的一个菜单项,该组中只能选择一个项。
ButtonGroup类用于为一组按钮创建一个多斥作用域。
使用相同的ButtonGroup对象创建一组按钮意味着“开启”其中一个按钮时,将关闭组中的其他所有按钮。
SpiderMenuBar类是此文件的一个主类是JMenuBar的子类。
Show类是Thread的子类用于创建线程。
3.3.2主要的变量:
jNewGame、jHelp变量分别是JMenu类创建的“游戏”、“帮助”菜单。
jItemAbout、jItemOpen、jItemPlayAgain、jItemExit、jItemValid变量分别是JMenuItem类创建的“关于”、“开局”、“重新发牌”、“退出”、“显示可行操作”菜单项。
jRMItemEasy、jRMItemNormal、jRMItemHard变量分别是JRadioButtonMenuItem类创建的“简单:
单一花色”、“中级:
双花色”、“高级:
四花色”的单选按钮菜单项。
group变量是ButtonGroup类创建的一组按钮选择对象。
spider变量是Spider类创建的对象用于主界面窗口的实现。
将在Spider.java文件中介绍。
3.3.3主要的方法:
publicJMenuBar()创建新的菜单栏。
publicJMenu(Stringtext)构造一个新菜单,用提供的字符串作为其文本。
publicJMenuItem(Stringtext)创建带有指定文本的菜单项。
publicJRadioButtonMenuItem(Stringtext)创建一个带文本的单选按钮菜单项。
publicButtonGroup()创建一个新的单选按钮对象组。
publicvoidadd(MenuItemitem)向菜单增加由参数item指定的菜单项对象。
publicvoidadd(AbstractButtonb)将单选按钮添菜单项加到组中。
publicvoidadd(JMenuc)将指定的菜单添加加到菜单栏中。
publicvoidaddSeparator()将新分隔符追加到菜单的末尾。
所需要添加的事件处理的接口方法将在后来的模块中进行介绍。
事件源即能够产生的事件的对象。
监视器用于对事件源进行监视以便对发生的事件做出处理。
事件源通过调用相应的方法将某个对象作为自己的监视器。
这个方法是addActionListen(ActionListenerlisten)该方法中的参数是ActionListener类型的接口。
因此必须用ActionListener接口的类创建的对象传递给该方法的参数,使得该对象成为事件源的的监视器。
监视器负责调用特定的方法处理事件,创建监视器的类必须提供处理事件的特定的方法,即实现接口方法。
publicvoidaddMenuListener(MenuListenerl)添加菜单事件的侦听器。
voidmenuSelected(MenuEvente)选择某个菜单时调用。
voidmenuDeselected(MenuEvente)取消选择某个菜单时调用。
voidmenuCanceled(MenuEvente)取消菜单时调用。
3.4模块二的详细介绍:
PKCard的功能是定义纸牌的属性,包括名称,位置等相关信息。
并通过相关方法实现了纸牌的移动等
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 java 开发 蜘蛛 纸牌 程序 设计图 文稿