All'inizio ho 5 carte a caso, ovviamente. Solo una volta posso cambiare e ho anche già insegnato [il programma] le regole del poker nel mio sistema. Il mio problema è come posso scegliere "Non ho bisogno di questa carta o ci sono carte?". Posso cambiare da solo ma il computer non lo sa. Penso che forse sia difficile ma hai qualche aiuto da offrire?Come posso insegnare a un computer come giocare a poker?
risposta
Stai per voler ricercare il progetto Expert System s. E applicalo al tuo dominio problematico.
Se sembra travolgente, inizia in piccolo. Crea una base di conoscenza rudimentale di regole che rendono il tuo poker bot avidamente alla ricerca di coppie (e 3 o 4 di un tipo). Quando questo sta andando bene, aggiungi regole per provare a costruire scale e regole su quando favorire la costruzione diretta sulla ricerca di coppia, poi quando funziona bene, aggiungi dei colori. Continuo e un piccolo incremento è la chiave del processo.
Che ne dici di entrare in contatto con The University of Alberta Computer Poker Research Group?
+1 per la mia alma mater :) –
+1, ho contattato uno di loro per la mia disertore e sono stati molto disponibili e sinceramente interessati a quello che stavo facendo. –
Date un'occhiata a How I Built a Working Poker Bot Series (parti 1, 2, 3, 4, 5, 6, 7, 8) che ha grandi informazioni per iniziare a bot poker.
In particolare, dare un'occhiata a Part 8 che va in dettaglio su come valutare il valore della mano. Quello che vorresti fare è valutare statisticamente le carte in mano e da lì determinare quali carte hanno la più alta probabilità di segnare una mano vincente. Puoi quindi scartare le carte che non ti servono.
Suoni come la teoria dei giochi e l'intelligenza artificiale sono ciò che è necessario ricercare qui.
Non sarebbe meglio iniziare con qualcosa di più semplice e lavorare da lì? Come il blackjack, che presumo sarebbe relativamente facile nel grande schema delle cose?
Se stai cercando semplicemente di costruire un programma di gioco, i suggerimenti sopra riportati sono utili. Se stai cercando di costruire un sistema che impara a giocare a poker, allora devi usare tecniche di apprendimento automatico/apprendimento induttivo come reti neurali, alberi decisionali, algoritmi genetici. Samuel ha scritto un programma di pedine che ha imparato a migliorare le sue prestazioni.
http://en.wikipedia.org/wiki/Arthur_Samuel
C'è anche un sito su machine learning e giochi:
Fare attenzione a non fare troppo bene un lavoro a questo, o si potrebbe finire per perdere un sacco di i soldi.
Computer Gamesmanship da David Levy
alt text http://ecx.images-amazon.com/images/I/616X%2BHJmE7L._SL500_AA240_.jpg
Copertine stallone e disegnare. Ti renderai conto di quanto sia difficile quando hai finito di leggere.
Si noti che il libro ha più di 25 anni, ma è un buon inizio.
Le cose che vuoi studiare sono la teoria dei giochi e il data mining.I programmi migliori usano una simulazione di gioco di grandi dimensioni per produrre tolleranze per un sistema esperto che viene impiegato per randomizzare il gioco in modo tale da fare il minor numero possibile di errori sistematici. Se cerchi abbastanza bene nel web, troverai le implementazioni complete di alcuni di questi tipi di soluzioni, ma spesso mancano del codice che le ha generate. Il lato negativo dell'accettazione di una di queste soluzioni è che non sfruttano appieno gli errori degli avversari, che è il luogo in cui gran parte della ricerca di oggi è diretta sull'argomento.
Esistono diversi modi per produrre soluzioni teoriche di gioco, utilizzando praticamente qualsiasi algoritmo AI immaginabile.
Controllare il valutatore del poker. http://www.codingthewheel.com/archives/poker-hand-evaluator-roundup Utilizza l'analisi monte carlo per trovare le carte da scaricare in oreder per massimizzare le aspettative.
- 1. Come insegnare a Eclipse le buone maniere
- 2. Come insegnare a findbugs a capire correttamente i campi IoC?
- 3. Come dovrei iniziare a giocare con 3D?
- 4. Come insegnare modelli di progettazione a una squadra
- 5. Come copiare un database da un computer a un altro?
- 6. BackgroundAudioPlayer non inizia a giocare
- 7. Come posso creare un dado virtuale (per giocare a dadi) usando html e css?
- 8. Come insegnare a Eclipse a includere i pacchetti di sorgenti Maven sul percorso di origine?
- 9. Come insegnare in modo permanente a Visual Studio a rilevare le mie informazioni di debug?
- 10. Come faccio a identificare univocamente un computer in node.js?
- 11. Come fa un computer a disegnare lo schermo?
- 12. Come si esegue un VBScript in modalità a 32 bit su un computer a 64 bit?
- 13. problemi a giocare wav in Java
- 14. Fare riferimento a "Programmi" su un computer a 64 bit
- 15. per giocare a schermo intero con Android
- 16. Autorizzazione a un computer per accedere a un'applicazione Web
- 17. Come posso determinare la versione di Windows SDK installata sul mio computer?
- 18. Come imparare/insegnare Gherkin per Cetriolo
- 19. machine learning in Python per giocare a dama?
- 20. Come posso inviare stringhe tra due computer?
- 21. Il modo migliore per insegnare a te stesso Ruby?
- 22. Librerie di poker C#
- 23. Come utilizzare virtualenv in Python a 32 bit su un computer a 64 bit?
- 24. Un design per framework di poker migliore C#?
- 25. Come posso testare SSL su un computer per sviluppatori?
- 26. Come posso iniziare a contribuire a GNOME?
- 27. Come posso passare parametri a un ServiceHost
- 28. Come funziona un programmatore su più computer?
- 29. Come compilare un programma C++ come 64-bit su un computer a 64 bit?
- 30. Come posso allegare più URL a un singolo git remoto?
Ho appena cercato "Expert System Design" .... Buona fortuna con questo Tony .... :-) –
Non è certamente un problema facile. Probabilmente il più grande problema con la creazione di un sistema esperto, è che è necessario accedere a un vero esperto in modo da poter definire un buon set di regole. –
Non sembra la strada da percorrere. –