Cambiar proporción del código fuente
# incluir ltiostream gt
# incluir ltstring gt
# incluir ltvector gt
Enum em_CardClass_t p>
{
_CC_hearts = 0, // corazones
_CC_Spade, // picas
_CC_Clubs, // tréboles p>
_CC_Diamonds, // caja
_CC_King //Rey de tamaños
};
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; ilt_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 lt; st_Card_t gt ampvtCard, vector ltst_Card_t gt ampvtPlayer1,
vector ltst_Card_t gt ampvtPlayer2, vector ltst_Card_t gt ampvtPlayer3 )
{
srand((unsigned ) time(null));
for(int I = 0; i lt51; i )
{
int iCard = rand() vt card . size();
Cambiar (i 3)
{
Caso 0:
vt jugador 1. push_back(vt card[ iCard]);
Pausa;
Caso 1:
vt player 2 . push _ back(vt card[iCard]); p>Break;
Valor predeterminado:
vt player 3 . push _ back(vt card[iCard]);
Break;
}
if (iCard!= vtCard.size()-1)
{
tarjeta vt[iCard]= tarjeta vt[tarjeta vt . size()-1];
}
tarjeta vt . pop _ back();
}
}
//Oferta
int oferta(vector lt; st _ Card _ t gt ampvtCard , vector ltst_Card_t gt ampvtPlayer1,
Vector ltst_Card_t gt ampvtPlayer2, vector ltst_Card_t gt ampvtPlayer3)
{
srand((unsigned) time(null));
int I bider = rand() 3 //El postor es el postor original .
Vector ltst _ Card _ t gt* pPlayer = NULL
Cambiar (iBider)
{
Caso 0:
pPlayer = ampvt jugador 1;
Pausa;
Caso 1:
pPlayer = ampvtPlayer2
Pausa; p>
p>
Predeterminado:
pPlayer = ampvtPlayer3
Pausa;
}
for(UINT I = 0; i tarjeta ltvt(); i )
{
pPlayer-gt; /p >
Volver a iBider
}
//La carta completa (ordenada en corazones, espadas, tréboles, diamantes y reyes, el mismo palo es ordenado de pequeño a grande Orden de clasificación)
void SortCard(vector ltst _ Card _ t gt ampvtPlayer)
{
st _ Card _ t tmp p>
for(UINT I = 0; i ltvt player . size()-1; i )
{
for(UINT j = I 1; j ltvt player . tamaño(); 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 amp;sPlayerName,
const vector ltst_Card_t gt ampvtPlayer)
{
cout lt ltsPlayerName lt lt"Tarjeta:" lt ltendl
for(UINT I = 0; i ltvt player . size(); i )
{
cambiar(vtPlayer[i].
_emCardClass)
{
Case_cc_redheart:
cout lt lt"corazón";
Romper;
caso _CC_Spade:
cout lt "pala";
romper;
Case_cc_club:
cout lt lt"Flor de ciruelo"; p>
Break;
Case_CC_Diamond:
cout lt lt"square";
Break;
Valor predeterminado:
cout lt lt《王者》;
Pausa;
}
cout lt ltvtPlayer[i]. _ uCardIndex lt lt" ";
}
cout lt ltendl lt ltendl
}
void main()
{
Vector ltst_Card_t gtvtCard
Vector ltst_Card_t gtvt jugador 1;
Vector ltst_Card_t gtvtPlayer2
Vector ltst_Card_t gtvtPlayer2
Vector ltst_Card_t gtvtCard
gtvtPlayer3
tarjeta de inicio(tarjeta vt);
DealCard(vtCard, vtPlayer1, vtPlayer2, vt player 3);
int iBider = Oferta(vtCard, vtPlayer1 , vtPlayer2, vt jugador 3);
ordenar tarjeta (vt jugador 1);
ordenar tarjeta (vt jugador 2);
ordenar tarjeta (vt jugador); 3);
PrintPlayerCard("Jugador1 ", vt jugador 1
PrintPlayerCard("Jugador2 ", vt jugador 2);
PrintPlayerCard("Jugador3); ",vt player 3);
cout lt lt"El anfitrión es el jugador"
}