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)