?? playing_cards.cpp
字號:
{
m_cDiscardingType.m_nTypeNum = 4;
m_cDiscardingType.m_nTypeValue = 16;
m_nDiscardingCounter = 2;
m_cDiscarding[0] = m_cCards[3];
m_cDiscarding[1] = m_cCards[4];
m_cCards[3] = m_cBLANK_CARD;
m_cCards[4] = m_cBLANK_CARD;
m_nCardsTable[16] = 0;
return 1;
}
//雙王加四張
if( (m_nCardsTable[16] == 2) && ((m_nCardsCounter == 6) && (counter_4 == 1)) )
{
m_cDiscardingType.m_nTypeNum = 4;
m_cDiscardingType.m_nTypeValue = 16;
m_nDiscardingCounter = 2;
m_cDiscarding[0] = m_cCards[4];
m_cDiscarding[1] = m_cCards[5];
m_cCards[4] = m_cBLANK_CARD;
m_cCards[5] = m_cBLANK_CARD;
m_nCardsTable[16] = 0;
return 1;
}
//雙王加31
if( (m_nCardsTable[16] == 2) &&
((m_nCardsCounter == 6) && (counter_3 == 1)) )
{
m_cDiscardingType.m_nTypeNum = 4;
m_cDiscardingType.m_nTypeValue = 16;
m_nDiscardingCounter = 2;
m_cDiscarding[0] = m_cCards[4];
m_cDiscarding[1] = m_cCards[5];
m_cCards[4] = m_cBLANK_CARD;
m_cCards[5] = m_cBLANK_CARD;
m_nCardsTable[16] = 0;
return 1;
}
//雙王加32
if( (m_nCardsTable[16] == 2) &&
((m_nCardsCounter == 7) && (counter_3 == 1 && counter_2 == 1)) )
{
m_cDiscardingType.m_nTypeNum = 4;
m_cDiscardingType.m_nTypeValue = 16;
m_nDiscardingCounter = 2;
m_cDiscarding[0] = m_cCards[5];
m_cDiscarding[1] = m_cCards[6];
m_cCards[5] = m_cBLANK_CARD;
m_cCards[6] = m_cBLANK_CARD;
m_nCardsTable[16] = 0;
return 1;
}
//雙王加42
if( (m_nCardsTable[16] == 2) &&
((m_nCardsCounter == 8) && (counter_4 == 1 && counter_1 == 2)) )
{
m_cDiscardingType.m_nTypeNum = 4;
m_cDiscardingType.m_nTypeValue = 16;
m_nDiscardingCounter = 2;
m_cDiscarding[0] = m_cCards[6];
m_cDiscarding[1] = m_cCards[7];
m_cCards[6] = m_cBLANK_CARD;
m_cCards[7] = m_cBLANK_CARD;
m_nCardsTable[16] = 0;
return 1;
}
return 0;
}
//尋找單牌出;
int CPlayingCards::Search1(CCardsType& Cards_Type)
{
if( AI_Patch1() )
{
return 1;
}
int i,j;
int counter_0 = 0;
int counter_1 = 0;
int counter_2 = 0;
int counter_3 = 0;
int counter_4 = 0;
//掃描未出牌表;
for(i=3;i<15;i++)
{
switch(m_nCardsTable[i])
{
case 0:
counter_0++;
break;
case 1:
counter_1++;
break;
case 2:
counter_2++;
break;
case 3:
counter_3++;
break;
case 4:
counter_4++;
break;
}
}
//補丁:
if( Cards_Type.m_nTypeValue == 16 && counter_1 > 3 )
{
return 0;
}
if( m_nCardsTable[16] == 1
&& m_cCards[m_nCardsCounter - 1].m_nColor == 1
&& Cards_Type.m_nTypeValue == 16 ) //大王,可以出;
{
m_cDiscardingType.m_nTypeNum = 1;
m_cDiscardingType.m_nTypeValue = 16;
m_nDiscardingCounter++;
m_cDiscarding[0] = m_cCards[m_nCardsCounter - 1];
m_cCards[m_nCardsCounter - 1] = m_cBLANK_CARD;
m_nCardsTable[16] = 0;
return 1;
}
//
for(i=Cards_Type.m_nTypeValue+1;i<=16;i++)
{
if( m_nCardsTable[i] == 1)
{
m_cDiscardingType.m_nTypeNum = 1;
m_cDiscardingType.m_nTypeValue = i;
for(j=0;j<m_nCardsCounter;j++)
{
if( m_cCards[j].m_nValue == i )
{
m_nDiscardingCounter++;
m_cDiscarding[0] = m_cCards[j];
m_cCards[j] = m_cBLANK_CARD;
m_nCardsTable[i] = 0;
return 1;
}
}//end for~~
}//end if~
} //end for~
//撤兩張的;
for(i=16;i>=Cards_Type.m_nTypeValue+1;i--)
{
if( m_nCardsTable[i] == 2 )
{
m_cDiscardingType.m_nTypeNum = 1;
m_cDiscardingType.m_nTypeValue = i;
for(j=0;j<m_nCardsCounter;j++)
{
if( m_cCards[j].m_nValue == i )
{
m_nDiscardingCounter++;
m_cDiscarding[0] = m_cCards[j];
m_cCards[j] = m_cBLANK_CARD;
m_nCardsTable[i]--; //應該等于1;
return 1;
}
}//end for~~
}//end if~
} //end for~
//撤三張的;
for(i=15;i>=Cards_Type.m_nTypeValue+1;i--)
{
if( m_nCardsTable[i] == 3 )
{
m_cDiscardingType.m_nTypeNum = 1;
m_cDiscardingType.m_nTypeValue = i;
for(j=0;j<m_nCardsCounter;j++)
{
if( m_cCards[j].m_nValue == i )
{
m_nDiscardingCounter++;
m_cDiscarding[0] = m_cCards[j];
m_cCards[j] = m_cBLANK_CARD;
m_nCardsTable[i]--; //應該等于1;
return 1;
}
}//end for~~
}//end if~
} //end for~
return 0;
}
//尋找對牌出;
int CPlayingCards::Search2(CCardsType& Cards_Type)
{
if( AI_Patch1() )
{
return 1;
}
int i,j;
for(i=Cards_Type.m_nTypeValue+1;i<16;i++)
{
if( m_nCardsTable[i] == 2 )
{
m_cDiscardingType.m_nTypeNum = 2;
m_cDiscardingType.m_nTypeValue = i;
for(j=0;j<m_nCardsCounter;j++)
{
if( m_cCards[j].m_nValue == i )
{
m_nDiscardingCounter += 2;
m_cDiscarding[0] = m_cCards[j];
m_cDiscarding[1] = m_cCards[j + 1];
m_cCards[j] = m_cBLANK_CARD;
m_cCards[j + 1] = m_cBLANK_CARD;
m_nCardsTable[i] = 0;
return 1;
}
}//end for~~
}//end if~
} //end for~
//撤三張的;
if( Cards_Type.m_nTypeValue >= 12 ) //如果是比較大的牌,才考慮拆牌,而且2不會拆;
{
for(i=14;i>=Cards_Type.m_nTypeValue+1;i--)
{
if( m_nCardsTable[i] == 3 )
{
m_cDiscardingType.m_nTypeNum = 2;
m_cDiscardingType.m_nTypeValue = i;
for(j=0;j<m_nCardsCounter;j++)
{
if( m_cCards[j].m_nValue == i )
{
m_nDiscardingCounter += 2;
m_cDiscarding[0] = m_cCards[j];
m_cDiscarding[1] = m_cCards[j + 1];
m_cCards[j] = m_cBLANK_CARD;
m_cCards[j + 1] = m_cBLANK_CARD;
m_nCardsTable[i] -= 2; //應該等于1;
return 1;
}
}//end for~~
}//end if~
} //end for~
}
return 0;
}
//尋找三牌出;
int CPlayingCards::Search3(CCardsType& Cards_Type)
{
if( AI_Patch1() )
{
return 1;
}
//三張;
int i,j;
for(i=Cards_Type.m_nTypeValue+1;i<16;i++)
{
if( m_nCardsTable[i] == 3)
{
m_cDiscardingType.m_nTypeNum = 3;
m_cDiscardingType.m_nTypeValue = i;
for(j=0;j<m_nCardsCounter;j++)
{
if( m_cCards[j].m_nValue == i )
{
m_nDiscardingCounter += 3;
m_cDiscarding[0] = m_cCards[j];
m_cDiscarding[1] = m_cCards[j + 1];
m_cDiscarding[2] = m_cCards[j + 2];
m_cCards[j + 0] = m_cBLANK_CARD;
m_cCards[j + 1] = m_cBLANK_CARD;
m_cCards[j + 2] = m_cBLANK_CARD;
m_nCardsTable[i] = 0;
return 1;
}
}//end for~~
}//end if~
} //end for~
return 0;
}
//尋找炸彈出;
int CPlayingCards::SearchBomb(CCardsType& Cards_Type)
{
if( AI_Patch1() )
{
return 1;
}
//四張;
//注意加分!!!;
int i,j;
for(i=Cards_Type.m_nTypeValue+1;i<16;i++)
{
if( m_nCardsTable[i] == 4 )
{
m_cDiscardingType.m_nTypeNum = 4;
m_cDiscardingType.m_nTypeValue = i;
for(j=0;j<m_nCardsCounter;j++)
{
if( m_cCards[j].m_nValue == i )
{
m_nDiscardingCounter += 4;
m_cDiscarding[0] = m_cCards[j];
m_cDiscarding[1] = m_cCards[j + 1];
m_cDiscarding[2] = m_cCards[j + 2];
m_cDiscarding[3] = m_cCards[j + 3];
m_cCards[j + 0] = m_cBLANK_CARD;
m_cCards[j + 1] = m_cBLANK_CARD;
m_cCards[j + 2] = m_cBLANK_CARD;
m_cCards[j + 3] = m_cBLANK_CARD;
m_nCardsTable[i] = 0;
return 1;
}
}//end for~~
}//end if~
} //end for~
return 0;
}
//尋找三帶2出;
int CPlayingCards::Search31(CCardsType& Cards_Type)
{
if( AI_Patch1() )
{
return 1;
}
//三張;
int i,j,k;
//補丁
int nMax = 15;
if( m_nCardsCounter <= 5 )
{
nMax = 16;
}
for(i=Cards_Type.m_nTypeValue+1;i<nMax;i++) //三張2一般不出;
{
if( m_nCardsTable[i] == 3 )
{
for(j=3;j<=15;j++)
{
if( m_nCardsTable[j] == 1 )
{
m_cDiscardingType.m_nTypeNum = 31;
m_cDiscardingType.m_nTypeValue = i;
m_nDiscardingCounter = 4;
//三張的;
for(k=0;k<m_nCardsCounter;k++)
{
if( m_cCards[k].m_nValue == i )
{
m_cDiscarding[0] = m_cCards[k];
m_cDiscarding[1] = m_cCards[k + 1];
m_cDiscarding[2] = m_cCards[k + 2];
m_cCards[k + 0] = m_cBLANK_CARD;
m_cCards[k + 1] = m_cBLANK_CARD;
m_cCards[k + 2] = m_cBLANK_CARD;
m_nCardsTable[i] = 0;
}
}//end for~~
//單張的;
for(k=0;k<m_nCardsCounter;k++)
{
if( m_cCards[k].m_nValue == j )
{
m_cDiscarding[3] = m_cCards[k];
m_cCards[k] = m_cBLANK_CARD;
m_nCardsTable[j] = 0;
return 1;
}
}//end for~~
}//end if~
} //end for~
return 0;
}//end if~
} //end for~
return 0;
}
//尋找三帶2出;
int CPlayingCards::Search32(CCardsType& Cards_Type)
{
if( AI_Patch1() )
{
return 1;
}
//三張;
int i,j,k;
int nMax = 15;
if( m_nCardsCounter <= 6 )
{
nMax = 16;
}
for(i=Cards_Type.m_nTypeValue+1;i<nMax;i++) //三張2一般不出;
{
if( m_nCardsTable[i] == 3 )
{
for(j=3; j<=14; j++)
{
if( m_nCardsTable[j] == 2 )
{
m_cDiscardingType.m_nTypeNum = 32;
m_cDiscardingType.m_nTypeValue = i;
m_nDiscardingCounter = 5;
//三張的;
for(k=0;k<m_nCardsCounter;k++)
{
if( m_cCards[k].m_nValue == i )
{
m_cDiscarding[0] = m_cCards[k];
m_cDiscarding[1] = m_cCards[k + 1];
m_cDiscarding[2] = m_cCards[k + 2];
m_cCards[k + 0] = m_cBLANK_CARD;
m_cCards[k + 1] = m_cBLANK_CARD;
m_cCards[k + 2] = m_cBLANK_CARD;
m_nCardsTable[i] = 0;
}
}//end for~~
//單張的;
for(k=0; k<m_nCardsCounter; k++)
{
if( m_cCards[k].m_nValue == j )
{
m_cDiscarding[3] = m_cCards[k];
m_cDiscarding[4] = m_cCards[k + 1];
m_cCards[k + 0] = m_cBLANK_CARD;
m_cCards[k + 1] = m_cBLANK_CARD;
m_nCardsTable[j] = 0;
return 1;
}
}//end for~~
}//end if~
} //end for~
return 0;
}//end if~
} //end for~
return 0;
}
//尋找四帶2單;
int CPlayingCards::Search411(CCardsType& Cards_Type)
{
if( AI_Patch1() )
{
return 1;
}
//四張;
int i,j,k,l;
for(i=Cards_Type.m_nTypeValue+1;i<16;i++)
{
if( m_nCardsTable[i] == 4)
{
for(j=3; j<=14; j++)
{
if( m_nCardsTable[j] == 1 )
{
//掃描第二張單牌;
for(k=j+1;k<=14;k++)
{
if( m_nCardsTable[k] == 1 )
{
m_cDiscardingType.m_nTypeNum = 411;
m_cDiscardingType.m_nTypeValue = i;
m_nDiscardingCounter = 6;
for(l=0;l<m_nCardsCounter;l++)
{
if( m_cCards[l].m_nValue == i )
{
m_cDiscarding[0] = m_cCards[l];
m_cDiscarding[1] = m_cCards[l + 1];
m_cDiscarding[2] = m_cCards[l + 2];
m_cDiscarding[3] = m_cCards[l + 3];
m_cCards[l + 0] = m_cBLANK_CARD;
m_cCards[l + 1] = m_cBLANK_CARD;
m_cCards[l + 2] = m_cBLANK_CARD;
m_cCards[l + 3] = m_cBLANK_CARD;
m_nCardsTable[i] = 0;
}
}//end for~~
for(l=0;l<m_nCardsCounter;l++)
{
if( m_cCards[l].m_nValue == j )
{
m_cDiscarding[4] = m_cCards[l];
m_cCards[l] = m_cBLANK_CARD;
m_nCardsTable[j] = 0;
}
}//end for~~
for(l=0;l<m_nCardsCounter;l++)
{
if( m_cCards[l].m_nValue == k )
{
m_cDiscarding[5] = m_cCards[l];
m_cCards[l] = m_cBLANK_CARD;
m_nCardsTable[k] = 0;
}
}
return 1;
}//end if~
} //end for~
return 0;
}//end if~
} //end for~
return 0;
}
}
return 0;
}
//尋找四帶兩對;
int CPlayingCards::Search422(CCardsType& Cards_Type)
{
if( AI_Patch1() )
{
return 1;
}
//四張;
int i,j,k,l;
for(i=Cards_Type.m_nTypeValue+1;i<16;i++)
{
if( m_nCardsTable[i] == 4 )
{
for(j=3;j<=14;j++)
{
if( m_nCardsTable[j] == 2 )
{
//掃描第二張單牌;
for(k=j+1;k<=14;k++)
{
if( m_nCardsTable[k] == 2 )
{
m_cDiscardingType.m_nTypeNum = 422;
m_cDiscardingType.m_nTypeValue = i;
m_nDiscardingCounter = 8;
for(l=0;l<m_nCardsCounter;l++)
{
if( m_cCards[l].m_nValue == i )
{
m_cDiscarding[0] = m_cCards[l];
m_cDiscarding[1] = m_cCards[l + 1];
m_cDiscarding[2] = m_cCards[l + 2];
m_cDiscarding[3] = m_cCards[l + 3];
m_cCards[l + 0] = m_cBLANK_CARD;
m_cCards[l + 1] = m_cBLANK_CARD;
m_cCards[l + 2] = m_cBLANK_CARD;
m_cCards[l + 3] = m_cBLANK_CARD;
m_nCardsTable[i] = 0;
}
}//end for~~
for(l=0;l<m_nCardsCounter;l++)
{
if( m_cCards[l].m_nValue == j )
{
m_cDiscarding[4] = m_cCards[l];
m_cDiscarding[5] = m_cCards[l + 1];
m_cCards[l + 0] = m_cBLANK_CARD;
m_cCards[l + 1] = m_cBLANK_CARD;
m_nCardsTable[j] = 0;
}
}//end for~~
for(l=0;l<m_nCardsCounter;l++)
{
if( m_cCards[l].m_nValue == k )
{
m_cDiscarding[6] = m_cCards[l];
m_cDiscarding[7] = m_cCards[l + 1];
m_cCards[l + 0] = m_cBLANK_CARD;
m_cCards[l + 1] = m_cBLANK_CARD;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -