LAB. DE PROGRAMACIÓN PRACTICA 2 (EXAMEN DE Martes 18 de Diciembre de 2001) DPTO. LENGUAJES Y CIENCIAS DE LA COMPUTACIÓN ESCCUELA TÉCNICA SUPERIOR DE INGENIEROS EN TELECOMUNICACIONES UNIVERSIDAD DE MÁLAGA Nombre: Curso: Cod. Ordenador: Profesor: El Juego de la Oca. Se pretende implementar un programa que sea capaz de controlar los movimientos del conocido juego de la Oca. Las reglas que se utilizarán son las siguientes: Hay un tablero con 63 casillas. 2 jugadores con una ficha cada uno. El objetivo es llegar a la última casilla (63). Cada jugador tira el dado en su turno y mueve la ficha el número de casillas que indica el dado. Si el jugador cae en una casilla con la oca (8,13,18,23,28,33,38,43,48,53,58,63) pasa a la oca inmediatamente siguiente y vuelve a tirar. Si cae en otra de las casillas especiales, el jugador puede recibir la instrucción de perder uno o más turnos, o avanzar o retroceder un número determinado de espacios: 1. 2. 3. 4. 5. Si cae en el número 6, el puente: pasa al siguiente puente situado en el número 12. Si cae en el número 19, la posada: pierde dos turnos. Si cae en el 42, el laberinto: retrocede al número 34 y permanece un turno sin tirar. Si cae en el 52, la cárcel: debe estar tres turnos sin tirar. Si cae en el 57, la muerte: retrocede hasta el número 1. La casilla final sólo puede ser alcanzada con una tirada exacta. Un jugador que saque una cantidad más elevada se verá obligado a retroceder el número de espacios equivalente al que ha excedido del final. Por ejemplo, si el jugador está en el número 60 y arroja un 5 debe avanzar hacia el final y luego retroceder hasta la casilla 61. El retroceso está sometido a todas las reglas del juego. Se pide implementar ese juego utilizando una lista (arrays) en la que sólo se almacene la información del tablero de las casillas especiales mostradas anteriormente. Se recomienda para cada casilla especial guardar las informaciones siguientes (casilla destino, turnos para la siguiente tirada, texto a mostrar al usuario). Por ejemplo, para la oca de la casilla 8 se guardaría (13,0,”de oca a oca y tira por que te toca”). para el puente 6 (12,1,”de puente a puente”) pues tirará en el próximo turno. Para cada jugador se guardará como información: (la casilla en la que se encuentra y el número de turnos hasta su próxima tirada). Posible Algoritmo de ejecución: 1. Crear la lista con la información del tablero. Inicializar la posición de los 2 jugadores a 0. 2. Un jugador tira el dado. (generar de forma aleatoria un valor entre 1 y 6). Su nueva posición será la posición actual + el valor del dado. El número de turnos hasta la próxima tirada se pone a 1. 3. Si la casilla destino es la última, el juego termina y este jugador gana. (Si se pasa de 63 habrá que calcular la nueva posición como se explicó antes) 4. Si la casilla es especial se va a la nueva casilla destino y se actualiza el número de turnos según corresponda. ( Para ver si una casilla es especial habrá que buscarla en la lista) 5. Se decrementa el número de turnos del siguiente jugador. Si su valor es 0 se vuelve al paso 1. Sino se vuelve al paso 3 con el siguiente jugador. NOTAS: 1. El fichero fuente de la práctica debe llamarse OBLIGATORIAMENTE OCA.CPP y el directorio de trabajo debe ser C:\TEMP\PRACTICA2\ 1/1