Poiché Tic-Tac-Toe è un gioco risolto , ti consiglio semplicemente player un gioco perfetto ogni volta.
Il seguente algoritmo ti consentirà (o l'IA) di negare sempre la vittoria del tuo avversario:
-
Win:
Se ne hai due di fila, puoi metterne un terzo per ottenere tre di fila.
-
Blocca:
Se l'avversario ha due di fila, devi giocare il terzo per bloccare l'avversario.
-
Forcella:
Crea un'opportunità in cui hai due minacce da vincere (due linee non bloccate di 2).
-
Blocco del fork di un avversario:
Se c'è una configurazione in cui l'avversario può biforcarsi, devi bloccare quella forchetta.
-
Centro:
Suoni al centro se aperto.
-
Angolo opposto:
Se l'avversario è nell'angolo, giochi l'angolo opposto.
-
Angolo vuoto:
Giochi in un quadrato d'angolo.
-
Lato vuoto:
Giochi in una casella centrale su uno qualsiasi dei 4 lati.
Scegli il più alto possibile nell'elenco
L'euristica perfetta è piuttosto semplice in termini di programmazione AI. La parte euristica più difficile da implementare è la ricerca di configurazioni di fork. Una volta che hai gli altri controlli sono quasi banali!