Master Mind Scopo del gioco è indovinare una combinazione di 4

Transcript

Master Mind Scopo del gioco è indovinare una combinazione di 4
Master Mind
Scopo del gioco è indovinare una combinazione di 4 cifre fra 0 e 9 nel minor
numero di tentativi possibile.
Ad ogni tentativo del giocatore si ottengono due risposte:
- Il numero delle cifre indovinate (cifra giusta in posizione giusta)
- Il numero delle cifre presenti anche nella combinazione da indovinare
ma in posizioni diverse rispetto a quelle in cui le ha inserite il giocatore
Ad esempio, se la soluzione fosse 1234
1832 darebbe come risposta 2 1
1432 darebbe come risposta 2 2
0789 darebbe come risposta 0 0
La partita termina quando si ottiene risposta 4 0
NB Se un giocatore indovina una cifra che è anche presente in un’altra
posizione della soluzione si considera come cifra indovinata senza considerare
la presenza delle altre cifre uguali; se una delle cifre indicate dal giocatore è
ripetuta più volte in altre posizioni ma non in quella in cui egli l’ha posta, si
considera come cifra giusta al posto sbagliato una sola volta e non più volte.
Esempio di partita (soluzione: 1224)
C
Tentativo n. 1 9807
0
Tentativo n. 2 3456
0
Tentativo n. 3 5312
0
Tentativo n. 4 1432
1
Tentativo n. 5 4221
3
Tentativo n. 6 1224
4
Bravo, hai indovinato in 6 tentativi!
S
0
1
2
2
1
0
(C=corrette S= spostate)
Algoritmo:
------------------------------------------------------------------Genera un vettore casuale Comb di 4 interi (combinazione da indovinare)
(NB prima di usare la funzione rand() per la prima volta chiamare la funzione randomize() per
garantire che la combinazione sia sempre diversa)
Definisci una variabile Niterazioni e poni Niterazioni=0
Poni Corrette=0
While (Corrette!=4)
(cifre corrette nel tentativo dell’utente)
Fai fare un tentativo al giocatore
Calcola il risultato
Comunica il risultato al giocatore
Incrementa Niterazioni di 1
End (While)
Scrivi “Bravo, hai indovinato in (Niterazioni) tentativi!”
------------------------------------------------NB Realizzare la parte in grassetto come funzione
function [Corrette, Spostate]=controlla (Comb)
Poni Corrette=0 e Spostate=0
For i= 1:4
Leggi Tent(i) da tastiera
If Tent(i) è uguale a Comb(i)
Incrementa Corrette di 1
else
For k=1:4
If Tent(i)è uguale a Comb(k) e k!=i
Incrementa Spostate di 1
End (if)
End (For)
End (if)
End (For)