Está en la página 1de 5

Jugador Ganador de Poker Basado en

Inteligencia Artificial

Hugo Gascón, Miguel Bordallo, Eduardo Torres


Universidad Carlos III de Madrid

Avda. de la Universidad 30, Leganés


Madrid, España
100029560, 100029516, 100032796@alumnos.uc3m.es

Abstract En el estudio y desarrollo de sistemas basados en inteligencia El hecho de que sea más un juego de envite que de azar, donde in­


artificial, la aplicación de estos conceptos a la competición en juegos fluye más la facilidad en engañar a los adversarios que en el verdadero 
siempre ha tenido una gran relevancia como modelo de pruebas y valor de la jugada hecha, aunque ésta, por supuesto, tenga su impor­
entrenamiento del sistema. La adecuación del comportamiento de un tancia, y muy decisiva, a la hora de apostar fuerte, salvo en los casos 
programa ante unas circunstancias específicas y la capacidad de en que un jugador quiera marcarse un "farol ", requiere un ambiente 
aprendizaje del sistema le permiten, trás la experiencia, alcanzar la solución que nunca es el propiamente familiar. 
a un problema o desenvolverse mejor en un entorno determinado.
En este trabajo, se ha utilizado el juego del poker para modelar un sistema
Historia del Poker
que posee características de inteligencia artificial con el objetivo de ganar el
juego. Aunque se presenta un modelo simplificado, es sin duda, lo
La historia del poker es un tema a debate. El nombre del juego pa­
suficientemente claro para mostrar como el diseño del sistema inteligente
rece descender del francés poque, que desciende a su vez del alemán 
consigue aprender con la experiencia y finalmente ganar el juego.
pochen (= 'golpear'), pero no está claro si los juegos a los que se refie­
ren estos nombres fueron los verdaderos orígenes del poker. Tiene una 
I. INTRODUCCIÓN gran similitud con el juego  persa  as nas, y puede que los marineros 
persas se lo enseñasen a los colonos franceses en  Nueva  Orleans. Se 
cree que comparte paternidad con el antiguo juego del  renacimiento, 
El objetivo de este trabajo es el diseño de un bot jugador de poker llamado primero  y el francés "blean". El juego  inglés brag  (del anti­
(ganador) basado en conceptos de minería de datos, aprendizaje e guo bragg), descendía claramente de  brelan, e incorporó el bluffing 
inteligencia artificial. Se ha simulado una partida de poker con un “engaño, farol” (aunque el concepto ya era conocido en otros juegos 
número suficiente de manos para que el bot sea capaz de aprender los de aquella época). Es bastante plausible que todos estos juegos anti­
patrones de juego de otro jugador y, en función de estos patrones, guos influyeran en el desarrollo del pokuer tal y como existe en la ac­
utilizar una estrategia u otra a fin de ganar la mano e ir incrementando tualidad.
sus ganancias.
El actor inglés Joseph Crowell describía el juego tal y como se ju­
Como hay varias estrategias para jugar al poker, se ha intentado gaba en Nueva Orleans en 1829 jugado con una baraja de 20 cartas, 
establecer un sistema de juego específico para cada jugador basado en cuatro jugadores apostaban acerca de qué mano de cartas era la de ma­
el nivel de riesgo, el valor de las jugadas y la apuesta correspondiente. yor puntuación. El libro de Jonathan H. Green: An Exposure of the 
El objetivo del bot será aprender el nivel de riesgo que asume el otro Arts and Miseries of Gambling Una exposición de las artes y miserias  
jugador y, en función de la apuesta del rival y de sus propias cartas, de las apuestas(G. B. Zieber, Philadelphia, 1843), describe la expan­
tomar la decisión más adecuada para ganar la mano. sión de este juego por el resto del país, a través de las barcazas del río 
Mississippi, donde las apuestas eran un entretenimiento común.

II. EL JUEGO DEL POKER Poco después de esta expansión, se utilizó la baraja inglesa com­


