今天在帮客户改东北乾安的麻将,乾安麻将的宝牌比效复杂,需求如下:
6.1 宝牌:可以替代任何牌的“万能牌”。
6.2 宝牌产生:牌墙中的最后一张牌为“宝”牌。
6.3 宝牌不能查看。
6.4 换宝:宝牌被宝杠以后,牌墙中倒数第2张牌为宝牌。
6.5 用户听牌后才能使用宝牌。
开始搞了,首选给宝牌定一个变量:看了一下代码,直接把财神当宝牌用了。
- 首先在开始游戏的地方把宝牌重置。
- 在用户听牌的动作上加一个读取宝牌的代码,从库存牌变量里取最后一张,这里注意,库存牌里最后一张的key是1,是倒过来的,取的时候要检查库存牌是否存在,不存再就往前一张牌取,因为杠牌的时候也取的是最后一张牌,这样可能后面的牌有几个是被杠的玩家取走了不存在了,上代码:
//获取宝牌,从后面取最后一张,如果不存在就往前一张取
if(m_cbBaoCard == 0x00)
{
for(WORD i=1;i<=8;i++)
{
m_cbBaoCard = m_cbRepertoryCard[i];
if(m_cbBaoCard !=0x00)
{
SineCount = i;
break;
}
}
} - 因为用户杠牌也是取的最后一张,所在在用户杠牌操作的时候,需要查看一下有没有用户听牌,如果有,就重新换宝牌,方法和听牌操作的定义宝牌的一样。
- 宝牌只对上听的用户有效,没有上听的用户无效,需要在用户出牌、杠牌的地方加上判断。
原文地址:http://blog.51cto.com/13400346/2062602
时间: 2024-10-07 05:04:48