五子棋的网络对战功能课程设计_第1页
五子棋的网络对战功能课程设计_第2页
五子棋的网络对战功能课程设计_第3页
五子棋的网络对战功能课程设计_第4页
五子棋的网络对战功能课程设计_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1、暑假生产实习报告书专 业: 计算机科学与技术 班 级: 090411 学生姓名: 左胜平 学号: 09041109 指导教师: 艾菊梅 2011年8月5号目录1.需求分析71.1目标71.2 用户特点71.2.1 系统结构层次模块图72.概要设计82.1服务器管理模块设计82.1.1 功能描述82.1.2 功能界面说明82.1.3 操作效果图82.1.4 界面操作说明82.1.5 服务器工作原理82.1.6 流程图82.2用户登录注册管理模块设计92.2.1 功能描述9功能界面说明92.2.3 操作效果图92.2.4 流程图102.3 用户列表模块设计112.3.1 功能描述112.3.2 功

2、能界面说明112.3.3 操作效果图112.3.4 流程图122.4网络聊天模块设计132.4.1 功能描述132.4.2 功能界面说明132.4.3 操作效果图132.4.4 流程图142.5对战棋盘模块设计152.5.1 功能描述152.5.2 功能界面说明152.5.3 操作效果图152.5.4 流程图173.详细设计183.1登录模块18模块运行流程图18登录模块功能分解表18登录模块与数据传输模块公共接口193.2注册模块19模块流程图19注册模块功能分解表20注册模块与数据传输接口213.3用户列表模块21模块运行流程图21用户列表模块功能分解表22用户列表模块与数据传输模块接口2

3、33.4用户对战模块23模块运行流程图23对战模块功能分解表24对战模块与数据传输模块接口图253.5数据传输模块26模块流程图26数据传输模块功能分解表26数据传输模块对外提供接口273.6服务端数据处理模块27模块流程图1(登录,注册,用户列表信息处理模块)27服务端数据模块功能分解表128服务端数据模块与数据传输模块接口129模块流程图2(对战信息处理模块)29服务端数据模块功能分解表230服务端数据模块与数据传输模块接口2303.7数据描述表314 显示效果334.1用户登录界面334.2用户注册界面344.3用户列表界面354.4对战界面364.5 聊天界面374.6 服务器端界面3

4、75 总结371.需求分析1.1目标 该系统属于游戏开发项目,其主要是实现五子棋的网络对战功能,即玩家可以通过网络的方式实现对战,其模式类似与QQ游戏,通过帐号密码登录,列出在线列表框,点击玩家进行五子棋对战。1.2 用户特点1.2.1 系统结构层次模块图图表 01总体组织架构2.概要设计2.1服务器管理模块设计2.1.1 功能描述该系统主要实现网络通信下的操作,通过网络传输实现五子棋对战,判断用户落子后的输赢情况。2.1.2 功能界面说明 启动界面:通过点击启动按钮,启动服务器。2.1.3 操作效果图图 2-1服务器启动操作效果图2.1.4 界面操作说明点击启动按钮即可启动服务器。2.1.5

5、 服务器工作原理服务器通过TCP/IP协议的通讯,创建一个SOCKET,开启系统的一个端口用于网络传输,默认的端口号为5000。服务器首先获取本机的IP,然后开启端口,通过监听端口判断是否有连接信息传入,如果发现则与客户端进行连接,再通过操作信息的发送接收来响应并处理消息。五子棋的规则判断也是服务器的主要功能之一。2.1.6 流程图图 2-2用户服务器工作简要流程图2.2用户登录注册管理模块设计 2.2.1 功能描述输入正确的用户名及密码登录游戏并进入用户列表界面。点击注册进行用户注册操作。2.2.2功能界面说明登录:输入用户名密码点击登录进行游戏。注册:输入用户名,昵称,2次密码,符合要求后

6、注册完成。2.2.3 操作效果图图 2-3 登录界面效果图图 2-4 注册界面效果图2.2.4 流程图图 2-5登录注册界面简要流程图2.3 用户列表模块设计2.3.1 功能描述本模块用于显示用户的在线状态,以及对邀请对战、邀请聊天,查看信息等操作。2.3.2 功能界面说明右键:点击人物头像,弹出操作对话框,点击相应条目进行操作。左键:双击人物头像,弹出聊天窗口进行聊天。2.3.3 操作效果图图 2-6用户列表效果图2.3.4 流程图图 2-7用户列表管理简要流程图2.4网络聊天模块设计2.4.1 功能描述通过用户列表的左键双击响应,弹出聊天窗口,输入聊天内容点击发送进行聊天。2.4.2 功能

7、界面说明发送:在聊天框内输入内容点击发送键进行信息发送。回复:双击聊天内容显示框的某人的信息就可以实现与某人的对话回复。2.4.3 操作效果图图 2-8聊天窗口效果图 2.4.4 流程图图 2-9聊天传输简要流程图2.5对战棋盘模块设计2.5.1 功能描述五子棋对战主界面,棋盘位于本界面,实现的功能主要是玩家落子信息的记录,传入服务器端进行处理。2.5.2 功能界面说明准备:进入对战后的双方需要点击准备,双方都准备后,游戏开始。信息显示:显示玩家落子的区域,以及玩家棋子的颜色。2.5.3 操作效果图图 2-10五子棋对战效果图2.5.4 流程图图 2-11五子棋对战简要流程图3.详细设计3.1

