⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cardrule.cpp

📁 无聊的时候编写的
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	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 + -