Algoritmo mossa vincente
L'algoritmo della mossa vincente è un'altra strada per imparare al computer a giocare a tris. È una tecnica rudimentale di intelligenza artificiale che consiste nel suddividere il tris in una matrice quadrata a 9 elementi.
Al posto dei simboli X e O del tris, l'algoritmo utilizza:
- il numero 3 per il giocatore A ( simbolo X )
- il numero 5 per il giocatore B ( simbolo O )
- il numero 1 per le celle vuote
Nota. L'uso del numero 3 e 5 in sostituzione dei simbolo X e O consente al computer di svolgere dei calcoli matematici che semplificano la ricerca della mossa vincente o bloccante.
Come funziona l'algoritmo
Durante il suo turno di gioco, prima di decidere la sua mossa, il computer (giocatore A) verifica tutte le righe, le colonne e le diagonali moltiplicando tra loro i numeri.
- Mossa vincente. Quando il prodotto è pari a 9 ( ossia 3x3x1), individua una "mossa vincente" e il gioco finisce.
- Mossa bloccante. Quando il prodotto è pari a 25 (ossia 5x5x1) , individua la mossa per bloccare il giocatore avversario (B).
Nota. L'algoritmo decide di bloccare l'avversario soltanto in assenza di mosse vincenti, al termine di tutti i controlli. Viceversa, se c'è una mossa vincente, la intraprende subito appena viene trovata.
E se non trova una mossa vincente o bloccante?
In questo caso l'algoritmo sceglie una casella nelle righe, colonne e diagonali con prodotto uguale a 3.
Nota. Le righe, colonne o diagonali con prodotto pari a 3 ( ossia 3x1x1 ) sono potenzialmente ancora vincenti.
Se non ci sono, allora l'algoritmo seleziona una casella a caso ( scelta random ) tra quelle ancora vuote.
Pro e contro dell'algoritmo
I vantaggi
A differenza di altre tecniche ( es. database mosse ) l'algoritmo della mossa vincente non usa molto spazio in memoria.
Non deve registrare, né analizzare tutte le situazioni di gioco passate.
Gli svantaggi
L'algoritmo della mossa vincente è una tecnica di intelligenza artificiale rudimentale.
I principali handicap della tecnica sono i seguenti:
- Tempo di elaborazione. Ogni turno l'algoritmo calcola tutte le possibili combinazioni di righe, colonne e diagonali per individuare la mossa vincente o bloccante. Pertanto, richiede parecchio tempo.
Nota. Tale handicap può comunque essere minimizzato scegliendo una diversa rappresentazione del problema.
- Dipendente dalla programmazione. L'algoritmo è fortemente dipendente dalla programmazione. Inoltre, il sistema non acquisisce esperienza nel corso del tempo, ma compie semplicemente una ricerca "meccanica" della migliore mossa successiva.
- Poco generalizzabile. Il metodo è poco flessibile, perché non può essere impiegato per risolvere problemi diversi o simili. Può essere usato soltanto nel caso specifico per cui è progettato.
Esempio. L'algoritmo funziona per il tris bidimensionale. Tuttavia, non può essere usato per un tris tridimensionale ( a tre dimensioni ) anche se le regole di gioco sono simili.