8、登录模块3.1.1模块运行流程图图 3-1登录界面详细流程图3.1.2登录模块功能分解表逻辑处理层:数据序号制审日表核期处理方法名类型处理说明判断用户名密码是否为空Bool IsUserInfoNull(long lUserID,string pwd)判读登录是否成功Bool IsLoginSuccess(long lFlag)根据传入标志lFlag,0表示登录失败,1表示登录成功3.1.3登录模块与数据传输模块公共接口3.2注册模块3.2.1模块流程图图 3-2注册界面详细流程图3.2.2注册模块功能分解表逻辑处理层:数据序号制审日表核期处理方法名类型处理说明判断输入信息是否有空Bool I

9、sUserInfoNull(long id,string name,string pwd)判读用户昵称格式是否正确Bool ChecNameFormat(string name)判断用户名里面是否有一些禁止用户输入的特殊标志判断两次输入的密码是否相同Bool CheckUserPwd(string pwdfst,string pwdsnd)判断册是否成功Bool IsRegisteSuccess(long lFlag)根据传入标志lFlag,0表示注册失败,1表示注册成功3.2.3注册模块与数据传输接口3.3用户列表模块3.3.1模块运行流程图图 3-3用户列表详细流程图3.3.2用户列表模块

10、功能分解表逻辑处理层:数据序号制审日 表核期处理方法名类型处理说明判断用户是否空闲私有Bool CheckUserState(long id)根据id在本地用户列表中查找对应的用户状态,判断是否空闲初始化成员列表私有Bool InitUserList(char* nameList)从nameList中根据间隔标志,提取出一个个用户信息,插入用户列表判断对方是否同意对战私有Bool CheckEnemyAnswer(bool bFlag)3.3.3用户列表模块与数据传输模块接口3.4用户对战模块3.4.1模块运行流程图图 3-4对战界面详细流程图3.4.2对战模块功能分解表逻辑处理层:数据序号制

11、审日表核期处理方法名类型处理说明初始化棋盘信息Bool InitMapInfo()将棋盘上的下子位置清0将屏幕坐标转化成棋盘位置Void ScreenToMapPos(int& x,int& y)将传入的屏幕的(x,y)坐标转化成棋盘上的行,列值判断当前位置是否可以下Bool CheckPosState(int row,int col)放置棋子Void SetGridPos(int row,int col,int color)根据row,col,将棋盘上该位置设置为颜色为color的棋子将对方上次落子位置清0Void InitEnemyLastPos()根据对方最后一步落子位置

12、,将该位置的color清03.4.3对战模块与数据传输模块接口图3.5数据传输模块3.5.1模块流程图该传输流程既可以用户于客户端向服务器发送数据,也可以用于服务器向客户端发送数据,图 3-5服务器数据传输详细流程图3.5.2数据传输模块功能分解表数据序号制审日表核期处理方法名类型处理说明组装数据包Void CreateDataPackage(int nType,char* param,char* dataBuf)发送数据包Bool SendDataPackage( char* sendBuf)接受数据包Bool RecvDataPackage( char* recvBuf)解析数据包Bool

13、 AnalysisDataPackage( char* dataBuf,int& nType,char* param)3.5.3数据传输模块对外提供接口3.6服务端数据处理模块3.6.1模块流程图1(登录,注册,用户列表信息处理模块)图 3-6服务器对登录、注册、列表数据处理详细流程图3.6.2服务端数据模块功能分解表1数据序号制审日表核期处理方法名类型处理说明判端用户是否存在Bool IsUserExist(long id)通过用户的id在数据库中检索是否有该用户的记录将用户信息插入数据表Bool IsertUserInfo(long id,string name,string pw

14、d,)取得数据库中所有在线的用户名Void GetUserList(char* buf)通过检索数据库,将用户名序列以一定的格式存入buf中返回3.6.3服务端数据模块与数据传输模块接口13.6.4模块流程图2(对战信息处理模块)图 3-7服务器对对战数据处理详细流程图3.6.5服务端数据模块功能分解表2数据序号制审日表核期处理方法名类型处理说明判断双方是否都准备好Bool IsPlayersReady()设置玩家下子位置Void PutDownGrid(int row,int col)更新数库中玩家积分Bool UpdateUserScore(long id,int score)将对方上次落

15、子位置清0Void InitEnemyLastPos()根据对方最后一步落子位置,将该位置的color清0初始化棋盘状态Bool InitMapInfo()3.6.6服务端数据模块与数据传输模块接口23.7数据描述表序号名称制表审核日期数据说明:Class CUserprivate: long m_lID; /表示玩家ID bool m_bColor;/表示玩家颜色 bool m_bBusy;/表示用户状态Class CGridMapprivate: int m_nID; /表示棋盘编号 bool m_bEmpty; /表示棋盘当前有无玩家int m_Grid1515;/表示一个15x15的棋盘int m_nlastRow;/表示棋盘上最后一次落子的行号int m_nlastCol;/表示棋盘上最后一次落子的列号数据项说明:Class CUser中bool m_bColor;为1时表示玩家为黑方,为0时表示玩家为白方bool m_bBusy; 为1时表示玩家处于对战状态,为0时表示玩家处于空闲 状

温馨提示

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

评论

0/150

提交评论