(资料图片仅供参考)
#include "CMJ.h" //构造 CMJ::CMJ() { m_9LBD = false; m_13Y = false; m_4AK = false; m_AKNum = 0; m_MKNum = 0; } //析构 CMJ::~CMJ() { } //初始化 voidCMJ::Init() { m_9LBD = false; m_13Y = false; m_4AK = false; m_AKNum = 0; m_MKNum = 0; } //加入新牌,并排序 boolCMJ::AddPai(intp_Type,intp_Value) { intiSize = m_MyPAIVec[p_Type].size(); boolt_Find = false; vector< int>::iterator Iter; for(Iter = m_MyPAIVec[p_Type].begin();Iter !=m_MyPAIVec[p_Type].end(); Iter++) { if((*Iter)>p_Value) { m_MyPAIVec[p_Type].insert(Iter,p_Value); t_Find = true; break; } } if(t_Find==false) { m_MyPAIVec[p_Type].push_back(p_Value); } m_LastPAI.m_Type = p_Type; m_LastPAI.m_Value = p_Value; returntrue; } //取得对应的牌在牌墙的索引 intCMJ::GetPaiIndex(intp_Type,intp_Value) { intcount = 0; for(UINTi = 0 ; i < 6 ; i++ ) { vector< int>::iterator Iter; for(Iter = m_MyPAIVec[i].begin();Iter !=m_MyPAIVec[i].end(); Iter++) { if(p_Type==i&&(*Iter)==p_Value) { returncount; } count++; } } return-1; } //打牌 boolCMJ::DelPai(intPaiIndex) { intcount = 0; for(UINTi = 0 ; i < 6 ; i++ ) { vector< int>::iterator Iter; for(Iter = m_MyPAIVec[i].begin();Iter !=m_MyPAIVec[i].end(); Iter++) { if(count==PaiIndex) { m_MyPAIVec[i].erase(Iter); returntrue; } count++; } } returnfalse; } //删除牌 boolCMJ::DelPai(intp_Type,intp_Value) { vector< int>::iterator Iter; for(Iter = m_MyPAIVec[p_Type].begin();Iter !=m_MyPAIVec[p_Type].end(); Iter++) { if((*Iter)==p_Value) { m_MyPAIVec[p_Type].erase(Iter); returntrue; } } returnfalse; } //清空牌 voidCMJ::CleanUp() { for(UINTi = 0 ; i < 6 ; i++ ) { m_MyPAIVec[i].clear(); m_ChiPAIVec[i].clear(); m_PengPAIVec[i].clear(); m_GangPAIVec[i].clear(); } } //取得胡牌信息 stGoodInfo *CMJ::GetInfo() { return&m_GoodInfo; } //对所有的牌进行函数调用 voidCMJ::PrintAllPai() { cout<<" "; for(UINTi = 0 ; i < 13 ; i++ ) { cout<" - "; } cout<inticount = 0; //箭牌 if(m_MyPAIVec[0].empty()==false) { vector< int>::iterator Iter; for(Iter = m_MyPAIVec[0].begin();Iter !=m_MyPAIVec[0].end(); Iter++) { switch(*Iter) { case1: cout<<"[ 中]"; break; case2: cout<<"[ 发]"; break; case3: cout<<"[ 白]"; break; } icount++; } } cout<for(UINTi =0 ; i < icount; i++ ) { cout<<" "; } //风牌 if(m_MyPAIVec[1].empty()==false) { vector< int>::iterator Iter; for(Iter = m_MyPAIVec[1].begin();Iter !=m_MyPAIVec[1].end(); Iter++) { switch(*Iter) { case1: cout<<"[ 东]"; break; case2: cout<<"[ 南]"; break; case3: cout<<"[ 西]"; break; case4: cout<<"[ 北]"; break; } icount++; } } cout<for(UINTi =0 ; i < icount; i++ ) { cout<<" "; } //万 if(m_MyPAIVec[2].empty()==false) { vector< int>::iterator Iter; for(Iter = m_MyPAIVec[2].begin();Iter !=m_MyPAIVec[2].end(); Iter++) { cout<<"["<<(*Iter)<<"万]"; icount++; } } cout<for(UINTi =0 ; i < icount; i++ ) { cout<<" "; } //条 if(m_MyPAIVec[3].empty()==false) { vector< int>::iterator Iter; for(Iter = m_MyPAIVec[3].begin();Iter !=m_MyPAIVec[3].end(); Iter++) { cout<<"["<<(*Iter)<<"条]"; icount++; } } cout<for(UINTi =0 ; i < icount; i++ ) { cout<<" "; } //饼 if(m_MyPAIVec[4].empty()==false) { vector< int>::iterator Iter; for(Iter = m_MyPAIVec[4].begin();Iter !=m_MyPAIVec[4].end(); Iter++) { cout<<"["<<(*Iter)<<"饼]"; icount++; } } cout<for(UINTi =0 ; i < icount; i++ ) { cout<<" "; } } //对一张牌进行输出 voidCMJ::PrintPai(intp_Type,intp_Value) { //箭牌 if(p_Type==0) { switch(p_Value) { case1: cout<<"[中]"; break; case2: cout<<"[发]"; break; case3: cout<<"[白]"; break; } } //风牌 if(p_Type==1) { switch(p_Value) { case1: cout<<"[东]"; break; case2: cout<<"[南]"; break; case3: cout<<"[西]"; break; case4: cout<<"[北]"; break; } } //万 if(p_Type==2) { cout<<"["<"万]"; } //条 if(p_Type==3) { cout<<"["<"条]"; } //饼 if(p_Type==4) { cout<<"["<"饼]"; } } //吃牌 boolCMJ::CheckChiPai(intp_Type,intp_Value) { m_TempChiPAIVec.clear(); //饼 if(m_MyPAIVec[p_Type].empty()==false) { intiSize = m_MyPAIVec[p_Type].size(); if( iSize >= 2) { for(UINTi = 0 ; i < iSize-1 ; i++ ) { if((m_MyPAIVec[p_Type][i]==(p_Value-2))&&(m_MyPAIVec[p_Type][i+1]==(p_Value-1))) { stCHI t_Chi; t_Chi.m_Type = p_Type; t_Chi.m_Value1 = p_Value-2; t_Chi.m_Value2 = p_Value-1; t_Chi.m_Value3 = p_Value; m_TempChiPAIVec.push_back(t_Chi); } if((m_MyPAIVec[p_Type][i]==(p_Value-1))&&(m_MyPAIVec[p_Type][i+1]==(p_Value+1))) { stCHI t_Chi; t_Chi.m_Type = p_Type; t_Chi.m_Value1 = p_Value-1; t_Chi.m_Value2 = p_Value; t_Chi.m_Value3 = p_Value+1; m_TempChiPAIVec.push_back(t_Chi); } if((m_MyPAIVec[p_Type][i]==(p_Value+1))&&(m_MyPAIVec[p_Type][i+1]==(p_Value+2))) { stCHI t_Chi; t_Chi.m_Type = p_Type; t_Chi.m_Value1 = p_Value; t_Chi.m_Value2 = p_Value+1; t_Chi.m_Value3 = p_Value+2; m_TempChiPAIVec.push_back(t_Chi); } } } //假设吃B,已有ABC if( iSize >= 3) { for(UINTi = 1 ; i < iSize-1 ; i++ ) { if((m_MyPAIVec[p_Type][i-1]==(p_Value-1))&&(m_MyPAIVec[p_Type][i]==p_Value)&&(m_MyPAIVec[p_Type][i+1]==(p_Value+1))) { stCHI t_Chi; t_Chi.m_Type = p_Type; t_Chi.m_Value1 = p_Value-1; t_Chi.m_Value2 = p_Value; t_Chi.m_Value3 = p_Value+1; m_TempChiPAIVec.push_back(t_Chi); } } } //假设吃B,已有ABBC if( iSize >= 4) { for(UINTi = 1 ; i < iSize-2 ; i++ ) { if((m_MyPAIVec[p_Type][i-1]==(p_Value-1))&&(m_MyPAIVec[p_Type][i]==p_Value)&&(m_MyPAIVec[p_Type][i+2]==(p_Value+1))) { stCHI t_Chi; t_Chi.m_Type = p_Type; t_Chi.m_Value1 = p_Value-1; t_Chi.m_Value2 = p_Value; t_Chi.m_Value3 = p_Value+1; m_TempChiPAIVec.push_back(t_Chi); } } } //假设吃B,已有ABBBC if( iSize >= 5) { for(UINTi = 1 ; i < iSize-3 ; i++ ) { if((m_MyPAIVec[p_Type][i-1]==(p_Value-1))&&(m_MyPAIVec[p_Type][i]==p_Value)&&(m_MyPAIVec[p_Type][i+3]==(p_Value+1))) { stCHI t_Chi; t_Chi.m_Type = p_Type; t_Chi.m_Value1 = p_Value-1; t_Chi.m_Value2 = p_Value; t_Chi.m_Value3 = p_Value+1; m_TempChiPAIVec.push_back(t_Chi); } } } //假设吃B,已有ABBBBC if( iSize >= 6) { for(UINTi = 1 ; i < iSize-4 ; i++ ) { if((m_MyPAIVec[p_Type][i-1]==(p_Value-1))&&(m_MyPAIVec[p_Type][i]==p_Value)&&(m_MyPAIVec[p_Type][i+4]==(p_Value+1))) { stCHI t_Chi; t_Chi.m_Type = p_Type; t_Chi.m_Value1 = p_Value-1; t_Chi.m_Value2 = p_Value; t_Chi.m_Value3 = p_Value+1; m_TempChiPAIVec.push_back(t_Chi); } } } if(m_TempChiPAIVec.size() > 0) { returntrue; } } returnfalse; } //吃牌 boolCMJ::DoChiPai(intp_iIndex,intp_Type,intp_Value) { AddPai(p_Type,p_Value); vector::iterator Iter; inticount = 0; for(Iter = m_TempChiPAIVec.begin(); Iter != m_TempChiPAIVec.end(); Iter++ ) { if(icount == p_iIndex) { DelPai((*Iter).m_Type,(*Iter).m_Value1); DelPai((*Iter).m_Type,(*Iter).m_Value2); DelPai((*Iter).m_Type,(*Iter).m_Value3); m_ChiPAIVec[(*Iter).m_Type].push_back((*Iter).m_Value1); m_ChiPAIVec[(*Iter).m_Type].push_back((*Iter).m_Value2); m_ChiPAIVec[(*Iter).m_Type].push_back((*Iter).m_Value3); returntrue; } icount++; } returnfalse; } //对可吃的组合进行输出 voidCMJ::PrintChiChosePai() { cout<<"================吃牌组合======================="<vector::iterator Iter; for(Iter = m_TempChiPAIVec.begin(); Iter != m_TempChiPAIVec.end();Iter++) { //万 if((*Iter).m_Type==2) { cout<<"["<<(*Iter).m_Value1<<"万"; cout<<""<<(*Iter).m_Value2<<"万"; cout<<""<<(*Iter).m_Value3<<"万]"; } //条 if((*Iter).m_Type==3) { cout<<"["<<(*Iter).m_Value1<<"条"; cout<<""<<(*Iter).m_Value2<<"条"; cout<<""<<(*Iter).m_Value3<<"条]"; } //饼 if((*Iter).m_Type==4) { cout<<"["<<(*Iter).m_Value1<<"饼"; cout<<""<<(*Iter).m_Value2<<"饼"; cout<<""<<(*Iter).m_Value3<<"饼]"; } } cout<"========================================="<} //对可碰的组合进行输出 voidCMJ::PrintPengChosePai() { cout<<"=====================碰牌=================="<vector::iterator Iter; for(Iter = m_TempPengPAIVec.begin(); Iter != m_TempPengPAIVec.end();Iter++) { //万 if((*Iter).m_Type==2) { cout<<"["<<(*Iter).m_Value<<"万"; cout<<""<<(*Iter).m_Value<<"万"; cout<<""<<(*Iter).m_Value<<"万]"; } //条 if((*Iter).m_Type==3) { cout<<"["<<(*Iter).m_Value<<"条"; cout<<""<<(*Iter).m_Value<<"条"; cout<<""<<(*Iter).m_Value<<"条]"; } //饼 if((*Iter).m_Type==4) { cout<<"["<<(*Iter).m_Value<<"饼"; cout<<""<<(*Iter).m_Value<<"饼"; cout<<""<<(*Iter).m_Value<<"饼]"; } } cout<"========================================="<} //对可杠的组合进行输出 voidCMJ::PrintGangChosePai() { cout<<"====================杠牌==================="<vector::iterator Iter; for(Iter = m_TempGangPAIVec.begin(); Iter != m_TempGangPAIVec.end();Iter++) { //万 if((*Iter).m_Type==2) { cout<<"["<<(*Iter).m_Value<<"万"; cout<<""<<(*Iter).m_Value<<"万"; cout<<""<<(*Iter).m_Value<<"万"; cout<<""<<(*Iter).m_Value<<"万]"; } //条 if((*Iter).m_Type==3) { cout<<"["<<(*Iter).m_Value<<"条"; cout<<""<<(*Iter).m_Value<<"条"; cout<<""<<(*Iter).m_Value<<"条"; cout<<""<<(*Iter).m_Value<<"条]"; } //饼 if((*Iter).m_Type==4) { cout<<"["<<(*Iter).m_Value<<"饼"; cout<<""<<(*Iter).m_Value<<"饼"; cout<<""<<(*Iter).m_Value<<"饼"; cout<<""<<(*Iter).m_Value<<"饼]"; } } cout<"========================================="<} //取得吃牌组合数 UINTCMJ::GetChiChoseNum() { returnm_TempChiPAIVec.size(); } //碰牌 boolCMJ::CheckPengPai(intp_Type,intp_Value) { m_TempPengPAIVec.clear(); //饼 if(m_MyPAIVec[p_Type].empty()==false) { intiSize = m_MyPAIVec[p_Type].size(); if( iSize >= 2) { for(UINTi = 0 ; i < iSize-1 ; i++ ) { if((m_MyPAIVec[p_Type][i]==p_Value)&&(m_MyPAIVec[p_Type][i+1]==p_Value)) { stPAI t_Peng; t_Peng.m_Type = p_Type; t_Peng.m_Value = p_Value; m_TempPengPAIVec.push_back(t_Peng); break; } } } if(m_TempPengPAIVec.size() > 0) { returntrue; } } returnfalse; } //碰牌 boolCMJ::DoPengPai(intp_Type,intp_Value) { AddPai(p_Type,p_Value); vector::iterator Iter; for(Iter = m_TempPengPAIVec.begin(); Iter != m_TempPengPAIVec.end(); Iter++ ) { DelPai((*Iter).m_Type,(*Iter).m_Value); DelPai((*Iter).m_Type,(*Iter).m_Value); DelPai((*Iter).m_Type,(*Iter).m_Value); m_PengPAIVec[(*Iter).m_Type].push_back((*Iter).m_Value); m_PengPAIVec[(*Iter).m_Type].push_back((*Iter).m_Value); m_PengPAIVec[(*Iter).m_Type].push_back((*Iter).m_Value); returntrue; } returnfalse; } //杠牌 boolCMJ::CheckGangPai(intp_Type,intp_Value) { m_TempGangPAIVec.clear(); //饼 if(m_MyPAIVec[p_Type].empty()==false) { intiSize = m_MyPAIVec[p_Type].size(); if( iSize >= 3) { for(UINTi = 0 ; i < iSize-2 ; i++ ) { if((m_MyPAIVec[p_Type][i]==p_Value)&&(m_MyPAIVec[p_Type][i+1]==p_Value)&&(m_MyPAIVec[p_Type][i+2]==p_Value)) { stPAI t_Gang; t_Gang.m_Type = p_Type; t_Gang.m_Value = p_Value; m_TempGangPAIVec.push_back(t_Gang); break; } } } if(m_TempGangPAIVec.size() > 0) { returntrue; } } returnfalse; } //杠牌 boolCMJ::DoGangPai(intp_Type,intp_Value) { AddPai(p_Type,p_Value); vector::iterator Iter; for(Iter = m_TempGangPAIVec.begin(); Iter != m_TempGangPAIVec.end(); Iter++ ) { DelPai((*Iter).m_Type,(*Iter).m_Value); DelPai((*Iter).m_Type,(*Iter).m_Value); DelPai((*Iter).m_Type,(*Iter).m_Value); DelPai((*Iter).m_Type,(*Iter).m_Value); //排序放入 if(m_GangPAIVec[(*Iter).m_Type].empty()) { m_GangPAIVec[(*Iter).m_Type].push_back((*Iter).m_Value); m_GangPAIVec[(*Iter).m_Type].push_back((*Iter).m_Value); m_GangPAIVec[(*Iter).m_Type].push_back((*Iter).m_Value); m_GangPAIVec[(*Iter).m_Type].push_back((*Iter).m_Value); } else{ vector<int>::iterator Iter2; for(Iter2 = m_GangPAIVec[(*Iter).m_Type].begin(); Iter2 != m_GangPAIVec[(*Iter).m_Type].end(); Iter2++ ) { if((*Iter2)>(*Iter).m_Value) { m_GangPAIVec[(*Iter).m_Type].insert(Iter2,(*Iter).m_Value); m_GangPAIVec[(*Iter).m_Type].insert(Iter2,(*Iter).m_Value); m_GangPAIVec[(*Iter).m_Type].insert(Iter2,(*Iter).m_Value); m_GangPAIVec[(*Iter).m_Type].insert(Iter2,(*Iter).m_Value); break; } } } returntrue; } returnfalse; } //检测是否胡牌 boolCMJ::CheckAllPai(boolGetOrPut) { if(GetOrPut == MJPAI_GETPAI) { //检查大四喜 if(CheckD4X_HU()) { strcpy(m_GoodInfo.m_GoodName,"大四喜"); m_GoodInfo.m_GoodValue = 88; returntrue; } //检查大三元 if(CheckD3Y_HU()) { strcpy(m_GoodInfo.m_GoodName,"大三元"); m_GoodInfo.m_GoodValue = 88; returntrue; } //检查绿一色 if(CheckL1S_HU()) { strcpy(m_GoodInfo.m_GoodName,"绿一色"); m_GoodInfo.m_GoodValue = 88; returntrue; } //检查九莲宝灯 if(Check9LBD_HU()) { strcpy(m_GoodInfo.m_GoodName,"九莲宝灯"); m_GoodInfo.m_GoodValue = 88; returntrue; } //检查四杠 if(Check4Gang_HU()) { strcpy(m_GoodInfo.m_GoodName,"四杠"); m_GoodInfo.m_GoodValue = 88; returntrue; } //检查连七对 if(CheckL7D_HU()) { strcpy(m_GoodInfo.m_GoodName,"连七对"); m_GoodInfo.m_GoodValue = 88; returntrue; } //检查十三幺 if(Chekc13Y_HU()) { strcpy(m_GoodInfo.m_GoodName,"十三幺"); m_GoodInfo.m_GoodValue = 88; returntrue; } //检查清幺九 if(CheckQY9_HU()) { strcpy(m_GoodInfo.m_GoodName,"清幺九"); m_GoodInfo.m_GoodValue = 64; returntrue; } //检查小四喜 if(CheckX4X_HU()) { strcpy(m_GoodInfo.m_GoodName,"小四喜"); m_GoodInfo.m_GoodValue = 64; returntrue; } //检查小三元 if(CheckX3Y_HU()) { strcpy(m_GoodInfo.m_GoodName,"小三元"); m_GoodInfo.m_GoodValue = 64; returntrue; } //检测是否四暗刻 if(Check4AK_HU()) { strcpy(m_GoodInfo.m_GoodName,"四暗刻"); m_GoodInfo.m_GoodValue = 64; returntrue; } //检测是否一色双龙会 if(Check1S2LH_HU()) { strcpy(m_GoodInfo.m_GoodName,"一色双龙会"); m_GoodInfo.m_GoodValue = 64; returntrue; } //检测是否一色四同顺 if(Check1S4TS_HU()) { strcpy(m_GoodInfo.m_GoodName,"一色四同顺"); m_GoodInfo.m_GoodValue = 48; returntrue; } //检测是否一色四节高 if(Check1S4JG_HU()) { strcpy(m_GoodInfo.m_GoodName,"一色四节高"); m_GoodInfo.m_GoodValue = 48; returntrue; } //检测是否一色四步高 if(Check1S4BG_HU()) { strcpy(m_GoodInfo.m_GoodName,"一色四步高"); m_GoodInfo.m_GoodValue = 32; returntrue; } //检测是否三杠 if(Check3Gang_HU()) { strcpy(m_GoodInfo.m_GoodName,"三杠"); m_GoodInfo.m_GoodValue = 32; returntrue; } //检测是否七对 if(Check7D_HU()) { strcpy(m_GoodInfo.m_GoodName,"七对"); m_GoodInfo.m_GoodValue = 24; returntrue; } //检测是否七星不靠 if(Check7XBK_HU()) { strcpy(m_GoodInfo.m_GoodName,"七星不靠"); m_GoodInfo.m_GoodValue = 24; returntrue; } //检测是否全双刻 if(CheckQSK_HU()) { strcpy(m_GoodInfo.m_GoodName,"全双刻"); m_GoodInfo.m_GoodValue = 24; returntrue; } //检测是否清一色 if(CheckQ1S_HU()) { strcpy(m_GoodInfo.m_GoodName,"清一色"); m_GoodInfo.m_GoodValue = 24; returntrue; } //检测是否一色三同顺 if(Check1S3TS_HU()) { strcpy(m_GoodInfo.m_GoodName,"一色三同顺"); m_GoodInfo.m_GoodValue = 24; returntrue; } //检测是否一色三节高 if(Check1S3JG_HU()) { strcpy(m_GoodInfo.m_GoodName,"一色三节高"); m_GoodInfo.m_GoodValue = 24; returntrue; } //检测是否全大 if(CheckQD_HU()) { strcpy(m_GoodInfo.m_GoodName,"全大"); m_GoodInfo.m_GoodValue = 24; returntrue; } //检测是否全中 if(CheckQZ_HU()) { strcpy(m_GoodInfo.m_GoodName,"全中"); m_GoodInfo.m_GoodValue = 24; returntrue; } //检测是否全小 if(CheckQX_HU()) { strcpy(m_GoodInfo.m_GoodName,"全小"); m_GoodInfo.m_GoodValue = 24; returntrue; } //检测是否青龙 if(CheckQL_HU()) { strcpy(m_GoodInfo.m_GoodName,"青龙"); m_GoodInfo.m_GoodValue = 16; returntrue; } //检测是否三色双龙会 if(Check3S2LH_HU()) { strcpy(m_GoodInfo.m_GoodName,"三色双龙会"); m_GoodInfo.m_GoodValue = 16; returntrue; } //检测是否一色三步高 if(Check1S3BG_HU()) { strcpy(m_GoodInfo.m_GoodName,"一色三步高"); m_GoodInfo.m_GoodValue = 16; returntrue; } //检测是否单调将 if(CheckDDJ_HU()) { strcpy(m_GoodInfo.m_GoodName,"单调将"); m_GoodInfo.m_GoodValue = 1; returntrue; } //检测是否平胡 if(CheckHU()) { strcpy(m_GoodInfo.m_GoodName,"平胡"); m_GoodInfo.m_GoodValue = 1; returntrue; } } else{ //判断是否听连宝灯 m_9LBD = Check9LBD_TING(); if(m_9LBD)returntrue; //判断是否听幺 m_13Y = Check13Y_TING(); if(m_13Y)returntrue; //判断是否四暗刻 m_4AK = Check4AK_TING(); if(m_4AK)returntrue; //检测是否听头 returnCheckTING(); } returnfalse; } //检测是否胡牌(张) inlineboolCMJ::CheckAAPai(intiValue1,intiValue2) { if(iValue1 == iValue2)returntrue; returnfalse; } //检测是否三连张 inlineboolCMJ::CheckABCPai(intiValue1,intiValue2,intiValue3) { if(iValue1 == (iValue2-1)&&iValue2 == (iValue3-1))returntrue; returnfalse; } //检测是否三重张 inlineboolCMJ::CheckAAAPai(intiValue1,intiValue2,intiValue3) { if(iValue1 == iValue2&&iValue2 == iValue3)returntrue; returnfalse; } //检测是否四重张 inlineboolCMJ::CheckAAAAPai(intiValue1,intiValue2,intiValue3,intiValue4) { if(iValue1 == iValue2&&iValue2 == iValue3&&iValue3 == iValue4)returntrue; returnfalse; } //检测是否三连对 inlineboolCMJ::CheckAABBCCPai(intiValue1,intiValue2,intiValue3,intiValue4,intiValue5,intiValue6) { if(iValue1 == iValue2&&iValue3 == iValue4&&iValue5 == iValue6) { if((iValue1 == iValue3-1)&&(iValue3 == iValue5-1)) { returntrue; } } returnfalse; } //检测是否三连高压 inlineboolCMJ::CheckAAABBBCCCPai(intiValue1,intiValue2,intiValue3,intiValue4,intiValue5,intiValue6,intiValue7,intiValue8,intiValue9) { if((iValue1 == iValue2&&iValue2 == iValue3)&&(iValue4 == iValue5&&iValue5 == iValue6)&&(iValue7 == iValue8&&iValue8 == iValue9)) { if((iValue1 == iValue4-1)&&(iValue4 == iValue7-1)) { returntrue; } } returnfalse; } //检测是否三连刻 inlineboolCMJ::CheckAAAABBBBCCCCPai(intiValue1,intiValue2,intiValue3,intiValue4,intiValue5,intiValue6,intiValue7,intiValue8,intiValue9,intiValue10,intiValue11,intiValue12) { if((iValue1 == iValue2&&iValue2 == iValue3&&iValue3 == iValue4)&&(iValue5 == iValue6&&iValue6 == iValue7&&iValue7 == iValue8)&&(iValue9 == iValue10&&iValue10 == iValue11&&iValue11 == iValue12)) { if((iValue1 == iValue5-1)&&(iValue5 == iValue9-1)) { returntrue; } } returnfalse; } //检测是否六连对 inlineboolCMJ::CheckAABBCCDDEEFFPai(intiValue1,intiValue2,intiValue3,intiValue4,intiValue5,intiValue6,intiValue7,intiValue8,intiValue9,intiValue10,intiValue11,intiValue12) { if(iValue1 == iValue2&&iValue3 == iValue4&&iValue5 == iValue6&&iValue7 == iValue8&&iValue9 == iValue10&&iValue11 == iValue12) { if((iValue1 == iValue3-1)&&(iValue3 == iValue5-1)&&(iValue5 == iValue7-1)&&(iValue7 == iValue9-1)&&(iValue9 == iValue11-1)) { returntrue; } } returnfalse; } //检测是否胡牌(张) boolCMJ::Check5Pai(intiValue1,intiValue2,intiValue3,intiValue4,intiValue5) { //如果是左边两个为将,右边为三重张或三连张 if(CheckAAPai(iValue1,iValue2)) { if(Check3Pai(iValue3,iValue4,iValue5))returntrue; } //如果中间两个为将 if(CheckAAAPai(iValue2,iValue3,iValue4)) { if(CheckABCPai(iValue1,iValue4,iValue5))returntrue; } //如果是左边两个为将,右边为三重张或三连张 if(CheckAAPai(iValue4,iValue5)) { if(Check3Pai(iValue1,iValue2,iValue3))returntrue; } returnfalse; } //检测是否胡牌(张) boolCMJ::Check8Pai(intiValue1,intiValue2,intiValue3,intiValue4,intiValue5,intiValue6,intiValue7,intiValue8) { //如果是左边两个为将,右边为三重张或三连张 if(CheckAAPai(iValue1,iValue2)) { returnCheck6Pai(iValue3,iValue4,iValue5,iValue6,iValue7,iValue8); } //如果是中间两个为将,左右边为三重张或三连张 if(CheckAAPai(iValue4,iValue5)) { if(Check3Pai(iValue1,iValue2,iValue3)&&Check3Pai(iValue6,iValue7,iValue8))returntrue; } //如果是右边两个为将,左边为三重张或三连张 if(CheckAAPai(iValue7,iValue8)) { returnCheck6Pai(iValue1,iValue2,iValue3,iValue4,iValue5,iValue6); } returnfalse; } //检测是否胡牌(张) boolCMJ::Check11Pai(intiValue1,intiValue2,intiValue3,intiValue4,intiValue5,intiValue6,intiValue7,intiValue8,intiValue9,intiValue10,intiValue11) { //如果是左边两个为将 if(CheckAAPai(iValue1,iValue2)) { returnCheck9Pai(iValue3,iValue4,iValue5,iValue6,iValue7,iValue8,iValue9,iValue10,iValue11); } //如果是中间两个为将 if(CheckAAPai(iValue4,iValue5)) { //无AAA,全ABC if(Check3Pai(iValue1,iValue2,iValue3)&&Check6Pai(iValue4,iValue5,iValue6,iValue7,iValue8,iValue9))returntrue; } //如果是右边两个为将 if(CheckAAPai(iValue7,iValue8)) { //无AAA,全ABC if(Check3Pai(iValue9,iValue10,iValue11)&&Check6Pai(iValue1,iValue2,iValue3,iValue4,iValue5,iValue6))returntrue; } //如果是右边两个为将 if(CheckAAPai(iValue10,iValue11)) { returnCheck9Pai(iValue1,iValue2,iValue3,iValue4,iValue5,iValue6,iValue7,iValue8,iValue9); } returnfalse; } //检测是否胡牌(张) boolCMJ::Check14Pai(intiValue1,intiValue2,intiValue3,intiValue4,intiValue5,intiValue6,intiValue7,intiValue8,intiValue9,intiValue10,intiValue11,intiValue12,intiValue13,intiValue14) { //如果是左边两个为将,右边为三重张或三连张 if(CheckAAPai(iValue1,iValue2)) { //无AAA,全ABC if(Check12Pai(iValue3,iValue4,iValue5,iValue6,iValue7,iValue8,iValue9,iValue10,iValue11,iValue12,iValue13,iValue14))returntrue; returnfalse; } //如果是中间两个为将,左右边为三重张或三连张 if(CheckAAPai(iValue4,iValue5)) { //无AAA,全ABC if(Check3Pai(iValue1,iValue2,iValue3)&&Check9Pai(iValue6,iValue7,iValue8,iValue9,iValue10,iValue11,iValue12,iValue13,iValue14))returntrue; returnfalse; } //如果是中间两个为将,左右边为三重张或三连张 if(CheckAAPai(iValue7,iValue8)) { //无AAA,全ABC if(Check6Pai(iValue1,iValue2,iValue3,iValue4,iValue5,iValue6)&&Check6Pai(iValue9,iValue10,iValue11,iValue12,iValue13,iValue14))returntrue; returnfalse; } //如果是中间两个为将,左右边为三重张或三连张 if(CheckAAPai(iValue10,iValue11)) { //无AAA,全ABC if(Check3Pai(iValue12,iValue13,iValue14)&&Check9Pai(iValue1,iValue2,iValue3,iValue4,iValue5,iValue6,iValue7,iValue8,iValue9))returntrue; returnfalse; } //如果是右边两个为将,左右边为三重张或三连张 if(CheckAAPai(iValue13,iValue14)) { //无AAA,全ABC if(Check12Pai(iValue1,iValue2,iValue3,iValue4,iValue5,iValue6,iValue7,iValue8,iValue9,iValue10,iValue11,iValue12))returntrue; } returnfalse; } //检测是否胡牌(张) boolCMJ::Check3Pai(intiValue1,intiValue2,intiValue3) { if(CheckABCPai(iValue1,iValue2,iValue3))returntrue; if(CheckAAAPai(iValue1,iValue2,iValue3))returntrue; returnfalse; } //检测是否胡牌(张) boolCMJ::Check6Pai(intiValue1,intiValue2,intiValue3,intiValue4,intiValue5,intiValue6) { if(Check3Pai(iValue1,iValue2,iValue3)&&Check3Pai(iValue4,iValue5,iValue6))returntrue; if(Check3Pai(iValue1,iValue2,iValue3)&&Check3Pai(iValue4,iValue5,iValue6))returntrue; //三连对 if(CheckAABBCCPai(iValue1,iValue2,iValue3,iValue4,iValue5,iValue6))returntrue; //第一张牌四连张 if(CheckAAAAPai(iValue2,iValue3,iValue4,iValue5)) { if(CheckABCPai(iValue1,iValue2,iValue6))returntrue; } returnfalse; } //检测是否胡牌(张) boolCMJ::Check9Pai(intiValue1,intiValue2,intiValue3,intiValue4,intiValue5,intiValue6,intiValue7,intiValue8,intiValue9) { if(CheckABCPai(iValue1,iValue2,iValue3)&&Check6Pai(iValue4,iValue5,iValue6,iValue7,iValue8,iValue9))returntrue; if(CheckAAAPai(iValue1,iValue2,iValue3)&&Check6Pai(iValue4,iValue5,iValue6,iValue7,iValue8,iValue9))returntrue; if(CheckABCPai(iValue7,iValue8,iValue9)&&Check6Pai(iValue1,iValue2,iValue3,iValue4,iValue5,iValue6))returntrue; if(CheckAAAPai(iValue7,iValue8,iValue9)&&Check6Pai(iValue1,iValue2,iValue3,iValue4,iValue5,iValue6))returntrue; returnfalse; } //检测是否胡牌(张) boolCMJ::Check12Pai(intiValue1,intiValue2,intiValue3,intiValue4,intiValue5,intiValue6,intiValue7,intiValue8,intiValue9,intiValue10,intiValue11,intiValue12) { if(CheckABCPai(iValue1,iValue2,iValue3)&&Check9Pai(iValue4,iValue5,iValue6,iValue7,iValue8,iValue9,iValue10,iValue11,iValue12))returntrue; if(CheckAAAPai(iValue1,iValue2,iValue3)&&Check9Pai(iValue4,iValue5,iValue6,iValue7,iValue8,iValue9,iValue10,iValue11,iValue12))returntrue; if(CheckABCPai(iValue10,iValue11,iValue12)&&Check9Pai(iValue1,iValue2,iValue3,iValue4,iValue5,iValue6,iValue7,iValue8,iValue9))returntrue; if(CheckAAAPai(iValue10,iValue11,iValue12)&&Check9Pai(iValue1,iValue2,iValue3,iValue4,iValue5,iValue6,iValue7,iValue8,iValue9))returntrue; if(Check6Pai(iValue1,iValue2,iValue3,iValue4,iValue5,iValue6)&&Check6Pai(iValue7,iValue8,iValue9,iValue10,iValue11,iValue12))returntrue; returnfalse; } //检测是否是大四喜 boolCMJ::CheckD4X_HU() { //东西南北四杠 if(m_GangPAIVec[1].size()==16) { //将牌 for(inti = 0 ; i < 6 ; i++ ) { if(m_MyPAIVec[i].size()==2) { //如果是将 if(m_MyPAIVec[i][0] == m_MyPAIVec[i][1]) { returntrue; } } } } returnfalse; } //检则是否是大三元 boolCMJ::CheckD3Y_HU() { //中发白三杠 if(m_GangPAIVec[0].size()==12) { //将牌 for(inti = 0 ; i < 6 ; i++ ) { if(m_MyPAIVec[i].size()==2) { //如果是将 if(m_MyPAIVec[i][0] == m_MyPAIVec[i][1]) { returntrue; } } } } returnfalse; } //检测是否绿一色 boolCMJ::CheckL1S_HU() { //只准有发财和条 if(m_MyPAIVec[1].size()>0)returnfalse; if(m_MyPAIVec[2].size()>0)returnfalse; if(m_MyPAIVec[4].size()>0)returnfalse; if(m_MyPAIVec[5].size()>0)returnfalse; if(m_ChiPAIVec[1].size()>0)returnfalse; if(m_ChiPAIVec[2].size()>0)returnfalse; if(m_ChiPAIVec[4].size()>0)returnfalse; if(m_ChiPAIVec[5].size()>0)returnfalse; if(m_PengPAIVec[1].size()>0)returnfalse; if(m_PengPAIVec[2].size()>0)returnfalse; if(m_PengPAIVec[4].size()>0)returnfalse; if(m_PengPAIVec[5].size()>0)returnfalse; if(m_GangPAIVec[1].size()>0)returnfalse; if(m_GangPAIVec[2].size()>0)returnfalse; if(m_GangPAIVec[4].size()>0)returnfalse; if(m_GangPAIVec[5].size()>0)returnfalse; //对发财 if(m_MyPAIVec[0].size() ==2) { if(m_MyPAIVec[0][0]==2&&m_MyPAIVec[0][1]==2) { for(inti = 1 ;i < 6 ; i++) { if(i==3)continue; if(m_MyPAIVec[i].size()>0)returnfalse; if(m_ChiPAIVec[i].size()>0)returnfalse; if(m_PengPAIVec[i].size()>0)returnfalse; if(m_GangPAIVec[i].size()>0)returnfalse; } //吃 intiSize = m_ChiPAIVec[3].size(); if(iSize>0) { vector< int>::iterator Iter; for(Iter = m_ChiPAIVec[3].begin();Iter != m_ChiPAIVec[3].end();Iter++ ) { if((*Iter)==1)returnfalse; if((*Iter)==5)returnfalse; if((*Iter)==7)returnfalse; if((*Iter)==9)returnfalse; } } //碰 iSize = m_PengPAIVec[3].size(); if(iSize>0) { vector< int>::iterator Iter; for(Iter = m_PengPAIVec[3].begin();Iter != m_PengPAIVec[3].end();Iter++ ) { if((*Iter)==1)returnfalse; if((*Iter)==5)returnfalse; if((*Iter)==7)returnfalse; if((*Iter)==9)returnfalse; } } //杠 iSize = m_GangPAIVec[3].size(); if(iSize>0) { vector< int>::iterator Iter; for(Iter = m_GangPAIVec[3].begin();Iter != m_GangPAIVec[3].end();Iter++ ) { if((*Iter)==1)returnfalse; if((*Iter)==5)returnfalse; if((*Iter)==7)returnfalse; if((*Iter)==9)returnfalse; } } //起 iSize = m_MyPAIVec[3].size(); if(iSize>0) { vector< int>::iterator Iter; for(Iter = m_MyPAIVec[3].begin();Iter != m_MyPAIVec[3].end();Iter++ ) { if((*Iter)==1)returnfalse; if((*Iter)==5)returnfalse; if((*Iter)==7)returnfalse; if((*Iter)==9)returnfalse; } } } } else{ returnfalse; } //如果有三张 if(m_MyPAIVec[3].size() == 3) { if(Check3Pai(m_MyPAIVec[3][0],m_MyPAIVec[3][1],m_MyPAIVec[3][2]))returntrue; } //如果有六张 if(m_MyPAIVec[3].size() == 6) { if(Check6Pai(m_MyPAIVec[3][0],m_MyPAIVec[3][1],m_MyPAIVec[3][2],m_MyPAIVec[3][3],m_MyPAIVec[3][4],m_MyPAIVec[3][5]))returntrue; } //九张 if(m_MyPAIVec[3].size() == 9) { if(Check9Pai(m_MyPAIVec[3][0],m_MyPAIVec[3][1],m_MyPAIVec[3][2],m_MyPAIVec[3][3],m_MyPAIVec[3][4],m_MyPAIVec[3][5],m_MyPAIVec[3][6],m_MyPAIVec[3][7],m_MyPAIVec[3][8]))returntrue; } //十二张 if(m_MyPAIVec[3].size() == 12) { if(Check12Pai(m_MyPAIVec[3][0],m_MyPAIVec[3][1],m_MyPAIVec[3][2],m_MyPAIVec[3][3],m_MyPAIVec[3][4],m_MyPAIVec[3][5],m_MyPAIVec[3][6],m_MyPAIVec[3][7],m_MyPAIVec[3][8],m_MyPAIVec[3][9],m_MyPAIVec[3][10],m_MyPAIVec[3][11]))returntrue; } returnfalse; } //检测是否九莲宝灯(胡) boolCMJ::Check9LBD_HU() { if(m_9LBD)//如果已经成九连宝灯牌型 { if(m_MyPAIVec[2].size()==14)returntrue; if(m_MyPAIVec[3].size()==14)returntrue; if(m_MyPAIVec[4].size()==14)returntrue; } returnfalse; } //检测是否九莲宝灯牌型(听) boolCMJ::Check9LBD_TING() { for(UINTi = 2 ; i < 5 ; i++ ) { if(m_MyPAIVec[i].size()==13) { if(m_MyPAIVec[i][0]==1&&m_MyPAIVec[i][1]==1&&m_MyPAIVec[i][2]==1) { if(m_MyPAIVec[i][3]==2&&m_MyPAIVec[i][4]==3&&m_MyPAIVec[i][5]==4&&m_MyPAIVec[i][6]==5&&m_MyPAIVec[i][7]==6&&m_MyPAIVec[i][8]==7&&m_MyPAIVec[i][9]==8) { if(m_MyPAIVec[i][10]==9&&m_MyPAIVec[i][11]==9&&m_MyPAIVec[i][12]==9) { returntrue; } } } } } returnfalse; } //检测是否是四杠 boolCMJ::Check4Gang_HU() { intiSize = 0; for(UINTi = 0 ; i < 6 ; i++ ) { iSize = m_GangPAIVec[i].size(); } if(iSize == 16) { //将牌 for(inti = 0 ; i < 6 ; i++ ) { //如果是将 if(CheckAAPai(m_MyPAIVec[i][0],m_MyPAIVec[i][1])) { returntrue; } } } returnfalse; } //检测是否连七对 boolCMJ::CheckL7D_HU() { for(UINTi = 2 ; i < 5 ; i++ ) { if(m_MyPAIVec[i].size()==14) { if(m_MyPAIVec[i][0]==1&&m_MyPAIVec[i][1]==1&&m_MyPAIVec[i][2]==2&&m_MyPAIVec[i][3]==2&&m_MyPAIVec[i][4]==3&&m_MyPAIVec[i][5]==3&&m_MyPAIVec[i][6]==4&&m_MyPAIVec[i][7]==4&&m_MyPAIVec[i][8]==5&&m_MyPAIVec[i][9]==5&&m_MyPAIVec[i][10]==6&&m_MyPAIVec[i][11]==6&&m_MyPAIVec[i][12]==7&&m_MyPAIVec[i][13]==7) { returntrue; } if(m_MyPAIVec[i][0]==2&&m_MyPAIVec[i][1]==2&&m_MyPAIVec[i][2]==3&&m_MyPAIVec[i][3]==3&&m_MyPAIVec[i][4]==4&&m_MyPAIVec[i][5]==4&&m_MyPAIVec[i][6]==5&&m_MyPAIVec[i][7]==5&&m_MyPAIVec[i][8]==6&&m_MyPAIVec[i][9]==6&&m_MyPAIVec[i][10]==7&&m_MyPAIVec[i][11]==7&&m_MyPAIVec[i][12]==8&&m_MyPAIVec[i][13]==8) { returntrue; } if(m_MyPAIVec[i][0]==3&&m_MyPAIVec[i][1]==3&&m_MyPAIVec[i][2]==4&&m_MyPAIVec[i][3]==4&&m_MyPAIVec[i][4]==5&&m_MyPAIVec[i][5]==5&&m_MyPAIVec[i][6]==6&&m_MyPAIVec[i][7]==6&&m_MyPAIVec[i][8]==7&&m_MyPAIVec[i][9]==7&&m_MyPAIVec[i][10]==8&&m_MyPAIVec[i][11]==8&&m_MyPAIVec[i][12]==9&&m_MyPAIVec[i][13]==9) { returntrue; } } } returnfalse; } //检测是否胡十三幺 boolCMJ::Chekc13Y_HU() { if(m_13Y) { booli13YSize[13] ; for(UINTi = 0 ; i < 13 ; i++ ) { i13YSize[i]=false; } //中发白 vector<int>::iterator Iter; for(Iter = m_MyPAIVec[0].begin();Iter != m_MyPAIVec[0].end(); Iter++ ) { if((*Iter)==1) { i13YSize[0]=true; } if((*Iter)==2) { i13YSize[1]=true; } if((*Iter)==3) { i13YSize[2]=true; } } //东南西北风 for(Iter = m_MyPAIVec[1].begin();Iter != m_MyPAIVec[1].end(); Iter++ ) { if((*Iter)==1) { i13YSize[3]=true; } if((*Iter)==2) { i13YSize[4]=true; } if((*Iter)==3) { i13YSize[5]=true; } if((*Iter)==4) { i13YSize[6]=true; } } //一九万 for(Iter = m_MyPAIVec[2].begin();Iter != m_MyPAIVec[2].end(); Iter++ ) { if((*Iter)==1) { i13YSize[7]=true; } if((*Iter)==9) { i13YSize[8]=true; } } //一九条 for(Iter = m_MyPAIVec[3].begin();Iter != m_MyPAIVec[3].end(); Iter++ ) { if((*Iter)==1) { i13YSize[9]=true; } if((*Iter)==9) { i13YSize[10]=true; } } //一九饼 for(Iter = m_MyPAIVec[4].begin();Iter != m_MyPAIVec[4].end(); Iter++ ) { if((*Iter)==1) { i13YSize[11]=true; } if((*Iter)==9) { i13YSize[12]=true; } } inticount = 0; for(UINTi = 0 ; i < 13 ; i++ ) { if(i13YSize[i]==true) { icount++; } } if(icount == 13)returntrue; } returnfalse; } //检测是否清幺九 boolCMJ::CheckQY9_HU() { intiSize = 0; intiCount = 0; for(UINTi = 2 ; i < 5 ; i++ ) { iSize = m_GangPAIVec[i].size(); iCount += iSize; for(UINTj = 0 ; j < iSize ; j++ ) { if(m_GangPAIVec[i][j]!=1||m_GangPAIVec[i][j]!=9)returnfalse; } } if(iCount == 12) { if(m_MyPAIVec[2].size()==2) { if(m_MyPAIVec[2][0]==1&&m_MyPAIVec[2][1]==1)returntrue; if(m_MyPAIVec[2][0]==9&&m_MyPAIVec[2][1]==9)returntrue; } if(m_MyPAIVec[3].size()==3) { if(m_MyPAIVec[3][0]==1&&m_MyPAIVec[3][1]==1)returntrue; if(m_MyPAIVec[3][0]==9&&m_MyPAIVec[3][1]==9)returntrue; } if(m_MyPAIVec[4].size()==4) { if(m_MyPAIVec[4][0]==1&&m_MyPAIVec[4][1]==1)returntrue; if(m_MyPAIVec[4][0]==9&&m_MyPAIVec[4][1]==9)returntrue; } } returnfalse; } //检测是否胡小四喜 boolCMJ::CheckX4X_HU() { //东西南北四杠 if(m_GangPAIVec[1].size()==12) { //将牌的位置 intiJiangPos = -1; //将牌 for(inti = 0 ; i < 6 ; i++ ) { if(m_MyPAIVec[i].size()==5) { if(Check5Pai(m_MyPAIVec[i][0],m_MyPAIVec[i][1],m_MyPAIVec[i][2],m_MyPAIVec[i][3],m_MyPAIVec[i][4])) { returntrue; } } if(m_MyPAIVec[i].size()==2) { //如果是将 if(CheckAAPai(m_MyPAIVec[i][0],m_MyPAIVec[i][1])) { iJiangPos = i; break; } } } // if(iJiangPos>0) { for(inti = 0 ; i < 6 ; i++ ) { if(i!=iJiangPos) { if((m_MyPAIVec[i].size()==3)) { if(Check3Pai(m_MyPAIVec[i][0],m_MyPAIVec[i][1],m_MyPAIVec[i][2]))returntrue; } } } } } returnfalse; } //检测是否胡小三元 boolCMJ::CheckX3Y_HU() { //东西南北四杠 if(m_GangPAIVec[0].size()==8) { if(m_MyPAIVec[0].size()==5) { if(Check5Pai(m_MyPAIVec[0][0],m_MyPAIVec[0][1],m_MyPAIVec[0][2],m_MyPAIVec[0][3],m_MyPAIVec[0][4])) { returntrue; } else{ returnfalse; } } elseif(m_MyPAIVec[0].size()==2) { //如果是将 if(CheckAAPai(m_MyPAIVec[0][0],m_MyPAIVec[0][1])==false) { returnfalse; } } else{ returnfalse; } returnCheckHU(); } returnfalse; } //检测是否胡字一色 boolCMJ::CheckZ1S_HU() { //只准有字 if(m_MyPAIVec[2].size()>0)returnfalse; if(m_MyPAIVec[3].size()>0)returnfalse; if(m_MyPAIVec[4].size()>0)returnfalse; if(m_MyPAIVec[5].size()>0)returnfalse; if(m_ChiPAIVec[2].size()>0)returnfalse; if(m_ChiPAIVec[3].size()>0)returnfalse; if(m_ChiPAIVec[4].size()>0)returnfalse; if(m_ChiPAIVec[5].size()>0)returnfalse; if(m_PengPAIVec[2].size()>0)returnfalse; if(m_PengPAIVec[3].size()>0)returnfalse; if(m_PengPAIVec[4].size()>0)returnfalse; if(m_PengPAIVec[5].size()>0)returnfalse; if(m_GangPAIVec[2].size()>0)returnfalse; if(m_GangPAIVec[3].size()>0)returnfalse; if(m_GangPAIVec[4].size()>0)returnfalse; if(m_GangPAIVec[5].size()>0)returnfalse; intiSize = m_MyPAIVec[0].size(); if(iSize > 0) { if(iSize == 2) { if(m_MyPAIVec[0][0]==m_MyPAIVec[0][1]) { iSize = m_MyPAIVec[1].size(); if(iSize == 0)returntrue; if(iSize == 3) { if(CheckAAAPai(m_MyPAIVec[1][0],m_MyPAIVec[1][1],m_MyPAIVec[1][2]))returntrue; } } } } returnfalse; } //检测是否四暗刻 boolCMJ::Check4AK_HU() { if(m_4AK) { //将牌 for(inti = 0 ; i < 6 ; i++ ) { if(m_MyPAIVec[i].size()==2) { //如果是将 if(m_MyPAIVec[i][0] == m_MyPAIVec[i][1]) { returntrue; } } } } returnfalse; } //检测是否一色双龙会 boolCMJ::Check1S2LH_HU() { //万,条,饼 for(UINTi = 0 ; i <= 4; i++ ) { intiType = i; if(m_MyPAIVec[iType].size()==14) { if(m_MyPAIVec[iType][0]==1&&m_MyPAIVec[iType][1]==1) { } else{ returnfalse; } if(m_MyPAIVec[iType][2]==2&&m_MyPAIVec[iType][3]==2) { } else{ returnfalse; } if(m_MyPAIVec[iType][4]==3&&m_MyPAIVec[iType][5]==3) { } else{ returnfalse; } if(m_MyPAIVec[iType][6]==5&&m_MyPAIVec[iType][7]==5) { } else{ returnfalse; } if(m_MyPAIVec[iType][8]==7&&m_MyPAIVec[iType][9]==7) { } else{ returnfalse; } if(m_MyPAIVec[iType][10]==8&&m_MyPAIVec[iType][11]==8) { } else{ returnfalse; } if(m_MyPAIVec[iType][12]==9&&m_MyPAIVec[iType][13]==9) { } else{ returnfalse; } returntrue; } } returnfalse; } //检测是否一色四同顺 boolCMJ::Check1S4TS_HU() { //万,条,饼 for(UINTi = 0 ; i <= 4; i++ ) { intiType = i; //吃过的顺 intiSize1 = m_ChiPAIVec[iType].size(); //剩余牌墙中的顺 intiSize2 = m_MyPAIVec[iType].size(); //万 if(iSize1 + iSize2 >= 12) { //无吃的顺 if(iSize1==0) { if(iSize2==12) { //三连暗杠成顺 if(CheckAAAABBBBCCCCPai(m_MyPAIVec[iType][0],m_MyPAIVec[iType][1],m_MyPAIVec[iType][2],m_MyPAIVec[iType][3],m_MyPAIVec[iType][4],m_MyPAIVec[iType][5],m_MyPAIVec[iType][6],m_MyPAIVec[iType][7],m_MyPAIVec[iType][8],m_MyPAIVec[iType][9],m_MyPAIVec[iType][10],m_MyPAIVec[iType][11]))returnCheckHU(); returnfalse; } if(iSize2==14) { //三连暗杠成顺 if((m_MyPAIVec[iType][12]==(m_MyPAIVec[iType][13]))&&CheckAAAABBBBCCCCPai(m_MyPAIVec[iType][0],m_MyPAIVec[iType][1],m_MyPAIVec[iType][2],m_MyPAIVec[iType][3],m_MyPAIVec[iType][4],m_MyPAIVec[iType][5],m_MyPAIVec[iType][6],m_MyPAIVec[iType][7],m_MyPAIVec[iType][8],m_MyPAIVec[iType][9],m_MyPAIVec[iType][10],m_MyPAIVec[iType][11]))returntrue; //三连暗杠成顺 if((m_MyPAIVec[iType][0]==(m_MyPAIVec[iType][1]))&&CheckAAAABBBBCCCCPai(m_MyPAIVec[iType][2],m_MyPAIVec[iType][3],m_MyPAIVec[iType][4],m_MyPAIVec[iType][5],m_MyPAIVec[iType][6],m_MyPAIVec[iType][7],m_MyPAIVec[iType][8],m_MyPAIVec[iType][9],m_MyPAIVec[iType][10],m_MyPAIVec[iType][11],m_MyPAIVec[iType][12],m_MyPAIVec[iType][13]))returntrue; returnfalse; } } //吃到一个顺 if(iSize1==3) { if(iSize2==9) { //三连高压 if(CheckAAABBBCCCPai(m_MyPAIVec[iType][0],m_MyPAIVec[iType][1],m_MyPAIVec[iType][2],m_MyPAIVec[iType][3],m_MyPAIVec[iType][4],m_MyPAIVec[iType][5],m_MyPAIVec[iType][6],m_MyPAIVec[iType][7],m_MyPAIVec[iType][8])) { if(m_ChiPAIVec[iType][0]==m_MyPAIVec[iType][0]&&m_ChiPAIVec[iType][1]==m_MyPAIVec[iType][3]&&m_ChiPAIVec[iType][2]==m_MyPAIVec[iType][6]) { returnCheckHU(); } } returnfalse; } if(iSize2==11) { //三连高压 if(CheckAAABBBCCCPai(m_MyPAIVec[iType][0],m_MyPAIVec[iType][1],m_MyPAIVec[iType][2],m_MyPAIVec[iType][3],m_MyPAIVec[iType][4],m_MyPAIVec[iType][5],m_MyPAIVec[iType][6],m_MyPAIVec[iType][7],m_MyPAIVec[iType][8])) { if(m_MyPAIVec[iType][9]==m_MyPAIVec[iType][10]&&m_ChiPAIVec[iType][0]==m_MyPAIVec[iType][0]&&m_ChiPAIVec[iType][1]==m_MyPAIVec[iType][3]&&m_ChiPAIVec[iType][2]==m_MyPAIVec[iType][6]) { returntrue; } } //三连高压 if(CheckAAABBBCCCPai(m_MyPAIVec[iType][2],m_MyPAIVec[iType][3],m_MyPAIVec[iType][4],m_MyPAIVec[iType][5],m_MyPAIVec[iType][6],m_MyPAIVec[iType][7],m_MyPAIVec[iType][8],m_MyPAIVec[iType][9],m_MyPAIVec[iType][10])) { if(m_MyPAIVec[iType][0]==m_MyPAIVec[iType][1]&&m_ChiPAIVec[iType][0]==m_MyPAIVec[iType][2]&&m_ChiPAIVec[iType][1]==m_MyPAIVec[iType][5]&&m_ChiPAIVec[iType][2]==m_MyPAIVec[iType][8]) { returntrue; } } returnfalse; } } //吃到二个顺 if(iSize1==6) { if(iSize2==6) { //三连对 if(CheckAABBCCPai(m_MyPAIVec[iType][0],m_MyPAIVec[iType][1],m_MyPAIVec[iType][2],m_MyPAIVec[iType][3],m_MyPAIVec[iType][4],m_MyPAIVec[iType][5])) { if(m_ChiPAIVec[iType][0]==m_MyPAIVec[iType][0]&&m_ChiPAIVec[iType][1]==m_MyPAIVec[iType][2]&&m_ChiPAIVec[iType][2]==m_MyPAIVec[iType][4]) { if(m_ChiPAIVec[iType][3]==m_MyPAIVec[iType][0]&&m_ChiPAIVec[iType][4]==m_MyPAIVec[iType][2]&&m_ChiPAIVec[iType][5]==m_MyPAIVec[iType][4]) { returnCheckHU(); } } } returnfalse; } if(iSize2==8) { //三连对 if(CheckAABBCCPai(m_MyPAIVec[iType][0],m_MyPAIVec[iType][1],m_MyPAIVec[iType][2],m_MyPAIVec[iType][3],m_MyPAIVec[iType][4],m_MyPAIVec[iType][5])) { if(m_MyPAIVec[iType][6]==m_MyPAIVec[iType][7]&&m_ChiPAIVec[iType][0]==m_MyPAIVec[iType][0]&&m_ChiPAIVec[iType][1]==m_MyPAIVec[iType][2]&&m_ChiPAIVec[iType][2]==m_MyPAIVec[iType][4]) { if(m_ChiPAIVec[iType][3]==m_MyPAIVec[iType][0]&&m_ChiPAIVec[iType][4]==m_MyPAIVec[iType][2]&&m_ChiPAIVec[iType][5]==m_MyPAIVec[iType][4]) { returntrue; } } } //三连对 if(CheckAABBCCPai(m_MyPAIVec[iType][2],m_MyPAIVec[iType][3],m_MyPAIVec[iType][4],m_MyPAIVec[iType][5],m_MyPAIVec[iType][6],m_MyPAIVec[iType][7])) { if(m_MyPAIVec[iType][0]==m_MyPAIVec[iType][1]&&m_ChiPAIVec[iType][0]==m_MyPAIVec[iType][2]&&m_ChiPAIVec[iType][1]==m_MyPAIVec[iType][4]&&m_ChiPAIVec[iType][2]==m_MyPAIVec[iType][6]) { if(m_ChiPAIVec[iType][3]==m_MyPAIVec[iType][2]&&m_ChiPAIVec[iType][4]==m_MyPAIVec[iType][4]&&m_ChiPAIVec[iType][5]==m_MyPAIVec[iType][6]) { returntrue; } } } returnfalse; } } //吃到三个顺 if(iSize1==9) { if(iSize2==3) { //顺子 if(CheckABCPai(m_MyPAIVec[iType][0],m_MyPAIVec[iType][1],m_MyPAIVec[iType][2])) { if(m_ChiPAIVec[iType][0]==m_MyPAIVec[iType][0]&&m_ChiPAIVec[iType][1]==m_MyPAIVec[iType][1]&&m_ChiPAIVec[iType][2]==m_MyPAIVec[iType][2]) { if(m_ChiPAIVec[iType][3]==m_MyPAIVec[iType][0]&&m_ChiPAIVec[iType][4]==m_MyPAIVec[iType][1]&&m_ChiPAIVec[iType][5]==m_MyPAIVec[iType][2]) { if(m_ChiPAIVec[iType][6]==m_MyPAIVec[iType][0]&&m_ChiPAIVec[iType][7]==m_MyPAIVec[iType][1]&&m_ChiPAIVec[iType][8]==m_MyPAIVec[iType][2]) { returnCheckHU(); } } } } returnfalse; } if(iSize2==5) { //顺子 if(CheckABCPai(m_MyPAIVec[iType][0],m_MyPAIVec[iType][1],m_MyPAIVec[iType][2])) { if(m_MyPAIVec[iType][3]==m_MyPAIVec[iType][4]&&m_ChiPAIVec[iType][0]==m_MyPAIVec[iType][0]&&m_ChiPAIVec[iType][1]==m_MyPAIVec[iType][1]&&m_ChiPAIVec[iType][2]==m_MyPAIVec[iType][2]) { if(m_ChiPAIVec[iType][3]==m_MyPAIVec[iType][0]&&m_ChiPAIVec[iType][4]==m_MyPAIVec[iType][1]&&m_ChiPAIVec[iType][5]==m_MyPAIVec[iType][2]) { if(m_ChiPAIVec[iType][6]==m_MyPAIVec[iType][0]&&m_ChiPAIVec[iType][7]==m_MyPAIVec[iType][1]&&m_ChiPAIVec[iType][8]==m_MyPAIVec[iType][2]) { returntrue; } } } } //顺子 if(CheckABCPai(m_MyPAIVec[iType][2],m_MyPAIVec[iType][3],m_MyPAIVec[iType][4])) { if(m_MyPAIVec[iType][0]==m_MyPAIVec[iType][1]&&m_ChiPAIVec[iType][0]==m_MyPAIVec[iType][2]&&m_ChiPAIVec[iType][1]==m_MyPAIVec[iType][3]&&m_ChiPAIVec[iType][2]==m_MyPAIVec[iType][4]) { if(m_ChiPAIVec[iType][3]==m_MyPAIVec[iType][2]&&m_ChiPAIVec[iType][4]==m_MyPAIVec[iType][3]&&m_ChiPAIVec[iType][5]==m_MyPAIVec[iType][4]) { if(m_ChiPAIVec[iType][6]==m_MyPAIVec[iType][2]&&m_ChiPAIVec[iType][7]==m_MyPAIVec[iType][3]&&m_ChiPAIVec[iType][8]==m_MyPAIVec[iType][4]) { returntrue; } } } } returnfalse; } } //吃到三连顺 if(iSize1==12) { if((m_ChiPAIVec[iType][0]==m_ChiPAIVec[iType][3])&&(m_ChiPAIVec[iType][3]==m_ChiPAIVec[iType][6])&&(m_ChiPAIVec[iType][6]==m_ChiPAIVec[iType][9])) { returnCheckHU(); } returnfalse; } } } returnfalse; } //检测是否一色四节高 boolCMJ::Check1S4JG_HU() { //万,条,饼 for(UINTi = 2 ; i <= 4 ; i++) { intiType = i; if(m_GangPAIVec[iType].size()==16) { if((m_GangPAIVec[iType][0]==m_GangPAIVec[iType][4]-1)&&(m_GangPAIVec[iType][4]==m_GangPAIVec[iType][8]-1)&&(m_GangPAIVec[iType][8]==m_GangPAIVec[iType][12]-1)) { returnCheckHU(); } } } returnfalse; } //检测是否一色四步高 boolCMJ::Check1S4BG_HU() { /*//万 if(m_GangPAIVec[2].size()==16) { if((m_GangPAIVec[2][0]==m_GangPAIVec[2][4]-1)&&(m_GangPAIVec[2][4]==m_GangPAIVec[2][8]-1)&&(m_GangPAIVec[2][8]==m_GangPAIVec[2][12]-1)) { return CheckHU(); } }*/returnfalse; } //检测是否三杠 boolCMJ::Check3Gang_HU() { intiSize = 0; for(UINTi = 0 ; i < 6 ; i++ ) { iSize = m_GangPAIVec[i].size(); } if(iSize == 12) { //将牌 returnCheckHU(); } returnfalse; } //检测是否混幺九 boolCMJ::CheckHY9_HU() { returnfalse; } //检测是否七对 boolCMJ::Check7D_HU() { intiDoubleNum = 0 ; for(UINTi = 0 ; i < 6 ; i++ ) { UINTiSize = m_MyPAIVec[i].size(); if(iSize%2 ==1||iSize==0)returnfalse;//如果是奇数肯定不是对 for(UINTj = 0 ; j < iSize-1 ; j++) { if(m_MyPAIVec[i][j]==m_MyPAIVec[i][j+1]) { iDoubleNum++; j++; } } } if(iDoubleNum==7)returntrue; returnfalse; } //检测是否七星不靠 boolCMJ::Check7XBK_HU() { boolbIs7XBK[14] ; for(UINTi = 0 ; i < 14 ; i++ ) { bIs7XBK[i]=false; } //中发白 vector<int>::iterator Iter; if(m_MyPAIVec[0].size()!=3)returnfalse; for(Iter = m_MyPAIVec[0].begin();Iter != m_MyPAIVec[0].end(); Iter++ ) { if((*Iter)==1) { bIs7XBK[7]=true; } if((*Iter)==2) { bIs7XBK[8]=true; } if((*Iter)==3) { bIs7XBK[9]=true; } } //东南西北风 if(m_MyPAIVec[1].size()!=4)returnfalse; for(Iter = m_MyPAIVec[1].begin();Iter != m_MyPAIVec[1].end(); Iter++ ) { if((*Iter)==1) { bIs7XBK[10]=true; } if((*Iter)==2) { bIs7XBK[11]=true; } if((*Iter)==3) { bIs7XBK[12]=true; } if((*Iter)==4) { bIs7XBK[13]=true; } } //万,条,饼 for(UINTi = 2 ; i <= 4 ; i++) { if(m_MyPAIVec[i].size()==3) { if(m_MyPAIVec[i][0]==1&&m_MyPAIVec[i][1]==4&&m_MyPAIVec[i][2]==7) { bIs7XBK[0]=true; bIs7XBK[3]=true; bIs7XBK[6]=true; } } elseif(m_MyPAIVec[2].size()==2) { if(m_MyPAIVec[i][0]==2&&m_MyPAIVec[i][1]==5) { bIs7XBK[1]=true; bIs7XBK[4]=true; } elseif(m_MyPAIVec[i][0]==3&&m_MyPAIVec[i][1]==6) { bIs7XBK[2]=true; bIs7XBK[5]=true; } } else{ returnfalse; } } boolt_Result = true; for(UINTi = 0 ; i < 14 ; i++ ) { if(bIs7XBK[i]==false)t_Result=false; } if(t_Result)returntrue; for(UINTi = 2 ; i <= 4 ; i++) { if(m_MyPAIVec[i].size()==3) { if(m_MyPAIVec[i][0]==2&&m_MyPAIVec[i][1]==5&&m_MyPAIVec[i][2]==8) { bIs7XBK[0]=true; bIs7XBK[3]=true; bIs7XBK[6]=true; } } elseif(m_MyPAIVec[2].size()==2) { if(m_MyPAIVec[i][0]==3&&m_MyPAIVec[i][1]==6) { bIs7XBK[1]=true; bIs7XBK[4]=true; } elseif(m_MyPAIVec[i][0]==4&&m_MyPAIVec[i][1]==7) { bIs7XBK[2]=true; bIs7XBK[5]=true; } } else{ returnfalse; } } t_Result = true; for(UINTi = 0 ; i < 14 ; i++ ) { if(bIs7XBK[i]==false)t_Result=false; } if(t_Result)returntrue; for(UINTi = 2 ; i <= 4 ; i++) { if(m_MyPAIVec[i].size()==3) { if(m_MyPAIVec[i][0]==3&&m_MyPAIVec[i][1]==6&&m_MyPAIVec[i][2]==9) { bIs7XBK[0]=true; bIs7XBK[3]=true; bIs7XBK[6]=true; } } elseif(m_MyPAIVec[2].size()==2) { if(m_MyPAIVec[i][0]==4&&m_MyPAIVec[i][1]==7) { bIs7XBK[1]=true; bIs7XBK[4]=true; } elseif(m_MyPAIVec[i][0]==5&&m_MyPAIVec[i][1]==8) { bIs7XBK[2]=true; bIs7XBK[5]=true; } } else{ returnfalse; } } t_Result = true; for(UINTi = 0 ; i < 14 ; i++ ) { if(bIs7XBK[i]==false)t_Result=false; } if(t_Result)returntrue; returnfalse; } //检测是否全双刻 boolCMJ::CheckQSK_HU() { //万,条,饼 for(UINTi = 2 ; i <= 4 ; i++) { intiType = i; if(m_GangPAIVec[iType].size()==16) { if(m_GangPAIVec[iType][0]==2&&m_GangPAIVec[iType][4]==4&&m_GangPAIVec[iType][8]==6&&m_GangPAIVec[iType][12]==8) { returnCheckHU(); } } } returnfalse; } //清一色 boolCMJ::CheckQ1S_HU() { if(m_MyPAIVec[0].empty()==false)returnfalse; if(m_MyPAIVec[1].empty()==false)returnfalse; if(m_ChiPAIVec[0].empty()==false)returnfalse; if(m_ChiPAIVec[1].empty()==false)returnfalse; if(m_PengPAIVec[0].empty()==false)returnfalse; if(m_PengPAIVec[1].empty()==false)returnfalse; if(m_GangPAIVec[0].empty()==false)returnfalse; if(m_GangPAIVec[1].empty()==false)returnfalse; //清万 if(m_MyPAIVec[2].empty()==false) { if(m_MyPAIVec[3].empty()==false)returnfalse; if(m_MyPAIVec[4].empty()==false)returnfalse; if(m_ChiPAIVec[3].empty()==false)returnfalse; if(m_ChiPAIVec[4].empty()==false)returnfalse; if(m_PengPAIVec[3].empty()==false)returnfalse; if(m_PengPAIVec[4].empty()==false)returnfalse; if(m_GangPAIVec[3].empty()==false)returnfalse; if(m_GangPAIVec[4].empty()==false)returnfalse; returnCheckHU(); } //清条 if(m_MyPAIVec[3].empty()==false) { if(m_MyPAIVec[2].empty()==false)returnfalse; if(m_MyPAIVec[4].empty()==false)returnfalse; if(m_ChiPAIVec[2].empty()==false)returnfalse; if(m_ChiPAIVec[4].empty()==false)returnfalse; if(m_PengPAIVec[2].empty()==false)returnfalse; if(m_PengPAIVec[4].empty()==false)returnfalse; if(m_GangPAIVec[2].empty()==false)returnfalse; if(m_GangPAIVec[4].empty()==false)returnfalse; returnCheckHU(); } //清饼 if(m_MyPAIVec[4].empty()==false) { if(m_MyPAIVec[2].empty()==false)returnfalse; if(m_MyPAIVec[3].empty()==false)returnfalse; if(m_ChiPAIVec[2].empty()==false)returnfalse; if(m_ChiPAIVec[3].empty()==false)returnfalse; if(m_PengPAIVec[2].empty()==false)returnfalse; if(m_PengPAIVec[3].empty()==false)returnfalse; if(m_GangPAIVec[2].empty()==false)returnfalse; if(m_GangPAIVec[3].empty()==false)returnfalse; returnCheckHU(); } returnfalse; } //检测是否一色三同顺 boolCMJ::Check1S3TS_HU() { //万条饼 for(UINTi = 2 ; i <= 4 ; i++ ) { intiType = i; //吃过的顺 intiSize1 = m_ChiPAIVec[iType].size(); //剩余牌墙中的顺 intiSize2 = m_MyPAIVec[iType].size(); if(iSize1 + iSize2 >= 9) { //无吃的顺 if(iSize1==0) { if(iSize2==9) { //三连高压 if(CheckAAABBBCCCPai(m_MyPAIVec[iType][0],m_MyPAIVec[iType][1],m_MyPAIVec[iType][2],m_MyPAIVec[iType][3],m_MyPAIVec[iType][4],m_MyPAIVec[iType][5],m_MyPAIVec[iType][6],m_MyPAIVec[iType][7],m_MyPAIVec[iType][8])) { returnCheckHU(); } returnfalse; } if(iSize2==11) { //三连高压 if(CheckAAABBBCCCPai(m_MyPAIVec[iType][0],m_MyPAIVec[iType][1],m_MyPAIVec[iType][2],m_MyPAIVec[iType][3],m_MyPAIVec[iType][4],m_MyPAIVec[iType][5],m_MyPAIVec[iType][6],m_MyPAIVec[iType][7],m_MyPAIVec[iType][8])&&CheckAAPai(m_MyPAIVec[iType][9],m_MyPAIVec[iType][10])) { returntrue; } //三连高压 if(CheckAAABBBCCCPai(m_MyPAIVec[iType][2],m_MyPAIVec[iType][3],m_MyPAIVec[iType][4],m_MyPAIVec[iType][5],m_MyPAIVec[iType][6],m_MyPAIVec[iType][7],m_MyPAIVec[iType][8],m_MyPAIVec[iType][9],m_MyPAIVec[iType][10])&&CheckAAPai(m_MyPAIVec[iType][0],m_MyPAIVec[iType][1])) { returntrue; } returnfalse; } if(iSize2==12) { //三连高压 if(CheckAAABBBCCCPai(m_MyPAIVec[iType][0],m_MyPAIVec[iType][1],m_MyPAIVec[iType][2],m_MyPAIVec[iType][3],m_MyPAIVec[iType][4],m_MyPAIVec[iType][5],m_MyPAIVec[iType][6],m_MyPAIVec[iType][7],m_MyPAIVec[iType][8])&&Check3Pai(m_MyPAIVec[iType][9],m_MyPAIVec[iType][10],m_MyPAIVec[iType][11])) { returnCheckHU(); } //三连高压 if(CheckAAABBBCCCPai(m_MyPAIVec[iType][3],m_MyPAIVec[iType][4],m_MyPAIVec[iType][5],m_MyPAIVec[iType][6],m_MyPAIVec[iType][7],m_MyPAIVec[iType][8],m_MyPAIVec[iType][9],m_MyPAIVec[iType][10],m_MyPAIVec[iType][11])&&Check3Pai(m_MyPAIVec[iType][0],m_MyPAIVec[iType][1],m_MyPAIVec[iType][2])) { returnCheckHU(); } returnfalse; } if(iSize2==14) { //三连顺(前) if(CheckAAABBBCCCPai(m_MyPAIVec[iType][0],m_MyPAIVec[iType][1],m_MyPAIVec[iType][2],m_MyPAIVec[iType][3],m_MyPAIVec[iType][4],m_MyPAIVec[iType][5],m_MyPAIVec[iType][6],m_MyPAIVec[iType][7],m_MyPAIVec[iType][8])&&Check5Pai(m_MyPAIVec[iType][9],m_MyPAIVec[iType][10],m_MyPAIVec[iType][11],m_MyPAIVec[iType][12],m_MyPAIVec[iType][13])) { returntrue; } //三连顺(中) if(CheckAAPai(m_MyPAIVec[iType][0],m_MyPAIVec[iType][1])&&CheckAAABBBCCCPai(m_MyPAIVec[iType][2],m_MyPAIVec[iType][3],m_MyPAIVec[iType][4],m_MyPAIVec[iType][5],m_MyPAIVec[iType][6],m_MyPAIVec[iType][7],m_MyPAIVec[iType][8],m_MyPAIVec[iType][9],m_MyPAIVec[iType][10])&&Check3Pai(m_MyPAIVec[iType][11],m_MyPAIVec[iType][12],m_MyPAIVec[iType][13])) { returntrue; } //三连顺(中) if(Check3Pai(m_MyPAIVec[iType][0],m_MyPAIVec[iType][1],m_MyPAIVec[iType][2])&&CheckAAABBBCCCPai(m_MyPAIVec[iType][3],m_MyPAIVec[iType][4],m_MyPAIVec[iType][5],m_MyPAIVec[iType][6],m_MyPAIVec[iType][7],m_MyPAIVec[iType][8],m_MyPAIVec[iType][9],m_MyPAIVec[iType][10],m_MyPAIVec[iType][11])&&CheckAAPai(m_MyPAIVec[iType][12],m_MyPAIVec[iType][13])) { returntrue; } //三连顺(后) if(CheckAAABBBCCCPai(m_MyPAIVec[iType][5],m_MyPAIVec[iType][6],m_MyPAIVec[iType][7],m_MyPAIVec[iType][8],m_MyPAIVec[iType][9],m_MyPAIVec[iType][10],m_MyPAIVec[iType][11],m_MyPAIVec[iType][12],m_MyPAIVec[iType][13])&&Check5Pai(m_MyPAIVec[iType][0],m_MyPAIVec[iType][1],m_MyPAIVec[iType][2],m_MyPAIVec[iType][3],m_MyPAIVec[iType][4])) { returntrue; } returnfalse; } } //吃到一个顺 if(iSize1==3) { if(iSize2==6) { //三连对 if(CheckAABBCCPai(m_MyPAIVec[iType][0],m_MyPAIVec[iType][1],m_MyPAIVec[iType][2],m_MyPAIVec[iType][3],m_MyPAIVec[iType][4],m_MyPAIVec[iType][5])) { if(m_ChiPAIVec[iType][0]==m_MyPAIVec[iType][0]&&m_ChiPAIVec[iType][1]==m_MyPAIVec[iType][1]&&m_ChiPAIVec[iType][2]==m_MyPAIVec[iType][2]) { returnCheckHU(); } } } if(iSize2==8) { //三连对(前) if(CheckAABBCCPai(m_MyPAIVec[iType][0],m_MyPAIVec[iType][1],m_MyPAIVec[iType][2],m_MyPAIVec[iType][3],m_MyPAIVec[iType][4],m_MyPAIVec[iType][5])&&CheckAAPai(m_MyPAIVec[iType][6],m_MyPAIVec[iType][7])) { if(m_ChiPAIVec[iType][0]==m_MyPAIVec[iType][0]&&m_ChiPAIVec[iType][1]==m_MyPAIVec[iType][2]&&m_ChiPAIVec[iType][2]==m_MyPAIVec[iType][4]) { returntrue; } } //三连对(后) if(CheckAABBCCPai(m_MyPAIVec[iType][2],m_MyPAIVec[iType][3],m_MyPAIVec[iType][4],m_MyPAIVec[iType][5],m_MyPAIVec[iType][6],m_MyPAIVec[iType][7])&&CheckAAPai(m_MyPAIVec[iType][0],m_MyPAIVec[iType][1])) { if(m_ChiPAIVec[iType][0]==m_MyPAIVec[iType][2]&&m_ChiPAIVec[iType][1]==m_MyPAIVec[iType][4]&&m_ChiPAIVec[iType][2]==m_MyPAIVec[iType][6]) { returntrue; } } } if(iSize2==9) { //三连对(前) if(CheckAABBCCPai(m_MyPAIVec[iType][0],m_MyPAIVec[iType][1],m_MyPAIVec[iType][2],m_MyPAIVec[iType][3],m_MyPAIVec[iType][4],m_MyPAIVec[iType][5])&&Check3Pai(m_MyPAIVec[iType][6],m_MyPAIVec[iType][7],m_MyPAIVec[iType][8])) { if(m_ChiPAIVec[iType][0]==m_MyPAIVec[iType][0]&&m_ChiPAIVec[iType][1]==m_MyPAIVec[iType][2]&&m_ChiPAIVec[iType][2]==m_MyPAIVec[iType][4]) { returnCheckHU(); } } //三连对(后) if(CheckAABBCCPai(m_MyPAIVec[iType][3],m_MyPAIVec[iType][4],m_MyPAIVec[iType][5],m_MyPAIVec[iType][6],m_MyPAIVec[iType][7],m_MyPAIVec[iType][8])&&Check3Pai(m_MyPAIVec[iType][0],m_MyPAIVec[iType][1],m_MyPAIVec[iType][2])) { if(m_ChiPAIVec[iType][0]==m_MyPAIVec[iType][3]&&m_ChiPAIVec[iType][1]==m_MyPAIVec[iType][5]&&m_ChiPAIVec[iType][2]==m_MyPAIVec[iType][7]) { returnCheckHU(); } } } if(iSize2==11) { //三连对(前) if(CheckAABBCCPai(m_MyPAIVec[iType][0],m_MyPAIVec[iType][1],m_MyPAIVec[iType][2],m_MyPAIVec[iType][3],m_MyPAIVec[iType][4],m_MyPAIVec[iType][5])&&Check5Pai(m_MyPAIVec[iType][6],m_MyPAIVec[iType][7],m_MyPAIVec[iType][8],m_MyPAIVec[iType][9],m_MyPAIVec[iType][10])) { if(m_ChiPAIVec[iType][0]==m_MyPAIVec[iType][0]&&m_ChiPAIVec[iType][1]==m_MyPAIVec[iType][2]&&m_ChiPAIVec[iType][2]==m_MyPAIVec[iType][4]) { returntrue; } } //三连对(中) if(CheckAAPai(m_MyPAIVec[iType][0],m_MyPAIVec[iType][1])&&CheckAABBCCPai(m_MyPAIVec[iType][2],m_MyPAIVec[iType][3],m_MyPAIVec[iType][4],m_MyPAIVec[iType][5],m_MyPAIVec[iType][6],m_MyPAIVec[iType][7])&&Check3Pai(m_MyPAIVec[iType][8],m_MyPAIVec[iType][9],m_MyPAIVec[iType][10])) { if(m_ChiPAIVec[iType][0]==m_MyPAIVec[iType][2]&&m_ChiPAIVec[iType][1]==m_MyPAIVec[iType][4]&&m_ChiPAIVec[iType][2]==m_MyPAIVec[iType][6]) { returntrue; } } //三连对(中) if(Check3Pai(m_MyPAIVec[iType][0],m_MyPAIVec[iType][1],m_MyPAIVec[iType][2])&&CheckAABBCCPai(m_MyPAIVec[iType][3],m_MyPAIVec[iType][4],m_MyPAIVec[iType][5],m_MyPAIVec[iType][6],m_MyPAIVec[iType][7],m_MyPAIVec[iType][8])&&CheckAAPai(m_MyPAIVec[iType][9],m_MyPAIVec[iType][10])) { if(m_ChiPAIVec[iType][0]==m_MyPAIVec[iType][3]&&m_ChiPAIVec[iType][1]==m_MyPAIVec[iType][5]&&m_ChiPAIVec[iType][2]==m_MyPAIVec[iType][7]) { returntrue; } } //三连对(前) if(CheckAABBCCPai(m_MyPAIVec[iType][5],m_MyPAIVec[iType][6],m_MyPAIVec[iType][7],m_MyPAIVec[iType][8],m_MyPAIVec[iType][9],m_MyPAIVec[iType][10])&&Check5Pai(m_MyPAIVec[iType][0],m_MyPAIVec[iType][1],m_MyPAIVec[iType][2],m_MyPAIVec[iType][3],m_MyPAIVec[iType][4])) { if(m_ChiPAIVec[iType][0]==m_MyPAIVec[iType][5]&&m_ChiPAIVec[iType][1]==m_MyPAIVec[iType][7]&&m_ChiPAIVec[iType][2]==m_MyPAIVec[iType][9]) { returntrue; } } } } //吃到二个顺 if(iSize1==6) { if(iSize2==3) { //顺子 if(CheckABCPai(m_MyPAIVec[iType][0],m_MyPAIVec[iType][1],m_MyPAIVec[iType][2])) { if(m_ChiPAIVec[iType][0]==m_MyPAIVec[iType][0]&&m_ChiPAIVec[iType][1]==m_MyPAIVec[iType][1]&&m_ChiPAIVec[iType][2]==m_MyPAIVec[iType][2]) { if(m_ChiPAIVec[iType][3]==m_MyPAIVec[iType][0]&&m_ChiPAIVec[iType][4]==m_MyPAIVec[iType][1]&&m_ChiPAIVec[iType][5]==m_MyPAIVec[iType][2]) { returnCheckHU(); } } } } if(iSize2==5) { //顺子(前) if(CheckABCPai(m_MyPAIVec[iType][0],m_MyPAIVec[iType][1],m_MyPAIVec[iType][2])&&CheckAAPai(m_MyPAIVec[iType][3],m_MyPAIVec[iType][4])) { if(m_ChiPAIVec[iType][0]==m_MyPAIVec[iType][0]&&m_ChiPAIVec[iType][1]==m_MyPAIVec[iType][1]&&m_ChiPAIVec[iType][2]==m_MyPAIVec[iType][2]) { if(m_ChiPAIVec[iType][3]==m_MyPAIVec[iType][0]&&m_ChiPAIVec[iType][4]==m_MyPAIVec[iType][1]&&m_ChiPAIVec[iType][5]==m_MyPAIVec[iType][2]) { returntrue; } } } //顺子(后) if(CheckABCPai(m_MyPAIVec[iType][2],m_MyPAIVec[iType][3],m_MyPAIVec[iType][4])&&CheckAAPai(m_MyPAIVec[iType][0],m_MyPAIVec[iType][1])) { if(m_ChiPAIVec[iType][0]==m_MyPAIVec[iType][2]&&m_ChiPAIVec[iType][1]==m_MyPAIVec[iType][3]&&m_ChiPAIVec[iType][2]==m_MyPAIVec[iType][4]) { if(m_ChiPAIVec[iType][3]==m_MyPAIVec[iType][2]&&m_ChiPAIVec[iType][4]==m_MyPAIVec[iType][3]&&m_ChiPAIVec[iType][5]==m_MyPAIVec[iType][4]) { returntrue; } } } } if(iSize2==6) { //三连对 if(CheckAABBCCPai(m_MyPAIVec[iType][0],m_MyPAIVec[iType][1],m_MyPAIVec[iType][2],m_MyPAIVec[iType][3],m_MyPAIVec[iType][4],m_MyPAIVec[iType][5])) { if(m_ChiPAIVec[iType][0]==m_MyPAIVec[iType][0]&&m_ChiPAIVec[iType][1]==m_MyPAIVec[iType][2]&&m_ChiPAIVec[iType][2]==m_MyPAIVec[iType][4]) { if(m_ChiPAIVec[iType][3]==m_MyPAIVec[iType][1]&&m_ChiPAIVec[iType][4]==m_MyPAIVec[iType][3]&&m_ChiPAIVec[iType][5]==m_MyPAIVec[iType][5]) { returnCheckHU(); } } } } if(iSize2==8) { //三连对(前) if(CheckAABBCCPai(m_MyPAIVec[iType][0],m_MyPAIVec[iType][1],m_MyPAIVec[iType][2],m_MyPAIVec[iType][3],m_MyPAIVec[iType][4],m_MyPAIVec[iType][5])&&CheckAAPai(m_MyPAIVec[iType][6],m_MyPAIVec[iType][7])) { if(m_ChiPAIVec[iType][0]==m_MyPAIVec[iType][0]&&m_ChiPAIVec[iType][1]==m_MyPAIVec[iType][2]&&m_ChiPAIVec[iType][2]==m_MyPAIVec[iType][4]) { if(m_ChiPAIVec[iType][3]==m_MyPAIVec[iType][1]&&m_ChiPAIVec[iType][4]==m_MyPAIVec[iType][3]&&m_ChiPAIVec[iType][5]==m_MyPAIVec[iType][5]) { returntrue; } } } //三连对(后) if(CheckAABBCCPai(m_MyPAIVec[iType][2],m_MyPAIVec[iType][3],m_MyPAIVec[iType][4],m_MyPAIVec[iType][5],m_MyPAIVec[iType][6],m_MyPAIVec[iType][7])&&CheckAAPai(m_MyPAIVec[iType][0],m_MyPAIVec[iType][1])) { if(m_ChiPAIVec[iType][0]==m_MyPAIVec[iType][2]&&m_ChiPAIVec[iType][1]==m_MyPAIVec[iType][4]&&m_ChiPAIVec[iType][2]==m_MyPAIVec[iType][6]) { if(m_ChiPAIVec[iType][3]==m_MyPAIVec[iType][3]&&m_ChiPAIVec[iType][4]==m_MyPAIVec[iType][5]&&m_ChiPAIVec[iType][5]==m_MyPAIVec[iType][7]) { returntrue; } } } } } //吃到三个顺 if(iSize1==9) { if((m_ChiPAIVec[2][0]==m_ChiPAIVec[iType][3])&&(m_ChiPAIVec[iType][3]==m_ChiPAIVec[iType][6])) { returnCheckHU(); } } } } returnfalse; } //检测是否一色三节高 boolCMJ::Check1S3JG_HU() { //万,条,饼 for(UINTi = 2 ; i <= 4 ; i++) { intiType = i; if(m_GangPAIVec[iType].size()==12) { if((m_GangPAIVec[iType][0]==m_GangPAIVec[iType][4]-1)&&(m_GangPAIVec[iType][4]==m_GangPAIVec[iType][8]-1)) { returnCheckHU(); } } } returnfalse; } //检测是否全大 boolCMJ::CheckQD_HU() { //剑牌,风牌 if(m_MyPAIVec[0].empty()==false)returnfalse; if(m_MyPAIVec[1].empty()==false)returnfalse; if(m_ChiPAIVec[0].empty()==false)returnfalse; if(m_ChiPAIVec[1].empty()==false)returnfalse; if(m_PengPAIVec[0].empty()==false)returnfalse; if(m_PengPAIVec[1].empty()==false)returnfalse; if(m_GangPAIVec[0].empty()==false)returnfalse; if(m_GangPAIVec[1].empty()==false)returnfalse; //万,条,饼 for(UINTi = 2 ; i <= 4 ; i++ ) { if(m_MyPAIVec[i].empty()==false) { //剩余牌墙 intiSize = m_MyPAIVec[i].size(); for( UINTj = 0 ; j < iSize ; j++ ) { if(m_MyPAIVec[i][j]<7)returnfalse; } //吃 iSize = m_ChiPAIVec[i].size(); for( UINTj = 0 ; j < iSize ; j++ ) { if(m_ChiPAIVec[i][j]<7)returnfalse; } //碰 iSize = m_PengPAIVec[i].size(); for( UINTj = 0 ; j < iSize ; j++ ) { if(m_PengPAIVec[i][j]<7)returnfalse; } //杠 iSize = m_GangPAIVec[i].size(); for( UINTj = 0 ; j < iSize ; j++ ) { if(m_GangPAIVec[i][j]<7)returnfalse; } } } returnCheckHU(); } //检测是否全中 boolCMJ::CheckQZ_HU() { //剑牌,风牌 if(m_MyPAIVec[0].empty()==false)returnfalse; if(m_MyPAIVec[1].empty()==false)returnfalse; if(m_ChiPAIVec[0].empty()==false)returnfalse; if(m_ChiPAIVec[1].empty()==false)returnfalse; if(m_PengPAIVec[0].empty()==false)returnfalse; if(m_PengPAIVec[1].empty()==false)returnfalse; if(m_GangPAIVec[0].empty()==false)returnfalse; if(m_GangPAIVec[1].empty()==false)returnfalse; //万,条,饼 for(UINTi = 2 ; i <= 4 ; i++ ) { if(m_MyPAIVec[i].empty()==false) { //剩余牌墙 intiSize = m_MyPAIVec[i].size(); for( UINTj = 0 ; j < iSize ; j++ ) { if(m_MyPAIVec[i][j]<4)returnfalse; if(m_MyPAIVec[i][j]>6)returnfalse; } //吃 iSize = m_ChiPAIVec[i].size(); for( UINTj = 0 ; j < iSize ; j++ ) { if(m_ChiPAIVec[i][j]<4)returnfalse; if(m_ChiPAIVec[i][j]>6)returnfalse; } //碰 iSize = m_PengPAIVec[i].size(); for( UINTj = 0 ; j < iSize ; j++ ) { if(m_PengPAIVec[i][j]<4)returnfalse; if(m_PengPAIVec[i][j]>6)returnfalse; } //杠 iSize = m_GangPAIVec[i].size(); for( UINTj = 0 ; j < iSize ; j++ ) { if(m_GangPAIVec[i][j]<4)returnfalse; if(m_GangPAIVec[i][j]>6)returnfalse; } } } returnCheckHU(); } //检测是否全小 boolCMJ::CheckQX_HU() { //剑牌,风牌 if(m_MyPAIVec[0].empty()==false)returnfalse; if(m_MyPAIVec[1].empty()==false)returnfalse; if(m_ChiPAIVec[0].empty()==false)returnfalse; if(m_ChiPAIVec[1].empty()==false)returnfalse; if(m_PengPAIVec[0].empty()==false)returnfalse; if(m_PengPAIVec[1].empty()==false)returnfalse; if(m_GangPAIVec[0].empty()==false)returnfalse; if(m_GangPAIVec[1].empty()==false)returnfalse; //万,条,饼 for(UINTi = 2 ; i <= 4 ; i++ ) { if(m_MyPAIVec[i].empty()==false) { //剩余牌墙 intiSize = m_MyPAIVec[i].size(); for( UINTj = 0 ; j < iSize ; j++ ) { if(m_MyPAIVec[i][j]>3)returnfalse; } //吃 iSize = m_ChiPAIVec[i].size(); for( UINTj = 0 ; j < iSize ; j++ ) { if(m_ChiPAIVec[i][j]>3)returnfalse; } //碰 iSize = m_PengPAIVec[i].size(); for( UINTj = 0 ; j < iSize ; j++ ) { if(m_PengPAIVec[i][j]>3)returnfalse; } //杠 iSize = m_GangPAIVec[i].size(); for( UINTj = 0 ; j < iSize ; j++ ) { if(m_GangPAIVec[i][j]>3)returnfalse; } } } returnCheckHU(); } //检测是否青龙 boolCMJ::CheckQL_HU() { //花色 intiColorNum = 0; //万,条,饼 for(UINTi = 2 ; i <= 4 ; i++ ) { if(m_MyPAIVec[i].empty()==false) { iColorNum++; if(m_MyPAIVec[i].size()==9) { for(UINTj = 0 ;j < 9 ;j++) { if(m_MyPAIVec[i][j] != j)returnfalse; } } } } if(iColorNum==1)returnCheckHU(); returnfalse; } //检测是否三色双龙会 boolCMJ::Check3S2LH_HU() { //五万为双龙 if(m_MyPAIVec[2].size()==2) { //双龙 if(m_MyPAIVec[2][0]==5&&m_MyPAIVec[2][1]==5) { //老少副 if(m_MyPAIVec[3].size()==6&&m_MyPAIVec[4].size()==6) { if(m_MyPAIVec[3][0]==1&&m_MyPAIVec[3][1]==2&&m_MyPAIVec[3][2]==3&&m_MyPAIVec[3][3]==7&&m_MyPAIVec[3][4]==8&&m_MyPAIVec[3][5]==9) { if(m_MyPAIVec[4][0]==1&&m_MyPAIVec[4][1]==2&&m_MyPAIVec[4][2]==3&&m_MyPAIVec[4][3]==7&&m_MyPAIVec[4][4]==8&&m_MyPAIVec[4][5]==9) { returntrue; } } } } } //五条为双龙 if(m_MyPAIVec[3].size()==2) { //双龙 if(m_MyPAIVec[3][0]==5&&m_MyPAIVec[3][1]==5) { //老少副 if(m_MyPAIVec[2].size()==6&&m_MyPAIVec[4].size()==6) { if(m_MyPAIVec[2][0]==1&&m_MyPAIVec[2][1]==2&&m_MyPAIVec[2][2]==3&&m_MyPAIVec[2][3]==7&&m_MyPAIVec[2][4]==8&&m_MyPAIVec[2][5]==9) { if(m_MyPAIVec[4][0]==1&&m_MyPAIVec[4][1]==2&&m_MyPAIVec[4][2]==3&&m_MyPAIVec[4][3]==7&&m_MyPAIVec[4][4]==8&&m_MyPAIVec[4][5]==9) { returntrue; } } } } } //五饼为双龙 if(m_MyPAIVec[4].size()==2) { //双龙 if(m_MyPAIVec[4][0]==5&&m_MyPAIVec[4][1]==5) { //老少副 if(m_MyPAIVec[2].size()==6&&m_MyPAIVec[3].size()==6) { if(m_MyPAIVec[2][0]==1&&m_MyPAIVec[2][1]==2&&m_MyPAIVec[2][2]==3&&m_MyPAIVec[2][3]==7&&m_MyPAIVec[2][4]==8&&m_MyPAIVec[2][5]==9) { if(m_MyPAIVec[3][0]==1&&m_MyPAIVec[3][1]==2&&m_MyPAIVec[3][2]==3&&m_MyPAIVec[3][3]==7&&m_MyPAIVec[3][4]==8&&m_MyPAIVec[3][5]==9) { returntrue; } } } } } returnfalse; } //检测是否一色三步高 boolCMJ::Check1S3BG_HU() { returnfalse; } //全带五 boolCMJ::CheckQD5_HU() { //剑牌,风牌 if(m_MyPAIVec[0].empty()==false)returnfalse; if(m_MyPAIVec[1].empty()==false)returnfalse; if(m_ChiPAIVec[0].empty()==false)returnfalse; if(m_ChiPAIVec[1].empty()==false)returnfalse; if(m_PengPAIVec[0].empty()==false)returnfalse; if(m_PengPAIVec[1].empty()==false)returnfalse; if(m_GangPAIVec[0].empty()==false)returnfalse; if(m_GangPAIVec[1].empty()==false)returnfalse; returnfalse; } //三同刻 boolCMJ::Check3TK_HU() { /*if(m_GangPAIVec[2].size()==4) { //万,条,饼 for(UINT i = 3 ; i <= 4 ; i++ ) { if(m_GangPAIVec[i].size()==4) { if(m_GangPAIVec[2][0]!=m_GangPAIVec[i][0]) { return false; } } } }*/returnfalse; } //三暗刻 boolCMJ::Check3AK_HU() { returnfalse; } //单钓将 boolCMJ::CheckDDJ_HU() { intcount = 0; for(UINTi = 0 ; i < 6 ; i++ ) { count += m_MyPAIVec[i].size(); } if(count==2) { if(m_MyPAIVec[m_LastPAI.m_Type].size()==2) { if(m_MyPAIVec[m_LastPAI.m_Type][0]==m_MyPAIVec[m_LastPAI.m_Type][1])returntrue; } } returnfalse; } //检测是否听十三幺 boolCMJ::Check13Y_TING() { booli13YSize[13] ; for(UINTi = 0 ; i < 13 ; i++ ) { i13YSize[i]=false; } //中发白 vector<int>::iterator Iter; for(Iter = m_MyPAIVec[0].begin();Iter != m_MyPAIVec[0].end(); Iter++ ) { if((*Iter)==1) { i13YSize[0]=true; } if((*Iter)==2) { i13YSize[1]=true; } if((*Iter)==3) { i13YSize[2]=true; } } //东南西北风 for(Iter = m_MyPAIVec[1].begin();Iter != m_MyPAIVec[1].end(); Iter++ ) { if((*Iter)==1) { i13YSize[3]=true; } if((*Iter)==2) { i13YSize[4]=true; } if((*Iter)==3) { i13YSize[5]=true; } if((*Iter)==4) { i13YSize[6]=true; } } //一九万 for(Iter = m_MyPAIVec[2].begin();Iter != m_MyPAIVec[2].end(); Iter++ ) { if((*Iter)==1) { i13YSize[7]=true; } if((*Iter)==9) { i13YSize[8]=true; } } //一九条 for(Iter = m_MyPAIVec[3].begin();Iter != m_MyPAIVec[3].end(); Iter++ ) { if((*Iter)==1) { i13YSize[9]=true; } if((*Iter)==9) { i13YSize[10]=true; } } //一九饼 for(Iter = m_MyPAIVec[4].begin();Iter != m_MyPAIVec[4].end(); Iter++ ) { if((*Iter)==1) { i13YSize[11]=true; } if((*Iter)==9) { i13YSize[12]=true; } } inticount = 0; for(UINTi = 0 ; i < 13 ; i++ ) { if(i13YSize[i]==true) { icount++; } } if(icount >=12)returntrue; returnfalse; } //检测是否听四暗刻 boolCMJ::Check4AK_TING() { if(m_AKNum==4)returntrue; returnfalse; } //检测胡 boolCMJ::CheckHU() { boolt_Ok = false; intiJiangNum = 0; intiSize = m_MyPAIVec[0].size(); if(iSize>0) { //中发白 if(iSize==2) { if(!CheckAAPai(m_MyPAIVec[0][0],m_MyPAIVec[0][1])) { returnfalse; } else{ iJiangNum++ ; } } elseif(iSize==3) { if(!CheckAAAPai(m_MyPAIVec[0][0],m_MyPAIVec[0][1],m_MyPAIVec[0][2])) { returnfalse; } } elseif(iSize==5) { if(CheckAAPai(m_MyPAIVec[0][0],m_MyPAIVec[0][1])&&CheckAAAPai(m_MyPAIVec[0][2],m_MyPAIVec[0][3],m_MyPAIVec[0][4])) { iJiangNum++ ; } elseif(CheckAAAPai(m_MyPAIVec[0][0],m_MyPAIVec[0][1],m_MyPAIVec[0][2])&&CheckAAPai(m_MyPAIVec[0][3],m_MyPAIVec[0][4])) { iJiangNum++ ; } else{ returnfalse; } } elseif(iSize==8) { if(CheckAAPai(m_MyPAIVec[0][0],m_MyPAIVec[0][1])&&CheckAAAPai(m_MyPAIVec[0][2],m_MyPAIVec[0][3],m_MyPAIVec[0][4])&&CheckAAAPai(m_MyPAIVec[0][5],m_MyPAIVec[0][6],m_MyPAIVec[0][7])) { iJiangNum++ ; } elseif(CheckAAAPai(m_MyPAIVec[0][0],m_MyPAIVec[0][1],m_MyPAIVec[0][2])&&CheckAAPai(m_MyPAIVec[0][3],m_MyPAIVec[0][4])&&CheckAAAPai(m_MyPAIVec[0][5],m_MyPAIVec[0][6],m_MyPAIVec[0][7])) { iJiangNum++ ; } elseif(CheckAAAPai(m_MyPAIVec[0][0],m_MyPAIVec[0][1],m_MyPAIVec[0][2])&&CheckAAAPai(m_MyPAIVec[0][3],m_MyPAIVec[0][4],m_MyPAIVec[0][5])&&CheckAAPai(m_MyPAIVec[0][6],m_MyPAIVec[0][7])) { iJiangNum++ ; } else{ returnfalse; } } elseif(iSize==11) { if(CheckAAPai(m_MyPAIVec[0][0],m_MyPAIVec[0][1])&&CheckAAAPai(m_MyPAIVec[0][2],m_MyPAIVec[0][3],m_MyPAIVec[0][4])&&CheckAAAPai(m_MyPAIVec[0][5],m_MyPAIVec[0][6],m_MyPAIVec[0][7])&&CheckAAAPai(m_MyPAIVec[0][8],m_MyPAIVec[0][9],m_MyPAIVec[0][10])) { iJiangNum++ ; } elseif(CheckAAAPai(m_MyPAIVec[0][0],m_MyPAIVec[0][1],m_MyPAIVec[0][2])&&CheckAAPai(m_MyPAIVec[0][3],m_MyPAIVec[0][4])&&CheckAAAPai(m_MyPAIVec[0][5],m_MyPAIVec[0][6],m_MyPAIVec[0][7])&&CheckAAAPai(m_MyPAIVec[0][8],m_MyPAIVec[0][9],m_MyPAIVec[0][10])) { iJiangNum++ ; } elseif(CheckAAAPai(m_MyPAIVec[0][0],m_MyPAIVec[0][1],m_MyPAIVec[0][2])&&CheckAAAPai(m_MyPAIVec[0][3],m_MyPAIVec[0][4],m_MyPAIVec[0][5])&&CheckAAPai(m_MyPAIVec[0][6],m_MyPAIVec[0][7])&&CheckAAAPai(m_MyPAIVec[0][8],m_MyPAIVec[0][9],m_MyPAIVec[0][10])) { iJiangNum++ ; } elseif(CheckAAAPai(m_MyPAIVec[0][0],m_MyPAIVec[0][1],m_MyPAIVec[0][2])&&CheckAAAPai(m_MyPAIVec[0][3],m_MyPAIVec[0][4],m_MyPAIVec[0][5])&&CheckAAAPai(m_MyPAIVec[0][6],m_MyPAIVec[0][7],m_MyPAIVec[0][8])&&CheckAAPai(m_MyPAIVec[0][9],m_MyPAIVec[0][10])) { iJiangNum++ ; } else{ returnfalse; } } else{ returnfalse; } } //东南西北 iSize = m_MyPAIVec[1].size(); if(iSize>0) { if(iSize==2) { if(!CheckAAPai(m_MyPAIVec[1][0],m_MyPAIVec[1][1])) { returnfalse; } else{ iJiangNum++ ; } } elseif(iSize==3) { if(!CheckAAAPai(m_MyPAIVec[1][0],m_MyPAIVec[1][1],m_MyPAIVec[1][2])) { returnfalse; } } elseif(iSize==5) { if(CheckAAPai(m_MyPAIVec[1][0],m_MyPAIVec[1][1])&&CheckAAAPai(m_MyPAIVec[1][2],m_MyPAIVec[1][3],m_MyPAIVec[1][4])) { iJiangNum++ ; } elseif(CheckAAAPai(m_MyPAIVec[1][0],m_MyPAIVec[1][1],m_MyPAIVec[1][2])&&CheckAAPai(m_MyPAIVec[1][3],m_MyPAIVec[1][4])) { iJiangNum++ ; } else{ returnfalse; } } elseif(iSize==8) { if(CheckAAPai(m_MyPAIVec[1][0],m_MyPAIVec[1][1])&&CheckAAAPai(m_MyPAIVec[1][2],m_MyPAIVec[1][3],m_MyPAIVec[1][4])&&CheckAAAPai(m_MyPAIVec[1][5],m_MyPAIVec[1][6],m_MyPAIVec[1][7])) { iJiangNum++ ; } elseif(CheckAAAPai(m_MyPAIVec[1][0],m_MyPAIVec[1][1],m_MyPAIVec[1][2])&&CheckAAPai(m_MyPAIVec[1][3],m_MyPAIVec[1][4])&&CheckAAAPai(m_MyPAIVec[1][5],m_MyPAIVec[1][6],m_MyPAIVec[1][7])) { iJiangNum++ ; } elseif(CheckAAAPai(m_MyPAIVec[1][0],m_MyPAIVec[1][1],m_MyPAIVec[1][2])&&CheckAAAPai(m_MyPAIVec[1][3],m_MyPAIVec[1][4],m_MyPAIVec[1][5])&&CheckAAPai(m_MyPAIVec[1][6],m_MyPAIVec[1][7])) { iJiangNum++ ; } else{ returnfalse; } } elseif(iSize==11) { if(CheckAAPai(m_MyPAIVec[1][0],m_MyPAIVec[1][1])&&CheckAAAPai(m_MyPAIVec[1][2],m_MyPAIVec[1][3],m_MyPAIVec[1][4])&&CheckAAAPai(m_MyPAIVec[1][5],m_MyPAIVec[1][6],m_MyPAIVec[1][7])&&CheckAAAPai(m_MyPAIVec[1][8],m_MyPAIVec[1][9],m_MyPAIVec[1][10])) { iJiangNum++ ; } elseif(CheckAAAPai(m_MyPAIVec[1][0],m_MyPAIVec[1][1],m_MyPAIVec[1][2])&&CheckAAPai(m_MyPAIVec[1][3],m_MyPAIVec[1][4])&&CheckAAAPai(m_MyPAIVec[1][5],m_MyPAIVec[1][6],m_MyPAIVec[1][7])&&CheckAAAPai(m_MyPAIVec[1][8],m_MyPAIVec[1][9],m_MyPAIVec[1][10])) { iJiangNum++ ; } elseif(CheckAAAPai(m_MyPAIVec[1][0],m_MyPAIVec[1][1],m_MyPAIVec[1][2])&&CheckAAAPai(m_MyPAIVec[1][3],m_MyPAIVec[1][4],m_MyPAIVec[1][5])&&CheckAAPai(m_MyPAIVec[1][6],m_MyPAIVec[1][7])&&CheckAAAPai(m_MyPAIVec[1][8],m_MyPAIVec[1][9],m_MyPAIVec[1][10])) { iJiangNum++ ; } elseif(CheckAAAPai(m_MyPAIVec[1][0],m_MyPAIVec[1][1],m_MyPAIVec[1][2])&&CheckAAAPai(m_MyPAIVec[1][3],m_MyPAIVec[1][4],m_MyPAIVec[1][5])&&CheckAAAPai(m_MyPAIVec[1][6],m_MyPAIVec[1][7],m_MyPAIVec[1][8])&&CheckAAPai(m_MyPAIVec[1][9],m_MyPAIVec[1][10])) { iJiangNum++ ; } else{ returnfalse; } } else{ returnfalse; } } //万 iSize = m_MyPAIVec[2].size(); if(iSize>0) { if(iSize==2) { if(!CheckAAPai(m_MyPAIVec[2][0],m_MyPAIVec[2][1])) { returnfalse; } else{ iJiangNum++ ; } } elseif(iSize==3) { if(!CheckAAAPai(m_MyPAIVec[2][0],m_MyPAIVec[2][1],m_MyPAIVec[2][2])) { if(!CheckABCPai(m_MyPAIVec[2][0],m_MyPAIVec[2][1],m_MyPAIVec[2][2])) { returnfalse; } } } elseif(iSize==5) { if(!Check5Pai(m_MyPAIVec[2][0],m_MyPAIVec[2][1],m_MyPAIVec[2][2],m_MyPAIVec[2][3],m_MyPAIVec[2][4])) { returnfalse; } else{ iJiangNum++ ; } } elseif(iSize==6) { if(!Check6Pai(m_MyPAIVec[2][0],m_MyPAIVec[2][1],m_MyPAIVec[2][2],m_MyPAIVec[2][3],m_MyPAIVec[2][4],m_MyPAIVec[2][5])) { returnfalse; } } elseif(iSize==8) { if(!Check8Pai(m_MyPAIVec[2][0],m_MyPAIVec[2][1],m_MyPAIVec[2][2],m_MyPAIVec[2][3],m_MyPAIVec[2][4],m_MyPAIVec[2][5],m_MyPAIVec[2][6],m_MyPAIVec[2][7])) { returnfalse; } else{ iJiangNum++ ; } } elseif(iSize==9) { if(!Check9Pai(m_MyPAIVec[2][0],m_MyPAIVec[2][1],m_MyPAIVec[2][2],m_MyPAIVec[2][3],m_MyPAIVec[2][4],m_MyPAIVec[2][5],m_MyPAIVec[2][6],m_MyPAIVec[2][7],m_MyPAIVec[2][8])) { returnfalse; } } elseif(iSize==11) { if(!Check11Pai(m_MyPAIVec[2][0],m_MyPAIVec[2][1],m_MyPAIVec[2][2],m_MyPAIVec[2][3],m_MyPAIVec[2][4],m_MyPAIVec[2][5],m_MyPAIVec[2][6],m_MyPAIVec[2][7],m_MyPAIVec[2][8],m_MyPAIVec[2][9],m_MyPAIVec[2][10])) { returnfalse; } else{ iJiangNum++ ; } } elseif(iSize==12) { if(!Check12Pai(m_MyPAIVec[2][0],m_MyPAIVec[2][1],m_MyPAIVec[2][2],m_MyPAIVec[2][3],m_MyPAIVec[2][4],m_MyPAIVec[2][5],m_MyPAIVec[2][6],m_MyPAIVec[2][7],m_MyPAIVec[2][8],m_MyPAIVec[2][9],m_MyPAIVec[2][10],m_MyPAIVec[2][11])) { returnfalse; } } elseif(iSize==14) { if(!Check14Pai(m_MyPAIVec[2][0],m_MyPAIVec[2][1],m_MyPAIVec[2][2],m_MyPAIVec[2][3],m_MyPAIVec[2][4],m_MyPAIVec[2][5],m_MyPAIVec[2][6],m_MyPAIVec[2][7],m_MyPAIVec[2][8],m_MyPAIVec[2][9],m_MyPAIVec[2][10],m_MyPAIVec[2][11],m_MyPAIVec[2][12],m_MyPAIVec[2][13])) { returnfalse; } else{ iJiangNum++ ; } } else{ returnfalse; } } //条 iSize = m_MyPAIVec[3].size(); if(iSize>0) { if(iSize==2) { if(!CheckAAPai(m_MyPAIVec[3][0],m_MyPAIVec[3][1])) { returnfalse; } else{ iJiangNum++ ; } } elseif(iSize==3) { if(!CheckAAAPai(m_MyPAIVec[3][0],m_MyPAIVec[3][1],m_MyPAIVec[3][2])) { if(!CheckABCPai(m_MyPAIVec[3][0],m_MyPAIVec[3][1],m_MyPAIVec[3][2])) { returnfalse; } } } elseif(iSize==5) { if(!Check5Pai(m_MyPAIVec[3][0],m_MyPAIVec[3][1],m_MyPAIVec[3][2],m_MyPAIVec[3][3],m_MyPAIVec[3][4])) { returnfalse; } else{ iJiangNum++ ; } } elseif(iSize==6) { if(!Check6Pai(m_MyPAIVec[3][0],m_MyPAIVec[3][1],m_MyPAIVec[3][2],m_MyPAIVec[3][3],m_MyPAIVec[3][4],m_MyPAIVec[3][5])) { returnfalse; } } elseif(iSize==8) { if(!Check8Pai(m_MyPAIVec[3][0],m_MyPAIVec[3][1],m_MyPAIVec[3][2],m_MyPAIVec[3][3],m_MyPAIVec[3][4],m_MyPAIVec[3][5],m_MyPAIVec[3][6],m_MyPAIVec[3][7])) { returnfalse; } else{ iJiangNum++ ; } } elseif(iSize==9) { if(!Check9Pai(m_MyPAIVec[3][0],m_MyPAIVec[3][1],m_MyPAIVec[3][2],m_MyPAIVec[3][3],m_MyPAIVec[3][4],m_MyPAIVec[3][5],m_MyPAIVec[3][6],m_MyPAIVec[3][7],m_MyPAIVec[3][8])) { returnfalse; } } elseif(iSize==11) { if(!Check11Pai(m_MyPAIVec[3][0],m_MyPAIVec[3][1],m_MyPAIVec[3][2],m_MyPAIVec[3][3],m_MyPAIVec[3][4],m_MyPAIVec[3][5],m_MyPAIVec[3][6],m_MyPAIVec[3][7],m_MyPAIVec[3][8],m_MyPAIVec[3][9],m_MyPAIVec[3][10])) { returnfalse; } else{ iJiangNum++ ; } } elseif(iSize==12) { if(!Check12Pai(m_MyPAIVec[3][0],m_MyPAIVec[3][1],m_MyPAIVec[3][2],m_MyPAIVec[3][3],m_MyPAIVec[3][4],m_MyPAIVec[3][5],m_MyPAIVec[3][6],m_MyPAIVec[3][7],m_MyPAIVec[3][8],m_MyPAIVec[3][9],m_MyPAIVec[3][10],m_MyPAIVec[3][11])) { returnfalse; } } elseif(iSize==14) { if(!Check14Pai(m_MyPAIVec[3][0],m_MyPAIVec[3][1],m_MyPAIVec[3][2],m_MyPAIVec[3][3],m_MyPAIVec[3][4],m_MyPAIVec[3][5],m_MyPAIVec[3][6],m_MyPAIVec[3][7],m_MyPAIVec[3][8],m_MyPAIVec[3][9],m_MyPAIVec[3][10],m_MyPAIVec[3][11],m_MyPAIVec[3][12],m_MyPAIVec[3][13])) { returnfalse; } else{ iJiangNum++ ; } } else{ returnfalse; } } //饼 iSize = m_MyPAIVec[4].size(); if(iSize>0) { if(iSize==2) { if(!CheckAAPai(m_MyPAIVec[4][0],m_MyPAIVec[4][1])) { returnfalse; } else{ iJiangNum++ ; } } elseif(iSize==3) { if(!CheckAAAPai(m_MyPAIVec[4][0],m_MyPAIVec[4][1],m_MyPAIVec[4][2])) { if(!CheckABCPai(m_MyPAIVec[4][0],m_MyPAIVec[4][1],m_MyPAIVec[4][2])) { returnfalse; } } } elseif(iSize==5) { if(!Check5Pai(m_MyPAIVec[4][0],m_MyPAIVec[4][1],m_MyPAIVec[4][2],m_MyPAIVec[4][3],m_MyPAIVec[4][4])) { returnfalse; } else{ iJiangNum++ ; } } elseif(iSize==6) { if(!Check6Pai(m_MyPAIVec[4][0],m_MyPAIVec[4][1],m_MyPAIVec[4][2],m_MyPAIVec[4][3],m_MyPAIVec[4][4],m_MyPAIVec[4][5])) { returnfalse; } } elseif(iSize==8) { if(!Check8Pai(m_MyPAIVec[4][0],m_MyPAIVec[4][1],m_MyPAIVec[4][2],m_MyPAIVec[4][3],m_MyPAIVec[4][4],m_MyPAIVec[4][5],m_MyPAIVec[4][6],m_MyPAIVec[4][7])) { returnfalse; } else{ iJiangNum++ ; } } elseif(iSize==9) { if(!Check9Pai(m_MyPAIVec[4][0],m_MyPAIVec[4][1],m_MyPAIVec[4][2],m_MyPAIVec[4][3],m_MyPAIVec[4][4],m_MyPAIVec[4][5],m_MyPAIVec[4][6],m_MyPAIVec[4][7],m_MyPAIVec[4][8])) { returnfalse; } } elseif(iSize==11) { if(!Check11Pai(m_MyPAIVec[4][0],m_MyPAIVec[4][1],m_MyPAIVec[4][2],m_MyPAIVec[4][3],m_MyPAIVec[4][4],m_MyPAIVec[4][5],m_MyPAIVec[4][6],m_MyPAIVec[4][7],m_MyPAIVec[4][8],m_MyPAIVec[4][9],m_MyPAIVec[4][10])) { returnfalse; } else{ iJiangNum++ ; } } elseif(iSize==12) { if(!Check12Pai(m_MyPAIVec[4][0],m_MyPAIVec[4][1],m_MyPAIVec[4][2],m_MyPAIVec[4][3],m_MyPAIVec[4][4],m_MyPAIVec[4][5],m_MyPAIVec[4][6],m_MyPAIVec[4][7],m_MyPAIVec[4][8],m_MyPAIVec[4][9],m_MyPAIVec[4][10],m_MyPAIVec[4][11])) { returnfalse; } } elseif(iSize==14) { if(!Check14Pai(m_MyPAIVec[4][0],m_MyPAIVec[4][1],m_MyPAIVec[4][2],m_MyPAIVec[4][3],m_MyPAIVec[4][4],m_MyPAIVec[4][5],m_MyPAIVec[4][6],m_MyPAIVec[4][7],m_MyPAIVec[4][8],m_MyPAIVec[4][9],m_MyPAIVec[4][10],m_MyPAIVec[4][11],m_MyPAIVec[4][12],m_MyPAIVec[4][13])) { returnfalse; } else{ iJiangNum++ ; } } else{ returnfalse; } } if(iJiangNum==1)returntrue; returnfalse; } //检测听 boolCMJ::CheckTING() { //剑牌 for(UINTj = 0 ; j < 9 ;j++ ) { //起牌 AddPai(0,j+1); if(CheckAllPai(MJPAI_GETPAI)) { intiPaiIndex = GetPaiIndex(0,j+1); DelPai(iPaiIndex); returntrue; } else{ intiPaiIndex = GetPaiIndex(0,j+1); DelPai(iPaiIndex); } } //风牌 for(UINTj = 0 ; j < 9 ;j++ ) { //起牌 AddPai(1,j+1); if(CheckAllPai(MJPAI_GETPAI)) { intiPaiIndex = GetPaiIndex(1,j+1); DelPai(iPaiIndex); returntrue; } else{ intiPaiIndex = GetPaiIndex(1,j+1); DelPai(iPaiIndex); } } for(UINTi = 2 ; i < 5 ;i++ ) { for(UINTj = 0 ; j < 9 ;j++ ) { //起牌 AddPai(i,j+1); if(CheckAllPai(MJPAI_GETPAI)) { intiPaiIndex = GetPaiIndex(i,j+1); DelPai(iPaiIndex); returntrue; } else{ intiPaiIndex = GetPaiIndex(i,j+1); DelPai(iPaiIndex); } } } returnfalse; } 关键词:
最新资讯