3。2。2玩家叫分
当玩家叫分时,玩家间需要时刻进行叫分数据间的通信。发牌之后,服务器会默认指定第一个连上服务器的玩家拥有初始叫分的权利,玩家顺时针轮流叫分。叫分时客户端主要负责菜单项的加载、禁用、移除,当玩家获得叫分资格时加载菜单项并创建叫分计时器,然后根据上家叫的分数禁用部分菜单项(低于上家所叫分数的菜单项被禁用),当玩家叫分结束后移除菜单项。当然,叫分过程中需要注意叫分数据的保存,数据的改动及叫分过程要及时在客户端界面上反应出来。
3。2。3出牌选牌
设计这个模块时需要设计出牌选牌的多个辅助功能,里面伴随着大量的判牌、查牌算法,玩家出牌分为主动出牌和跟牌两种形式。主动出牌时:先利用Cocos2d-x的触屏功能执行玩家选牌操作,当选的牌不符合规则时会禁用出牌菜单项,这时需重新选牌(可借助重选操作取消选中的所有牌),若玩家出牌符合规则则出牌菜单项可用,玩家出牌(由于是主动出牌,故该功能被禁用)。跟牌时:首先先判断上家所出牌的类型,此时玩家可借助提示功能跟牌,如果玩家自己选牌则先判断牌是否符合规则并且其类型需与上家的牌类型一致且打过上家的牌时,经过一系列的判定之后玩家方可跟牌。
3。2。4人工智能
人工智能模块主要是针对斗地主游戏的单机版设计的,因为机器玩家需要具备主动出牌及跟牌的能力,这样才能更真实的还原玩家一起打牌的娱乐性。斗地主的人工智能其实是根据一般玩家的出牌习惯及一些经验给机器玩家制定出一套具有出牌与跟牌有优先级顺序的规则。如当某一机器玩家手上的牌有三带一、单顺、双顺、飞机带翅、单牌等牌型时,在主动出牌时可以设计出牌优先级出飞机带翅(本软件是这样设计的),跟牌的时候可以根据上家的牌型找出手中牌类型一致且能大过上家牌的最小牌。
4。软件功能模块的设计与实现来;自]优Y尔E论L文W网www.youerw.com +QQ752018766-
4。1自动发牌模块
自动发牌模块是在客户端接受到后台数据发来的牌数据之后才执行的模块,收到牌数据之后设置一个定时器用于控制牌的动态绘制,接下来需要设计ActionDrawCard绘制牌的算法。首先创建玩家当前牌数据的副本,插入需要绘制的牌数据并排序(其比较函数为SortByPriority()),重新改边绘制牌时的起始位置;然后对比当前牌数据和其副本(上一次的牌数据),通过副本的索引找到相对应的精灵,替换精灵的图片为当前牌索引值所对应的图片,更换精灵的Tag值为当前牌的索引值,移动牌的位置,如此循环直到结束;接着正常绘制多出的那一张牌,如果发牌张数达到17张,Kill对应掉定时器,此模块结束。
4。2玩家叫分模块
玩家叫分模块时刻穿插着网络通信,更多是通过数据改变游戏界面,网络通信时刻影响着玩家的叫分顺序及逻辑。叫分模块又分为玩家主动叫分和处理其他玩家叫分
Cocos2d-x斗地主手机游戏的设计+源代码(3):http://www.youerw.com/jisuanji/lunwen_96126.html