He estado aprendiendo programación como pasatiempo durante algunos años y tengo un conocimiento básico de Python, C++ y javascript. Me gustaría abordar un nuevo proyecto de programación de mi propio bot de póquer NLHE.
Entiendo que este es un proyecto ENORME para abordar, pero ¿hay algún recurso o biblioteca de código abierto que recomendaría?
He visto que OpenHoldem solía ser bueno, pero no parece que haya sido tocado en un par de años.
Le sugiero que primero escriba una calculadora de equidad ya que un bot la necesita. Si basas las cosas en acciones, es mucho más fácil. Entonces solo una mano binaria hecha o dibujada.
Luego, puede hacer una probabilidad para igualar y dar una probabilidad implícita fija en un empate. Si necesita 3:1 para pagar un empate, elija uno menos 2:1. Todo lo que te queda es el tamaño de la apuesta para abrir y volver a subir. Bluffs es un poco más difícil, pero si solo faroleas con tus proyectos rotos como 1/3, estarás bastante cerca.
Ver faroles es un poco más difícil, pero obtendrás algunas estadísticas sobre la frecuencia con la que farolean cuando solo igualas por equidad. Vuelva a llamar aproximadamente 1/3 de su tasa de farol si tiene un receptor de farol.
Asigne un rango abierto para cada posición y el tamaño de la apuesta. Un tamaño de flop como 1/5 es suficiente para deshacerse de ellos.
Probé un bot basado en GTO pero fue un desastre. GTO estás jugando a no perder.
Según el juego, puedes ajustar el rango de los oponentes. Si basa la lógica en la equidad, entonces no necesita reglas complejas.
Según una nueva publicación, esto se puede hacer con el aprendizaje automático.
Es algo que consideré y comencé hace unos años, pero me di por vencido.
Mire en Tesseract OCR. Estos serán los "ojos" de tu bot.
A continuación, comprenda bien la variante de póquer que desea que juegue el bot.
A continuación, observe el aprendizaje automático, por ejemplo, la clasificación, como con las redes neuronales (y también la reducción de extracción/dimensionalidad de características para obtener las estadísticas más relevantes)
Finalmente no te molestes. Ya se está trabajando en ello (busque el video de Doug Polk). Pokerstars tiene tecnología anti-bot, por lo que necesitarás desarrollar una IA muy avanzada capaz de pasar la prueba de turing para ese sitio, y los sitios que permiten bots tendrán bots que aplastarán tu bot. Además, para cuando termines el desarrollo, ¡el póquer en línea ya podría haber sido destruido por bots avanzados!
Si está REALMENTE interesado, entonces podría familiarizarse con github. Una búsqueda en Google mostró un bot de póquer que se está desarrollando en github al que podría contribuir o al menos obtener algunas ideas.
En primer lugar, explore proyectos en GitHub. Allí puede encontrar muchos ejemplos de código que ya funciona. El segundo, debe comprender que "Poker Bot" es una tarea de varios componentes, que consta de partes básicas de programas similares: bucle principal, lógica del juego, GUI, datos (almacenamiento, concepción, procesamiento), API, código externo, etc. .
Especialmente, se implementa una API para trabajar con código externo como "PokerTracker". Los programas similares se encuentran en la raíz de los datos de fondo. Además, los metadatos son una imagen en pantalla de lo que sucede en la mesa de juego. Este tipo de información debe ser obtenida y procesada por un tiempo constante!!!
Las soluciones obtenidas durante la implementación de la inteligencia artificial deben aplicarse mediante acciones en la mesa de juego en el monitor.
En mi opinión, el algoritmo que se debe usar en PokerBot debe crear un árbol de soluciones, un algoritmo de ronda y clasificación como MiniMax y un algoritmo de almacenamiento relacional como NestedSets.
La discusión de las tecnologías que deben usarse en este proyecto es el tema de una conversación separada :)
tulipán negro
Clarko