Trimestre 2012 Invierno
Entrega: 23 de marzo de 2012 a las 22:00.
Uno de los juegos infantiles más populares entre los
niños
pequeños es el llamado "Piedra, papel o tijeras". En este juego
dos niños escogen uno de estos tres objetos. Si los dos
niños escogen el mismo objeto se declara un empate. En otro caso
"piedra" pierde con "papel", "papel" pierde con "tijeras" y "tijeras"
pierde con "piedra". Así como hay personas buenas para los
volados (que de paso vale decir que no es cuestión de pura
suerte) hay personas buenas para el juego que nos concierne.
Tu labor
será la de escribir una función (o más, si
así lo desean) en C que acepte un
parámetro P de tipo int y que regrese un int. El valor de
regreso será 1, 2 ó 3 según tu función
escoja tirar piedra, papel o tijeras, respectivamente. Por otro lado, P
podrá tomar el valor 0 para indicar que es el primer juego de
una serie de juegos o los valores 1, 2 ó 3 para indicar
cuál fue la tirada anterior de tu contrincante. El nombre de tu
función deberá estar basado en el login que se te
asignó durante el curso. Tu función no podrá usar
ninguna variable global (aunque sí podrá usar variables
static), no deberá solicitar ninguna entrada ni generar ninguna
salida (incluyendo a través de archivos) y deberá
compilar suponiendo que se incluirán los archivos de encabezado
math.h, stdio.h, stdlib.h y string.h (de modo que podrás
utilizar las funciones matemáticas, de
números aleatorios, de cadenas, etc.). Al final, yo
escribiré un programa
que realice un torneo entre todas las funciones que ustedes hayan
escrito. Un partido de ese torneo enfrentará a dos funciones,
las cuales jugarán una cierta cantidad grande de juegos
consecutivos. Si ganas un
juego se te otorgarán 3 puntos, si empatas 1 punto y si pierdes
0 puntos. Si tu función regresa un valor ilegal perderás
un punto. Nota que en el torneo también competirá tu
función contra sí misma. Por cierto, yo
también escribiré algunas funciones y (aunque no pretendo
ganar el torneo) también competirán contra ellas. Abajo
les muestro ejemplos de funciones con las propiedades que se piden en
esta tarea.
La función que obtenga el mayor número de
puntos en el torneo
recibirá 10 de calificación en esta tarea. Los
demás recibirán una calificación proporcional a la
cantidad de puntos obtenidos en el torneo por su peor función.