pleta de 52 cartas y se introdujo la jugada "color" (tener cinco cartas 
no consecutivas del mismo palo, por ejemplo cinco tréboles). Durante 
El juego de cartas poker es el más popular del tipo de juegos llamado de 
la Guerra Civil Americana, se añadieron muchas cosas, inclusive el 
apuesta, en el cual los jugadores con todas o parte de sus cartas ocultas ha­
poker de descarte, poker descubierto y el poker de secuencia. A éstos 
cen apuestas sobre una puja inicial, tras lo cual, la suma de apuestas es 
le siguieron más añadidos, de tendencias estadounidenses, como wild 
para el jugador o jugadores que tienen la mejor combinación de cartas. 
card (alrededor de 1875), lowball y split­pot poker (alrededor de 1900), 
y los juegos de póquer de community card. La expansión del juego a 
otros países, particularmente a Asia, se suele atribuir al ejército de los 
EE.UU.
El juego y jerga del poker han llegado a ser parte importante de  -Escalera de Color o Escalera de Palo o Flor: 5 cartas seguidas
las culturas estadounidense e inglesa. Frases como ace in the hole = un  del mismo palo pero que no tienen al As como carta más alta. Combi-
as en la manga, beats me = ni idea, blue chip = de primera, call the  naciones posibles: 36. Ejemplo:
bluff = ver un farol (darse cuenta de que alguien farolea), cash in = sa­
car partido, poker o poker face = poner cara de póquer (refiriéndose a 
no mostrar expresión alguna en el rostro), stack up = adelantarse, wild 
card = carta comodín y otras, son usadas en conversaciones cotidianas, 
incluso fuera de su contexto de la mesa de poker.

El torneo moderno se hizo popular en los casinos estadounidense  -Poker: 4 cartas iguales en su valor. Combinaciones posibles: 624.


tras el comienzo de las Series Mundiales de Poker en 1970. Fue tam­ Ejemplo:
bién durante esta década cuando aparecieron los primeros libros serios 
acerca de estrategia; en particular Theory of Poker" David Sklansky, o 
Super system" por Doyle Brunson. Las retransmisiones vía satélite y 
cable de los torneos han añadido popularidad al juego.

Reglas del Poker -Full: 3 cartas iguales, más otras 2 iguales. Combinaciones posi-
bles: 3744. Ejemplo:
Las reglas del juego de poker son sencillas de comprender pero el 
juego es difícil de conquistar. Para jugar, se deben aprender, al menos,
las reglas básicas y procedimientos de este juego, los valores de las va-
rias  combinaciones de   cartas,   y   las  reglas  acerca  de   los  límites  de 
apuesta. También es útil familiarizarse con los objetos que se utilizan 
en el juego. Hay muchas variantes de póquer, entre las que caben seña­ -Color o Palo: 5 cartas del mismo palo sin ser seguidas. Combina-
lar el póquer abierto, póquer cerrado, póquer cartas compartidas, y pó­ ciones posibles: 5108. Ejemplo:
quer surtido. Los más comúnmente jugados de las primeras tres cate­
gorías son cinco cerrado, siete abierto, y el Texas hold 'em, cada una
de estas variante es un buen punto de partida para aprender los juegos
de este tipo.

Existen varios estilos de poker, pero las reglas del poker tradicio­ -Escalera o Corrida: 5 cartas seguidas de palos diferentes. Combi-


nal que aquí explicamos son las reglas básicas de todos los tipos de  naciones posibles: 10200. Ejemplo:
poker: 

­Para jugar al poker, se necesita un mazo de cartas francesas (52 
cartas), aunque en algunos tipos de poker, la cantidad de cartas varía e 
incluso se agregan comodines.
-Trío o Tercia: 3 cartas iguales en su valor. Combinaciones posi-
-La escala de valores de las cartas es la siguiente: As (la mayor),
bles: 54912. Ejemplo:
Rey (K), Reina (Q), Sota (J), 10, 9, 8, 7, 6, 5, 4, 3 y 2 (la menor).

-Existen 4 palos (picas, corazones, diamantes y trébol) y ningún


palo es de mayor valor que otro.

-El número de cartas a repartir depende de la variante del juego,


-Doble Pareja o Dos Pares: 2 pares de cartas. Combinaciones po-
pero el estándar del juego es que se repartan 5 cartas (tapadas) por ju-
sibles: 123552. Ejemplo:
gador.

-El objetivo del juego es formar una combinación de cartas supe-


rior a la del resto de los jugadores. Por medio de las apuestas se van
eliminando jugadores y posibilidades.

-Pareja o Par: 2 cartas iguales y 3 diferentes. Combinaciones posi-


bles: 1098240. Ejemplo:
Clasificación de las jugadas

-Escalera Real o Flor Imperial: 5 cartas seguidas del mismo palo


del 10 al As. Combinaciones posibles: 4. Ejemplo:

