定义系统对象
该对象负责与其他端进程的通信,打包和解析命令消息,组成流水线,发至通讯平台。控制洗牌、发牌操作,主持回收牌销毁牌的动作。判定可以出牌的玩家,并予以令牌。记录牌局中的某轮的赢家等等牌局中的公共信息。
展现自使用者面前的界面,自MFC类CView的派生类对象。
该对象继承自MFC的CWnd类,保存了关于一张扑克的面值、花色及按照某个特定算法的大小值。
游戏者的相关的信息,包括持牌信息、ID等保存在这个对象中。
可用来集中设定规则,负责所有玩家出牌之后的大小比较工作。
洗牌动作时,发牌之间随机生成的牌存放于牌盒中;此后以逆时针次序每个玩家从中领取一张牌。
玩家点击提交出牌后,由本对象检查出牌的合法性,若合法则出牌成功。玩家出牌成功后,所出牌移至该队列。
在捉分的扑克游戏中,需要将分牌放至每个玩家对象的该队列,便于后来统计。
在某些特定游戏中,例如拱猪,玩家选择一些分牌出示给所有其他玩家看,这些牌在以后的积分计算中被加倍计算。而本对象就用来在这些牌被打出之前保存它们。
每一轮出牌过后,经裁判比较大小、分拣分牌,则将剩下的的其它牌放入回收队列,待一副牌结束后集中销毁(delete)。
封装了要传输的消息,提供了丰富的字符串操作方法。
网络消息传递概述
消息传递的目的是同步各端的状态和数据,具体由各种命令来操作。
从远端与本地端之间的联系依靠“消息”完成
消息由字符的形式串,由一系列命令组成。
命令可以有参数。
解析:根据其中的标志位,将收到的字符串(消息,可能包含多个字符串)一一提取命令,并根据其参数,在本地执行相关操作。
组装:由需要发送消息的程序点调用。分配字符串,写入相关命令及其参数,并且把消息(通过Windows自定义窗口消息)发到CgameView,待其送入网络层。
解析和组装消息的函数放在Game对象中实现,必需支持连续多个命令的解析和组装。