计算机毕业论文_网络小游戏----连连看

2025-06-26

二、双方的游戏区域相同,即共用一个游戏区域,当一方消去两块图片,则

其总共消去的方块数加2,并且对方的游戏区域中也少掉那两块图片。当所有的图片方块都消去后,则游戏结束,统计消去的图片块数多的一方为胜者。

在第二种方案中,双方共用一个游戏区域,任何一放的消去方块的动作都要在另一方中实时的反应出来,这容易产生一些问题,就比如甲方点下图片下标值为1的图片(姑且用甲),乙方点下另一张图片下标值也为1的图片,当乙方想再次点下另一张下标值为1的图片时,甲方已经先于乙方点下那张图片,则按规则就已经消去了,反应在乙方这边的好象是乙方做了一次空操作,如此反复的话,可能会引起玩家的厌烦心在网络上流行的连连看游戏或者其他的游戏都是以第一种方案为设计思想,对第二种方案设计的游戏的规则可能会不太习惯,玩起来就不能达到娱乐的目的了。所以我们放弃第二种方案的设计思想,参考网络上流行的连连看的游戏规则,设计出第一种方案。

2.3 数据流图

由于游戏包含网络功能,所以将程序分为服务端程序和客户端程序。两种程序既有自身模块之间数据传送,也有与对方程序之间的数据传送,所以就有了下面的这个数据流图:

3系统设计

针对上面的需求分析,我们把整个软件分成三个模块:1、整体界面的设计

和图片的随机生成;2、图片路径判断函数;3、网络通信与对战。 以下就是系统结构图:(略)

3.1 基本思路

3.1.1 解决游戏区域问题

这个问题最简单,但是却是最花时间的。正所谓:万事开头难。刚开始想了好多控件来实现。比如Label,Panel等等,后来在参考文献中发现一个扫雷游戏可以通过image控件来画图。因此在几天之后才解决这个最早的最简单的也是最头疼的问题。

3.1.2 获取图片位置的思路

首先,最基本的就是关于程序图片的位置怎么获取,以及如何控制。这里采用最常用的方法——数组。考虑到图片是多行多列的格式。所以采用二维数组(数

组名为flag[])的方式来控制比较直观,并且为了程序容易解读,统一在不同过程中用名为i和j的变量来分别表示行列。程序开始时给数组中的各个元素赋初值为0,即表示没有图片。

然后数组控制整个游戏区域,游戏区域最外围为空白区域,即相关元素的值为0。这样就可以保证游戏刚开始后,第二层显示的图片之间的相连路径处理时就没有阻碍了。

现在介绍flag[]数组具体控制图片的过程,首先,由于每张图片显示的宽度×高度为39×47,所以整个控件设置为468×376(包括外围空白的两行两列)。而每张图片可以用flag[i,j]来表示,它在image内部的位置为{x=i*39到(i+1)*39,y=j*47到(j+1)*47}这样image控件内的一点M(x,y)所对应的图片就可以转化为数组flag[i,j]的值来判断。这个思路的具体算法可以后面的3.2.2的第二个步骤中得以体现。 3.1.3 网络通信协议的思路

这里有一点非常需要解决,那就是对战双方发送的游戏状态信息、聊天信息、用户准备信息全部是同一个方法来发送出去的,这进接收方将无法判断收到的信息是哪个类型的,这时通过定义发送信息的协议来完成。即在每次发送不同信息前加入一个四字符长的字符串来说明是哪种类型,接收方通过提取接收到信息前四个字符来判断是哪种类型,然后进行进行相关的处理。详细处理过程见3.4.2的内容。

3.1.4 其它功能的思路

其它功能的思路基本上没有什么难度也没花多少时间去解决,因此将在后面的具体各个部分的设计过程当中分别进行介绍。

3.2 界面的设计和图片的随机生成

由于这个程序的界面并不是很复杂,所以用到的控件也不多,主要核心内

容还是后台的代码设计。图片的随机生成主要是用到一个random()函数将随机数赋值给flag[]数组中的每个元素,然后根据数组元素值,来显示图片。(这个在3.1.2的思路中有详细的介绍) 3.2.1 界面的设计

将整体界面分为三个大的部分,左上部分为游戏图片显示区域,即主区域,用IMAGE控件;右上角为命令按钮、聊天信息框,双方游戏状态显示(用到了按

钮、MEMO、EDIT、Label等控件)。下面部分则是状态栏,显示相关提示信息(如图3-1)。