-Carta más elevada o Jardín: gana quien tiene la carta más alta.
Combinaciones posibles: 1302540. Ejemplo:
III. OBJETIVOS
decidir no seguir adelante con la apuesta. La elección afirmativa o
Está generalmente considerado que no es viable simular el juego negativa está determinada por un umbral sobre el que se comprueba el
del poker (o al menos la mayoría de sus variantes) por ordenador. Sin valor de puntuación total.
embargo, se están desarrollando métodos para, al menos, aproximar 
una estrategia perfecta según la perspectiva de la Teoría del Juego para  El siguiente paso del juego es la apuesta. Para simplificar la
los duelos mano a mano, y se están incrementando los sistemas de  implementación del modelo, el jugador inteligente carece de nivel de
cierta calidad para los juegos contra varios jugadores. La estrategia  riesgo y en las primeras jugadas siempre va a afrontar la apuesta con
perfecta tiene varios significados en este contexto. Desde un punto de  la intención de saber con que cartas esta apostando el jugador normal.
vista puramente teórico del juego, una estrategia perfecta (minimax)  A medida que el juego va avanzando, el objetivo del jugador
es la que no pueda perder frente a cualquier estrategia planteada por  inteligente es ir limitando el valor de riesgo del jugador normal e ir
otro jugador; no obstante, la estrategia óptima puede variar con la pre­ adecuando su nivel de riesgo a éste, de modo que cuando se produzca
sencia  de   jugadores  sub­óptimos,   los   cuales   tienen   debilidades   que  el envite, en función de sus propias cartas, el jugador inteligente sabrá
pueden ser explotadas. En este caso, la estrategia perfecta sería una  si tiene que aceptar o no la apuesta.
que sacara ventaja de estas debilidades y las aprovechara en su benefi­
cio. Algunos de estos sistemas están basados en el Teorema de Bayes, 
el equilibrio de Nash, el Método de Monte Carlo y los sistemas de Re­ V. DESARROLLO Y PRUEBA DEL MODELO
des Neurales. Una gran parte de esta investigación se está llevando a 
cabo en la universidad de Alberta por el grupo de JUEGOS, liderado 
La implementación del proyecto se ha realizado en el lenguaje
por Jonathan Schaeffer, quien diseñó Poki y PsOpt.
JAVA. Se han codificado las siguiente clases:
En este trabajo se ha desarrollado un jugador de poker inteligen-
te que es capaz de aprender de sus rivales, de modo que después de
un número de partidas suficientes, es capaz de ganar en función de las
-Carta.java: El objeto Carta. Posee un valor y un tipo de palo.
datos que ha obtenido en las partidas anteriores. El objetivo de este di-
Cada jugador posee cinco objetos Carta en cada jugada.
seño es, por tanto, conseguir un sistema que sea capaz de observar la
forma de jugar de sus rivales y, en función de esa información, sepa,
en el caso de que se produzca la apuesta, la calidad de la jugada del
adversario en función de su nivel de riesgo. De esta manera, el jugador
-IAPoker.java: En esta clase está definido el main . Es la
inteligente es capaz de ganar a medida que aumenta el número de ma-
encargada de crear la baraja con las 52 cartas, al jugador virtual
nos jugadas, ya que va determinando el nivel riesgo en función de la
inteligente y a su adversario. También es en esta clase donde se
decisión o no de apostar del adversario y el nivel de su apuesta.
reparten las cartas a los jugadores y se averigua quien es el ganador de
la mano en función de las mismas. Además, es donde se llevan las
cuentas de las ganancias y las pérdidas de cada jugador.
IV. DISEÑO DEL MODELO DE JUEGO

Como se ha comentado en el punto III, el elevado número de


