详细设计基于windows系统的斗地主游戏的设计与实现大学论文.docx
《详细设计基于windows系统的斗地主游戏的设计与实现大学论文.docx》由会员分享,可在线阅读,更多相关《详细设计基于windows系统的斗地主游戏的设计与实现大学论文.docx(16页珍藏版)》请在冰豆网上搜索。
![详细设计基于windows系统的斗地主游戏的设计与实现大学论文.docx](https://file1.bdocx.com/fileroot1/2023-1/8/145d625e-43f8-46ed-a98f-f1396f63bda1/145d625e-43f8-46ed-a98f-f1396f63bda11.gif)
详细设计基于windows系统的斗地主游戏的设计与实现大学论文
基于Windows系统的
斗地主游戏的设计与实现
详细设计
总页数
18
正文
15
附录
无
生效日期
2013-12-30
编制
批准
修改履历
修改编号
日期
修改人
版本号
修改内容
1
0.1.0
初始做成
目录
1文档概述4
1.1文档目的和范围4
1.2术语/缩略语4
1.3参考文档4
2处理4
2.1模块数据结构定义4
2.1.1全局变量定义4
2.2模块功能实现8
2.2.1模块内部函数8
1文档概述
1.1文档目的和范围
此文档是对基于Windows系统的斗地主游戏的服务器端模块的详细设计描述,主要是描述了本模块与其它模块的接口函数和内部接口函数以及内部函数的定义、流程图和构成图以及测试项目的记述。
并为后期测试提供依据。
1.2术语/缩略语
序号
术语/缩略语
说明
1
MFC
MicrosoftFoundationClasses,微软基础类
2
DirectX
DirecteXtension,简称DX,是由微软公司创建的多媒体编程接口
1.3参考文档
序号
文档名
作者
时间
版本
1
详细设计模板
IA事业部
2007-11-9
0.0.0
2
详细设计方法
IA事业部
2007-11-9
0.0.0
3
函数说明指南
IA事业部
2007-6-4
1.1.0
4
流程图指南
IA事业部
2007-6-4
1.1.0
5
概要设计
杨丽娟
2013-12
0.1.0
2处理
2.1模块数据结构定义
2.1.1全局变量定义
//主窗口句柄
externHWNDhWnd;
classCMainFrame;
//主窗口类指针;设为全局变量便于各个类访问其方法
externCMainFrame*pCMainFrame;
//关于Direct设备的类
//DirectInput设备接口指针
classCMyDirectInput;
externCMyDirectInput*pInput;
//DirectDraw设备接口指针
classCMyDirectDraw;
externCMyDirectDraw*pDraw;
externLPDIRECTDRAWSURFACE7lpddsprimary;//主表面
externLPDIRECTDRAWSURFACE7lpddsback;//后缓冲表面
externLPDIRECTDRAWSURFACE7lpddsbg_Game;//存放游戏界面的离屏表面
//主窗口句柄
HWNDhWnd;
//主窗口类指针;设为全局变量便于各个类访问其方法
CMainFrame*pCMainFrame;
//DirectDraw设备对象指针
CMyDirectInput*pInput;
CMyDirectDraw*pDraw;
LPDIRECTDRAWSURFACE7lpddsprimary;//ddprimarysurface
LPDIRECTDRAWSURFACE7lpddsback;//ddbacksurface
LPDIRECTDRAWSURFACE7lpddsbg_Game;//离屏表面
//游戏主体框架类指针
CGame*pGame;
//54张扑克
CCardg_cAllCards[54];
//存储玩家信息的类
CPlayerInfo*pCenterPlayer;
CPlayerInfo*pLeftPlayer;
CPlayerInfo*pRightPlayer;
CPlayingCards*pLeftCards;//左边玩家的牌对象
CPlayingCards*pCenterCards;//主机玩家的牌对象
CPlayingCards*pRightCards;//右边玩家的牌对象
//关于其他精灵的绘制引擎
CDrawItemEngine*pDrawItem;
//关于扑克绘制的引擎
CDrawCardsEngine*pDrawCards;
//游戏牌面坐标系统
CCardsMap*pCardsMap;
//网络设备
CLink*pServerLink1;//连接客户1
CLink*pServerLink2;//连接客户2
CLink*pClientLink;//客户端1
//位置坐标
intScreen_Width=1024;intScreen_Height=768;//屏幕长,宽
intCards_Width=82;intCards_Height=114;//扑克长宽
//intFace_Width=70;intFace_Height=70;//头像的长宽
intCenter_x0=350;intCenter_y0=620;//中间玩家未出的牌
intCenter_x1=230;intCenter_y1=470;//中间玩家已经出过的牌
intCenter_x2=330;intCenter_y2=340;//中间玩家刚出的牌
intLeft_x0=35;intLeft_y0=140;//左边玩家未出的牌
intLeft_x1=140;intLeft_y1=30;//左边玩家已经出过的牌
intLeft_x2=240;intLeft_y2=65;//左边玩家刚出的牌
intRight_x0=905;intRight_y0=140;//右边玩家未出的牌
intRight_x1=800;intRight_y1=30;//右边玩家已经出过的牌
intRight_x2=700;intRight_y2=65;//右边玩家刚出的牌
//三张显示的地主牌;
intLord_Card1_x=379;intLord_Card1_y=30;
intLord_Card2_x=471;intLord_Card2_y=30;
intLord_Card3_x=563;intLord_Card3_y=30;
intCard_x=471;intCard_y=190;//发牌的起始位置
intCard_Distance0=18;//左,右玩家未出牌和中间玩家已出牌的间距
intCard_Distance1=23;//左,右玩家已出牌的间距
intCard_Distance2=25;//中间玩家未出牌和刚出的牌的间距
intCard_Up=20;//中间扑克选择后突出的高度
typedefunsignedshortUSHORT;//类型定义
typedefunsignedshortWORD;
typedefunsignedcharUCHAR;
typedefunsignedcharBYTE;
2.2模块功能实现
2.2.1模块内部函数
2.2.1.1类CDlg_Start
2.2.1.1.1Server_Login
【函数式样】
函数名
Server_Login
文件名
../Dlg_Start.cpp
功能概要
服务器端登陆接收函数
记述形式
staticDWORDWINAPIServer_Login(LPVOIDpParam);
参数
类型
变量名
I/O
说明
LPVOID
pParam
-
-
返回值
类型
DWORD
说明
值
-
-
详细说明
服务器端接收函数
使用注意事项
无
【函数处理流程】
图1服务器端登陆接收流程图
2.2.1.2Client_Login
【函数式样】
函数名
Client_Login
文件名
.../Dlg_Start.cpp
功能概要
客户端登陆接收函数
记述形式
staticDWORDWINAPIClient_Login(LPVOIDpParam);
参数
类型
变量名
I/O
说明
LPVIOD
pParam
-
-
返回值
类型
DWORD
说明
值
-
-
详细说明
客户端接收函数
使用注意事项
无
【函数处理流程】
图2客户端登陆接收流程图
2.2.1.2类CServerGame
2.2.1.2.1SendCards
【函数式样】
函数名
SentCards
文件名
.../Server_Game.cpp
功能概要
传送牌数据结构给两个客户(服务器独有的函数)
记述形式
intSentCards(void);
参数
类型
变量名
I/O
说明
void
-
-
-
返回值
类型
int
说明
值
-
-
详细说明
传送牌数据结构给两个客户(服务器独有的函数)
使用注意事项
无
【函数处理流程】
图3服务器传送牌数据流程图
2.2.1.2.2DecideLord
【函数式样】
函数名
DecideLord
文件名
.../Server_Game.cpp
功能概要
决定地主
记述形式
intDecideLord(void);
参数
类型
变量名
I/O
说明
void
-
-
-
返回值
类型
int
说明
值
-
-
详细说明
决定地主
使用注意事项
无
【函数处理流程】
图4决定当不当地主流程图
2.2.1.2.3LeftDoing
【函数式样】
函数名
LeftDoing
文件名
.../Server_Game.cpp
功能概要
左边玩家思考,并决定要出的牌
记述形式
virtualintLeftDoing();
参数
类型
变量名
I/O
说明
void
-
-
-
返回值
类型
int
说明
值
-
-
详细说明
左边玩家思考,并决定要出的牌
使用注意事项
无
【函数处理流程】
图5出牌逻辑
2.2.1.2.4CenterDoing
【函数式样】
函数名
CenterDoing
文件名
.../Server_Game.cpp
功能概要
本机玩家思考,并决定要出的牌
记述形式
virtualintCenterDoing();
参数
类型
变量名
I/O
说明
void
-
-
-
返回值
类型
int
说明
值
-
-
详细说明
本家玩家思考,并决定要出的牌
使用注意事项
无
【函数处理流程】
2.2.1.2.5RightDoing
【函数式样】
函数名
RightDoing
文件名
.../Server_Game.cpp
功能概要
右边玩家思考,并决定要出的牌
记述形式
virtualintRightDoing();
参数
类型
变量名
I/O
说明
void
-
-
-
返回值
类型
int
说明
值
-
-
详细说明
右边玩家思考,并决定要出的牌
使用注意事项
无
【函数处理流程】
2.2.1.2.6Run
【函数式样】
函数名
Run
文件名
.../Server_Game.cpp
功能概要
整个游戏过程的中枢
记述形式
virtualintRun();
参数
类型
变量名
I/O
说明
void
-
-
-
返回值
类型
int
说明
值
-
-
详细说明
整个游戏过程的中枢
使用注意事项
无
【函数处理流程】
图6游戏中枢流程图