Soluciones y Explicación de los problemas ACM ... - ICPC Bolivia
Soluciones y Explicación de los problemas ACM ... - ICPC Bolivia
Soluciones y Explicación de los problemas ACM ... - ICPC Bolivia
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Explicaciones a <strong>los</strong> <strong>problemas</strong> South American Regionals 2008 61<br />
Análisis <strong>de</strong>l Problema L<br />
Problema <strong>de</strong> simulación <strong>de</strong> un juego <strong>de</strong> cartas (similar a UNO), don<strong>de</strong> gana el jugador que se<br />
<strong>de</strong>shace <strong>de</strong> todas sus cartas, en el que con ciertas cartas se pue<strong>de</strong> girar el sentido <strong>de</strong> <strong>los</strong> turnos,<br />
hacerle per<strong>de</strong>r el turno al compañero y/o adicionarle cartas a su mano.<br />
Para el <strong>de</strong>sarrollo <strong>de</strong>l programa, se creó una clase jugador, don<strong>de</strong> se almacenan sus cartas y un<br />
indicador <strong>de</strong> cuántas le quedan.<br />
El programa recrea el juego paso a paso,<br />
Notas para enten<strong>de</strong>r el código:<br />
1. Para simular el mazo <strong>de</strong> cartas, se utilizará una cola.<br />
2. El operador & manda la dirección <strong>de</strong>l objeto en sí, y no una copia<br />
3. pair < int, int > es una clase que almacena dos datos enteros llamados first y second.<br />
4. suit == palo<br />
En esta solución, se usan más funciones <strong>de</strong> las necesarias en favor <strong>de</strong> la comprensión<br />
Programa C que soluciona el problema<br />
#inclu<strong>de</strong> <br />
#inclu<strong>de</strong> <br />
#inclu<strong>de</strong> <br />
#inclu<strong>de</strong> <br />
using namespace std;<br />
queue mazo; //palo,numero<br />
pair actual; //ultima carta en ser <strong>de</strong>scartada<br />
int p,n,m,direccion;<br />
bool perdio_su_turno;<br />
type<strong>de</strong>f struct{ //datos <strong>de</strong> un jugador<br />
int cartas[4][14];<br />
int n_cartas;<br />
}jugador;<br />
int convertir_palo(char c){<br />
if(c==’C’)return 0;<br />
else if(c==’D’)return 1;<br />
else if(c==’H’)return 2;<br />
else return 3;<br />
}