Master Mind

Il gioco Master Mind consiste nel decifrare un codice segreto composto da quattro palline colorate, ovviamente nell’ordine in cui si trovano (esempio una pallina rossa, una pallina verde, una pallina blu, una pallina rossa).
Il codice segreto viene generato dal computer utilizzando quanti colori (4, 5, 6 o 7) scelga di mettere in gioco il giocatore: le quattro palline avranno ciascuna uno dei colori del set scelto, con possibilità di avere più palline dello stesso colore. In tal modo, anche se i colori messi in gioco sono solo quattro, non è detto che vengano utilizzati tutti; certamente, visto che il codice è composto da quattro palline, non saranno utilizzati tutti i colori messi in gioco se questi sono 5, 6 o 7. Con l’aumento dei colori messi in gioco aumenta così la difficoltà della decifrazione del codice segreto.
Il giocatore compie tentativi di decifrazione indicando combinazioni ipotetiche. Ad ogni tentativo il computer risponde:
. mostrando un quadratino nero per ogni pallina del colore giusto al posto giusto,
. mostrando un quadratino bianco per ogni pallina del colore giusto al posto sbagliato.
Ragionando su queste risposte alle combinazioni ipotizzate nei vari tentativi si dovrebbe riuscire a decifrare il codice in meno di dieci tentativi: in caso contrario la partita è persa.

Mi sono divertito a scrivere un programmino per questo gioco, che si può scaricare qui.
Ho utilizzato il linguaggio Python nella versione 3 con il modulo grafico tkinter e il programma funziona su qualsiasi computer, qualunque sia il sistema operativo, purché sul computer stesso sia installato l’interprete Python 3.
Chi usa il sistema operativo Linux dovrà ricordarsi di rendere eseguibile il file scaricato con chmod 555 e verificare che la prima riga contenga l’indicazione esatta del percorso dell’interprete Python sul proprio computer (quasi sempre sarà quello indicato nel programma, a meno di installazioni personalizzate).
Il programma è facilmente adattabile per essere utilizzato con un interprete Python 2: basta modificare con un semplice editor di testo (non word processor) la riga 165, scrivendo Tkinter (con la T maiuscola) al posto di tkinter (con la t minuscola). Chi usa il sistema operativo Linux dovrà anche sostituire python2 a python3 nella prima riga, sempre verificando che il percorso sia giusto.

Buon divertimento.