最新联网游戏论文.docx
- 文档编号:27641054
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:18
- 大小:234.88KB
最新联网游戏论文.docx
《最新联网游戏论文.docx》由会员分享,可在线阅读,更多相关《最新联网游戏论文.docx(18页珍藏版)》请在冰豆网上搜索。
最新联网游戏论文
联网游戏作为一种娱乐手段,正以其独特的魅力吸引着越来越多的玩家。
为了满足广大象棋爱好者也可以享受到网络所带来的便利,本设计在当前局域网条件下实现了中国象棋的网络对战。
鉴于局域网的特点和游戏本身的要求,本设计采用两层C/S架构来实现相互之间的通信。
它主要包含以下几大模块:
网络通信模块,图像绘制模块和规则设置模块。
网络通信模块使得玩家可以方便的迅速建立起网络连接,从而实现联机对弈和聊天功能;图像绘制模块实现棋盘更新以及棋子动态表示等功能;规则设置模块用于约束玩家的棋步。
电脑游戏是计算机应用领域的一个重要主题,而当前网上最热门的休闲对战类游戏当属棋牌游戏。
通过对象棋的数据结构,相关算法与网络联机,以及对网络对战平台系统的分析,设计成一套基于VC++平台的棋牌类对战系统。
关键字网络通信 联机对弈 图像绘制 消息响应
毕业设计说明书(论文)中文摘要
TitleTheDevelopmentofChineseChessGameSystem
Abstract
On-linegameasameansofentertainmenthasauniquecharmtoattractmoreandmoreplayers.Tomeetchesslovers,thisdesignhasrealizedtheChallengesofChinese-chessbetweenplayersunderthecurrentLANenvironment.
Inviewofthecharacteristicsoflocalareanetworksandtherequirementsofthegameitself,thedesignusesatwo-tierC/Sstructuretoachievemutualcommunication.Itcontainsthefollowingmajormodules:
thenetworkcommunicationmodule,imagerenderingmoduleandtherulessetupmodule.NetworkCommunicationModuleallowsgamerscanquicklysetupaconvenientnetworkconnectioninordertoachieveanonlinegameandchatfunction;imagerenderingmoduletoupdatetheboardaswellasfunctionalpieces,suchasthedynamicthat;rulesbindingsettingsmoduleforstep-by-stepplayer'sgame.
Computergamesisanimportantsubjectinthefieldofcomputerapplications,andpresentthemostpopularcasualonlinegameswaramongboardgames.Bythedatastructure,algorithmsandnetworkonline,aswellasthenetworkplatformforsystematicanalysisofthewar,designedasetofVC++platformbasedonthecategoryCardbattlesystem.
KeywordsNetworkCommunication,Onlinegame,ImageRendering,MessageResponse
毕业设计说明书(论文)外文摘要
前言
电脑游戏就是以计算机为操作平台,通过人机互动形式实现的能够体现当前计算机技术较高水平的一种新形式的娱乐方式。
电脑游戏是必须依托于计算机操作平台的,不能在计算机上运行的游戏,肯定不会属于电脑游戏的范畴。
至于现在大量出现的游戏机模拟器,原则上来讲,还是属于非电脑游戏的。
游戏必须具有高度的互动性。
所谓互动性是指游戏者所进行的操作,在一定程度及一定范围上对计算机上运行的游戏有影响,游戏的进展过程根据游戏者的操作而发生改变,而且计算机能够根据游戏者的行为做出合理性的反应,从而促使游戏者对计算机也做出回应,进行人机交流。
游戏在游戏者与计算机的交替推动下向前进行。
电脑游戏比较能够体现目前计算机技术的较高水平。
一般当计算机更新换代的同时,计算机游戏也会相应的发生较大的变更。
电脑游戏按类型可分为:
单机游戏、网络游戏、flash小游戏、电子竞技等。
按内容可分为:
即时战略类、角色扮演类、模拟经营类、冒险动作类,棋牌休闲类等。
本系统属于网络棋牌休闲类游戏。
第一章课题研究意义与路线
1.1本课题研究意义
在人们逐步进入信息时代后,电脑游戏使得人生变成了游戏。
而现在,网络技术和数字技术把文化、教育和知识都变成了娱乐变成了游戏,使它们变成了大众的、平民的东西,可爱的、容易接受的东西。
作为融合高科技的文化艺术产品,电脑除给人们的生活带来联想之外,它更能给使用者带来更多现实中不能拥有的体验,这正是当今世上被看好的体验型经济的典型代表。
随着人民生活水平的提高,人们的生活模式和思想模式都发生着变化。
电脑游戏业经过多年发展,跌跌撞撞地走过来。
应该看到人们在电脑和互联网带来的时代标志性变化中,电脑游戏市场的逐步完善与巨大的潜在能量,作为一种现代娱乐形式,其正在世界范围内创造巨大的市场空间和受众群体。
传统的单机游戏曾风靡一时,游戏爱好者在简单的打斗中获得了虚幻世界的满足,但过了一段时间后,单机游戏的模式由于不能满足人们相互交流的愿望以及其内容的简单重复,面对电脑的独孤求败总让人有一种自以为是而又百无聊赖的感觉。
逐渐失去了对用户的吸引力,游戏爱好者期待着新的游戏模式出现。
于是,电脑游戏开始朝着网络游戏发展,随着网络建设快速发展,人们生活方式随着时代发展而改变,网络游戏迅速取代单机游戏成为了游戏玩家新的宠儿。
1.2本课题研究路线
根据系统的开发目标、原则和项目需求,利用使用MicroSoftVisualC++6.0开发,运行与Windows平台,其以网络通信原理结合中国象棋的规则设计完成,是一款能够实现局域网内双人联机对弈的电脑游戏程序。
在对课题的需求进行详细地分析之后,制定出基本的设计方案,将理论应用到实际的设计过程中去。
然后根据需求来进行功能模块划分,建立简洁友好的操作界面,强化系统的可用性与操作性。
最后对具体模块功能进行详细的研究和设计,使其满足基本的系统需求,并尽量完善系统功能,最终完
第二章中国象棋游戏的开发中运用到的相关技术概述
2.1点对点通信
从OSI参考模型的应用层来看,可认为网络是由工作站和服务器组成的,但从传输层和网络层的角度看,工作站和服务器没有本质的区别,它们都是连接到网络上的一台机器,都可以用网络地址或名称来代替。
它们之间的通信就是所谓的点对点通信,也叫对等通信。
在局域网上,点点通信意味着两个工作站可以直接对话而不用经过文件服务器中转。
通信的基础是套接口(Socket),一个套接口是通讯的一端。
socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。
应用程序通常通过"套接字"向网络发出请求或者应答网络请求。
[08]
局域网中工作站之间的通信程序的开发一般通过四种途径:
第一种是通过改造网络原有通信软件来实现。
但这种改造必须以对该软件充分了解为基础,否则改造后很难保证不影响网络的整体性能,甚至会造成系统运行不可靠,而改造后的通信质量不一定理想。
第二种是利用Novell网本身的网络协议IPX/SPX来实现,由于这种方法开发比较麻烦,采用的并不多。
第三种是通过NetBIOS功能调用来实现,NetBIOS是PCLAN的通信接口标准,广泛适用于多种微机网络,使得以它为基础的设计和应用开发可移植性好。
它不依赖于任何网络硬件,是一个介于网络硬件和用户应用程序之间的接口协议。
其通信原理是:
两个要进行通信的工作站通过名字建立一个虚电路,然后向相应的虚电路号发送或接收信息,这样通过虚电路实现了两个工作站之间的对等通信。
利用NetBIOS实现工作站之间的实时通信,功能比较强,编程实现比较容易,所以应用比较广泛。
第四种是通过TCP/IP协议来实现。
2.2TCP/IP协议
TCP协议(TransmissionControlProtocol传输控制协议):
是一种流传输控制协议,它提供可靠的、有序的、双向的、面向连接的数据传输,是一种面向连接的协议。
TCP协议是一种端对端的协议,使用TCP没有任何广播或类似的概念,要用TCP协议与另一台计算机通信,两台机之间必须像打电话一样连接在一起,每一端都为通话做好准备。
在IP协议中,我们处理的单个数据包是一个更大的数据报的一部分,一个TCP段就是一个单个的TCP数据包。
TCP是一个数据流,因此,除了“连接”之外,没有任何需要真正担心的其它概念。
最大报文段长度(MSS)是在连接的时候协商的,但是,它总是在不断地改变。
默认的最大报文段长度是536字节,这是576字节(IP协议保证的最小数据包长度)减去用于IP头的20个字节和用于TCP头的20个字节以后的长度。
TCP协议要设法避免在IP级别上的分段。
因此,TCP协议总是从536字节开始的。
TCP/IP协议的核心部分是传输层协议(TCP、UDP),网络层协议(IP)和物理接口层,这三层通常是在操作系统内核中实现。
因此用户一般不涉及,编程时,编程界面有两种形式:
一、是由内核直接提供的系统调用;二、使用以库函数方式提供的各种函数。
前者为核内实现,后者为核外实现。
用户服务要通过核外的应用程序才能实现,所以要使用套接字(socket)来实现。
2.3UPD协议
UDP协议(UserDatagramProtocol用户数据报协议):
是一种保护消息边界的,不保障可靠数据传输的无连接的协议。
主要用来支持那些需要在计算机之间传输数据的网络连接。
UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天,UDP仍然不失为一项非常实用和可行的网络传输层协议。
尤其是在需要很强的实时交互性的场合,如网络游戏、视频会议等,UDP协议更是显示出极强的威力。
UDP协议是一种面向非连接的协议,面向非连接指的是在正式通信前不必与对方先建立连接,不管对方状态就直接发送。
至于对方是否可以接收到这些数据内容,UDP协议无法控制,因此说UDP协议是一种不可靠的协议。
与TCP协议一样,UDP协议直接位于IP协议之上,实际上,IP协议属于OSI参考模型的网络层协议,而UDP和TCP都属于传输层协议。
UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境。
因为UDP协议是面向非连接的协议,没有建立连接的过程,因此它的通信效率高;但也正因为如此,它的可靠性不如TCP协议高。
UDP协议的主要作用是完成网络数据流量和数据报之间的转换:
在信息的发送端,UDP协议将网络数据流量封装数据报,然后将数据报发送出去;在信息的接收端,UDP协议将数据报转换成实际数据内容。
实际上,我们可以认为基于UDP协议的Socket类似于一个码头,该码头的作用就是负责发送、接收集装箱,一个数据报类似于一个集装箱。
因此对于基于UDP协议的通信双方而言,没有所谓的客户端和服务器端的概念。
2.4屏幕作图与用户交互
屏幕作图与用户的交互为用户提供了一个交互工作环境,称交互界面。
通常在图形显示方式,把屏幕划分成图形区、菜单区和提示区。
菜单功能的好坏直接影响到交互界面的友好性。
交互绘图操作命令是通过某单表达,菜单的设计需考虑到交互方便和提高交互效率。
常见的菜单有文宇菜单和图标菜单两大类,图标菜单较为直观、形象,不受文种不同的限制等优点。
屏幕作图与用户的交互的基本功能一般可归结为绘图功能、图形编辑、尺寸标准、作图工具、显示功能、询问功能、信息转换和二次开发工具等八大功能。
绘图功能是屏幕作图与用户的交互的核心部分,它主要包括绘图环境的设置、实体绘图命令和尺寸、文字标注等功能。
绘图环境的设置主要包括:
图层、线型、颜色、作图单位和图幅大小设定等。
实体绘图是生成图形的基本命令集,如点、直线、圆、圆弧等的绘图命令。
信息转换功能实现图形到图形文本文件的双向转换,图形文件按图形转换文件的标准格式书写。
开发工具是一种用户编程语言,通常是由高级编程语言,如C++、C#、VC、VB,通过绘图系统接口调用图形函数库。
用户借助于软件系统提供的用户编程语言,建立常用的图形库、常用的标准件图库和专用的应用程序等二次开发工作,提高绘图效率。
[06]
2.5远程控制原理
软件一般分两个部分:
一部分是客户端程序Client,另一部分是服务器端程序Server,在使用前需要将客户端程序安装到主控电脑上,将服务器端程序安装到被控电脑上。
它的控制的过程一般是先在主控电脑上执行客户端程序,像一个普通的客户一样向被控电脑中的服务器端程序发出信号,建立一个特殊的远程服务,然后通过这个远程服务,使用各种远程控制功能发送远程控制命令,控制被控电脑中的各种应用程序运行,我们称这种远程控制方式为基于远程服务的远程控制。
通过远程控制软件,我们可以进行很多方面的远程控制,包括获取目标电脑屏幕图像、窗口及进程列表;记录并提取远端键盘事件(击键序列,即监视远端键盘输入的内容);可以打开、关闭目标电脑的任意目录并实现资源共享;提取拨号网络及普通程序的密码;激活、中止远端程序进程;管理远端电脑的文件和文件夹;关闭或者重新启动远端电脑中的操作系统;修改Windows注册表;通过远端电脑上、下载文件和捕获音频、视频信号等。
[13]
2.6VC++相关技术简介
VC++6.0是Microsoft公司推出的一个基于Windows系统平台、可视化的集成开发环境,它的源程序按C++语言的要求编写,并加入了微软提供的功能强大的MFC(MicrosoftFoundationClass)类库。
MFC中封装了大部分WindowsAPI函数和Windows控件,它包含的功能涉及到整个Windows操作系统。
MFC不仅给用户提供了Windows图形环境下应用程序的框架,而且还提供了创建用程序的组件,这样,开发人员不必从头设计创建和管理一个标准Windows应用程序所需的程序,而是从一个比较高的起点编程,故节省了大量的时间。
另外,它提供了大量的代码,指导用户编程时实现某些技术和功能。
因此,使用VC++提供的高度可视化的应用程序开发工具和MFC类库,可使应用程序开发变得简单。
[01]
第三章系统概要设计
3.1系统功能简介
中国象棋,古代叫“象戏”是一种由两人轮流走子,以“将死”或“困毙”对方将(帅)为胜的一种棋类运动。
它不仅能丰富文化生活,陶冶情操,更有助于开发智力,启迪思维,锻炼辨证分析能力和培养顽强的意志。
象棋是中华民族的传统文化,不仅在国内深受群众喜爱,而且流传国外。
本系统为中国象棋网上对弈系统,其以网络通信原理结合中国象棋的规则设计完成,是一款能够实现局域网内双人联机对弈的电脑游戏程序,使用MicroSoftVisualC++6.0开发,运行与Windows平台。
中国象棋游戏的开发是主要由:
数据结构、图像绘制、规则设置、网络通信、棋子操作五部分构成。
软件本身即可以作为服务器端,又可以作为客户端,双方建立连接后即可以进行象棋对弈。
3.2需求分析及功能模块的划分
3.2.1需求分析
经过细致的需求分析,游戏总体设计如下:
1)游戏中应包含菜单选项,且运行程序后直接进入游戏菜单;
2)游戏中应包含游戏运行、游戏记录和游戏说明等功能模块,各模块具有独立的界面显示;
3)游戏中应具有回放功能,能够看到对方上一步走的棋子;
4)游戏中应正确的显示游戏操作方法,为玩家做游戏辅导;
5)游戏中应能够有联机对弈功能,能在局域网内进行游戏;
6)游戏中应能够使网络对弈双方进行聊天;
7)游戏中应能使当前操作的棋子闪烁的功能,是玩家能够看清自己当前操作的棋子;
8)游戏中的应该能够判断当前玩家操作棋子走的步骤是否正确,不正确的话就不予响应。
3.2.2功能模块的划分
1)数据结构
(1)通过定义二维数组来表示一个棋盘的数据信息;
(2)通过定义一个数组来表示棋子信息,信息中包含此为哪一个棋子,它的当前坐标为什么;
(3)定义了大量的变量和函数,以此来实现软件功能。
2)图像绘制
(1)绘制了游戏的界面;
(2)绘制了中国象棋的棋盘;
(3)对棋子进行了绘制并对当前被玩家选择的棋子进行动态显示;
(4)对玩家上一步的走棋进行回放功能。
3)规则设置
(1)对棋子的走法进行了规则定义;
(2)对特殊情况进行了规则设置,比如相(象)不能过河等等。
4)网络通信模块
(1)通过此模块进行接受和发送数据来实现网络对弈功能;
(2)进行实时聊天功能;
(3)将博弈中棋子走的步骤和邀请接受网络玩家对战要求转化为特定数据;
(4)通过对手发送过来的数据进行判断,判断对方走棋是否正确。
5)棋子操作模块
(1)获取棋子是否被玩家选中的信息;
(2)判断棋子是否被玩家走动;
(3)选中棋子时能够将光标的图形进行变化。
3.3功能模块流程图
1)数据结构流程
数据结构模块主要用来定义和管理各个事件,因此没有固定的流程。
数据结构模块内容如下:
(1)通过定义二维数组来表示一个棋盘的数据信息;
(2)通过定义一个数组来表示棋子信息
(3)定义了大量的变量和函数,以此来实现软件功能。
2)图像绘制
图3-1图像绘制流程图
3)规则设置
图3-2规则设置流程图
4)网络通信模块
图3-3网络通信流程图
5)棋子操作模块
图3-4棋子操作模块流程图
第四章中国象棋游戏系统的功能模块实现
4.1数据结构
4.1.1棋盘
棋子活动的场所,叫作“棋盘”。
在长方形的平面上,绘有九条平行的竖线和十条平行的横线相交组成,共有九十个交叉点,棋子就摆在交叉点上。
中间部分,也就是棋盘的第五,第六两横线之间末画竖线的空白地带称为“河界”。
两端的中间,也就是两端第四条到第六条竖线之间的正方形部位,以斜交叉线构成“米”字方格的地方,叫作“九宫”(它恰好有九个交叉点)。
整个棋盘以“河界”分为相等的两部分。
为了比赛记录和学习棋谱方便起见,现行规则规定:
按九条竖线从右至左用中文数字一至九来表示红方的每条竖线,用阿拉伯数字‘1’~‘9’来表示黑方的每条竖线。
对弈开始之前,红黑双方应该把棋子摆放在规定的位置。
任何棋子每走一步,进就写“进”,退就写“退”,如果像车一样横着走,就写“平”。
纵线方式,它是中国象棋常用的表示方法,即棋子从棋盘的哪条线走到哪条线。
中国象棋规定,对于红方来说的纵线从右到左依次用“一”到“九”表示,黑方则是“1”到“9”,这种表示方式体现了古代中国象棋研究者的智慧。
坐标方式,它是国际象棋常用的表示方法,把每个格子按坐标编号,只要知道起始格子和到达格子,就确定了着法,这种表示方式更方便也更合理,而且还可以移植到其他棋类游戏中。
中国象棋也可以用这种方法来表示,本程序将采用坐标方式。
本系统定义了一个int型的二维数组xArray[9][10]用来表示棋盘上每个格点在窗口的横坐标,和一个用来表示棋盘每个格点在窗口纵坐标的int型二维数组yArray[9][10]。
两个数组组合用来表示棋盘每个格点在整个窗口的具体位置。
对xArray[9][10]、yArray[9][10]的初始化代码如下:
for(inti=0;i<9;i++)
{
for(intj=0;j<10;j++)
{
xArray[i][j]=cX+50*i;
yArray[i][j]=cY+50*j;
}
}
其中(cX、cY)表示棋盘坐上就在窗口的坐标。
例如红方帅的坐标可以用(xArray[4][9],yArray[4][9])来表示该棋子在窗口中实际的坐标,以便于在该位置准确绘制图形。
另外系统设置相临坐标点的间隔增量为50个象素点,如|xArray[0][0]-xArray[0][1]|=50,这样以来整个棋盘映射到主窗口的像素范围被限制在(0,0)-(400,450)之间(单位:
象素)。
4.1.2棋子信息数组
中国象棋作为一种双方对阵的棋牌类竞技项目,棋子共有三十二个,分为红黑两组,各有十六个,由对弈的双方各执一组。
兵种是一样的,分为七种:
帅(将)、仕、相(象)、车、马、炮、兵(卒)。
红方持有棋子:
帅一个,仕、相、车、马、炮各两个,兵五个。
黑方持有棋子:
黑方有将一个,士、象、车、马、炮各两个,卒五个。
其中帅与将;仕与士;相与象;兵与卒的作用完全相同,仅仅是为了区别红棋和黑棋而已。
为了更加方便的表示棋子的类型,除了用于保存坐标信息的二维数组xArray[9][10]、yArray[9][10]外,我们还需要引进一个二维数组用来保存该坐标点的棋子信息,比如:
在(xArray[0][2]、xArray[0][2])上的是哪颗棋子?
亦或着是空位?
本系统引入了新的一个int型二维的数组InfoArray[9][10],很显然它也是一个9×10的数组,用来保存棋盘上所有90个格点的棋子信息。
现将InfoArray数组的取值范围极其定义列与下表:
表4-1棋子代码
InfoArray
0
1
2
3
4
5
6
7
DEF
空位
红车
红马
红相
红士
红帅
红炮
红兵
InfoArray
0
11
12
13
14
15
16
17
DEF
空位
黑车
黑马
黑象
黑仕
黑将
黑炮
黑卒
根据上表,位于坐标点(xArray[4][9],yArray[4][9])位置的红帅的棋子类型表示为InfoArray[4][9]=5。
当棋面改变,形成有效走棋时,只需更新对应坐标点的InfoArray的值即可,如红方走棋“炮二平五”对应的原信息{InfoArray[7][7]=6,InfoArray[4][7=0]}改变为{InfoArray[7][7]=0;InfoArray[4][7]=6},以实现走棋的数据更新。
4.1.3变量与函数
表4-2部分变量说明
变量
类型
定义
xArray
Int型二维数组
保存棋盘格点的横坐标
yArray
Int型二维数组
保存棋盘格点的纵坐标
InfoArray
Int型二维数组
保存棋盘格点的棋子类型
GetChessman
staticint
判断棋子是否选中
RedOrBlack
staticint
判断轮到哪方走棋
Prei,Prej
staticint
前一个坐标点precedingi,j
Mytrun
staticint
联机时用于判断是否本方走棋
UpdateAllData
longint
棋盘更新的信息
ReplayX1-Y2
Int
保存棋子行走路径,回看之用
CupdateAllData
Char
转换成char型的UpdateAllData,用做网络传输
Win
Bool
判断是否已有一方胜利
Online
Bool
判断是否联机
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 联网 游戏 论文
![提示](https://static.bdocx.com/images/bang_tan.gif)