M3 - Programació estructurada / Exercicis UF2: Mastermind
De wikiserver
Escriviu un programa que jugui al joc del mastermind. El programa genera quatre dígits aleatoris entre 0 i 9. L’objectiu del joc és encertar els quatre dígits així com les seves posicions en el mínim nombre de jugades possibles. Cada vegada el jugador introdueix quatre dígits i el programa respon amb una pista, dient el nombre d’encerts i d’aproximacions. Un dígit es considera encertat quan existeix en aquella posició, mentre que una aproximació representa un dígit que existeix però no està ben col·locat. Per no complicar el joc, cal controlar que els quatre dígits que es generen siguin tots diferents.
Com del que es tracta és de fer disseny descendent, podem veure el programa principal d’aquesta forma (aproximadament).
Programa Mastermind
declaració de variables
inicialitzacions
generar_jugada_maquina
Mentre (no final) fer
llegir_jugada_jugador
trobar_numero_encerts
trobar_numero_aproximacions
fmentre
fPrograma
- Variables que necessitarem com a mínim:
- -Dues taules de quatre números per guardar la jugada de la màquina i del jugador
- -Dues variables que ens guardin el número d’encerts i d’aproximacions.
- -Seria convenient una variable que ens compti el número de jugades que ha fet el jugador, de forma que si és un inútil i no encerta mai, el programa acabi després d’un cert nombre d’intents.
- Funcions que necessitem:
- - generar_jugada_maquina (maquina)
- Ens crea la jugada de la màquina amb nombres aleatoris entre 0 i 9. Cal controlar que no hi hagin números repetits.
- - llegir_jugada_jugador (jugador)
- Simplement s’ha de llegir de teclat els quatre valors i posar-los a la taula
- - final (encerts)
- En principi aquesta funció només seria certa quan el nombre d’encerts fos igual a 4 però com he dit abans seria interessant acabar en un nombre de jugades determinat. Si ho féu així, s’ha de passar com a paràmetre el nombre de jugades actual.
- - trobar_numero_encerts (maquina, jugador)
- Calcula i retorna el nombre d’encerts de la jugada actual
- - trobar_numero_aproximacions (maquina, jugador)
- Calcula i retorna el nombre d’aproximacions de la jugada actual