图3-1 程序主体界面

3.2.2 图片的随机生成

实现这个功能要分很多个步骤:

1. 程序运行时即载入游戏需要的六张图片。通过一个循环,将命名为

[1-6].bmp的位图载入到数组的各个元素。这个数组的下标也是相应的从标志为1-6.这样后面通过将flag标志的值置为1-6判断,该载入哪张图片。具体载入图片的代码如下: for i:=1 to 6 do begin

fk[i]:=TBitmap.Create;//生成一个数组分别存放六张图片 fk[i].loadfromfile('pic\\'+inttostr(i)+'.bmp'); end;

2. 当确认游戏开始时,通过画图过程完成图片生成,画图的过程代码如

procedure TForm1.drawmap();

var i,j,k:integer; begin

image1.Canvas.Rectangle(0,0,468,376); //初始化设置画出一片空白区域

for i:=1 to 6 do//将给二组数组相关元素赋1-6的值,以方便画出相应图

for j:=1 to 10 do begin

randomize(); repeat

k:=random(6)+1; //将生成随机数加1(为了防止0生成) flag[i,j]:=k; //控制每个元素显示图片的名称,六张图片文件名为1-6,均是.bmp格式

same[k]:=same[k]+1; until same[k]<11;

image1.Canvas.Draw(j*39,i*47,fk[flag[i,j]]);

{--*说明开始*--

在相关的的位置上画出设置好的图片。具体画哪张图,通过第三个参数完成,这里用fk数组来确定,而且下标则由相关位置(由flag数组的行列位置来标志)的值来判定。 --*说明结束*--}。

end; end;

其中主要用到了Pascal语言中的Random函数 3.2.3 单机控件的事件触发

总共有四个按钮和两个文本框。四个按钮分别是:准备(进入游戏准备状态,当双方同时准备后就自动开始游戏)、退出(退出游戏程序)、帮助(显示用户帮助信息)、发送(发送聊天信息)。两个文本框中一个是MEMO控件生成,用来显示双方聊天记录;另一个是用来输入聊天信息的。

四个按钮的事件以准备和发送按钮事件较复杂,其它两个非常简单。下面就列出两个复杂的代码:

准备按钮过程代码:

procedure TForm1.startClick(Sender: TObject); begin

gamevalue:=60;//用来存储剩余图片数,开始默认为60 start.Enabled:=false;//准备后,将按钮置为不可使用。 ready:=ready+1;//准备后,ready变量加1

player:=inputbox('输入玩家名称','输入玩家名称','');//如图3-2 if IsServer then

ServerSocket.Socket.Connections[0].SendText('prep')

else ClientSocket.Socket.SendText('prep'); {--*注释开始*--

由于同一程序妆作服务器端和客户端,所以要判断不同的发送信息方式。另由于各种情况传送信

息全部为字符串,而网络通信过程却要判断不同的信息类型,因此发送时定义一个协议就是在所

有发送的字符串之前加入一个四个字符长的字符串。当接收方收到时再根据这四个字符定义的协

议来处理不同的事件。至于如何处理,将在后面3.3网络通信与对战详细介绍。注:后面如果有向对方

发送信息时都采用这种方法来判断并发磅信息。 --*注释结束*--}

图3-2输入玩家名称 图3-3连接到服务器端

网络小游戏----连连看

摘要

因特网的发展使人类进入了一个全新的世界,人与人之间可以远隔万里为了同一兴趣爱好而交流,做到了网络无国界,信息无国界。随着因特网的不断发展,网络游戏作为一个新的名词融入到了人们的日常生活当中。网络游戏来源于“onlinegame”,更直接的翻译是“在线游戏”,亦即必须在大家联网而且都在线的时候,才能够团队互动,否则就属于单机游戏了。