-PokerPlayer.java: Representa al rival de nuestro jugador
combinaciones posibles y la dificultad para introducir parámetros
como la agresividad o la capacidad de un jugador para engañar al inteligente. Le definimos con un nivel de riesgo determinado, el
contrario, difcultan el proceso de implementación del juego en un cual variaremos en función del tipo de jugador que queramos que se
sistema computacional. No obstante, partiendo del obejtivo enfrente a nuestro jugador virtual (según este nivel de riesgo , el
fundamental que ocupa este diseño, es decir, la obtención de un oponente del jugador virtual inteligente podrá tener estrategias
sistema con capacidades de aprendizaje, se ha desarrollado un modelo diferentes: desde apostar siempre a apostar sólo cuando lleve una
del juego donde se ha simplificado el comportamiento de los jugada muy buena). Para la decisión de si apuesta o no, se combina el
jugadores y se ha creado un modelo del juego con reglas que aunque riesgo con el valor de la mano, este nuevo valor deberá superar un
son características del poker, tambiñen son más simples. determinado umbral para que se haga la apuesta. Para igualar una
apuesta, también será necesario que supere otro cierto umbral.
En este diseño del modelo de juego, intervendrán solo dos
jugadores, un jugador normal y un jugador inteligente. Se ha
considerado suficiente utilizar dos jugadores puesto que la situación
en la que intervienen más de dos jugadores se puede entender como -IAPokerPlayer: Es la clase que representa el objeto del jugador
una ampliación en paralelo de este modelo. virtual inteligente. El jugador virtual inteligente tiene en cuenta el
nivel de riesgo y el valor de la mano para tomar, tanto la decisión de si
El primer paso en el proceso de este modelo de juego es el reparto apuesta o no, como la cantidad que apuesta. La diferencia fundamental
de las cartas. Se reparten cinco a cada uno de los dos jugadores y cada respecto al otro jugador, es que el jugador virtual inteligente es capaz
uno de ellos calcula el valor de su mano. El jugador normal genera un de ir recolocando los umbrales a fin de alcanzar el punto óptimo; es
nivel de riesgo que puede ser establecido de manera manual (sobre decir, una vez que encuentra el valor medio de la mano con el que el
todo para testeo del modelo) o de forma aleatoria y almacena una rival suele apostar, encuentra el valor óptimo medio para ganar el
puntuación total de su jugada como producto del valor de su mano y máximo dinero posible (esto lo hace evaluando los beneficios en cada
de su nivel de riesgo. La puntuación total será la que permita decidir umbral, llegando al punto óptimo y jugando el mayor número posible
al jugador normal si lleva a cabo la apuesta con dichas cartas. De este de manos en ese nivel).
modo, un jugador con una mala mano pero con un nivel de riesgo alto
decidirá apostar, mientras que un jugador con una mano
considerablemente buena pero un nivel de riesgo muy bajo, puede
Un jugador intermedio tiene un riesgo menor al anterior y una
puntuación de 200, resultando más costoso leer su juego y aunque
El diagrama de bloques del programa es el siguiente:
necesitando más manos, es finalmente batible. Y un jugador bueno
está definido por un umbral de puntuación más elevado, y realmente
difícil de leer llegando a necesitar un millón de manos y no
garantizando la victoria. Por otra parte el jugador inteligente, para
simplificar el juego, se dedica a aprender los movimientos del rival y a
pagar sus apuestas o no en función de lo que vaya aprendiendo.

Se ha escrito un método para que nuestro jugador inteligente


descubra el valor medio de las manos con las que el rival apuesta, este
valor se puede conseguir con seguridad a las 1200 manos. A partir de
este valor se fija el valor de mano medio para pagar apuestas un punto
por encima de nuestro rival para comenzar a ganarle, aun sin llegar al
punto optimo de ganancia.

Llegados a este punto es interesante explotar la debilidad del rival


y se busca el punto optimo medio que debería tener el valor medio de
la mano del jugador inteligente para conseguir la mayor ganancia
posible y para ello se ha implementado un método que comprueba las
ganancias cada 10000 manos verificando que nivel es el adecuado para
ganar mas.

Básicamente se comprueba en cada umbral de nuestro valor


medio de mano el beneficio obtenido y se finalmente se fijara un
umbral que será en el que mas ganancias se obtengan explotando de
esta manera la debilidad del jugador rival.
Figura 1

Nuestro diseño, que intenta simplificar una partida de poker real,


asume que no hay apuesta inicial, por lo que no tiene en cuenta que en
todas las partidas se pierde dinero si comienza la partida y no se va.

Si en vez de jugar contra un oponente jugásemos contra varios,


cada uno con una estrategia diferente, sólo tendríamos que tener en
cuenta al que tuviese el umbral más alto de todos los que van a
apostar, ya que sería el más complicado de ganar.

V. DESARROLLO Y PRUEBA DEL MODELO

Para empezar con el desarrollo se define una partida de poker


