毕业设计论文-c斗地主游戏设计内容摘要:

模式主要由客户应用程序 Client 服务器管理程序 Server 和中间件 middleware 三 个部件组成客户应用程序是系统中用户与数据进行交互的部件服务器程序负责有效地管理系统资源如管理一个信息数据库其主要工作是当多个客户并发地请求服务器上的相同资源时对这些资源进行最优化管理中间件负责联结客户应用程序与服务器管理程序协同完成一个作业以满足用户查询管理数据的要求 WINSOCK 编程实现 CS 之间的通信主要使用了以下几个类来实现数 据的传输 类 CListenSocket 监视连接 socket 监视来自客户端的连接请求 类 CClientSocket 数据传送 socket 传送 CS 之间的数据消息 类 Cs CS 模式之间的数据传送成员 消息 message 数据相关者InfoAboutSerialize CArchive ar 专用于收发数据并存储于内存 当客户端请示登录时 CListenSocket 自动捕获请示当请示合法且系统还有空位时接受请示并创建一个 CClientSocket对象 CClientSocket处于活跃状态然后当对应客户端发来动作请示 时 CClientSocket自动捕获之通过 playingcards调用规则机制请看 2 游戏规则的实现进行合法性判断以后把所得的处理结果填入 Cs 数据传送单元再广播出去 2 游戏规则的实现 通过封装相应的类来实现规则 类 card 卡片类牌数据成员为花色 color 牌面 value 数目 num 存在标志 exist 枚举 colors 包括方块梅花红心黑桃小鬼大鬼总共六种花色 结构体 b 内含头头是单双三顺炸弹火箭等所有牌型的标记位 类 playing_Cards 游戏规则类数据成员玩家数目 num_Players 有牌数目num_Cards 每个玩家有牌数目 cards_Each 等成员函数游戏初始化 initgame 洗牌 suffle 发牌 sendCards 出牌 outcards player ThisPlayer 等等 Card是游戏的对象一般而言特定的游戏都有特定的游戏对象 Colorsb都是根据需要对 card 的补充 Colors 是各个 牌的花色共有 6 种后两种是小鬼 Bjoke 大鬼 Rjoke 不用于其他牌 Comb是 bo的意思指牌的类型在斗地主中牌型有单牌 顺子对子 3 带 1 4 带 2 炸弹火箭等 客户端模块设计 1 登录功能的实现 类 CClientUseSocket 客户端登陆 Socket 专用于收发连接登陆请求登陆成功之后即刻关闭 类 CUseSocketDlg 客户端登陆对话框 类 CUseSocketApp 客户端登陆实现应用函数 启动客户端程序弹出登录对话框要求用户输入用户名和服务器端的 IP 地址点击开始游戏就可以向服务器发送登录请示当登录请示得到许可时提示登录成功关闭 CClientUseSocket 启动 CClientUseSocket2 并进入游戏准备开始游戏 2 与服务器通信功能的实现 类 CClientUseSocket2 客户端游戏数据传送 socket专用于收发对服务器的数据客户端退出时才被关闭 类 Card 卡片类 牌数据成员花色 color 牌面 value 等等 类 CS数据传送单元 CS模式之间的数据传送数据成员消息 ID号 message数据相关者 InfoAbout 等等成员函数 Serialize CArchive ar 该成员函数专用于收发数据并存储于内存 这 1 数据传输的实现讲的是同一个原理它们不同之处就在客户端不向服务器端发送反馈信息5 纸牌设计 6 详细设计与系统实现 61 出牌记录和合法 出牌记录和合法性 在出牌的过程中首先需要判断出牌是否合法还需要记录未出牌的数量以及已经出的牌数量 其出牌流程图如下 图 61 出牌流程图 1 显示出牌和未出牌的数量和牌的代码 class CCard public int m_nColor 花色 int m_nValue 面值 public CCard class CPlayingCards public int m_nCardsTable[17] int m_nCardsCounter CCard m_cCards[20] int m_nDiscardedCounter CCard m_cDiscarded[20] CCardsType m_cDiscardingType int m_nDiscardingCardsTable[17] int m_nDiscardingCounter CCard m_cDiscarding[20] int m_nChoosingCardsCounter CCard m_cChoosingCards[20] const CCard m_cBLANK_CARD private 2 判断出牌的合法性流程图 图 62 出牌合法性流程图 3 按选中的纸牌类型出牌代码 int Search1 CCardsType cCardsType int Search2 CCardsType cCardsType int Search3 CCardsType cCardsType int SearchBomb CCardsType cCardsType int Search31 CCardsType cCardsType int Search32 CCardsType cCardsType int Search411 CCardsType cCardsType int Search422 CCardsType cCardsType int Search3311 CCardsType cCardsType int Search3322 CCardsType cCardsType int Search222 CCardsType cCardsType int Search2222 CCardsType cCardsType int Search5 CCardsType cCardsType int Search6 CCardsType cCardsType int Search7 CCardsType cCardsType int Search8 CCardsType cCardsType int Search9 CCardsType cCardsType int SearchBeyond10 CCardsType cCardsTypeint nLong BOOL AI_Patch1 public CPlayingCards virtual CPlayingCards void New void ScanToTable int AccountCardsValue int CleanUp int CheckChoosing int DirectChoose int CompareChoose CCardsType 62 显示信息功能 分牌 开始游戏后系统会自动轮流分发纸牌到三个玩家手里留下 3 张纸牌做底牌其实现代码如下 int CDrawCardsEngineDealing 分牌给三个玩家 for int i 0i 17i 发牌给左边玩家 pLeft。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。