棋牌游戏业务发展报告及技术介绍.doc_第1页
棋牌游戏业务发展报告及技术介绍.doc_第2页
棋牌游戏业务发展报告及技术介绍.doc_第3页
棋牌游戏业务发展报告及技术介绍.doc_第4页
棋牌游戏业务发展报告及技术介绍.doc_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

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

文档简介

网络科技有限公司网络科技有限公司 用用 户户 手手 册册 设设 计计 说说 明明 书书 2010 年年 9 月月 1 号号 目目目 录录录 1 文档介绍文档介绍 5 0 1 读者对象 12 0 2 参考文献 13 0 3 术语与缩写解释 13 1 1 模块命名规则模块命名规则 14 2 0 模块汇总模块汇总 14 2 1 模块汇总表 14 2 2 模块关系图 14 3 登录服务器模块设计登录服务器模块设计 16 3 1 CSOCKETSERVER PUBLIC CASYNCSOCKET 16 3 1 1 功能描述 16 3 1 2接口与属性 16 3 1 3数据结构与算法 16 3 1 4补充说明 16 3 2 CLASS CSOCKETCLIENT PUBLIC CASYNCSOCKET 16 3 2 1 功能描述 16 3 2 2 接口与属性 17 3 2 3数据结构与算法 21 3 2 4补充说明 22 3 3 CDESKINFO 22 3 3 1 功能描述 22 3 3 2接口与属性 22 3 3 3数据结构与算法 24 3 3 4补充说明 25 3 4 CGAMEROOM 25 3 4 1 功能描述 25 3 4 2接口与属性 25 3 4 3数据结构与算法 26 3 4 4补充说明 26 3 5 CLASS CHYPERLINK PUBLIC CSTATIC 26 3 6 CLASS CMD5CHECKSUM 26 3 7 CLASS CSERVERAPP PUBLIC CWINAPP 26 3 8 CLASS CSERVERDLG PUBLIC CDIALOG 27 3 1 1 功能描述 27 3 1 2接口与属性 27 3 9 CLASS CUSERINFO 28 3 9 1 功能描述 28 3 9 2接口与属性 28 3 9 3数据结构与算法 29 3 9 4补充说明 29 3 10 CLASS CVARINFO 29 3 10 1 功能描述 29 3 10 2接口与属性 29 3 10 3数据结构与算法 29 3 10 4补充说明 29 3 11 全局 29 4 五子棋数据库操作模块设计五子棋数据库操作模块设计 31 5 其他其他 31 一 服装商城 32 二 视频面对面 34 三 会员系统设计 36 四 同城交友模块 36 五 公会模块 36 六 小游戏加载管理模块 37 七 广告系统 40 7 1 推广员系统 40 7 2 后台运营支撑系统 40 一 主要用途 45 1 玩金币类游戏 45 2 参加各类游戏的比赛 47 3 换取虚拟物品和奖品 49 4 换取会员资格 49 5 扩充用途 50 二 得到金币的途径 51 1 用游戏中的积分来换取金币 51 2 玩金币游戏 并在游戏中胜出 51 3 参加比赛 并在游戏中胜出 51 4 以各种各样的精美有面额的会员卡来进行金币充值 52 5 通过声讯快捷地给用户ID充加金币和积分数量 52 6 手机充值 53 1 流程图流程图 54 a 模块划分 54 b 主控模块流程图 55 c 按钮处理模块 56 d 胜负判断模块 57 e 计分模块 58 2 数据结构说明 数据结构说明 58 3 类说明 类说明 59 a 类之间的关系 59 b 主要函数说明 59 1 文档介绍文档介绍 1 游戏引擎包含了三部分游戏引擎包含了三部分 1 声音引擎 Fmod 图像渲染底层 EngineLib 控件部分 UILib intm WindowWidth m WindowHeight 用于定义游戏窗口的大小 BOOLm IsFullScreen 是否全屏幕回事 SURFACE m RenderSuface 全屏幕缓冲区 屏幕缓冲区 LPDIRECTDRAWm lpDD 绘制表面 HGDIOBJm Temp 临时GDI对象 LPDIRECTDRAWSURFACE m lpDDSPrimary 主表面 LPDIRECTDRAWSURFACE m lpDDSBack 缓冲表面 BOOLm Is555 HWNDm hWnd GDI所需使用的设备上下文 HDCm WndDC m MemDC HBITMAPm HBMP BOOL SaveBMP SURFACE pic char fn 把 Surface 对象转换成 BMP 文件保存下来 fn 是 文件的名字 CVIEWMANAGE int dwWindowWidth int dwWindowHeight HWND hWnd 根据宽度和高度 窗 口句柄创建 CVIEWMANAGE BOOL Initialize 初始化创建的CVIEWMANAGE对象 inline SURFACE GetRenderSurface const 获得渲染表面 inline BOOL IsFullScreen const 判断是不是全屏幕渲染 SURFACE CreateSurface int w int h SURFACE STYLE dwStyle 根据宽度高度和格式创 建渲染表面 SURFACE CreateSurface char ID SURFACE STYLE dwStyle bool bIsCommonSurface false bool bIsFromFile false 创建根据文件名字创建表面 bIsCommonSurface 是 决定表面是否共享 bIsFromFile 决定是不是从文件里面加载 bool DeleteSurface SURFACE pSurface 删除表面 SURFACE LoadBMP char fn SURFACE STYLE dwStyle 根据文件名字从 BMP 格式图片创 建表面 void ResetViewManage int WindowWidth int WindowHeight HWND hWnd 重设 CVIEWMANAGE SURFACE LoadPSD BYTE pDataBuffer SURFACE STYLE type ALPHA SURFACE 根据 BUFFER里面的内容和格式创建表面 SURFACE CreateSurfaceFromPSD char ID SURFACE STYLE type ALPHA SURFACE 根据文件名创建表面 BOOL SwitchDisplayMode DISPLAY MODE mode BOOL SwitchDisplayMode 更改显示模式 BOOL UpdateScreen BOOL UpdateScreen const CRect更新显示区域的内容 void RestoreDDraw 恢复 DirectDraw 表面 int GetFontSize 获取字体的大小 BOOL LoadFont FONTSIZE fs const char szResGameHall 加载字体 void FreeFont FONTSIZE fs 释放字体 void SetFontSize FONTSIZE fs 设置字体尺寸 void readImage BYTE 读文件 把文件里面的内容读进缓冲 里面去 SURFACE 表面的基类 intm Width m Height 表面的宽度和高度 SURFACE STYLEm Style 表面类型 SURFACE FLAGm Flag 表面标记 分为下面三种 NORMAL SURFACE ATTACH MASKMAP ATTACH SURFACE inline SURFACE STYLE GetStyle void const inline SURFACE FLAG GetFlag void const inline intGetWidth void const inline intGetHeight void const 获取表面的风格 标记 宽度 高度 inline void GetClipper RECT inline void SetClipper RECT const设置获取剪切的区域 virtual void SetPixel int x int y PIXEL pixel 0 virtual PIXEL GetPixel int x int y 0 获取设置X Y位置的像素值 virtual void DrawText int x int y PIXEL color char str virtual void DrawText int x int y PIXEL color char str CFont在X Y位 置上用颜色值为color的颜色绘制文字 virtual void Blit SURFACE dest int sx int sy int dx int dy int w int h 0 virtual void Blit SURFACE dest int x int y 0 virtual void Blit SURFACE dest int x int y DRAW FX 把表面绘制到dest指针指向的表面的x y位置上 voidDrawImage SURFACE dest int x int y voidDrawImage SURFACE dest RECT des RECT src 绘制SURFACE到dest指针指向的对象 void SetData LPVOID Data 设置表面数据 PIXEL 定义的颜色类型 是 555 格式 inline void SetColor unsigned char r unsigned char g unsigned char b inline void SetColor unsigned short wPixel 设置颜色值 inline unsigned short GetColor const 返回点值 inline unsigned char GetRed const 取红色素值 8bit inline unsigned char GetGreen const 取绿色素值 bit inline unsigned char GetBlue const 取蓝色素值 5bit 获取红绿蓝颜色值 BITMAPHEADER BMP 文件格式的文件头 只处理 24 位不压缩的 BMP 文件格式的文件 enum DISPLAY MODE FULLSCREEN MODE WINDOW MODE 显示模式 是全屏还是窗口模式 DIBSURFACE 继承自 SURFACE 用来加载设备无关的位图 DLESURFACE 继承自 SURFACE RLEMASKSURFACE 继承自 SURFACE ALPHASURFACE 继承自 SURFACE DOUBLEALPHASURFACE 继承自 ALPHASURFACE CFader 粒子系统 int m x m y 粒子的位置 int m Width m Height 宽度和高度 int m Type 类型 int m alpha ALPAHA值 int m nCount 粒子的数量 void Initialize SURFACE PicSrc SURFACE PicDest int x int y int Width int Height int type int nCount PARTICLE NUM nCount is the number of particles added by dah bool LoadParticle char ID BOOL Draw 初始化 加载 绘制粒子 字体表面字体表面 typedef struct tagFontSurface int w int h unsigned int surface FontSurface Wh 分别是文字的高度和宽度 字体映射表字体映射表 typedef struct tagFontMapList int font size 字号 PIXEL color 字符的颜色 std map font map 字符映射表 FontMapList 字体的尺寸字体的尺寸 enum FONTSIZE Font12 12 Font16 16 Font24 24 2 EngineLib 设计包含了 CSurfaceManagerCSurfaceManager 等类 CSurfaceManager 是用来创建 销毁管理 Surface 表面等内容的类 struct stSurfaceUnit SURFACE pSurface char szName 128 int iUserNum stSurfaceUnit memset this 0 sizeof stSurfaceUnit szName 用于存储表面的名字 iUserNum 表面使用的引用计数 pSurface 表面的指针 接口与属性 SURFACE CreateSurface const char szSurfaceName unsigned long nSurfaceType bool bIsFromFile false 根据名字 类型创建表面 bool DeleteSurface const char szSurfaceName 根据名字减少对Surface对象的引用计数 如果当引用计数小于0的时候删除表面对象 bool DeleteSurface SURFACE pSurface 根据表面减少对Surface对象的引用计数 如果当引用计数小于0的时候删除表面对象 bool IsHaveSurface SURFACE pSurface 判断 surface 对象是否存在于 SurfaceManager 中 SurfaceUnitList m SurfaceUnitList 用于存储 stSurfaceUnit 结构的链表 UILIB CWndRgn 定义窗口的矩形区域 bool CreateRectRgn CRect rc 由CRect来创建窗口矩形区域 bool PtInRegion CPoint pt 判断点是否在区域内 bool RectAnyInRegion CRect rc 判断矩形区域是否有与部分在CWndRgn void AddRect CRect rc 组合区域 void operator CWndRgn rgn 两个CWndRgn区域 bool operator CWndRgn判断两个区域是否等价 void CutRect CRect rc 减去与RC两个区域的交集 void CutRgn CWndRgn rgn 减去与rgn的交集 void IntersectRect CRect rc 与rc的交集 void Clear 清楚所有区域 bool IsEmpty 判断是否为空 int CopyRgn1 CWndRgn复制一个src rgn CGameApp框架 bool Init int iMinWidth 800 int iMinHeight 600 int iMaxWidth 1024 int iMaxHeight 730 string strGameName string strGameNameCn int iStartWndMode 0 初始化游戏框架初始化游戏框架 bool Run 启动消息循环 运行游戏 void Destroy 销毁游戏框架 bool SetUpdateFrequency DWORD ms 设置刷新的频率 static LRESULT CALLBACK WndProc HWND hWnd UINT msg WPARAM wParam LPARAM lParam 消息处理函数 处理游戏的消息 void RunTime 运行时 void Update 刷新屏幕 void Update const CRect刷新屏幕区域 bool InitEngine 初始化引擎 void SetShowFPS bool bShowFPS true int x 40 int y 6 PIXEL color PIXEL 255 0 0 设置显示刷新帧率 void ShowFPS 显示帧率 void RefreshMouseStatus 刷新鼠标的状态 CGameSound声音播放类 bool Init HWND hWnd 初始化 void Close void 关闭 bool Play string strSoundName 播放声音 bool IsPlaying string strSoundName 判断声音正在播放与否 bool Stop string strSoundName 停止播放声音 bool Pause string strSoundName bool pause 暂停播放声音 bool SetVolume string strSoundName int vol 设置音量范围 在PLAY之后调用才有效 果 bool SetLoop string strSoundName bool loop 设置循环播放 bool Free string strSoundName 释放内存 int SoundType string 判断播放类型 CGameCtrl 控件基类 继承自CGameWnd CGameButton 按钮控件 bool Create RECT bool Create int id string strElementName RECT 创建按钮的类 id表示的是按钮的ID strElementName是表示的是按钮所使用的图片的名 字 rc是按钮的区域 pParentWnd表示的按钮所在的窗口的父窗口 void Enable bool bEnable true 把按钮设置为可用或者是不可用 bool IsEnable 获取按钮是可用或者是不可用的状态 bool GetCheck void SetCheck bool bCheck 当按钮为checkbox的时候 获取或者是设置是不是被选中的标记 按钮的使用范例 CGameButtonm btStart 开始按钮 CString strFile m strPath StartButton psd StartButton m btStart Create IDM START strFile GetBuffer rcCreate this m btStart Show false m btStart SetWndRect CRect left top left rcButton Width top rcButton Height m btStart Show false 3 CVIEWMANAGE 3 CVIEWMANAGE 显示管理模块 在按钮按下的时候 会发送WM GAME BASE CTRL BUTTON CLICK DOWN消息给窗口 窗口收到 消息的的时候LPARAM参数就是被点击的按钮的ID CGameStatic类继承自CGameCtrl 显示文字的标签类 bool Create RECT 创建标签 rc是标签的大小 strElement是标签上显示的文字 pParentWnd是父窗口 void SetSize FONTSIZE size 设置标签里面被用来绘制文字的字体尺寸 void SetColor PIXEL size 设置文字的颜色 void SetAlign int size 设置文字的对齐方式 默认的情况下 水平方向上左对齐 垂直 方向上居中对齐 void SetText string strText 设置标签里面的文字内容 string GetText 获取标签里面的文字内容 CgameSprite类 精灵 void SetMoving bool bMove CPoint pt int count 设置移动 int GetPosX return m ptPos x int GetPosY return m ptPos y 获取x y坐标 bool IsVisible 判断是否可见 void SetID int id int GetID 获取设置精灵的ID bool Init const SIZE 初始化精灵的大小 bool CanUse 判断是否可以使用在初始化 加载帧之后就可以使用了 void Destroy void 销毁精灵对象 SURFACE GetFrame const int 获取当前的精灵帧 void Draw SURFACE psurf CGameWnd pWnd 绘制精灵 只是刷新与pWnd相关联的精灵 void EffectSprites 检查受到影响需要刷新的精灵 void EffectSprites const CRect 检查在rc区域内受到影响的精灵 void RunTime CGameWnd pWnd 定时计算要刷新的区域 virtual bool OnLButtonDown const POINT 鼠标左键按下的消息 virtual bool OnLButtonUp const POINT 鼠标左键起来的消息 virtual void OnMouseMove const POINT 鼠标移动的消息 pt返回的是鼠标位置 iID代表的是被触发的精灵的ID CTimeCtrlSprite继承自CGameSprite类 用来显示动画 void MoveWindow int x int y 移动动画窗口 bool Init CGameWnd pWnd const string 初始化CTimeCtrlSprite对象 pWnd是父窗口 strFileName是动画所使用的图片的前缀 nCount是动画所使用的张数 nTotalTime总的播放时间 iDelayTimeOnLastFrame最后一桢 的延迟时间 void Start 开始播放动画 void Stop 停止播放动画 void SetInterval const long 设置桢之间的时间间隔 CTimeCtrlSprite对象的使用 需要在父窗口里面的OnDraw里面调用他的绘图方法Draw 同时也要在父窗口的OnTimer方法里面调用他的RunTime方法来更新动画里面的图片 下面就是他的使用范类 CTimeCtrlSprite m DiceMovie CString strFile m strPath Ani Dice dice m DiceMovie Init this strFile GetBuffer 14 m DiceMovie SetInterval 100 m DiceMovie Draw psurfTarget this m DiceMovie Start m DiceMovie RunTime this m DiceMovie Stop 0 1 读者对象读者对象 文件标识 当前版本 作 者 文件状态 草稿 正式发布 正在修改 完成日期 0 2 参考文献参考文献 提示 提示 列出本文档的所有参考文献 可以是非正式出版物 格式如下 标识符 作者 文献名称 出版单位 或归属单位 日期 0 3 术语与缩写解释术语与缩写解释 缩写 术语缩写 术语解解 释释 版本 状态作者参与者起止日期备注 1 1 模块命名规则模块命名规则 提示 提示 模块设计人员确定本软件的模块命名规则 例如类 函数 变量等 确保模块设计 文档的风格与代码的风格保持一致 可以从机构的编程规范中摘取或引用 如果存在的话 2 0 模块汇总模块汇总 2 1 模块汇总表模块汇总表 提示 提示 这里模块是指相对独立的软件设计单元 例如对象类 函数包等等 子系统子系统 A 模块名称功能简述 子系统子系统 B 模块名称功能简述 2 2 模块关系图模块关系图 提示 提示 参考体系结构设计文档 服务器 用 户 信 息 数 据 库 数 据 库 操 作 模 块 业 务 分 发 调 度 模 块 网 络 通 信 底 层 数 据 加 密 解 密 游 戏 数 据 数 据 库 公 共 业 务 处 理 模 块 游 戏 逻 辑 服 务 器 数 据 统 计 报 表 数 据 库 数 据 通 信 管 理 监 控 服 务 器 通 信 数 据 协 议 服 务 器 主 控 及 配 置 信 息 数 据 采 集 管 理 运 行 监 控 管 理 在 线 人 数 统 计 游 戏 中 人 数 统 计 身 份 验 证 进 入 游 戏 流 程 信 息 数 据 报 告 进 入 房 间 找 座 位 坐 下 举 手 游 戏 初 始 化 游 戏 开 始 激 活 用 户 出 牌 下 子 游 戏 动 作 数 据 处 理 扣 底 计 分 等 游 戏 结 束 数 据 处 理 求和 认输 反悔 离开 断线 强退 等游 戏中 数据 处理 亮 牌 反 牌 等 发 牌 过 程 数 据 处 理 叫 牌 叫 分 等 出 牌 前 数 据 处 理 聊 天 数 据 处 理 观 看 断 线 重 连 业 务 处 理 断 线 重 连 处 理 新 增 删 除 用 户 接 口 更 改 用 户 信 息 接 口 用 户 信 息 校 验 接 口 游 戏 数 据 读 取 接 口 游 戏 数 据 更 改 接 口 新 增 删 除 用 户 接 口 更 改 用 户 信 息 接 口 用 户 信 息 校 验 接 口 游 戏 数 据 读 取 接 口 游 戏 数 据 更 改 接 口 服服务务器器基基本本框框架架图图 3 登录服务器模块设计登录服务器模块设计 3 1 CSocketServer public CAsyncSocket 3 1 1 功能描述功能描述 服务器侦听 Socket 3 1 2 接口与属性接口与属性 1 int OnCount 检查玩家是否掉线 多少秒没有信息 或是已经被删除了 返回在线数 2 virtual void OnAccept int nErrorCode 接收连接 一旦连接则把连接 Client Socket 加入到列表 3 CSocketServer CDialog pDlg 4 virtual CSocketServer 清楚列表中的数据 5 CListm listSocket 客户端 Socket 列表指针 3 1 3 数据结构与算法数据结构与算法 定时运行 OnCount 用于清除断线的和统计人数 3 1 4 补充说明补充说明 3 2 class CSocketClient public CAsyncSocket 3 2 1 功能描述功能描述 客户端连接 Socket 处理 3 2 23 2 2 接口与属性接口与属性 1 BOOL m bDel 是否该用户已删除 2 long m nTimer 定时器 3 CSocketClient 成员变量初始化 4 virtual CSocketClient 5 void SendCmd CString 将数据 strCmd 发送出去 6 void SendCmd char szCmd 将数据 szCmd 发送出去 7 static BOOL OnGetGameInfo 取游戏列表信息 8 static void Destory 销毁游戏房间 9 static BOOL Init 创建并初始化游戏房间 10 static CGameRoom m pGameRoom 游戏房间指针 11 static CString m strServerInfo 服务器名称命令协议内容 m strServerInfo SSI 乐谷游戏 12 static CString m strDLLFileName DLL 文件全名 13 static CString Decode CString 字符串解码 参数 CString 数据库 15 static void LogError char szErrorMsg 错误记录到日志 参数 char 错误内容 返回 空 16 virtual void OnClose int nErrorCode Socket 关闭的处理 是游戏的Socket Client Socket Close的处理 向屋里和桌上人广播 玩家状态 断线 游戏中 向桌上人广播玩家 状态 断线 消息 是 是 发送删除 玩家信息给本桌 发送玩家状态 信息给所有 否 房间Socket置NULL 是房间Socket 否 两Socket都空且非断线 用户退出游戏 17 virtual void OnReceive int nErrorCode 数据接收并调用处理 18 virtual void OnSend int nErrorCode 数据发送 19 void OnCmdLargessMoney CString 参数 CString 包含对方用户 ID 和银两数目 赠送银两 条件 离开桌子 银两要够 对方必须在线 然后广播系统信息 发添加用户信息给 GameRoom 在发给桌子 已经离开桌子了呀 20 void OnStartGame CDeskInfo 参数 1 返回桌子信息 CDeskInfo 2 Int 桌子号 发送玩家状态 桌子状态给 Room 发送游戏开始给桌子 21 void OnCmdRequestJoin CString 参数 CString 用户 ID 邀请加入 22 void OnCmdAgreeRepent CString 参数 CString 0 玩家对悔棋请求的回复 23 void OnCmdRequestRepent CString 参数 CString 悔棋的手数 玩家请求悔棋 24 void CheckDeskBreakStatus 检查桌上玩家断线状态 如果双方断线 则按和棋处理 25 void SaveUserInfo CUserInfo ppUsers 保存用户信息到数据库 参数 CUserInfo 为当前桌玩家的数据指针的指针 26 void OnCmdTestTimer 检查时间 是超时判负还是断线时间太长强行退出 或者正常 当前是断线 判断是否应该强退 当前在线玩 判断是否超时判负 27 void OnCmdLoss 中盘认输 28 void OnCmdJin CString 禁手判断 判断是否对方下出禁手而输 29 void OnCmdSwap 申请交换 30 void OnCmdWin CString 申请获胜 参数 棋子坐标 31 void OnCmdGo CString 走子 参数 CString 手数 坐标 X 坐标 Y 对走子进行逻辑判断 32 void OnEndGame int nWinState CUserInfo pUserInfo CString strPrompt 结束游戏 参数 Int nWinState 赢棋状态 1 0 1 赢 和 负 CUserInfo pUserInfo 玩家 CString strPrompt 提示给桌子的信息 返回 空 保存用户信息 发送结束信息给本桌 如果桌子游戏状态为在玩 发送状态给所有人 发送状态给本桌 如果桌子游戏状态为断线 发送离开的提示 发送改变大厅桌子的状态给 Room 33 void OnCmdSetStartStatus 处理命令 开始状态 判断开始的条件 设置为开始状态 判断是否开始游戏 34 void OnCmdSetAccord CString 约定 参数 CString 约定数据 35 void OnCmdSit 坐下 判断位置是否合法 从观看者列表中删除 发送给大厅位置状态 发送自己的状 态给本桌玩家 36 void OnCmdExitGame CString 参数 未用 强行退出游戏 37 void OnCmdJoinGame CString 加入一个游戏 参数 CString 用户 ID Session 38 void OnCmdSetDeskSetup CString 设置桌子设置 39 void OnCmdSay CString 聊天 40 void OnExit CUserInfo pUserInfo 用户退出 41 void OnCmdJoinGameDesk CString 玩家加入一个桌子 参数 1 命令 0 观看 其余 坐下 2 桌子号 3 座位号 42 void OnCmdGetServerInfo 取服务器信息 发送服务器信息 发送当前桌的状态 发送自己的状态给所有本桌的人 43 long OnLogin CString 用户登录 参数 strUser 用户 strPasswd 密码 strip IP 返回 6 非会员 4 内部错误 3 已经在线 2 人满 1 登录失败 0 nMaxUser 登录成功 44 void OnCmdLogin CString 用户登录 用户是否 Hello 过 MD5 码校验是否通过 调用上一个登录 处理结果 如果是成果 则生成随机 Session 给 Client 作为进入游戏的标 志 发送用户列表 发送桌子列表 45 void OnCmdHello CString Hello 握手 参数 版本号 检查版本 发送结果 46 void OnCmd CString str 参数 消息数据 消息分发 47 CByteArray m buffer 发送缓冲区 48 CString m strCmds 接收到的命令 49 CString m strHello Hello 的时间 50 CUserInfo m pUserInfo 用户信息 51 long m nSendSize 待发送的字节 52 long m nTestSpeed 测试网速用的 53 3 2 3 数据结构与算法数据结构与算法 定时运行 OnCount 用于清楚断线的和统计人数 3 2 4 补充说明补充说明 3 3 CDeskInfo 3 3 1 功能描述功能描述 桌子信息及桌子的一些处理 3 3 2 接口与属性接口与属性 1 BOOL static m bCanAccord 是否运行约定 2 long static m nDefaultSetTimer1 缺省时间 1 3 long static m nDefaultSetTimer2 缺省时间 2 4 long static m nDefaultSetMoney 缺省银子 5 BOOL static m bDefaultJinShou 缺省允许禁手 6 BOOL static m bDefaultRepent 缺省允许反悔 7 void GetPlayInfo CSocketClient pSocket 取玩家信息 参数 Client Socket 取玩家的设置信息和已走棋子 8 BOOL TestJinShou int X int Y 检查该子是否是禁手 参数 落子坐标 返回 TRUE 是 FALSE 否 9 BOOL TestWin int nX int nY 检查是否赢了 参数 落子坐标 返回 TRUE 赢 FALSE 未赢 10 void ResetAccord 复位约定 11 BOOL CheckStart 检查是否开始了 返回 TRUE 开始 FALSE 未开始 12 void Init 初始化 清棋盘数据 13 void SendToAll CString 发送命令给桌子所有人 参数 strCmd 发送的命令 BOOL bLookon 是否发送给观看者 14 void GetDeskInfo CSocketClient pSocket 取桌子信息 取所有玩家信息列表 取所有观看者信息列表 15 BOOL SetCheck long nBreakRate long nNetSpeed BOOL bIP CString 设置检查项 需要每个用户都为空 参数 Long nBreakRate 断线率 Long nNetSpeed 网速 BOOL bIP 是否同 IP CString strPasswd 桌子密码 16 BOOL JoinCheck CUserInfo pUserInfo CString 检测是否符合加入的条件 参数 CUserInfo pUserInfo 想要加入桌子的用户 CString 删除一个观看者 18 void AddLookonUser CUserInfo pUserInfo 添加一个观看者 19 CDeskInfo 桌子初始化 初始化约定 人物清空 20 virtual CDeskInfo 21 struct tagGoInfo a int nX b int nY c BOOL bWhite d long nTimer 走棋的信息 22 BOOLm bPlay 是否开始状态 23 CUserInfo m pUserInfo 4 指向当前桌用户信息的指针 24 CPtrArray m LookonUsers 观看玩家 25 第一个坐下者的设置 a long m nBreakRate 断线率 b long m nNetSpeed 网络速度 c BOOL m bIP IP 禁止 d CString m strPasswd 密码设置 26 约定信息 a long m nAccord 约定情况 b BOOLm bRepent 是否允许悔棋 c BOOLm bJinShou 是否有禁手 d longm nSetMoney 下注银两 e longm nSetTime1 设总用时 f longm nSetTime2 设读秒 27 游戏的信息 a longm nStartPos 执黑的位置 b longm nTimer 记时器 c longm nHands 手数 d longm nGameCount 对局数 e charm KNL 15 15 棋盘数据 f tagGoInfo m GO 250 走棋的信息指针 3 3 3 数据结构与算法数据结构与算法 struct tagGoInfo g int nX x 坐标 h int nY y 坐标 i BOOL bWhite 是白棋还是黑棋 j long nTimer 定时器 走棋的信息 3 3 4 补充说明补充说明 3 4 CGameRoom 3 4 1 功能描述功能描述 游戏房间管理 3 4 2 接口与属性接口与属性 1 CUserInfo FindUser long nUin 查找用户 参数 long nUin 用户 ID 返回 CUserInfo 用户信息 2 void GetDeskList CSocketClient pSocket 取得桌子列表 参数 CSocketClient pSocket 用于发送桌子信息的 Socket 3 void GetUserList CSocketClient pSocket 取得玩家列表 AU ID 名称 性别 人像 桌子 位置 状态 等级 积分 胜 负 和 总局数 逃跑 胜率 银 两 门派身份 参数 CSocketClient pSocket 用于发送玩家信息的 Socket 4 void SendToDesk long nDesk CString 发送信息给某桌玩家 参数 long nDest 桌号 CString 发送信息给所有玩家 参数 CString 删除玩家信息 参数 long nUin 用户 ID 返回 成功返回 TRUE 失败返回 FALSE 7 BOOL AddUser CUserInfo pUserInfo 添加玩家信息 8 CGameRoom 9 virtual CGameRoom 清理房间 删除所有用户 10 CDeskInfo m Desks 100 100 张桌子 11 CMap m mapUsers 用户列表 3 4 3 数据结构与算法数据结构与算法 3 4 4 补充说明补充说明 3 5 class CHyperLink public CStatic 略 3 6 class CMD5Checksum 略 3 7 class CServerApp public CWinApp 略 3 8 class CServerDlg public CDialog 3 1 1 功能描述功能描述 主控对话框 3 1 2 接口与属性接口与属性 1 CServerDlg CWnd pParent NULL standard constructor 初始化变量 2 CHyperLink m homepage 一个超链接 3 CString m strCount 连接数量 4 CString m strPort 服务器绑定端口 5 CString m strStatus 服务器运行状态 6 CString m strVersion 服务器版本 7 virtual BOOL PreTranslateMessage MSG pMsg 消息预处理 忽略 ESC 键 8 void OnStart UINT nPort 启动服务器 Socket Listening 9 void OnCount 更新连接数 10 CDatabasem db 数据库 11 CSocketServer m pSocketServer 服务器 Socket 12 UINT m nPort 服务器 Socket 端口 13 HICON m hIcon 图标句柄 14 virtual void OnOK 用来忽略回车退出 15 virtual BOOL OnInitDialog 主控对话框初始化 取得 DLL 文件名 取得站名和主页 URL 侦听的端口 数据库连接定义 服务标志定义 默认约定设置 开启服务器 Socket 启动计数定时器 启动取游戏信息定时器 16 afx msg void OnPaint 17 afx msg HCURSOR OnQueryDragIcon 18 afx msg void OnDestroy 停止 Socket 关闭数据库 19 afx msg void OnTimer UINT nIDEvent 定时处理 定时计数 定时取游戏信息 3 9 class CUserInfo 3 9 1 功能描述功能描述 用户信息 3 9 2 接口与属性接口与属性 1 CUserInfo 用户信息初始化 2 virtual CUserInfo 3 LPVOIDm pSocketRoom 房间连接 4 LPVOIDm pSocketGame 游戏连接 5 long m nSession 会话号 6 long m nUin ID 号 7 char m szName 256 名称 8 long m nSex 性别 0 女 1 男 9 long m nFace 人像 0 1 2 10 long m nDesk 所在桌号 11 long m nDeskPos 桌上位置 12 long m nStatus 状态 0 无 1 暂停 2 等待 3 坐下 4 同意 5 开始 6 断线 7 观看 13 char m szLevel 256 等级 14 long m nResult 积分 15 long m nWin 胜 16 long m nLoss 负 17 long m nPeace 和 18 long m nCount 总局数 19 long m nFlee 逃跑 20 long m nWins 胜率 21 long m n

温馨提示

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

最新文档

评论

0/150

提交评论