entre dos jugadores con una sola ronda de apuestas para simplificar el
juego y poder implementarlo y demostrar los conceptos deseados de la
asignatura.
Figura 2
Se reparten las cartas aleatoriamente a los dos jugadores y
siempre comenzará a jugar el jugador maquina y el inteligente hablará
detrás decidiendo si retirarse o pagar la apuesta realizada o no por el En el caso de la figura 2 se observa que las ganancias contra un
rival. jugador malo se consiguen desde el primer momento sin llegar aun al
punto óptimo.
Ha sido definido un sistema de puntuación de las manos posibles
en las partidas de poker para parametrizar de alguna manera las manos Se ha comprobado experimentalmente que al punto óptimo
y obtener datos numéricos para desarrollar el robot de poker, ya que llegamos cuando llevamos 30000 manos, que son relativamente pocas
nos basamos en valores medios de manos para definir las estrategias ya que existen muchas combinaciones de jugadas de poker. El sistema
ganadoras. ha comprobado que a pesar de ganar al jugador "malo" en los primeros
niveles se intenta llegar al punto óptimo de ganancias. Esto se
Para desarrollar el sistema se han considerado tres tipos de consigue una vez que se estabiliza la grafica y llegando al valor medio
jugador que se definen a partir de su nivel de riesgo y de su nivel de de nuestra mano que nos garantiza el máximo beneficio y ganando
umbral de puntuación para comenzar a apostar. El jugador malo está cada 10000 manos unos 14000 puntos de beneficio.
definido por un umbral de puntuación de 100 y un riesgo de 9, de esta
manera significa que prácticamente apostara en todas las manos y será
más fácil leer su juego y aprenderlo.
En cualquier caso y como conclusión final, se ha demostrado que
se a alcanzado el objetivo de diseñar un sistema complejo, que según
el modelo desarrollado y bajo unas circunstancias específicas muestra
su capacidad de aprendizaje y un comportamiento inteligente.

IX. REFERENCIAS

[1]Java : how to program. Deitel, Harvey M.

[2] Fundamentos de Java : [actualizado para J2SE 5] 
Schidt, Herbert

[3] Programación orientada a objetos con Java : una 
introducción   práctica usando BlueJ 
Barnes, David J
Figura 3
[4]Apuntes de la asignatura Inteligencia en Redes de
Comunicaciones, de la titulación Ingeniería de
Telecomunicación.
En la situación de la figura 3, ya que hay definido un valor
Universidad Carlos III de Madrid.
medio por defecto que es 17, hasta que no aprende la el valor medio
del rival jugará con este dato y por consiguiente perdiendo si se
[5] www.google.com
enfrenta a un jugador que seleccione mejor sus manos, de hecho,
contra este jugador empieza perdiendo y va aprendiendo su media y su
nivel de juego hasta que de nuevo consigue llegar al umbral optimo y [6] www.wikipedia.org
ganando lo máximo posible a este rival. Ganara cada 10000 manos
unos 5200 puntos de beneficio con este umbral aprendido.

Es interesante ver que el beneficio medio cada 10000 manos es


menor que en el caso anterior ya que el jugador es mejor, es decir, que
aunque se llegue al punto óptimo de beneficio siempre se le ganará
mas al jugador mediocre en el punto optimo de beneficio.

VI. CONCLUSIONES

Se ha visto como después de un número suficiente de manos, el


jugador virtual acaba ganando. No obstante, este número suficiente
de manos es tan alto, que no sería viable en las partidas de poker
reales. Además, no se han tenido en cuenta factores tan importantes en
el poker como son los faroles , que harían que el umbral tuviese una
varianza mucho mayor o, simplemente el estado de ánimo del jugador,
el cual podría hacer que arriesgase más o menos al apostar, cambiando
así su estrategia de juego y haciendo que todos los datos anteriormente
obtenidos ya no fuesen útiles.

También se ha comprobado como es mucho más fácil aprender


a ganar al tipo de jugadores que siempre apuestan, lleven buena jugada
o no, y en cambio, son necesarias muchas más manos para aprender a
derrotar a los jugadores que sólo apuestan cuando llevan buenas
jugadas. Esto es debido a que es mucho más fácil localizar el umbral
de decisión de apostar o no, y cuanto apostar, en el primer tipo de
jugadores.

Se podría esperar, al introducir ese grado de farolismo como


una variable aleatoria, que al aumentar la varianza del umbral, sea
necesarias aún más manos para conseguir ajustar el umbral y derrotar
a los oponentes. Como se ha demostrado, un modelo no simplificado
es inviable en la realidad por la cantidad de manos que tiene que jugar
el jugador virtual inteligente para aprender a derrotar a los oponentes,
por lo que la introducción de un grado de engaño, que haría que
aumentasen más el número de manos, no sería determinante.

También podría gustarte