Red de conocimiento informático - Aprendizaje de código fuente - Código fuente del índice de clasificación

Código fuente del índice de clasificación

# incluir & lttime.h & gt

# 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:

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

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)

{

Continuar;

}

if( vtPlayer[i]._emCardClass == vtPlayer[j]._ emCardClass & amp& amp

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)

{

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"

}