网络游戏产业作为现代电脑电子技术的产物,正在以其独特的魅力在全世界的娱乐领域占据主流位置,我们在承认广大娱乐网民的选择空间狭小的同时,也必须明确的一点就是网络游戏本身所具有的强大的吸引力。网络游戏的吸引力主要在于,它在让玩家打发时间的同时,可以让人实现在显示生活中不能实现的理想,得到在显示中不能得到的东西。而且网游产业促动高科技技术不断升级,作为经济增长的一大支撑点,已经成为经济腾飞的“第四产业”。近年来,世界网络游戏市场高速发展。根据统计,全球网络玩家所占互联网人群的比例已经超过30%。网络游戏凭借其信息双向交流,速度快,不受空间限制等互联网有时,具有诱人的互动性、仿真性和竞技性,已经成为网络业盈利优厚的三大领域之一。网络平台的发展,为网络游戏奠定了坚实的“物质”基础。宽带的迅猛发展为网络游戏提供了“高速公路”,而专用游戏服务器则为网络游戏提供了容量巨大的“加油站”。前不久,网络游戏还被视为一个“高风险”的行业,但随着人们对网络游戏的重新认识,网络游戏正在恢复其应有的地位。 关键字

连连看、网络游戏、网络对战。

目录

1 选题背景................................................................. 1

1.1 课题来源 ........................................................... 1 1.2 目的 ............................................................... 1 1.3 意义 ............................................................... 1 1.4 主要问题 ........................................................... 1 1.5 技术要求 ........................................................... 2 1.6 发展概况 ........................................................... 2 1.7 指导思想 ........................................................... 2 2 方案论证................................................................. 2

2.1设计原理............................................................ 2 2.2 方案选择 ........................................................... 3 2.3 数据流图 ........................................................... 3 3系统设计 ................................................................. 4

3.1 基本思路 ........................................................... 4

3.1.1 解决游戏区域问题.............................................. 4 3.1.2 获取图片位置的思路............................................ 4 3.1.3 网络通信协议的思路............................................ 5 3.1.4 其它功能的思路................................................ 5 3.2 界面的设计和图片的随机生成 ......................................... 5

3.2.1 界面的设计.................................................... 5 3.2.3 单机控件的事件触发............................................ 7 3.2.4 其它控件与功能................................................ 9 3.3 图片是否可消除的判断 .............................................. 10

3.3.1 两张图片是否相同............................................. 10 3.3.2 图片路径的判断............................................... 12 3.4网络通信与对战..................................................... 13

3.4.1 概要......................................................... 13 3.4.2 读取对家发送的数据........................................... 13 3.4.3 网络通信控件事件触发......................................... 16

4结果分析 ................................................................ 18

4.1 数据分析 .......................................................... 18 4.2 运行结果分析 ...................................................... 19

4.2.1 游戏同时开始问题............................................. 19 4.2.2 游戏结束时的判断............................................. 19

5总结 .................................................................... 20 谢辞...................................................................... 20 参考文献 ................................................................. 20

1 选题背景

1.1 课题来源

网络游戏起源早期电子游戏中的RPG游戏(角色扮演游戏)。RPG游戏是

电子游戏中历史最为悠久的一种,也是数量最为庞大的一种,因为RPG游戏相对于其他类型的游戏,技术要求最低,电脑配置要求也最低,因此开发起来相对容易很多。在电子游戏发展史中,也留下了许许多多的经典作品,像家用电视游戏机上的最终幻想系列,PC机上魔法门系列,还有中文电脑RPG游戏的经典仙剑奇侠传。正是因为RPG游戏的竞争十分激烈,许多厂商开始力图在RPG游中引入一些新鲜的因素。1997年,暴雪公司发布了DIABLO(暗黑破坏神),这其实是一款全新的游戏类型,严格意义上来说这并不是一款传统的RPG游戏,它更像是即时战略游戏与传统RPG的结合,但它又确实包含了许多传RPG的因素在里面,最为关键的就是完整包括了角色的升级系统,所以业界给这种游戏定义为ARPG(动作角色扮演游戏)。DIABLO对游戏界的贡献还不只于此,这款游戏还首创了战网游戏系统,所有正版游戏用户都可以得到一个CDKEY,用这个CDKEY可以上到暴雪为用户免费开发的服务器上进行多人游戏,这虽然有别于现在的网络游戏,但无疑为后来的网络游戏开发商提供了一个很好的思路。

随着电脑软硬件技术和互联网的飞速发展,电脑游戏也突飞猛进,成功游戏不断涌现。比较成熟的项目主要有:反恐精英(CS)、星际争霸、魔兽争霸2、FIFA2003、帝国时代、FIFA2004等等。这时也出现了越来越多的网络小游戏,休闲类项目包括网络围棋、中国象棋、四国军棋、桥牌、麻将、拱猪、斗地主、拖拉机、连连看等。

1.2 目的

网络小游戏制作的目的是满足了人们休闲的需要,在紧张工作之余休闲类的小游戏能够给人带来最大程度的放松,也可以增进人们之间的交流,沟通,通过游戏还可以认识更多的朋友,也可以到达跨省、跨市,甚至跨国间人们互相娱乐的目的。

另外也通过本程序将三年来所学的专业知识和其他方面的知识融入到实际应用中。

1.3 意义

通过此次课题的设计,掌握如何制作一个游戏软件,以及制作游戏软件的整个流程,制作游戏软件的步骤,为以后的就业工作打下基础。

1.4 主要问题

开始制作游戏时,主要要解决的问题有以下几个方面:如何设置整个游戏的界面;如何控制连连看游戏中随机图片的生成且每种图片必须为偶数个;游戏开始后,判断鼠标两次点击的图片能否消去,即图片是否相同且图片之间路径的判断;如何连接网络上的两台计算机实现网络对战,互发消息,如何判断游戏是否结束以及输赢问题等。

1.5 技术要求

网络中任意计算机当运行该游戏软件是,能自己决定是当客户机还是服务器,如果要当服务器,则等待客户机的连接请求;如果要当客户机,则要主动去连接服务器。游戏中能正确判断鼠标两次点下的图片是否可以消去、能正确判断游戏是否已经结束和哪一方玩家胜出。还可顺利发消息给对方和接收对方发来的消息。

1.6 发展概况

网络游戏正处于加速发展周期中,中国网络游戏市场迅速扩大,近三年的

年均增长率超过100%。网络游戏的告诉发展,逐渐引起了我国政府的高度重视,信息产业部、文化部、新闻出版总属等相关部门都在积极推动各项市场监管和鼓励网络游戏产业发展的政策措施的出台,2003年网络游戏首次被正式纳入国家863计划,标志着我国网络游戏产业已经的到政府的充分重视。除外,在网络游戏产业发展的同时,有力带动了相关行业的发展,如软件、计算机、通信、电信运营、互联网等,根据统计,网络游戏能够带动10倍于自身产值的相关行业的发展。预计未来三年,中国游戏时常规模仍将保持60%以上的告诉增长,至2006

年市场规模将接近100亿元,而多样的资本运作模式将成为网络游戏产业发展的重要推动力。同时,手机游戏、家用游戏机、游戏传媒、电子竞技等游戏周边行业也将快速发展起来。

1.7 指导思想

按照软件开发的总过程进行设计,经历定义和计划、需求分析、软件设计、

软件编码、软件测试等过程。

2 方案论证

2.1设计原理

本设计采用客户机—服务器模式,网络上两台计算机自主决定是否当服务器或是客户机,若一方为客户机,则另一方为服务器,当连接上是则分别点击准备以待游戏的开始,游戏开始时间以后当对战双方都准备后程序自动判定游戏开始。游戏开始后,双方都有自己的游戏区域,互不干扰,当一方消完全部的图片则向对方发送游戏结束信息,并在双方显示相关提示信息,游戏过程中,双方都会显示对家和自己还剩下未消去的图片数。

游戏规则是模仿网络上普通的连连看游戏,主要是鼠标两次点击的图片能否消去的问题。当前,前提是点击两张相同的图片,若点击的是同一张图片或者两张不同的图片,则不予处理。在两张想同图片所能连通的所有路径中,如果存在一条转弯点不多于两个的路径,就可以消去;如果没有,则不予处理。

游戏过程,任意一家(假设为A方)消去图片后必须同时向对家发送已消去两张图片的信息。这样对方(假设为B方)在获取信息后即显示A方剩余的图片数,当A方剩余图片数为0,而B方剩余图片数大于0,则提示A方胜利。B方失败的信息。

考虑到游戏娱乐性以及网络游戏的交互特性。加入聊天功能,这样交战双方可以在游戏之后或者过程中发表自己的看法与经验(这也是参考了当前网络游戏的潮流来设计的)。

2.2 方案选择

在概要设计阶段,只要有两中方案可供选择:

一、双方都有自己的游戏区域,互不干扰,谁先消完全部的图片方块则就为

胜出的一方,同时不管另一方是否已经消完全部的图片方块,游戏仍然结束。


计算机毕业论文_网络小游戏----连连看.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:北师大版三年级上册期中测试之应用题集训

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219