连连看联机游戏

连连看联机游戏

ID:35964270

大小:95.50 KB

页数:13页

时间:2019-04-28

连连看联机游戏_第1页
连连看联机游戏_第2页
连连看联机游戏_第3页
连连看联机游戏_第4页
连连看联机游戏_第5页
资源描述:

《连连看联机游戏》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、一、成员分工刘会芳:题目选取,文档整理,及客户端代码的实现,主要负责登陆界面设置。司慧晓:客户端代码实现,负责进入游戏大厅界面的设置,选着房间等问题。王孟姿:客户端端代码实现,游戏进行时的代码设置,超时问题的解决。司小婷:服务器端代码实现,各端口设置,显示各个用户的登陆情况。霍旭晖:服务器端页面设置,游戏运行,及联机问题,二、设计介绍1.开发背景本产品是一款网络游戏。系统由服务端与客户端两个程序构成。采用C/S构架方式实现。服务端主要业务:提供客户端请求的服务、中转游戏数据等。而客户端提供友好的人机交互方式,供用户游戏平台,主要实现了最多6人一起游戏,按照以下顺序实现:进入

2、游戏大厅、准备开始游戏,如果有2个以上的客户端预备开始游戏,而限定时间内又没有新的客户端准备开始,服务端就要求客户端开始游戏的倒计时,倒计时完成后,各玩家开始游戏。在游戏过程中,各玩家可以看到其它玩家的游戏进度的缩略图,但不允许增加新玩家,其它没有游戏的玩家只可以旁观游戏系统环境:windows操作系统编译器:VC++6.0(MFC)数据库:access2.编写目的帮助学员了解项目的功能,明确需求功能中用户对系统要做什么的要求,了解需求中的各种业务规则。说明编写这份软件需求说明书的目的,指出预期的读者范围。3.范围软件系统的名称:多人对战游戏平台。本软件主要实现多人对战游戏

3、平台的功能实现。说明:a.开发的软件系统的名称——多人对战游戏平台;b.本软件主要实现连连看游戏互动功能,玩家通过网络游戏大厅可以登录连连看游戏进行聊天对战,享受互联网的乐趣。c.软件的应用:1)此软件可以广泛应用互联网或者局域网中进行游戏,实现多人互动对战,享受游戏乐趣。2)如果有一个较高层次的说明存在,则应该使其和高层次说明中的类似的陈述相一致(例如,系统的需求规格说明)。4.设计框架本人设计思路主要考虑到实际应用,因此,分为服务器,游戏大厅,单机游戏程序三个部分,服务器使用完成端口,高效率响应客户端消息,客户端主体为多人对战平台,同时设计了一个连连看单机版游戏,通过客

4、户端主体可以启动单机版游戏实现多人联机对战以及旁观聊天等功能。客户端大厅采用异步选择套接字关联一个隐藏窗体用于实时响应服务器端消息,同时平台与游戏界面为两个进程,通过进程间通信实现信息交互。网络通信采用UDP协议。再这次项目设计没有特别去考虑丢包情况,将在下一个项目中完善技术。5.详细分析服务器端利用完成端口实现高效率的通信机制,在这里我们只实现了WSARecvfrom的请求投递,而发送则直接只用sendto实现发送,在整个代码实现上大大简化,也是本人对于完成端口了解的还不够深入。完成端口的实现涉及到多个队列的应用,应用程序在发送请求后完成端口会响应这些请求并将数据放到完成

5、队列中,而应用程序中创建的工作线程会以CPU个数的并发数投递到线程等待队列中获取完成队列中的数据,在这里,实际上我们会创建较多的工作线程以满足调用,因为工作线程操作可能挂起,所以要想最大限度利用资源,需要创建合理的线程数,一般情况2*CPU+2左右。在服务端封装了ado操作类,通过ado操作访问access数据库,在数据库中我只保存了用户注册基本信息以及积分信息等,在线用户的维护我放在服务端程序中维护,这样避免了频繁的对数据库操作,众所周知,数据库操作效率是很低的,而在程序中利用map容器实现命令的路由以及在线用户状态以及桌子状态的管理。通过这些实现高效的命令解析以及用户管

6、理。在客户端用一个隐藏对话框实现异步选择套接字,实时响应服务端消息,每次响应到数据隐藏窗口都直接通过消息路由给需要的窗口再进行解析,而其他窗口需要发送消息给服务器端也是先消息路由给隐藏窗体,然后再通过隐藏窗体一次性发送给服务端。再这里大厅解析的游戏信息我们又定义了新的进程通信协议,所有游戏信息通过大厅中转给游戏进程,再这里我们采用了WM_COPYDATA传递数据。对于进程的启动,我们用事件来保证大厅检测是否有正确启动指定进程,如果启动失败,事件无法激活,而大厅将报错。否则正常执行,通过FindWindow函数来获取进程窗口句柄,在利用SendMessage实现进程间通信!为

7、了防止客户端异常掉线以及服务器端异常通知,在这里我们做了一个心跳包,设定客户端每秒像服务器端发送一个心跳包,通过心跳包服务器实时更新客户端时间,以确定客户端是否掉线,同理,客户端也维护了服务端心跳包时间,可以确定自己是否掉线,从而确保服务端与客户端同步数据。对于单机版连连看中算法这块我是按3个层次考虑,直线一折两折,而在这里我们为了实现最短路径,又再次细分同行同列,不同行且不同列,最后再次细分为矩形区域路径内,矩形区域路径外。路径按照上述划分依次判断,在判断的过程中用容器记录,这样再下次判断路径的时候可以先判断容器

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。