Código fuente del índice de clasificación
# incluir & ltiostream & gt
# incluir & ltstring& gt
# incluir & ltvector & gt
Enum em_CardClass_t
{
_CC_hearts = 0, // corazones
_CC_Spade, // picas
_CC_Clubs, // club
_CC_Diamonds, //box
_CC_King //King of talles
};
Estructura st_ Card_t
{
em _ CardClass _ t _ emCardClass
UINT _ uCardIndex// _emCardClass es _CC_King, que es un valor válido.
// _emCardClass no es _CC_King, el valor válido es [1, 13].
};
Usar espacio de nombres std
void InitCard(vector & lt;st _ Card _ t & gt& ampvtCard)
{
st_Card_tcard;
for(UINT I = 0;i<_CC_Kingi++)
{
Tarjeta. _ clase de tarjeta em =(em _ clase de tarjeta _ t)I;
for(UINT j = 1; j & lt14;j++)
{
Tarjeta. _ uCardIndex = j;
vt tarjeta . push _ back(tarjeta);
}
}
Tarjeta. _ emCardClass = _ CC _ Rey
Tarjeta. _ uCardIndex = 1;
tarjeta vt . push _ back(tarjeta
Tarjeta.
_ uCardIndex = 2;
vt card . push _ back(card);
}
//Distribuir tarjetas
nulo trato; card(vector<st_Card_t>&vtCard,vector<st_Card_t<st&vtPlayer1,
vector<st_Card_t>&vtPlayer2,vector<st_Card_ t & gt& amp reproductor virtual 3)
{
srand((unsigned) time(null) );
for(int I = 0; i<51;i++)
{
int iCard = rand()% vt card size();
cambiar(i % 3)
p>{
Caso 0:
vt jugador 1 . iCard]);
Rotura;
Caso 1:
vt player 2. push _ back(vt card[iCard]);
Break;
Valor predeterminado: p>
vt player 3. push_back(vt card[iCard]);
break;
}
if (iCard!= vtCard .size()-1)
{
tarjeta vt[iCard]= tarjeta vt[tamaño de tarjeta vt(. )-1];
}
vt tarjeta pop_back();
}
}
//Oferta
int oferta (vector<st_Card_t>&vtCard,vector<st_Card_t>&vtPlayer1,
vector<st_Card_t>&vtPlayer2,vector<st_Card_t & gt& amp reproductor virtual 3)
{
srand ((unsigned) time(null));
int I bider = rand()% 3 //El postor es el propietario.
Vector & ltst_Card_t>* pPlayer = NULL
Cambiar (iBider)
{
Caso 0:
pPlayer = & ampvt jugador 1
Pausa
Caso 1:
pPlayer = & ampvtPlayer2
Break;
Valor predeterminado:
pPlayer = & ampvtPlayer3
Break;
}
for(UINT I = 0;i<vt tarjeta . tamaño();i++)
{
pPlayer->push_back(vt tarjeta[I]);
}
Volver a iBider
}
//La carta completa (ordenada en corazones, espadas, tréboles, diamantes y reyes. El mismo palo es ordenados de pequeño a grande)
void SortCard(vector & ltst _ Card _ t & gt& ampvtPlayer)
{
st _ Card _ t tmp p>
for(UINT I = 0;i<vt player . size()-1;i++)
{
for(UINT j = I +1; j & ltvt tamaño del reproductor(); j++)
{
if( vtPlayer[i]._ emCardClass & ltvtPlayer[j]._emCardClass)
{ p>
Continuar;
}
if( vtPlayer[i]._emCardClass == vtPlayer[j]._ emCardClass & amp& amp p>
vtPlayer [i]._uCardIndex & ltvtPlayer[j]. _uCardIndex)
{
Continuar;
}
tmp = vt player[ I];
vt player[I]= vt player[j];
vt player[j]= tmp;
}
}
}
void PrintPlayerCard(const string & sPlayerName,
const vector <st_Card_t & gt& ampvtPlayer)
{ p>
cout & lt& ltsPlayerName & lt& lt"Tarjeta:" & lt& ltendl
for(UINT I = 0;i<vt player . size(); i++)
{
Cambiar(vtPlayer[i].
_emCardClass)
{
Caso_cc_heart:
cout & lt& lt"corazón";
Rotura;
p>
caso _CC_Spade:
cout & lt& lt"spade";
romper;
case_cc_club:
cout & lt& lt"Flor de ciruelo";
Romper;
Case_CC_Diamond:
cout & lt& lt"cuadrado";
Romper;
Valor predeterminado:
cout & lt& lt《王者》;
Pausa;
}
cout & lt& ltvtPlayer[i]. _ uCardIndex & lt& lt" ";
}
cout & lt& ltendl & lt& ltendl
}
void main()
{
Vector & ltst_Card_t>vtCard
Vector & ltst_Card_t>vt jugador 1;
Vector & ltst _ Card _ t & gtvtPlayer2
Vector & ltst _ Card _ t & gtvtPlayer3
tarjeta de inicio(tarjeta vt);
DealCard(vtCard, vtPlayer1 , vtPlayer2, vt player 3);
int iBider = Bid(vtCard, vtPlayer1, vtPlayer2, vt player 3);
ordenar tarjeta(vt player 1);
ordenar tarjeta(vt jugador 2);
ordenar tarjeta(vt jugador 3);
PrintPlayerCard("Player1 ",vt jugador 1);
PrintPlayerCard("Player2 ", vt player 2);
PrintPlayerCard("Player3 ", vt player 3);
cout & lt& lt"El cartel original es el jugador"
}