Un lavoro di Avini Luigi - Un gioco ti po Mastermind -    e-mail : aviniluigi@libero.it

Luigi ci propone una sua soluzione vba al conosciuto gioco-passatempo Mastermind. Presento sotto una sua descrizione dei motivi che lo hanno portato a realizzare il suo lavoro e come è basato il codice vba. Per ogni ed eventuale chiarimento potrete contattare l'autore all'indirizzo e-mail riportato sopra.

Avvertenza: Luigi ha predisposto istruzioni per la manipolazione delle barre dei menù. Coloro che usano menù personalizzati, sono invitati a non attivare le macro e controllare se il programma è di loro gradimento, prima di trovarsi con i menù rivoluzionati.

...Ultimamente mi è capitato di giocare con mio nipote a Mastermind, era molto che non ci
giocavo, e quando è toccato a me preparare il codice segreto di quatto chiodini colorati, mi
sono reso conto che quella funzione, cioè preparare il codice e rispondere, con i chiodini
bianchi e neri poteva benissimo essere svolta da un calcolatore. Essendo appassionato di
fogli di calcolo è scattata la curiosità di pensare quale funzione di calcolo assolvesse al
compito di rispondere confrontando due combinazioni di colori.
E pensa e ripensa, ho associato ai colori un numero da 1 a 6, ho lasciato alla funzione
Casuale() il compito di generare un numero da 1 a 6 per ognuna delle 4 posizioni, con
associata la funzione Arrotonda.difetto().
Per assegnare il numero di colori giusti al posto giusto (chiodi bianchi) e bastata una
sottrazione per ogni posizione tra il codice segreto e il tentativo del giocatore; la funzione
Conta.se() relativa al risultato "0" della sottrazione mi restituisce direttamente il numero dei
colori giusti al posto giusto.
Il difficile è stato calcolare i colori presenti ma al posto sbagliato (chiodini neri), dopo molte ore a
pensare e provare, ho trovato valida la soluzione di utilizzare la funzione conta.se() per
determinare la frequenza di ogni numero (da 1 a 6) nei due intervalli (codice segreto e
tentativo), confrontando poi le due serie di 6 cifre ottenute con la funzione Min(), e sommando il
tutto ho ottenuto il numero di colori presenti ma al posto sbagliato.

Buon divertimento !

Luigi

Un grazie a Luigi.

File scaricabile e consultabile :

nome file dimensione
mastermindexcel2002.zip 33 Kb