斗地主算法之叫地主/抢地主简单判定算法

std::string m_oder_list;

void on_player_oder(bool oder_or_pass) //叫地主函数
{
    if(oder_or_pass)  //有人叫或者抢地主
  {
      m_oder_list+='1'; //oder_list加一个字符
  }
  else 
  {
     m_oder_list+='0';
  }
}

判断抢地主结束的条件就不多赘述了,最多5次最少3次即可

void on_oder_end()  //叫地主结束回调  
{
  	if (m_oder_list == "000"||
		m_oder_list == "1111"||
		m_oder_list == "100"||
		m_oder_list == "1011"||
		m_oder_list == "1101"
		)
	{
		m_current_boos = m_oder_head_player; //oder_head_player就是第一个叫地主的玩家 
		msg_oder_end(m_oder_head_player);//都不叫地主  牌有那么差吗
	}
	else if (m_oder_list == "010"||
		m_oder_list == "1110"||
		m_oder_list == "01101")
	{
		m_current_boos = get_next_player(m_oder_head_player);

		msg_oder_end(get_next_player(m_oder_head_player));
	}
	else if (m_oder_list == "1010"|| m_oder_list == "001"||m_oder_list == "01100")
	{
		m_current_boos = get_next_player(get_next_player(get_next_player(m_oder_head_player)));

		msg_oder_end(get_next_player(get_next_player(m_oder_head_player)));
	}
}

通过这串01数据对比很清晰的就可以知道谁是最终的地主 抢了多少次地主 应该翻多少倍..不需要多费笔墨去做什么记录 十分简单

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值