Poker: analizador de manos IV

El analizador de manos parece que funciona bien. Con los archivos auxiliares (las tablas), que tienen que estar en la misma carpeta que el .jar (o en la carpeta del proyecto si se utiliza un IDE), es capaz de calcular manos a una velocidad bastante alta.

Con un procesador de 2.4GHz Intel Core 2 Duo, he ejecutado el código de ejemplo, que recorre todas las posibles manos de la baraja y calcula cuántas hay de cada tipo. La salida del programa ha sido:

Resultados:
Esc Color: 41584
Poker: 224848
Full: 3473184
Color: 4047644
Escalera: 6180020
Trio: 6461620
Dobles parejas: 31433400
Pareja: 58627800
Carta alta: 23294460

Totales: 133784560

Comprobando con la wikipedia la cantidad de manos distintas que hay según el tipo de mano, he llegado a la conclusión de que el funcionamiento parece correcto, ya que coincide en todos los casos.

La ejecución del programa ha tardado 31 segundos, lo cual son 4.300.000 manos/segundo aproximadamente… no está nada mal. Además, en esos 31 segundos el programa inicializa variables y instancias de clases, maneja la baraja, guarda los valores, etc. Ejecutando las mismas sentencias, pero esta vez sin evaluar las manos he comprobado que el tiempo que se tarda en realizar todo este trabajo “extra” es de entre 2 y 3 segundos.

Para finalizar, me gustaría comentar que si bien son unos buenos resultados, no son los mejores. El mismo programa implementado en C++ estaría más optimizado. Además, se han conseguido evaluadores sensiblemente más rápidos.

No obstante, creo que los puntos fuertes de este analizador es que está escrito en Java, y considero que es muy fácil extender este programa o crear nuevas funcionalidades. Además, 4.300.000 manos/segundo es un valor bastante alto, y rara vez necesitaremos una velocidad de cálculo mayor. Lo repito: no creo que sea el mejor, ni tampoco está basado en una idea original, pero es cómodo y se puede manejar fácilmente.

Si necesitas ayuda para hacerlo funcionar, te ha sido de utilidad, lo has modificado o lo has utilizado para cualquier cosa, estaría encantado de que me lo comentaras vía e-mail!

Editado. Puedes descargar los archivos haciendo click aqui:

Analizador de manos de póker (Java)
466.0 KiB
221 Downloads
Details

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *