コード例 #1
0
ファイル: UpGradeLogic.cpp プロジェクト: lincoln56/robinerp
// 皇家同花顺(A,K,Q,J,10)
BOOL CUpGradeGameLogic::IsRegiusContinue(BYTE iCardList[],int iCardCount)
{

	if(iCardCount < 4)
		return FALSE;
	if (!IsSameHua(iCardList, iCardCount)) 
		return FALSE;
	if (!IsSingleContinue(iCardList, iCardCount))
		return FALSE;
	if (!IsSameHuaContinue(iCardList, iCardCount))
		return FALSE;
	BYTE Temp[61] = {0};
	for(int i = 0; i < iCardCount; i ++)
	{
		Temp[iCardList[i]] ++;
	}
	
	if(Temp[9] && Temp[10] && Temp[11]&& Temp[12] && Temp[13])
		return TRUE;
	if(Temp[25] && Temp[26] && Temp[27]&& Temp[28] && Temp[29])
		return TRUE;
	if(Temp[41] && Temp[42] && Temp[43]&& Temp[44] && Temp[45])
		return TRUE;
	if(Temp[57] && Temp[58] && Temp[59]&& Temp[60] && Temp[61])
		return TRUE;
	
	return FALSE;
}
コード例 #2
0
//是否同花顺(5张)
BOOL CUpGradeGameLogic::IsSameHuaContinue(BYTE iCardList[], int iCardCount)
{
	//if (iCardCount != 5) 
	//	return FALSE;
	if(iCardCount<4)
		return FALSE;
	if (!IsSameHua(iCardList,iCardCount)) 
		return FALSE;
	if (!IsSingleContinue(iCardList,iCardCount)) return FALSE;

	return TRUE;
}
コード例 #3
0
//获取牌型
BYTE CUpGradeGameLogic::GetCardShape(BYTE iCardList[], int iCardCount)
{
	/***************************************************
	同花顺>铁支>葫芦>同花>顺子>三条>两对>对子>散牌
	***************************************************/

	if (iCardCount <= 0) 	return UG_ERROR_KIND;//非法牌
	if (IsSameHuaContinue(iCardList,iCardCount)) return SH_SAME_HUA_CONTINUE;//同花顺
	if (IsSmallSameHuaContinue(iCardList,iCardCount)&&(m_dwCardShape&(0x00000001<<1))) return SH_SMALL_SAME_HUA_CONTINUE;//同花最小顺子
	if (IsTieZhi(iCardList,iCardCount)) return SH_TIE_ZHI;//铁支
	if (IsHuLu(iCardList,iCardCount)) return SH_HU_LU;//葫芦
	if (IsSameHua(iCardList,iCardCount)) return SH_SAME_HUA;//同花
	if (IsSingleContinue(iCardList,iCardCount)) return SH_CONTINUE;//顺子
	if (IsSmallSingleContinue(iCardList,iCardCount)&&(m_dwCardShape&(0x00000001<<1))) return SH_SMALL_CONTINUE;	//最小顺子
	if (IsThree(iCardList,iCardCount)) return SH_THREE;//三条
	if (IsCompleDouble(iCardList,iCardCount)) return SH_TWO_DOUBLE;//两对
	if (IsDouble(iCardList,iCardCount)) return SH_DOUBLE;//对子

	return SH_OTHER;//散牌
}
コード例 #4
0
ファイル: UpGradeLogic.cpp プロジェクト: lincoln56/robinerp
// 最小顺子(a,2,3,4,5)
BOOL CUpGradeGameLogic::IsSmallSingleContinue(BYTE iCardList[],int iCardCount)
{
	//for(int i=0;i<7;i++)
	//{
	//	if(iCardList[i]==0)
	//		return FALSE;
	//}
	if (IsSingleContinue(iCardList,iCardCount))
		return FALSE;
	if(iCardCount < 4)
		return FALSE;

	BYTE Temp[18] = {0};
	for(int i = 0; i < iCardCount; i ++)
	{
		Temp[GetCardNum(iCardList[i])] ++;
	}
	
	if(Temp[14] && Temp[1] && Temp[2] && Temp[3] && Temp[4])
		return TRUE;
	
	return FALSE;
}