📄 cardrule.cpp
字号:
if (bFirst)
{
return arCards[0].m_iValue ;
}
size_t bSecond = arCards[1].m_iValue == arCards[2].m_iValue &&
arCards[2].m_iValue == arCards[3].m_iValue &&
arCards[3].m_iValue == arCards[4].m_iValue ;
if (bSecond)
{
return arCards[1].m_iValue ;
}
return 0;
}
//----------------------------------------------------------
// ####**
// **####
// *####*
//----------------------------------------------------------
size_t CCardRule::Is4_2(ArrayCards& arCards)
{
if (arCards.size() != 6)
{
return 0;
}
//! ####**
size_t bFirst = arCards[0].m_iValue == arCards[1].m_iValue &&
arCards[1].m_iValue == arCards[2].m_iValue &&
arCards[2].m_iValue == arCards[3].m_iValue ;
if (bFirst)
{
return arCards[0].m_iValue ;
}
//! **####
size_t bSecond = arCards[2].m_iValue == arCards[3].m_iValue &&
arCards[3].m_iValue == arCards[4].m_iValue &&
arCards[4].m_iValue == arCards[5].m_iValue ;
if (bSecond)
{
return arCards[2].m_iValue ;
}
//! *####*
size_t bThird = arCards[1].m_iValue == arCards[2].m_iValue &&
arCards[2].m_iValue == arCards[3].m_iValue &&
arCards[3].m_iValue == arCards[4].m_iValue ;
if (bThird)
{
return arCards[2].m_iValue ;
}
return 0;
}
//----------------------------------------------------------
// ###***
//----------------------------------------------------------
size_t CCardRule::Is6_0(ArrayCards& arCards)
{
if (arCards.size() != 6)
{
return 0;
}
bool bFirst = arCards[0].m_iValue == arCards[1].m_iValue &&
arCards[1].m_iValue == arCards[2].m_iValue &&
arCards[3].m_iValue == arCards[4].m_iValue &&
arCards[4].m_iValue == arCards[5].m_iValue &&
arCards[3].m_iValue - arCards[0].m_iValue ==1;
if (bFirst)
{
return arCards[0].m_iValue;
}
return 0;
}
//----------------------------------------------------------
// ###***$$
// $$###***
// ###$$***
// $###***$
// ###$***$
// $###$***
//----------------------------------------------------------
size_t CCardRule::Is6_2(ArrayCards& arCards)
{
if (arCards.size() != 8)
{
return 0;
}
//###&&&**
bool bOK = arCards[0].m_iValue == arCards[1].m_iValue&&
arCards[1].m_iValue == arCards[2].m_iValue&&
arCards[3].m_iValue == arCards[4].m_iValue&&
arCards[4].m_iValue == arCards[5].m_iValue&&
arCards[3].m_iValue - arCards[0].m_iValue ==1;
if (bOK)
{
return arCards[0].m_iValue;
}
//**###&&&
bOK = arCards[2].m_iValue == arCards[3].m_iValue&&
arCards[3].m_iValue == arCards[4].m_iValue&&
arCards[5].m_iValue == arCards[6].m_iValue&&
arCards[6].m_iValue == arCards[7].m_iValue&&
arCards[5].m_iValue - arCards[2].m_iValue ==1;
if (bOK)
{
return arCards[2].m_iValue;
}
////###**&&&
//bOK = arCards[0].m_iValue == arCards[1].m_iValue&&
// arCards[1].m_iValue == arCards[2].m_iValue&&
// arCards[5].m_iValue == arCards[6].m_iValue&&
// arCards[6].m_iValue == arCards[7].m_iValue&&
// arCards[5].m_iValue - arCards[0].m_iValue ==1;
//if (bOK)
//{
// return arCards[0].m_iValue;
//}
//*###*&&&
//bOK = arCards[1].m_iValue == arCards[2].m_iValue&&
// arCards[2].m_iValue == arCards[3].m_iValue&&
// arCards[5].m_iValue == arCards[6].m_iValue&&
// arCards[6].m_iValue == arCards[7].m_iValue&&
// arCards[5].m_iValue - arCards[1].m_iValue ==1;
//if (bOK)
//{
// return arCards[1].m_iValue;
//}
//###*&&&*
//bOK = arCards[0].m_iValue == arCards[1].m_iValue&&
// arCards[1].m_iValue == arCards[2].m_iValue&&
// arCards[4].m_iValue == arCards[5].m_iValue&&
// arCards[5].m_iValue == arCards[6].m_iValue&&
// arCards[4].m_iValue - arCards[0].m_iValue ==1;
//if (bOK)
//{
// return arCards[0].m_iValue;
//}
//*###&&&*
bOK = arCards[1].m_iValue == arCards[2].m_iValue&&
arCards[2].m_iValue == arCards[3].m_iValue&&
arCards[4].m_iValue == arCards[5].m_iValue&&
arCards[5].m_iValue == arCards[6].m_iValue&&
arCards[4].m_iValue - arCards[1].m_iValue ==1;
if (bOK)
{
return arCards[1].m_iValue;
}
return 0;
}
//----------------------------------------------------------
// ###***$$
// $$###***
// $###***$
//----------------------------------------------------------
size_t CCardRule::Is6_4(ArrayCards& arCards)
{
if (arCards.size() != 10)
{
return 0;
}
// ###***$$
bool bOK = arCards[0].m_iValue == arCards[1].m_iValue&&
arCards[1].m_iValue == arCards[2].m_iValue&&
arCards[3].m_iValue == arCards[4].m_iValue&&
arCards[4].m_iValue == arCards[5].m_iValue&&
arCards[6].m_iValue == arCards[7].m_iValue&&
arCards[8].m_iValue == arCards[9].m_iValue&&
arCards[3].m_iValue - arCards[0].m_iValue ==1;
if (bOK)
{
return arCards[0].m_iValue;
}
// $$###***
bOK = arCards[0].m_iValue == arCards[1].m_iValue&&
arCards[2].m_iValue == arCards[3].m_iValue&&
arCards[4].m_iValue == arCards[5].m_iValue&&
arCards[5].m_iValue == arCards[6].m_iValue&&
arCards[7].m_iValue == arCards[8].m_iValue&&
arCards[8].m_iValue == arCards[9].m_iValue&&
arCards[7].m_iValue - arCards[4].m_iValue ==1;
if (bOK)
{
return arCards[4].m_iValue;
}
// $###***$
bOK = arCards[0].m_iValue == arCards[1].m_iValue&&
arCards[2].m_iValue == arCards[3].m_iValue&&
arCards[3].m_iValue == arCards[4].m_iValue&&
arCards[5].m_iValue == arCards[6].m_iValue&&
arCards[6].m_iValue == arCards[7].m_iValue&&
arCards[8].m_iValue == arCards[9].m_iValue&&
arCards[5].m_iValue - arCards[2].m_iValue ==1;
if (bOK)
{
return arCards[2].m_iValue;
}
return 0;
}
size_t CCardRule::IsPair(ArrayCards& arCards)
{
//! 特殊情况
if ( arCards.size() == 2 && arCards[0].m_iValue == arCards[1].m_iValue)
{
return arCards[0].m_iValue;
}
return 0;
}
size_t CCardRule::IsPairList(ArrayCards& arCards)
{
if (!(arCards.size() >=6 && arCards.size()%2 == 0))
{
return 0;
}
for (size_t i = 0 ; i < arCards.size()-2 ;i += 2)
{
if ((arCards[i+2].m_iValue - arCards[i].m_iValue)!= 1 || arCards[i].m_iValue != arCards[i+1].m_iValue)
{
return 0;
}
}
return arCards[0].m_iValue;
}
size_t CCardRule::IsList(ArrayCards& arCards)
{
if (!(arCards.size()>=5 && arCards.size()<=12))
{
return 0;
}
for (size_t i = 0 ;i < arCards.size() -1; ++ i)
{
if (arCards[i+1].m_iValue - arCards[i].m_iValue != 1)
{
return 0;
}
}
return arCards[0].m_iValue;
}
//
size_t CCardRule::IsBomb(ArrayCards& arCards)
{
if (!(arCards.size() == 4 || arCards.size()==2))
{
return 0;
}
if (arCards.size() ==4)
{
bool bFirst = arCards[0].m_iValue == arCards[1].m_iValue &&
arCards[1].m_iValue == arCards[2].m_iValue &&
arCards[2].m_iValue == arCards[3].m_iValue ;
if(bFirst)
{
return arCards[0].m_iValue;
}
}
if (arCards.size() == 2)
{
bool bFirst = arCards[0].m_iIndex == 52 &&
arCards[1].m_iIndex == 53;
if(bFirst)
{
return arCards[0].m_iIndex;
}
}
return 0;
}
size_t CCardRule::Is9_0(ArrayCards& arCards)
{
if (arCards.size() != 9)
{
return 0;
}
bool bOK = arCards[0].m_iValue == arCards[1].m_iValue&&
arCards[1].m_iValue == arCards[2].m_iValue&&
arCards[3].m_iValue == arCards[4].m_iValue&&
arCards[4].m_iValue == arCards[5].m_iValue&&
arCards[6].m_iValue == arCards[7].m_iValue&&
arCards[7].m_iValue == arCards[8].m_iValue&&
arCards[3].m_iValue - arCards[0].m_iValue == 1&&
arCards[6].m_iValue - arCards[0].m_iValue == 2;
if (bOK)
{
return arCards[0].m_iValue;
}
return 0;
}
//###&&&***123
//1###&&&***23
//12###&&&***3
//123###&&&***
size_t CCardRule::Is9_3(ArrayCards& arCards)
{
if (arCards.size() != 12)
{
return 0;
}
//###&&&***123
bool bOK = arCards[0].m_iValue == arCards[1].m_iValue&&
arCards[1].m_iValue == arCards[2].m_iValue&&
arCards[3].m_iValue == arCards[4].m_iValue&&
arCards[4].m_iValue == arCards[5].m_iValue&&
arCards[6].m_iValue == arCards[7].m_iValue&&
arCards[7].m_iValue == arCards[8].m_iValue&&
arCards[5].m_iValue - arCards[0].m_iValue == 1&&
arCards[8].m_iValue - arCards[0].m_iValue == 2;
if (bOK)
{
return arCards[0].m_iValue;
}
//1###&&&***23
bOK =arCards[1].m_iValue == arCards[2].m_iValue&&
arCards[2].m_iValue == arCards[3].m_iValue&&
arCards[4].m_iValue == arCards[5].m_iValue&&
arCards[5].m_iValue == arCards[6].m_iValue&&
arCards[7].m_iValue == arCards[8].m_iValue&&
arCards[8].m_iValue == arCards[9].m_iValue&&
arCards[6].m_iValue - arCards[1].m_iValue == 1&&
arCards[9].m_iValue - arCards[1].m_iValue == 2;
if (bOK)
{
return arCards[1].m_iValue;
}
//12###&&&***3
bOK = bOK = arCards[2].m_iValue == arCards[3].m_iValue&&
arCards[3].m_iValue == arCards[4].m_iValue&&
arCards[5].m_iValue == arCards[6].m_iValue&&
arCards[6].m_iValue == arCards[7].m_iValue&&
arCards[8].m_iValue == arCards[9].m_iValue&&
arCards[9].m_iValue == arCards[10].m_iValue&&
arCards[7].m_iValue - arCards[2].m_iValue == 1&&
arCards[10].m_iValue - arCards[2].m_iValue == 2;
if (bOK)
{
return arCards[2].m_iValue;
}
//123###&&&***
bOK = arCards[3].m_iValue == arCards[4].m_iValue&&
arCards[4].m_iValue == arCards[5].m_iValue&&
arCards[6].m_iValue == arCards[7].m_iValue&&
arCards[7].m_iValue == arCards[8].m_iValue&&
arCards[9].m_iValue == arCards[10].m_iValue&&
arCards[10].m_iValue == arCards[11].m_iValue&&
arCards[8].m_iValue - arCards[3].m_iValue == 1&&
arCards[11].m_iValue - arCards[3].m_iValue == 2;
if (bOK)
{
return arCards[3].m_iValue;
}
return 0;
}
size_t CCardRule::Is9_6(ArrayCards& arCards)
{
if (arCards.size() != 15)
{
return 0;
}
//###&&&***112233
bool bOK = arCards[0].m_iValue == arCards[1].m_iValue&&
arCards[1].m_iValue == arCards[2].m_iValue&&
arCards[3].m_iValue == arCards[4].m_iValue&&
arCards[4].m_iValue == arCards[5].m_iValue&&
arCards[6].m_iValue == arCards[7].m_iValue&&
arCards[7].m_iValue == arCards[8].m_iValue&&
arCards[9].m_iValue == arCards[10].m_iValue&&
arCards[11].m_iValue == arCards[12].m_iValue&&
arCards[13].m_iValue == arCards[14].m_iValue&&
arCards[5].m_iValue - arCards[0].m_iValue == 1&&
arCards[8].m_iValue - arCards[0].m_iValue == 2;
if (bOK)
{
return arCards[0].m_iValue;
}
//###&&&***112234 带双王的
bOK = arCards[0].m_iValue == arCards[1].m_iValue&&
arCards[1].m_iValue == arCards[2].m_iValue&&
arCards[3].m_iValue == arCards[4].m_iValue&&
arCards[4].m_iValue == arCards[5].m_iValue&&
arCards[6].m_iValue == arCards[7].m_iValue&&
arCards[7].m_iValue == arCards[8].m_iValue&&
arCards[9].m_iValue == arCards[10].m_iValue&&
arCards[11].m_iValue == arCards[12].m_iValue&&
arCards[5].m_iValue - arCards[0].m_iValue == 1&&
arCards[8].m_iValue - arCards[0].m_iValue == 2;
if (bOK)
{
return arCards[0].m_iValue;
}
//11###&&&***2233
bOK = arCards[2].m_iValue == arCards[3].m_iValue&&
arCards[3].m_iValue == arCards[4].m_iValue&&
arCards[5].m_iValue == arCards[6].m_iValue&&
arCards[6].m_iValue == arCards[7].m_iValue&&
arCards[8].m_iValue == arCards[9].m_iValue&&
arCards[9].m_iValue == arCards[10].m_iValue&&
arCards[0].m_iValue == arCards[1].m_iValue&&
arCards[11].m_iValue == arCards[12].m_iValue&&
arCards[13].m_iValue == arCards[14].m_iValue&&
arCards[7].m_iValue - arCards[2].m_iValue == 1&&
arCards[10].m_iValue - arCards[2].m_iValue == 2;
if (bOK)
{
return arCards[2].m_iValue;
}
//1122###&&&***33
bOK = arCards[4].m_iValue == arCards[5].m_iValue&&
arCards[4].m_iValue == arCards[6].m_iValue&&
arCards[7].m_iValue == arCards[8].m_iValue&&
arCards[8].m_iValue == arCards[9].m_iValue&&
arCards[10].m_iValue == arCards[11].m_iValue&&
arCards[11].m_iValue == arCards[12].m_iValue&&
arCards[0].m_iValue == arCards[1].m_iValue&&
arCards[2].m_iValue == arCards[3].m_iValue&&
arCards[13].m_iValue == arCards[14].m_iValue&&
arCards[9].m_iValue - arCards[4].m_iValue == 1&&
arCards[12].m_iValue - arCards[4].m_iValue == 2;
if (bOK)
{
return arCards[4].m_iValue;
}
//112233###&&&***
bOK = arCards[6].m_iValue == arCards[7].m_iValue&&
arCards[7].m_iValue == arCards[8].m_iValue&&
arCards[9].m_iValue == arCards[10].m_iValue&&
arCards[10].m_iValue == arCards[11].m_iValue&&
arCards[12].m_iValue == arCards[13].m_iValue&&
arCards[13].m_iValue == arCards[14].m_iValue&&
arCards[0].m_iValue == arCards[1].m_iValue&&
arCards[2].m_iValue == arCards[3].m_iValue&&
arCards[4].m_iValue == arCards[5].m_iValue&&
arCards[11].m_iValue - arCards[6].m_iValue == 1&&
arCards[14].m_iValue - arCards[6].m_iValue == 2;
if (bOK)
{
return arCards[6].m_iValue;
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -