14.01.2013 Views

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

SHOW MORE
SHOW LESS

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 />

}

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!