毕业设计(论文)-基于BS模式扑克游戏.doc_第1页
毕业设计(论文)-基于BS模式扑克游戏.doc_第2页
毕业设计(论文)-基于BS模式扑克游戏.doc_第3页
毕业设计(论文)-基于BS模式扑克游戏.doc_第4页
毕业设计(论文)-基于BS模式扑克游戏.doc_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于BS模式扑克游戏摘 要在现今电子信息高速发展的时代,电子游戏已经深入人们的日常生活,成为老少皆宜的娱乐方式。但是游戏设计结合了日新月异的技术,在一个产品中整合了复杂的设计、艺术、声音和软件,所以并不是人人皆知。直到今天,在中国从事游戏设计的人仍然很少,但是游戏行业的发展之快,远远超过家电、汽车等传统行业,也正因为如此,游戏人才的教育、培养才远落后于产业的发展。 适当的娱乐游戏对人们的业余生活是必不可少的。这些游戏的确给人们的业余生活添加了很多乐趣。借鉴网上的边锋游戏,我用java开发设计了起名游戏的实现算法,并在windows图形环境下设计出一个人机交互的游戏系统(类似于纸牌游戏)。论文描述了游戏的历史,开发此游戏的环境,游戏开发的意义。遵循软件工程的知识,从软件问题定义开始,接着进行可行性研究、需求分析、概要设计、详细设计,最后对软件进行了测试,整个开发过程贯穿软件工程的知识体系。此次设计在Microsoft Windows XP系统下,以Java为开发语言,在BS开发工具上进行游戏的设计与实践。关键词:游戏编程 游戏设计 Java 起名游戏 Abstract In the era of high-speed development of electronic information, computer game has enter peoples daily life, become an amusement adapt to old and young. But Game design is a combination of fast-moving technology, the complexity of integrating design、art、audio and software into a single production, so this technology isnt known by everyone. up-to-date, there are few people work at game design all the same, whereas, the development of game industry more faster than traditional industry as home appliances and automobile, by the reason of this situation, the education and training of person with ability of game design drop behind the development of game industry. Proper recreation is indispensable in the peoples pasttime life.Certainly,these games enrich peoples life with more and more joys.Using the wing game for reference ,I developed and designed the realization arithmetic of 24 points game.Next I designed a human-computer alternant game system (similar to card game ).The thesis has described the game history , has developed this game environment, development significance of game. Knowledge abiding by a software engineering, definition begins from software problem , proceed to carry out feasibility study , need analysis , essentials design , detailed design, the at last has carried out a testing on the software , entire exploitation process has run through the software engineering knowledge hierarchy.The computer game design and practice are designed on BS developing platform with Java developing instrument, under Microsoft Windows XP system this time.Keyword:Game programming Game design event Java1目 录摘 要IAbstractII第一章 绪论11.1 电子游戏及其分类11.2 电子游戏发展现状21.2.1 电子游戏在国外的发展现状21.2.2 电子游戏在国内的发展现状31.3本论文研究的意义4第二章 可行性分析52.1可行性研究52.1.1 设计目的52.1.2 软件问题定义52.2 技术可行性52.2.1 Java语言特点52.2.2 Java的平台划分、开发工具62.2.3开发环境62.3 经济可行性72.4 社会可行性7第三章 需求分析83.1 引言83.2 游戏需求83.3 软硬件需求83.4 接口控制83.5 需求方案论证9(1) VB的优点9(2) C+的优点9(3) Java的优点10I焦作大学毕业设计说明书(4) 方案的选择11第四章 系统总体设计124.1 游戏流程设计图124.2游戏运行界面124.2.1进入游戏界面模块图124.2.2游戏界面134.2.3练习模式功能模块图14第五章 系统详细设计与编码165.1 游戏详细设计类165.1.1定义卡片类card165.1.2 定义接口variety类165.1.3 定义CalculateExpression类165.1.4 定义FindExpression类175.1.5 定义GameMode类185.1.6 定义PracticeMode类195.1.7 定义RankList类195.1.8 定义test类205.2 Javax.Swing描述205.3 游戏实现主要方法21第六章 性能测试与分析236.1系统测试236.1.1性能的测试236.1.2 测试的目的236.2 游戏界面菜单选项的功能测试236.3 按键事件的功能测试246.4纸牌的运算测试246.5 测试结果分析24结束语25致谢27参考文献28附录(主要源程序)29第一章 绪论游戏是人们活动中一项非常重要的内容,电脑对游戏的贡献有目共睹,现在摸过电脑的人很少有没玩过电脑游戏的,喜欢游戏的人也很少有不玩电脑的。起名游戏,能把枯燥的基本数学计算变得趣味盎然,能大大提高计算能力和速度,使得思维灵活敏捷,是一种寓学于乐的智力竞赛游戏。 起名游戏是一款风靡全球的电视游戏机和掌上游戏机游戏,它曾经造成的经济价值可以说是游戏史上的一件大事。这款游戏最初是由谁制作的已无从知道,它看似简单但却变化无穷,令人上瘾。相信大多数用户都还记得为它痴迷得茶不思饭不想的那个起名游戏时代。究其历史,起名游戏最早还是出现在PC机上,而我国的用户都是通过红白机了解、喜欢上它的。现在联众又将重新掀起这股让人沉迷的起名游戏风潮。对一般用户来说,它的规则简单,容易上手,且游戏过程变化无穷,而在联众起名游戏中,更有一些联众网络游戏所独有的魅力有单机作战与两人在线对战两种模式,用户可任选一种进行游戏。网络模式还增加了积分制,使用户既能感受到游戏中的乐趣,又能给用户提供了一个展现自己高超技艺的场所。起名游戏游戏可以说是随计算机的发展而发展,并不断推出新演变的各种类似游戏, 深受广大玩家喜爱。这个游戏有的简单, 有的复杂, 但其根本原理是一样的,都是对数字进行组合, 来训练玩家的心算能力。谈到游戏软件, 大多数人都认为其神妙莫测, 高不可及。而一般游戏软件也确实具有很高的技术难度, 随着开发工具及软件开发方法学的不断发展, 动手开发游戏也不是十分困难的。起名游戏游戏是一种古老而又有趣的游戏, 游戏软件不计其数, 网上就有好多关于实现的复杂算法和设计, 其难度让一般初学者望而却步。本文提出一种用JAVA语言实现的简易方法, 对初学者可仿此开发类似游戏, 并了解游戏软件的设计与开发过程。 1.1 电子游戏及其分类电子游戏,也就是运行在家用电脑、家用电子游戏机或是掌中宝游戏机及街机上的电子游戏程序。电子游戏是一种结合剧情故事、美术、音乐、动画、程序等技术于一身的互动型娱乐软件,涉及到多个行业。 从电子游戏的分类来看,有着多种分类方式。传统的游戏分类是按照游戏类型,将其分为即时战略游戏、第一人称射击游戏、角色扮演游戏、策略型游戏等类别。根据游戏运行平台的不同,可将电子游戏分为游戏机游戏、单机版PC 游戏、互动电视游戏、在线游戏和手机游戏。此外,韩国政府将电子游戏业分为家用游戏机游戏、单机版PC 游戏、网络游戏和街机游戏四大类。考虑到中韩游戏业比较接近,论文采用韩国的分类标准。“网络游戏”也就是人们一般所指的“在线游戏”,是指通过互联网进行的电脑游戏,通过人与人之间的互动达到交流、娱乐和休闲的目的。在互联网(局域网)技术出现之前,电子游戏都可以归于单机版游戏,即“人机对战”游戏,或最多是双人对战游戏。而随着互联网技术的出现,通过连接游戏服务器,上百、上千、乃至上万的游戏玩家同时连线娱乐成为了现实,这就大大增加了游戏的互动性、真实性,丰富了电子游戏的内涵。从网络游戏的分类来看,目前业界还没有一个比较统一规范的分类。随着计算机设备和网络技术的发展,电子游戏在全球得到了迅猛的发展,取得了巨大的成功,已成为当今世界上不可缺少的精神粮食。1.2 电子游戏发展现状 1.2.1 电子游戏在国外的发展现状 电子游戏是最初产生于美国,1971年,一个还在MIT就读的学生设计了世界上第一个业务用游戏机,这个街机游戏的名字叫电脑空间。可以说时至今日,电子游戏仍然是外国的天下。美国至今仍是世界第一大游戏市场,它遵循的是以发行商为主的产业开发链模式,根据美国市场调查公司NPD Group调查统计,美国2004年游戏总销售金额(包括家用、掌上型主机及软件)为99亿美元,占了全球游戏市场的45%。毕业设计论文代做平台 580毕业设计网 是专业代做团队 也有大量毕业设计成品提供参考 QQ3449649974其中游戏软件销售的具体数字是:视频游戏软件的销售额达52亿美元(1.6亿套),PC游戏软件销售额达11亿美元(4500万套),掌机游戏销售额达10亿美元(4230万套)。2004年一共大约有2.48亿套游戏售出。据估计,美国每个家庭平均购买过2部游戏。 日本近20年来疯狂赚电子游戏的钱。从上世纪60年代初的街机,到六七十年代之间的家用游戏机,再到八九十年代的掌上游戏机,日本经过30多年的耕耘,终于把电子游戏这棵“摇钱树”,培育成第一时尚娱乐产业,垄断全球业界长达10余年。对于日本来说,电玩业已是国家经济的重要支柱之一,在GDP中占有1/5的举足轻重地位。日本游戏业在最辉煌的1998年,曾经占领全球电子游戏市场硬件90%以上,软件50以上。韩国号称世界上网络游戏产业最发达国家之一。迄今为止,国内网络游戏市场有超过60%的产品来自韩国游戏软件开发商,韩国网络游戏使国内很多游戏运营公司在游戏营销市场或股票资本市场上获得了巨大的成功。 韩国游戏市场的发展不是偶然,韩国政府不仅给游戏产业以正确的定位和引导,更是将其和本国经济发展紧密地联系到一起,做了很多市场培育方面的工作。韩国政府认识到,靠重型工业来支撑全国经济的做法是片面的,于是将、娱乐产业视为新的经济增长点,开始大力扶持。从那时起,科技含量极高而能源消耗极低的游戏制作及相关产业担负起了“富国兴邦”的重担。由文化观光部出面组建韩国游戏支援中心,向韩国游戏产业提供从资金到技术上的多方面支援;成立游戏投资联盟,政府每年向游戏产业投入的资金多达亿韩元,并为游戏企业提供长期的低息贷款;设立信息化基金和文化产业基金,为游戏产业服务;对指定的风险企业实行各种税制优惠政策,减少甚至免除游戏企业的税务负担;建设游戏产业基地以扶持中小游戏企业的发展;对从事游戏产业的高科技人才免除两年的兵役。 在韩国,从制作到运营,一个网络游戏公司起步门槛较低,主要得益于政府实行的援助计划。此外,在有利的政策形势下,韩国出现了众多的游戏院校,一些原本不涉足此领域的大学也开设了游戏相关专业毕业,以大力培养游戏专业人才,从而为游戏生产提供了基础保障。1.2.2 电子游戏在国内的发展现状与电子游戏发达的国家相比,我国在电子游戏方面还存在比较大的差距。目前,我国游戏市场正处于发展阶段,但市场上的游戏软件主要来自日本、美国、韩国等地,但由本土游戏制作人开发创作的游戏正在高速增加,国产原创的游戏即将成为游戏的主流。中国的游戏产业经过80年代初期台湾厂商的探索至90年代,开始了自己的研发、发行的历程,直至网络游戏的风行,让中国的网络游戏开始有了飞速的发展。 1983年,智冠科技有限公司在中国台湾成立,为全球第一家签订授权重制中文版产品代理销售合约的公司,2000年智冠在台湾股票上市, 2002年其控股的中华网龙在台湾上市。1996年底,UBI SOFT上海分公司暨上海育碧电脑软件有限公司成立。同年,全球游戏软件领军企业EA在中国上海成立办事处。1997年,由尚洋公司制作的血狮正式上市。 ,全面推行50元的价格体系,从此正版游戏价格开始贴近大众消费者。 1999年,业内估算中国电脑游戏市场(正版)约1.5亿元人民币。 在2000年,继万王之王、石器时代、网络三国在台湾上市之后,游戏桔子推出了天堂,游戏桔子成立于1995年,1999年以便利店在台湾奠定了地位。天堂这款由韩国著名游戏公司Ncsoft研发的网络游戏不但在本国大获成功,也在台湾再次夺冠。 2001年初,北京华义在中国大陆地区正式推出了石器时代,华义国际股份有限公司于1993年在台北成立,2001年在台湾股票上市。石器时代成为大陆当时最流行的网络游戏。2001年,天人互动软件技术有限公司在北京成立。当年与SEGA结成PC游戏业务的战略合作关系,发行了樱花大战文明无冬之夜等经典游戏,2002年,引进在欧美网络游戏魔剑(Shadow Bane),这是首款在中国测试的欧美网络游戏。 2001年5月,“联众世界”经过3年多的迅速成长,以同时在线17万人、注册用户约1800万的规模,成为当时世界用户数量第一的在线游戏网站。我国网络游戏产业当年增加了50%,今后几年都将以50%以上的速度增长;第一届中国网络游戏年会报道:中国国内网络游戏2004年规模达24.7亿元,2009年规模将达到109.6亿元。1.3本论文研究的意义 正因为如上文所言,游戏产业有着较大的发展空间,所以我设计了这个小游戏。起名游戏能把枯燥的基本数学计算变得趣味盎然,能大大提高计算能力和速度,使得思维灵活敏捷,是一种寓学于乐的智力竞赛游戏。第二章 可行性分析2.1可行性研究 2.1.1 设计目的通过本游戏的设计,综合自己在校期间所学的理论知识,设计开发起名游戏,使自己熟悉应用系统的开发过程,培养独立思考能力,检验学习效果和动手能力,初步掌握软件工程的系统理论,初步掌握基础编程知识,进一步巩固和加强自身对j2se基础知识的理解,提高自己的编程水平,从而达到理论与实践相结合的目的。 2.1.2 软件问题定义基本要求:本游戏开发的总体任务是实现游戏的可操作性,以及界面的美观性。整个开发过程遵循软件工程规范,采用JAVA 编程来实现界面以及事件的控制,用户根据鼠标左右键控制操作,通过菜单栏中的相应菜单选项实现游戏的开始、结束、运算、积分的功能。目标:通过本游戏的开发,主要实现游戏的可操作性以及美观性,同时使自己对JAVA语言的了解更进一层,为将来的实际工作打下坚实的基础。条件、假定和限制:由于知识以及能力的限制,本游戏所实现的功能不够强大,可对本游戏进行改善,从而增强游戏的功能。可行性研究的方法:通过研究分析起名游戏所具备的能力及实现的方法、确定主体结构。利用现阶段我所能达到的能力,以最简洁、最容易的办法,边开发边测试边修改,实现一个初级游戏软件。评价尺度:由于本软件是一个初级产品,对其要求不是太苛刻,所以能够达到起名游戏游戏的一般功能即可。2.2 技术可行性 开发本游戏的编程语言有多种,考虑到自身对语言的掌握程度,选择JAVA语言进行游戏的开发,采用JAVA GUI编程来实现界面以及事件的控制。2.2.1 Java语言特点 (1)与运行平台无关性 Java引入虚拟机原理,并运行于虚拟机,实现不同平台之间的Java接口,使用Java编写的程序能在世界范围内共享,Java的数据类型与运行平台无关。 (2)面向对象 Java吸收了C+面向对象的概念,将数据封装于类中,实现了程序的简洁和易于维护的特性,使程序代码可以只需一次编译即可被反复利用。 (3)运行安全性 Java的编程类似于C+,但舍弃了C+对存储器地址的直接操作的方式,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针入侵系统;同时Java还提供了安全管理器,防止程序的非法访问。 (4)分布式 Java建立在TCP /IP网络平台上,提供了使用HTTP和FTP协议传送和接收信息的库函数,使用其相关技术可以十分方便的构建分布式应用系统。 2.2.2 Java的平台划分、开发工具 认识到一种结构不可能适应所有的情况,所以Sun公司将Java划分成3个不同的版本。每个版本都针对当今计算机产业中的一个特定领域: (1)J2SE,用于常见的桌面计算机市场和低端商务应用提供解决方案,主要运行在Unix、Linux、Microsoft Windows等操作系统上。 (2)J2EE,用于企业为客户、供应商和员工的可升级的服务器解决方案,它以J2SE 为基础,增加了处理服务器端计算的功能。 (3)J2ME,用于消费产品和嵌入式设备的最佳解决方案。J2ME和J2SE不同,J2ME 并不是一个单一的规范。准确地说,它是为了支持像小型嵌入式设备或移动设备而制定的一系列的技术和规范的总称。在提供类似类库的同时也对J2SE中的类库进行了裁剪。 (4)BS 是一个java程序开发工具,BS为用户提供了项目管理等强大的功能。设计接近Windows界面风格,用户对它的界面比较熟悉。能自动找到包含主函数的文件或包含applet的html文件,然后运用适当的工具。2.2.3开发环境 首先要安装J2SE,使PC环境具备Java平台,能够支持Java程序的运行,这里选择的版本是1.6.0;然后安装BS版本,是Pro 3.50.013 汉化版;最后配置BS,将连接至开发平台,至此整个开发平台搭建完毕。2.3 经济可行性本游戏的开发旨在完成毕业设计,不注重直接的经济效益和其后的发展方向,只在注重自身水平和能力的提高,对自身的经济要求也不高,只要有一台能运行相应JAVA程序的电脑便可,所以不用考虑到经济问题。2.4 社会可行性本游戏的开发主要为了完成毕业设计,开发的主体是个人,不存在法律上的侵权行为,也不会为社会造成影响,这方面是完全可行的。第三章 需求分析3.1 引言对软件需求分析就是通过调查研究,建立系统的数据模型、功能模型、行为模型,用户和开发人员在“系统必须做什么”这个问题上实现相互理解,达到共识,从而形成双方认可的软件产品的需求规格说明书。这样有益于提高软件开发过程中的能见度,便于对软件开发过程中的控制与管理,便于采用工程方法开发软件,提高软件的质量,便于开发人员、维护人员、管理人员之间的交流、协作,并作为工作成果的原始依据,并且在向潜在用户传递软件功能、性能需求,使其能够判断该软件是否与自己的需求相关。3.2 游戏需求 一副牌中抽去大小王剩下52张,任意抽取4张牌(称牌组),用加、减、乘、除(可加括号)把牌面上的数算成24。每张牌必须用一次且只能用一次。游戏功能需求如下: 游戏界面需求:设计良好的游戏界面可以让玩家充分感受到游戏带来的娱乐性,游戏的背景色是动画,给玩家带来一定的娱乐性。 游戏形状需求:根据数字及颜色的不同,显示不同的纸牌。 鼠标处理事件需求:通过点击菜单栏中相应的菜单项,可以实现游戏的开始、结束,数字的计算,分数的显示,以及游戏选择等功能。 显示需求:随机出现四个数字,将其计算为24即可。3.3 软硬件需求硬、软件配 置CPU赛扬2.8RAM1G硬盘320G操作系统Windows xpjavajdk1.6.0_22BS3.50.013 图3.1 系统配置图 3.4 接口控制本游戏通过鼠标进行操作,在Windows的操作系统下,利用鼠标的左、右键对纸牌进行计算,要使用鼠标的接口事件。3.5 需求方案论证学校现已开设的毕业有C语言,java,通过网上以及图书馆的资料,知道可以通过C,C+,VB,Delphi,Java实现起名游戏方块游戏的设计。下面简单介绍下VB、C+、Java各自的优点:(1) VB的优点全称Visual Basic,它是以Basic语言作为其基本语言的一种可视化编程工具。在中国乃至全世界都能看到它的身影,它曾是在中国最为流行的编程工具,到现在还占 据着非常重要的地位,对于它的好坏大家都有一定的了解,VB作为一种较早出现的开发程序以其容易学习,开发效率较高,具有完善的帮助系统等优点曾影响了好 几代编程人员,但是由于VB不具备跨平台这个特性,从而也决定了VB在未来的软件开发中将会逐渐地退出其历史舞台;它对组件技术的支持是基于COM和 ActiveX,对于组件技术不断完善发展的今天,它也显出了它的落后性;同时VB在进行系统底层开发的时候也是相对复杂的,调用API函数需声明,调用 不方便,不能进行DDK编程,不可能深入Ring0编程,不能嵌套汇编;而且面向对象的特性差;网络功能和数据库功能也没有非常突出的表现,综上所 述,VB作为一种可视化的开发工具由于其本身的局限性,导致了它在未来软件开发中逐步被其他工具所代替。(2) C+的优点C+是对C语言的扩充,扩充的绝大部分来自著名语言中的最佳特性:从SIMULA 67中吸取了类,从ALGOL 68中吸取了运算符一名多用、引用和在分程序中任何地方说明变量,综合了Ada的类属和Clu的模块特点,从BCPL中吸取异常处理,从BCPL中吸取了用/表示注释。C+保持了C的紧凑、灵活、高效和易移植强的优点,它对数据抽象的支持主要在于类概念和机制,对面向对象风范的支持主要通过虚拟函数。C+既有数据抽象和面向对象能力,语言运行性能高多,加上C语言的普及,而从C至C+的过渡较为平滑,以及C+与C的兼容程度可使数据巨大的C程序能方便地在C+环境中重用。尽管C+当初的设计本意是帮助管理大型程序,但其用途并不仅限于此。C+的面向对象的特性可有效地用于实际的程序设计工作。C+常常用于设计编辑器、数据库、个人文件系统以及通讯程序等。而且,由于C+共享C的效率,所以用C+可以构成很多高性能的系统软件。(3) Java的优点安全性 Java是一种安全的网络编程语言,不支持指针类型,一切对内存的访问都必须通过对象的实例来实现。这样能够防止他人使用欺骗手段访问对象的私有成员,也能够避免在指针操作中易产生的错误。此外,Java的安全性体现在多个层次上:在编译层,有语法检查;在解释层,有字节码校验器,可进行代码段格式测试和规则检查、访问权限和类型转换合法性检查、操作数堆栈的上溢和下溢检测、代码参数类型合法性检查等;在平台层上,通过配置策略,可设定访问资源域,无须区分本地或远程。可移植性Java具备有很好的移植性,这主要得益于它与平台无关的特性。同时,Java的类库中也实现了与平台无关的接口,这使得这些类库也能移植。同时,Java编译器主要是由Java本身来实现的,Java的运行系统(解释器)由标准C语言实现,因而整个Java系统都具有可移植性。 多线程机制Java具有多线程机制,这使得应用程序能够并行地执行。它的同步机制也保证了对共享数据的共享操作,而且线程具有优先级的机制,有助于分别使用不同线程完成特定行为,也提高了交互的实时响应能力。Java的多线程技术使网上实时交互实现很容易,从而为解决网上大数量的客户访问提供了技术基础。跨平台 通常,在Windows下编写的程序是不能直接拿到UNIX上运行的,因为程序的执行最终必须转换成为计算机硬件的机器指令来执行,专门为某种计算机硬件和操作系统编写的程序是不能够直接放到其他类型的计算机硬件上执行的,至少要做移植工作。要想让程序能够在不同的计算机上运行,就要求程序设计语言能够跨越各种软件和硬件平台,而Java恰恰满足了这一需求。Java编译器能够产生一种与计算机体系结构无关的字节指令,只要安装了Java虚拟机,Java就可以在相应的处理机上执行。(4) 方案的选择面向对象的程序设计吸取了结构化程序设计的先进思想,并把它们同几个支持用户用新方法进行程序设计的有力概念结合在一起。所有面向对象的程序设计语言一般都包含三个概念:封装、多态性和继承性。这种方法要求语言必须具备抽象、封装、继承和多态性这几个关键要素。面向对象的程序设计,是通过数据和代码建立分块的内存区域,以便提供对程序进行模块化的一种程序设计方法,这些模块可以被用作样板,在需要时再建立其副本。 C+和Java在面向对象这方面比VB要强,所以我排除了用VB做的可能性。但是C+为了与C语言兼容,其是包含了些面向过程的成分;Java除了C+中非面向过程的部分,其程序编写过程就是设计、实现类,定义其属性、行为的过程。还有Java特有的“沙箱”机制是其安全性的保障,同时它去除了C+中易造成的错误指针,增加了自动内存管理等措施,保证了Java程序运行的可靠性。 所以经过再三比较了三种语言后,决定采用Java语言编写起名游戏方块。第四章 系统总体设计 开始4.1 游戏流程设计图 进入游戏界面选择模式游戏模式 练习模式请输入昵称 Y 自动提示答案进入游戏 Y N 时间到或答案错误无法进入游戏 N答案正确 得到5分扣除1分 Y 是否继续 N 退出游戏 图4.1 游戏流程设计图4.2游戏运行界面 4.2.1进入游戏界面模块图图4.2v 进入游戏模式,输入昵称,如图4.3所示:图4.3 输入昵称 4.2.2游戏界面显示倒计时,随机显示4张纸牌。Pass按钮,是在游戏回答不出来时,选择再来一次;return按钮,是在退出游戏模式按钮。如图4.4所示:图4.4 v 从随机出来的四个数字间让其等于24,回答正确界面加6分,如图4.5所示:图4.5v 回答错误,或时间到,扣除1分,如图4.6所示:图4.6 4.2.3练习模式功能模块图 整体效果图如图4.7所示: 图4.7 显示52张纸牌v 随机抽取纸牌,系统自动显示多种答案,如图4.8所示: 图4.8 系统自动显示答案v 显示游戏历史分数,如图4.9所示:图4.9 显示历史分数第五章 系统详细设计与编码5.1 游戏详细设计类 5.1.1定义卡片类card 1.定义两个私有属性number,variety,得到纸牌的大小和种类。大小就是1-13个数字,种类是黑红方片。 2.定义两个静态常量back,backS,用于获得纸牌图形:final private static Icon back=new ImageIcon(image/card/back.png);final private static Icon backS=new ImageIcon(image/cardS/back.png); 3.分别用于得到number,variety: public int getNumber() return number; public String getVariety() return VARIETYvariety; 5.1.2 定义接口variety类 (1)用于设置纸牌的四个种类,如表5.1所示:纸牌种类变量所赋值SpadeSpade=0HeartHeart=1ClubClub=2DiamondDiamond=3 表5.1 (2)用数组定义了四个类:String VARIETY=new String, , , ; 5.1.3 定义CalculateExpression类 (1)该对象拥有3个私有变量:expression,用于记录表达式. isCorrect,表示表达式是否规范.result,表达式计算结果. (2)该对象拥有以下方法供外部调用,如表5.2所示:方法名功能setExpression(String)输入表达式,无返回getExpression()返回表达式isCorrect()返回表达式是否规范isCorrect(int)返回表达式是否规范,式中的数字个数也为判断依据getNumbers()返回表达式中数字getResult()返回表达式的计算结果,类型intgetDoubleResult()返回表达式的计算结果,类型doublecompareNumbers(int)比较表达式中的数字是否与给出的数相同 表5.2 (3)该对象拥有以下私有方法: check() 判断表达式是否规范,并自动修正,返回类型为boolean calStep1(),calStep2(),calStep3() 计算表达式结果的三步,返回类型 均为double. (4)main方法 见源文件CalculateExpression.java 5.1.4 定义FindExpression类 1.该对象拥有3个私有变量expressionResult,所需结果maxLine,输出结果每页行数error,是否出错 2.该对象拥有以下方法供外部调用,如表5.3所示:方法名功能setNumbers(double )输入用来运算的数,4个时才能计算setMaxLine(int )输入每页的行数getMaxLine()返回每页的行数setExpressionResult(double )输入所需结果getExpressionResult()返回所需结果,类型为doublegetExpression()返回可得出所需结果的表达式表5.3 3. 四个数的计算表达过程: cal1(),将4个数计算一次后返回3个数 private double cal1(double n, int t, int c) cal2(),将3个数计算一次后返回2个数 private double cal2(double n, int t, int c) cal(),将2个数计算后返回结果 private double cal(double n1, double n2, int c) 4. main方法 见源文件FindExpression.java 5.1.5 定义GameMode类 1.JButton组件: JButton b1=new JButton(new ImageIcon(image/Pass.png); JButton b2=new JButton(new ImageIcon(image/Return.png); JButton bO1=new JButton(new ImageIcon(image/+.png); JButton bO2=new JButton(new ImageIcon(image/-.png); JButton bO3=new JButton(new ImageIcon(image/.png); JButton bO4=new JButton(new ImageIcon(image/.png); JButton bO5=new JButton(new ImageIcon(image/(.png); JButton bO6=new JButton(new ImageIcon(image/).png); JButton bO7=new JButton(new ImageIcon(image/=.png); JButton bO8=new JButton(Clear); 2.创建新的 JLabel 组件. JLabel JLbExpression=new JLabel();JLabel JLbTime=new JLabel(Time : ); 3.鼠标事件MouseEvent e. public void mouseEntered(MouseEvent e) public void mouseExited(MouseEvent e) public void mouseReleased(MouseEvent e) public void mousePressed(MouseEvent e) 4.计分方法 JOptionPane.showMessageDialog(null,回答正确,加上+score+分, JOptionPane.showMessageDialog(null,回答错误,扣除1分, JOptionPane.showMessageDialog(null,时间到,扣除1分, 5.源代码见文件GameMode.java 5.1.6 定义PracticeMode类 1.JButton组件: JButton b1=new JButton(new ImageIcon(image/Find.png);JButton b2=new JButton(new ImageIcon(image/Reset.png);JButton b3=new JButton(new ImageIcon(image/Return.png);2.创建新的 JLabel 组件. JLabel bg=new JLabel(new ImageIcon(image/Practice.jpg);3.鼠标事件MouseEvent e. public void mouseEntered(MouseEvent e) public void mouseExited(MouseEvent e) public void mouseReleased(MouseEvent e) public void mousePressed(MouseEvent e) 4.源代码见文件PracticeMode.java 5.1.7 定义RankList类 1.读取带缓存的BufferedReader字符流. BufferedReader input=new BufferedReader(new FileReader(RankList.dat); 带缓存的字符输出流BufferedWriter.BufferedWriter output=new BufferedWriter(new FileWriter(RankList.dat); 2.源代码见文件RankList.java 5.1.8 定义test类 1.JButton组件: JButton b1=new JButton(new ImageIcon(image/NewGame.png);JButton b2=new JButton(new ImageIcon(image/Practice.png);JButton b3=new JButton(new ImageIcon(image/RankList.png);JButton b4=new JButton(new ImageIcon(image/QuitGame.png);2. 鼠标事件MouseEvent e. public void mouseClicked(MouseEvent e) public void mouseEntered(MouseEvent e) public void mouseExited(MouseEvent e) public void mouseReleased(MouseEvent e) public void mousePressed(MouseEvent e) 3.源代码见文件Test.java.5.2 Javax.Swing描述 (1) 由所有Java图形用户界面(GUI)组件所构成,可运行在任一支持Java虚拟机(JVM)的本地平台上。由于这些组件全都是用Java语言编写的,因此它们可以提供比本地平台GUI组件更多的功能。(与抽象窗口工具箱对比)。Java Swing是Java Foundation Classes(JFC)的一部分。在Swing中,Sun开发了一个经过仔细设计的、灵活而强大的 GUI 工具包。Swing是在AWT组件基础上构建的。它所提供的功能要比AWT提供的更为广泛。它也是Java技术的一种标准配置。(2)Swing包的组成:l javax.swing:基本Swing包,包括Swing容器、组件及相关设置的类和接口。l javax.swing.border:包括与边界设计相关的类和接口。l javax.swing.colorchooser:与颜色选择相关的类和接口。l javax.swing.event:包括事件处理相关的类和接口。l javax.swing.tree:包括对树形组件进行操作的类和接口。常用Swing组件: 按钮:JButton;文本区:JTextArea;文本字段:JTextField5.3 游戏实现主要方法 / 添加鼠标监听器addMouseListener(this);setResizable(false);setDefa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论