斗地主游戏网络版的设计与实现Word格式文档下载.docx
- 文档编号:22020228
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:57
- 大小:166.47KB
斗地主游戏网络版的设计与实现Word格式文档下载.docx
《斗地主游戏网络版的设计与实现Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《斗地主游戏网络版的设计与实现Word格式文档下载.docx(57页珍藏版)》请在冰豆网上搜索。
讲述了网络斗地主的游戏算法的设计,游戏通讯部分的开发(多线程,socket)的设计过程。
flashUI部分由Wesly.Allen实现并提供部分代码。
本设计采用MicrosoftVisualStudioC++作为开发工具,结合socket编程,使用flashmx开发游戏界面。
设计过程中,首先建立系统的应用模型,然后在此基础上进行需求迭代,详细设计时不断地修正和完善,经过测试阶段反复调试和验证,最终形成达到设计要求的可行系统。
关键词:
网络斗地主;
服务器;
客户端;
socket编程;
ThedesignandrealizationofnetworkLandlordsgame
StudentmajoringinComputerScienceandTechnologyBin
TutorXiujuanLuo
Abstract:
Recently,withthedevelopmentofeconomic,thepeople'
slifebecomesbetterandbetter,lifeconditionalsoisimprovingmoreandmore.Properrecreationisindispensableinthepeople'
spasttimelife.Thegamedesignedalreadybecomesthepresentsocietyonepopularprofession.
ThisthesisdescribedanetworkofthegameLandlordsalgorithmdesign,communicationspartofthegamedevelopment(multithreading,socket)ofthedesignprocess.TheprocessofFlashUIrealizedbyWesly.Allenandprovidesomecode.ThedesignusingMicrosoftVisualStudioC++asadevelopmenttool,withsocketprogramming,usingtheFlashMXtodeveloptheuserinterface.
Designingprocess,firststepistheestablishmentofapplicationmodel,andthenonthebasisofthisiterativedemand,detaileddesignhasbeenrefinedandperfected,throughrepeatedtestinganddebuggingtesteventuallyreachedthedesignrequirementsofthesystemviable.
Keywords:
NetworkLandlords;
Server;
Client;
Socketprogramming;
1概述
1.1课题研究的目的和意义
1.1.1课题来源
随着电脑软硬件技术和互联网的飞速发展,电脑游戏也突飞猛进,成功游戏案例不断涌现,例如反恐精英(CS)、星际争霸、魔兽争霸、FIFA2008、帝国时代等等。
这时也出现了越来越多的网络小游戏,例如网络围棋、中国象棋、四国军棋、桥牌、麻将、拱猪、拖拉机、斗地主等。
我曾经在安博(昆山)服务外包产业园参加C++项目实训开发,本设计的程序既是以当时的一个程序为蓝本,稍加修改而得。
1.1.2研究目的
网络小游戏制作的目的是满足了人们休闲的需要,在紧张工作之余休闲类的小游戏能够给人带来最大程度的放松,也可以增进人们之间的交流,沟通,通过游戏还可以认识更多的朋友,也可以到达跨省、跨市,甚至跨国间人们互相娱乐的目的。
另外也通过本毕业设计将四年来所学的专业知识和其他方面的知识融入到实际应用中。
1.1.3研究意义
通过此次课题的设计,掌握制作一个游戏软件的方法,以及制作游戏软件的整个流程,制作游戏软件的步骤,为以后的就业工作打下基础。
1.2研究现状综述
网络游戏正处于加速发展周期中,中国网络游戏市场迅速扩大,近三年的年均增长率超过100%。
网络游戏的高速发展,逐渐引起了我国政府的高度重视,信息产业部、文化部、新闻出版总署相关部门都在积极推动各项市场监管和鼓励网络游戏产业发展的政策措施的出台,2003年网络游戏首次被正式纳入国家863计划,标志着我国网络游戏产业已经得到政府的充分重视。
2007年中国网络游戏实际销售收入为105.7亿元人民币,比2006年增长61.5%。
其中,中国自主研发的民族网络游戏市场实际销售收入达68.8亿元,占网络游戏市场实际销售收入的65.1%。
此外,在网络游戏产业发展的同时,有力带动了相关行业的发展,如软件、计算机、通信、电信运营、互联网等,根据统计,网络游戏能够带动10倍于自身产值的相关行业的发展。
预计未来三年,中国游戏规模将保持60%以上的高速增长,至2010年市场规模将接近1000亿元,而多样的资本运作模式将成为网络游戏产业发展的重要推动力。
同时,手机游戏、家用游戏机、游戏传媒、电子竞技等游戏周边行业也将快速发展起来。
1.3研究内容
1.3.1设计原理
本设计采用客户机——服务器模式,网络上的任何一台计算机都可以连接到服务器,当连接成功时,则分别点击准备以待游戏的开始,当对战各方都准备后程序自动判定游戏开始。
游戏开始后,各方都有自己的游戏区域,互不干扰,当一方出完全部的牌则向各个玩家发送游戏结束信息,并在各方显示相关提示信息,游戏过程中,各方都会显示对家和自己还剩下未出去的牌数。
游戏规则是模仿网络上普通的斗地主游戏,主要是自己打的牌是否大过参照牌的问题。
当前,前提是点击张数相同的牌,若点击的是牌数不相同,或者选择的牌型不同,或者牌面不够大,则不可以打出去,并提示玩家错误信息。
否则,可以将牌打出去,并在各方游戏区域显示牌。
游戏过程,任意一家(假设为A方)打出牌后必须同时向其他玩家发送出牌的信息。
其他各方(假设为B或C方)在获取信息后即显示A方剩余的牌数,当A方剩余牌数为0,则提示A方胜利。
其他各方失败的信息。
1.3.2方案选择
在概要设计阶段,有两中方案可供选择:
(1)各方都有自己的游戏区域,互不干扰,谁先出完全部的牌就为胜出的一方,同时不管其他各方是否已经出完全部的牌,游戏仍然结束。
(2)在前一个方案的基础上加入“showhand”键组,只要玩家点击某个showhand键,就可以在游戏结束时,将自己的该局得分乘以相应的倍数。
在第二种方案中,各方都有机会选择自己得分的翻番倍数,这样虽然可以增加玩家的新鲜感和带来刺激,但是,可能会引起玩家的赌徒心理,而不益于青少年的身心健康。
在网络上流行的斗地主游戏或者其他的游戏都是以第一种方案为设计思想,对第二种方案设计的游戏的规则可能会不太习惯,玩起来就不能达到娱乐的目的了。
所以我们放弃第二种方案的设计思想,参考网络上流行的斗地主的游戏规则,设计出第一种方案。
1.4课题研究技术要求、研究方法和要解决的关键问题
1.4.1技术要求
网络中任意计算机当运行该游戏软件时,要当客户机,要主动去连接服务器。
当玩家完成登陆后,方可准备游戏;
服务器能自动判断是否所有玩家都已经准备就绪,从而决定是否发牌;
游戏中能正确判断玩家出牌是否合法,是否可以打出去(比参照牌大,就可以打出去)、能正确判断游戏是否已经结束和哪一方玩家胜出。
还可顺利发消息给对方和接收对方发来的消息。
1.4.2研究方法
按照软件开发的总过程进行设计,经历定义和计划、需求分析、软件设计、软件编码、软件测试等过程。
1.4.3关键问题
开始制作游戏时,主要要解决的问题有以下几个方面:
如何设置整个游戏的界面;
如何控制斗地主游戏中每个玩家牌的随机生成,以保证各个玩家有公平的机会拿到任何一张牌;
游戏开始后,判断哪个玩家可以开始叫地主,第二个或第三个是否可以叫地主,能叫几分;
还有如何发牌的问题,每个玩家该拿几张牌,发牌顺序是怎样的,以及有玩家竞争到地主时,将底牌发送过去给地主;
如何连接网络上的三台计算机实现网络对战,如何判断游戏是否结束以及输赢问题等。
2系统开发环境与网络通信技术
2.1开发环境
古语云:
工欲善其事,必先利其器。
利用一系列高效的、具有良好可视化的编程环境去开发各种软件,从而达到事半功倍的效果,所以开发硬件、软件、环境的选择显得非常重要。
2.1.1系统环境需求
因为要实现的项目本身规模不是太大,只要以下简单需求
●两台以上计算机(也可用一台计算机通过虚拟机实现)
●CPU1G以上、内存256M以上硬盘20G以上
●Windows2000以上或RedhatLinux9.0
●MicrosoftVisualStudio6.0以上或gcc
2.1.2开发工具简介
随着计算机技术不断发展,各种编程工具也随着发展,但是现在市面上的数据库编程工具门类众多,优良不齐,比如VB、PB、DELPHI、C++Builder、VC、JAVA等。
我们先来了解一下各类开发工具。
VB,全称VisualBasic,它是以Basic语言作为其基本语言的一种可视化编程工具。
VB开发效率高,代码执行效率一般,但是入门和学习速度快,有较好的学习氛围和帮助书籍和帮助文档。
但是随着微软的.NET技术的推广,VB将会逐渐退出历史舞台。
PB,全称PowerBuilder,是开发MIS系统和各类数据库跨平台的首选,使用简单,容易学习,容易掌握,在代码执行效率上也有相当出色的表现。
但是PB的高级编程书籍的缺乏和基础语言PowerScript的普及程度对PB的明天有一定的限制。
DELPHI/C++Builder它们都是基于VCL库的可视化开发工具,它们在组件技术的支持、数据库支持、系统底层开发支持、网络开发支持、面向对象特性等各方面都有相当不错的表现,并且学习使用较为容易,充分提现了所见即所得的可视化开发方法,开发效率高。
它们所作的最大不足之处就是他们的帮助系统在众多的编程工具中是属于比较差的。
JAVA工具,目前比较出名的是Borland出的JBuilder和IBM出的VisualAgeforJava(Eclipse),两种工具。
适用于开发除了系统软件、驱动程序、高性能实时系统、大规模图像处理以外所有的应用。
在一般的管理信息系统中和一般的数据库开发中,很少有人会选择JAVA。
但是JAVA的强大网络功能和真正的面向对象特性决定了JAVA的未来,JAVA将在一个较为长期的时段里可以与微软家族抗衡。
VisualStudioC++,是基于MFC库的可视化的开发工具,从总体上说它是一个功能强大但是不便使用的一种工具。
它在网络开发和多媒体开发都具有不俗的表现,帮助系统也做得非常不错,从开发效率角度讲只局限于开发windows系统应用、可重用组件及驱动程序。
因为有微软的支持,其自身的基础语言的普及程度高,以及其代码的执行效率高等特性、VC自带强大帮助文档和大量优质教材,VC在开发工具中始终可以稳住阵角。
由于除了有些语言不是很熟悉外,而且是第一次开发网络游戏,对语言的驾驭能力还很有限,我选择了帮助功能非常强大的Microsoft(微软)的VisualC++作为我的开发工具。
2.2VisualStudioC++编程特点
2.2.1C++语言
C++是由C语言发展而来,是面向对象程序设计语言之一.C++语言是一种应用较广的面向对象的程序设计语言,使用它可以实现面向对象的程序设计。
面向对象的设计与面向过程的设计是有很大区别的,面向对象的程序设计是在面向过程的程序设计的基础上一个质的飞跃。
2.2.2MicrosoftVisualStudioC++简介
VisualStudioC++是Microsoft公司的VisualStudio开发工具箱中的一个C++程序开发包。
VisualStudio提供了一整套开发Internet和Windows应用程序的工具,包括VisualC++,VisualBasic,VisualFoxpro,VisualInterDev,VisualJ++以及其他辅助工具,如代码管理工具VisualSourceSafe和联机帮助系统MSDN。
VisualC++包中除包括C++编译器外,还包括所有的库、例子和为创建Windows应用程序所需要的文档。
从最早期的1.0版本,经过6.0版本,发展到最新的9.0版本,也就是VisualStudio2008,VisualStudioC++已经有了很大的变化,在界面、功能、库支持方面都有许多的增强。
最新的2008版本在编译器、MFC类库、编辑器以及联机帮助系统等方面都比以前的版本做了较大改进。
2.3Windowssockets简介
2.3.1WindowsSockets规范
WindowsSockets规范以U.C.Berkeley大学BSDUNIX中流行的Socket接口为范例定义了一套MicrosoftWindows下网络编程接口。
它不仅包含了人们所熟悉的BerkeleySocket风格的库函数;
也包含了一组针对Windows的扩展库函数,以使程序员能充分地利用Windows消息驱动机制进行编程。
WindowsSockets规范本意在于提供给应用程序开发者一套简单的API,并让各家网络软件供应商共同遵守。
此外,在一个特定版本Windows的基础上,WindowsSockets也定义了一个二进制接口(ABI),以此来保证应用WindowsSocketsAPI的应用程序能够在任何网络软件供应商的符合WindowsSockets协议的实现上工作。
因此这份规范定义了应用程序开发者能够使用,并且网络软件供应商能够实现的一套库函数调用和相关语义。
遵守这套WindowsSockets规范的网络软件,我们称之为WindowsSockets兼容的,而WindowsSockets兼容实现的提供者,我们称之为WindowsSockets提供者。
一个网络软件供应商必须百分之百地实现WindowsSockets规范才能做到现WindowsSockets兼容。
任何能够与WindowsSockets兼容实现协同工作的应用程序就被认为是具有WindowsSockets接口。
我们称这种应用程序为WindowsSockets应用程序。
WindowsSockets规范定义并记录了如何使用API与Internet协议族(IPS,通常我们指的是TCP/IP)连接,尤其要指出的是所有的WindowsSockets实现都支持流套接口和数据报套接口。
应用程序调用WindowsSockets的API实现相互之间的通讯。
WindowsSockets又利用下层的网络通讯协议功能和操作系统调用实现实际的通讯工作。
虽然我们并不反对使用这一套API来实现另一通讯协议栈(而且我们期望在将来规范的修改中能够讨论这个问题),但这种用法已经超出了我们这一份规范所规定的范围,我们在此将不作讨论。
2.3.2WindowsSockets通信程序的基本流程
Socket设计在操作系统的核心中,提供一些系统调用以支持多种通信协议(如tcp,udp等等)。
当要支持一种新的通信协议时,则需要把核心做一些改变。
为了免除改变核心太多而造成不便,可以采用流的模块方式来添加新的功能,但这种方式并无法完全免除更动核心的操作。
实际上,核心的设计把网络系统分成三个不同的层。
socket支持3种访问传输系统的接口:
其中一种就是同步阻塞方式:
使用同步阻塞方式时,socket库函数暂停程序的运行,等待传输系统完成请求的操作,操作一旦完成,应用程序重新获得控制权。
3需求分析
3.1需求分析
3.1.1需求分析的作用
需求分析就是分析软件用户的需求是什么.如果投入大量的人力,物力,财力,时间,开发出的软件却没人要,那所有的投入都是徒劳.如果费了很大的精力,开发一个软件,最后却不满足用户的要求,从而重新开发,这种返工是让人痛心疾首的。
比如,用户需要一个Linux环境下的软件,而你在软件开发前期忽略了软件的运行环境,忘了向用户询问这个问题,而想当然的认为是开发Windows环境下的软件,当你千辛万苦地开发完成向用户提交时才发现出了问题,那这个时候的损失就是巨大的。
3.1.2需求分析过程
需求分析阶段的工作,可以分为四个方面:
问题识别,分析与综合,制订规格说明,评审。
●问题识别:
就是从系统角度来理解软件,确定对所开发系统的综合要求,并提出这些需求的实现条件,以及需求应该达到的标准.这些需求包括:
功能需求(做什么),性能需求(要达到什么指标),环境需求(如机型,操作系统等),可靠性需求(不发生故障的概率),安全保密需求,用户界面需求,资源使用需求(软件运行是所需的内存,CPU等),软件成本消耗与开发进度需求,预先估计以后系统可能达到的目标。
●分析与综合:
逐步细化所有的软件功能,找出系统各元素间的联系,接口特性和设计上的限制,分析他们是否满足需求,剔除不合理部分,增加需要部分。
最后,综合成系统的解决方案,给出要开发的系统的详细逻辑模型。
●制订规格说明书:
即编制文档,描述需求的文档称为软件需求规格说明书。
注意需求分析阶段的成果是需求规格说明书,向下一阶段提交。
●评审:
对功能的正确性,完整性和清晰性,以及其它需求给予评价。
评审通过才可进行下一阶段的工作,否则重新进行需求分析。
3.1.3需求分析的方法
需求分析的方法有很多。
这里只强调原型化方法,其它的方法如:
结构化方法,动态分析法等(个人认为,对初学者不必深究这些方法,实际上我也从来没用过这些方法在此不讨论)。
原型化方法是十分重要的。
原型就是软件的一个早期可运行的版本,它实现了目标系统的某些或全部功能。
原型化方法就是尽可能快地建造一个粗糙的系统,这系统实现了目标系统的某些或全部功能,但是这个系统可能在可靠性,界面的友好性或其他方面上存在缺陷。
建造这样一个系统的目的是为了考察某一方面的可行性,如算法的可行性,技术的可行性,或考察是否满足用户的需求等。
例如:
为了考察是否满足用户的要求。
可以用某些软件工具快速的建造一个原型系统,这个系统只是一个界面,然后听取用户的意见,改进这个原型.以后的目标系统就在原型系统的基础上开发。
原型主要有三种类型:
探索型,实验型,进化型.探索型:
目的是要弄清楚对目标系统的要求,确定所希望的特性,并探讨多种方案的可行性。
实验型:
用于大规模开发和实现前,考核方案是否合适,规格说明是否可靠。
进化型:
目的不在于改进规格说明,而是将系统建造得易于变化,在改进原型的过程中,逐步将原型进化成最终系统。
使用原型化方法有两种不同的策略:
废弃策略,追加策略。
废弃策略:
先建造一个功能简单而且质量要求不高的模型系统,针对这个系统反复进行修改,形成比较好的思想,据此设计出较完整,准确,一致,可靠的最终系统。
系统构造完成后,原来的模型系统就被废弃不用.探索型和实验型属于这种策略。
追加策略:
先构造一个功能简单而且质量要求不高的模型系统,作为最终系统的核心,然后通过不断地扩充修改,逐步追加新要求,发展成为最终系统。
进化型属于这种策略。
3.2可行性分析
3.2.1可行性分析的意义
可行性研究能使新系统达到以最小的开发成本取得最佳的经济效益。
可行性研究的目的,是根据所开发系统的请求,通过初步调查和系统目标分析,对要开发的斗地主游戏系统从技术上、经济上、资源上和管理上进行是否可行的研究。
这是一项保证资源合理使用、避免失误和浪费的重要工作。
●经济上的可行性:
主要分析成本与收益、投资效果等(个人实验可以不考虑)。
●技术上的可行性:
要分析技术力量、计算机性能、通讯网络和系统条件等。
●资源上的可行性:
主要指管理、经费能否得到保证。
●管理上的可行性:
如帐户管理水平、数据收集可能性、规章制度健全程度和领导对发展系统的态度。
3.2.2可行性分析报告
以下为将可行性分析转化为的可行性报告:
本系统技术实现简单可靠,通讯组网简单,因为不需要大规模的计算和读取数据,所以对计算机的性能要求并不高,对环境的搭建没有特殊的要求。
开发本系统无需很特殊设备与环境,所以资源上具有可行性。
对于每个用户都可建立一个帐号和密码,安全性相当的高,且便于管理。
以上可行性分析就各个方面进行了分析,接下来需遵照相关标准和规定进行审议,通过后进入了以下需求分析阶段。
3.3系统定义
本游戏是斗地主游戏(网络版),是根据民间的盛行的扑克牌游戏斗地主,融合现代网络游戏的特点和管理需要,推出的体现当前行业最具有代表意义的解决方案。
作为面向广大用户网络游戏,主要用于提供斗地主的游戏平台,提供登陆,发牌,叫牌,出牌,胜负判定以及退出等主要功能。
3.4系统的组成和功能结构
●用户动作信息录入功能--输入
●系统信息显示功能--输出
●登陆功能
●退出功能
3.5研究方法
3.5.1软件工程的定义
软件工程是一类求解软件的工程,它应用计算机科学、数学及管理科学等原理,借鉴传统工程的原则、方法,创建软件以达到提高质量、降低成本的目的。
其中,计算机科学、数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。
软件工程是一门指导计算机软件开发和维护的工程学科。
3.5.2软件工程的模型
软件工程的模型是软件开发全部过程、活动和任务的结构框架。
●瀑布模型内容及特点:
瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。
将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序。
将软件生存周期的各项活动规定为依固定顺序连接的若干阶段工作,是一种线性模型。
每个开发阶段具有以下特征,从上一阶段接受本阶段工作的对象作为输入,对上述输入实施本阶段的活动,给出本阶段的工作成果作为输出传入下一阶段,对本阶段工作进行评审,若本阶段工作得到确认,则继续下阶段工作,否则返回前一阶段甚至更前阶段。
瀑布模型最为突出的缺点是该模型缺乏灵活性。
●演化模型内容及特点:
演化模型主要针对事先不能完整定义需求的软件开发,其开发过程一般是首
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 地主 游戏 网络版 设计 实现