jugador

#include

#include

#include

#include

enum em_CardClass_t

{

_CC_hearts = 0, // Corazones

_CC_Spade, // Picas

_CC_Clubs, // Flores de ciruelo

_CC_Diamonds, // Bloques

_CC_King // Reyes grandes y pequeños

};

struct st_Card_t

{

em_CardClass_t _emCardClass;

UINT _uCardIndex; // Cuando _emCardClass es _CC_King, el valor válido es

// _emCardClass es not_ Cuando CC_King, valores válidos

};

usando el espacio de nombres std;

void InitCard(vector& vtCard)

{

st_Card_t tarjeta;

for( UINT i=0; i<_CC_King; i++ )

{

card._emCardClass = (em_CardClass_t)i;

for( UINT j=1; j<14; j++ )

{

card._uCardIndex = j;

vtCard.push_back(tarjeta);

}

}

card._emCardClass = _CC_King;

card._uCardIndex = 1;

vtCard.push_back(tarjeta);

card._uCardIndex = 2;

vtCard.push_back(tarjeta);

}

//Distribuir tarjetas

void DealCard(vector& vtCard, vector& vtPlayer1,

vector& vtPlayer2, vector& vtPlayer3)

{

srand( (unsigned)time( NULL ) );

for( int i = 0; i < 51 ; i++ )

{

int iCard = rand() % vtCard.size();

cambiar( i % 3 )

{

caso 0:

vtPlayer1.push_back(vtCard[iCard]);

p>

ruptura;

caso 1:

vtPlayer2.push_back(vtCard[iCard]);

ruptura;

predeterminado:

vtPlayer3.push_back(vtCard[iCard]);

descanso;

}

si( iCard != vtCard. tamaño()-1 )

{

vtCard[iCard] = vtCard[vtCard.size()-1];

}

vtCard.pop_back();

}

}

// Oferta

int Oferta(vector & vtCard, vector& vtPlayer1,

vector& vtPlayer2, vector& vtPlayer3)

{

srand ( (unsigned) time( NULL ) );

int iBider = rand() % 3; // El postor, es decir, el propietario

vector* pPlayer = NULL;

cambiar( iBider )

{

caso 0:

pPlayer = &vtPlayer1;

romper ;

caso 1:

pPlayer = &vtPlayer2;

descanso;

valor predeterminado:

pPlayer = &vtPlayer3 ;

descanso;

}

for( UINT i = 0; i < vtCard.size(); i++ )

{

pPlayer->push_back(vtCard[i]);

}

devolver iBider;

}

// Carta completa (ordenada en orden de corazones, espadas, tréboles, diamantes y reyes pequeños, y el mismo palo se ordena de pequeño a grande)

void SortCard(vector & vtPlayer)

{

st_Card_t tmp;

<

p> para( UINT i=0; i

{

para( UINT j=i+1; j

{

if( vtPlayer[i]._emCardClass < vtPlayer[j]._emCardClass )

{

continuar;

}

if( vtPlayer[i]._emCardClass == vtPlayer[j]._emCardClass &&

vtPlayer[i]._uCardIndex < vtPlayer [j]._uCardIndex )

{

continuar;

}

tmp = vtPlayer[i];

vtPlayer[i] = vtPlayer[j];

vtPlayer[j] = tmp;

}

}

}

void PrintPlayerCard(const string& sPlayerName,

const vector& vtPlayer)

{

cout << sPlayerName << " tarjetas:" << endl;

for( UINT i=0; i< vtPlayer.size(); i++ )

{

switch( vtPlayer [i]._emCardClass )

{

caso _CC_hearts:

cout << "Corazones";

descanso;

caso _CC_Spade:

cout << "Spade";

descanso;

caso _CC_Clubs:

cout << "flor de ciruelo";

rotura;

caso _CC_Diamonds:

cout << "cuadrado";

rotura;

predeterminado:

cout << "Rey";

descanso;

}

cout

<< vtPlayer[i]._uCardIndex<< " ";

}

cout << endl << endl;

}

void main()

{

vector vtCard;

vector vtPlayer1;

vector vtPlayer2;

vector vtPlayer3;

InitCard(vtCard);

DealCard(vtCard, vtPlayer1, vtPlayer2, vtPlayer3);

int iBider = Oferta(vtCard, vtPlayer1, vtPlayer2, vtPlayer3);

SortCard(vtPlayer1);

SortCard(vtPlayer2);

SortCard(vtPlayer3) );

PrintPlayerCard("Player1", vtPlayer1);

PrintPlayerCard("Player2", vtPlayer2);

PrintPlayerCard("Player3", vtPlayer3);

cout <<"El arrendador es Player"<< iBider+1 << endl << endl;

}