Está en la página 1de 4

Fundamentos

de la Programacin 2013/2014

Prctica2 Mastermind
Fechadeentrega:26deenerode2014

(wikipedia.org)

0. Eljuego
Mastermind es un juego de descubrimiento de cdigos. Los cdigos estn compuestos por una secuencia de N fichas de colores. El jugador prueba cdigos y para cada uno se le indica cuntas fichas estn en la posicin correcta y cuntas otras, estando en el cdigo secreto, no estn en su posicin correcta. Comparando los resultados de todas las jugadas, el jugador debe intentar descubrir el cdigo secreto dentro de un mximo de intentos: Cdigo secreto: Primer intento: Tercer intento: Ninguna en su posicin y 1 en el cdigo (azul) 1 en su posicin (roja) y 1 en el cdigo (rosa) Ninguna en su posicin y 4 en el cdigo . . .

Segundo intento:

Obviamente, al jugador no se le dice qu colores son los que coinciden ni en qu posiciones estn. Puedes probar a jugar en alguno de los sitios de juegos online.

1. Versin1delprograma
En su primera versin, el programa deber permitir al usuario jugar una partida de Mastermind. El nmero de fichas, el mximo de intentos y el modo de juego (con o sin colores repetidos) sern constantes (por defecto, 4, 30 y sin repeticin). El programa funcionar para distintos nmeros de fichas (hasta 6) y para los dos modos de juego: con o sin repeticin de colores. El cdigo secreto se generar
Prctica2

Pgina1

Fundamentos de la Programacin 2013/2014

aleatoriamente. Los colores que contemplamos son: Rojo, Azul, Verde, Negro, Granate y Marrn. El jugador podr cancelar el juego en cualquier momento, as como ver las reglas del juego. Durante la partida se leern cdigos del jugador (comprobando que sean vlidos) y para cada uno se le indicar cuntos colores estn en su sitio y cuntos estn descolocados. Si descubre el cdigo secreto se le felicitar, indicando en cuntos intentos lo ha conseguido; si supera el mximo de intentos se le notificar que ha perdido la partida. El jugador podr introducir un 0 como cdigo para abandonar la partida o ? para solicitar ver las reglas del juego (que se encontrarn en un archivo ayuda.txt que termine en una lnea con xxx como centinela).

1.1. Datosdelprograma
El programa utilizar un tipo enumerado tColores con los colores contemplados: rojo, azul, verde, negro, granate y marrn. Los cdigos (secreto y jugada) se mantendrn en sendos arrays de valores del tipo enumerado. Deber declararse un tipo tCodigo para ese tipo de arrays.

1.2. Subprogramas
El programa contendr, al menos, subprogramas para las siguientes tareas: Generar un cdigo aleatorio y devolverlo en un parmetro. Convertir de letra a enumerado y de enumerado a letra. Jugar una partida de Mastermind (devolver el n de intentos en un parmetro). Leer un cdigo del jugador (parmetros: cdigo ledo e indicacin de si se cancela). Comprobar cuntos colores estn en su lugar y cules en lugar distinto (parmetros: cdigo secreto, cdigo del jugador y contadores). Usar internamente un array de booleanos para marcar los aciertos.
Prctica2

Pgina2

Fundamentos de la Programacin 2013/2014

Mostrar el movimiento del jugador con los aciertos (parmetros: cdigo del jugador, n de intento y contadores de aciertos). Mostrar el archivo de ayuda en la pantalla.

2. Versin2delprograma
En su segunda versin, el programa calcular la puntuacin de la partida (1 punto por cada acierto parcial no en la posicin, 5 por cada acierto de posicin y 100 puntos por ganar la partida). Mostrar para cada intento la puntuacin acumulada. Adems, el programa ofrecer pistas al jugador si introduce !. La pista consistir en desvelar el color que corresponde a una de las posiciones, elegida aleatoriamente. Al ser una posicin aleatoria, es posible que la pista ya se haya dado antes o que la posicin ya haya sido descubierta por el jugador. ste podr solicitar una pista tras cada X (5) intentos y no podr solicitar ms de Y (2) pistas.

Opcionalmente puedes aadir ms inteligencia a la forma de proporcionar pistas al jugador.

2.1. Subprogramas
El de lectura de cdigos deber devolver tambin una indicacin de si el usuario ha solicitado una pista. Se aadir otro para convertir de enumerado a nombre de color (cadena).

Pgina3

Prctica2

Fundamentos de la Programacin 2013/2014

3. Versin3delprograma
En su tercera versin, el programa mostrar al usuario un men con dos opciones (ms la de salir): jugar o ver las puntuaciones de los jugadores. Las puntuaciones de los jugadores se mantendrn en un archivo usuarios.txt que tendr en cada lnea un nombre de jugador seguido del nmero de juegos de ese jugador, el nmero de veces que ha ganado y los puntos acumulados (separados los datos por un espacio); el archivo terminar en una lnea con xxx como centinela. Los nombres de los jugadores consisten en una sola palabra. El programa comenzar pidiendo el nombre al jugador, para a continuacin mostrarle el men. Si elige echar una partida, al final de la misma (si no ha abandonado) se actualizar el archivo de puntuaciones convenientemente: si el nombre del jugador ya existe en el archivo, se incrementara en 1 el nmero de partidas, igualmente el nmero de partidas ganadas, si es que ha ganado, y se acumularn los puntos de la partida recin jugada. Si el usuario no existe, se aadir al archivo una lnea (antes del centinela) con la informacin del nuevo jugador.

4. Entregadelaprctica
La prctica se entregar a travs del Campus Virtual. Se habilitar una nueva tarea Entrega de la Prctica 2 que permitir subir el archivo con el cdigo fuente, el archivo con el texto de ayuda y el archivo de usuarios. Fin del plazo de entrega: 26 de enero a las 23:55.

Prctica2

Pgina4

También podría gustarte