斗地主(2)

今天重新思考了一下斗地主牌的属性,应该还有一项,就是是否被选中,所以扑克牌的属性修改为下列样子

struct POKE
{
	int view;//面值(1,2,3,...,10,J,Q,K,Dawang,Xiaowang)
	int color;//花色
	int value;//大小
	bool isSelect;
};
POKE g_Poke[54];

同样在InitialPoke中初始化isSelect

g_Poke[i].isSelect = false;

扑克牌初始化后,下来进行的就是洗牌了,我的方法是每次随机一个小于54的数,与当前循环的i进行交换,还未测试,暂且这么弄着。。

//洗牌
void Poke::SrandPoke()
{
	srand(time(NULL));
	int iRand;
	POKE temp;
	for(int i = 0; i < 54; i++)
	{
		iRand = rand()%54;
		if(iRand != i)
		{
			temp = g_Poke[iRand];
			g_Poke[iRand] = g_Poke[i];
			g_Poke[iRand] = temp;
		}
	}
}

洗牌之后就是发牌了。我建立了一个Player类,类中申请了list数组对象,用来保存每个玩家手中牌

list<POKE> m_listPlyr[3];

发牌函数,因为牌已洗好,所以直接按顺序从给3个玩家每个发17张牌

void Player::SendPoke()
{
	for(int i = 0; i < 52; i++)
	{
		if( i < 17)
			m_listPlyr[0].push_back(g_Poke[i]);
		else if(i >= 17 && i < 34)
			m_listPlyr[1].push_back(g_Poke[i]);
		else
			m_listPlyr[2].push_back(g_Poke[i]);
	}
}


了,今天就到这了。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值