So che questo è stato chiesto molto e ho cercato altro codice ma la maggior parte di ciò che ho visto non sembra perfetto (non perde mai) e semplice, elegante ed efficiente. E non sono in grado di decidere quale tipo di soluzione si adatta a questa descrizione.Semplice tic-tac-toe AI
Le soluzioni che ho visto sono:
(1) Utilizzando minimax con alfa-beta potatura. Questo mi sembra complicato e forse non necessario per un gioco così semplice? Probabilmente è troppo complicato? In caso contrario, dovrei fare un sacco di hard coding o sto fraintendendo l'algoritmo?
(2) Scrivi il tuo codice utilizzando la strategia pseudocodice da Wikipedia ... Non sono esattamente sicuro di come implementarlo. Ad esempio, dice semplicemente "check for fork". La maggior parte di questi controlli sarebbe stata eseguita con una serie di linee vincenti e controllando se sarebbero stati compilati o qualcosa del genere? In caso contrario, qualcuno può darmi suggerimenti su quali strutture dati o suggerimenti di base su come implementare i controlli posti nello pseudocodice qui: http://en.wikipedia.org/wiki/Tic-tac-toe#Strategy. Ho anche visto algoritmi che danno un valore numerico a un quadrato "X" e un quadrato "O" e poi usano la somma per decidere il vincitore, ma non vedo perché questo sia particolarmente utile.
Qualsiasi altra soluzioni ragionevole?
Per esempio un piccolo albero di gioco, solo forza bruta. Non ci vorrà tempo per simulare ogni gioco possibile. – Dave
non sembra impeccabile (vince sempre) = sembra normale. vinco sempre al piede tic tac. o nel peggiore dei casi. qualsiasi persona intelligente avrà lo stesso risultato. è per questo che nessuno suona il tic tac toe dopo i 10 anni. Non è divertente quando nessuno vince. –
Inoltre, "vincere sempre" non è un requisito valido (mai). Immagina solo il tuo algoritmo che gioca contro se stesso. – Dave