详细设计基于windows系统的斗地主游戏的设计与实现大学论文Word文件下载.docx
《详细设计基于windows系统的斗地主游戏的设计与实现大学论文Word文件下载.docx》由会员分享,可在线阅读,更多相关《详细设计基于windows系统的斗地主游戏的设计与实现大学论文Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。
![详细设计基于windows系统的斗地主游戏的设计与实现大学论文Word文件下载.docx](https://file1.bdocx.com/fileroot1/2023-1/8/145d625e-43f8-46ed-a98f-f1396f63bda1/145d625e-43f8-46ed-a98f-f1396f63bda11.gif)
目录
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术语/缩略语
序号
术语/缩略语
说明
MFC
MicrosoftFoundationClasses,微软基础类
2
DirectX
DirecteXtension,简称DX,是由微软公司创建的多媒体编程接口
1.3参考文档
文档名
作者
时间
版本
详细设计模板
IA事业部
2007-11-9
0.0.0
详细设计方法
3
函数说明指南
2007-6-4
1.1.0
4
流程图指南
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);
LPVIOD
客户端接收函数
图2客户端登陆接收流程图
2.2.1.2类CServerGame
2.2.1.2.1SendCards
SentCards
.../Server_Game.cpp
传送牌数据结构给两个客户(服务器独有的函数)
intSentCards(void);
void
int
图3服务器传送牌数据流程图
2.2.1.2.2DecideLord
DecideLord
.../Server_Game.cpp
决定地主
intDecideLord(void);
决定地主
图4决定当不当地主流程图
2.2.1.2.3LeftDoing
LeftDoing
左边玩家思考,并决定要出的牌
virtualintLeftDoing();
图5出牌逻辑
2.2.1.2.4CenterDoing
CenterDoing
本机玩家思考,并决定要出的牌
virtualintCenterDoing();
本家玩家思考,并决定要出的牌
2.2.1.2.5RightDoing
RightDoing
右边玩家思考,并决定要出的牌
virtualintRightDoing();
2.2.1.2.6Run
Run
整个游戏过程的中枢
virtualintRun();
图6游戏中枢流程图