Poker: analizador de manos III

Una vez que ya está claro cómo va a ser exactamente el analizador, nos podemos poner manos a la obra. A mi personalmente me gusta programar en Java, porque creo que es fácil crear grandes proyectos poco a poco, ya que la estructura de programación ayuda (clases, herencia, etc.). También utilizo NetBeans.

El algoritmo completo podría resumirse así:

  1. La entrada son 7 cartas, cada una con un número y color determinado.
  2. Cada número tiene asignado un valor, y cada color tiene asignado otro valor (según las tablas de las entradas precedentes).
  3. Sumamos los valores de todos los números, y buscamos en la primera tabla el valor de la mano asociado (entre 1 y 7462).
  4. Sumamos los valores de todos los colores, y buscamos en la segunda tabla si hay o no color.
  5. Si no hay color, devolvemos el valor de la mano encontrado en el paso 3.
  6. Si hay color, sumamos todos los valores de las cartas con el palo determinado.
  7. Buscamos en la tercera tabla el valor de la mano teniendo en cuenta el color.
  8. Devolvemos el menos de los dos valores, el del paso 3 y el del paso 7 (ya que la mejor mano es la 1, y la peor la 7462).

Notemos que el hecho de tener en cuenta el color nos ha complicado bastante el algoritmo, pero dado que este es un caso poco habitual (aproximadamente un 0.19% de las manos) no influirá excesivamente en el rendimiento global.

La construcción de las tablas es mecánica y sin demasiado interés. En principio, no postearé el código utilizado ni haré más comentarios al respecto.

Lo único que falta es pasar el algoritmo a código y comprobar su correcto funcionamiento. Para ello, he creado unas cuantas clases en Java que implementen el algoritmo y que sean fácilmente interpretables. En Descargas podéis encontrar los archivos .java, las tablas utilizadas y un léeme para saber cómo utilizarlo. Si queréis utilizarlo para fines personales y/o modificarlo sóis libres de hacerlo, siempre que se respete la licencia GPL. En cualquier caso, si te ha resultado útil o lo has modificado de alguna manera te agradecería que me escribieras porque probablemente me intereserá!

Editado. También te puedes descargar los archivos directamente desde aqui:

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

3 comments

  • Germán

    Buenas! Me ha gustado mucho la explicación del analizador de manos pero me gustaría echarle un vistazo al código y la descarga no está disponible, si pudieras arreglarla o enviarme los .java por mail te estaría muy agradecido. Buena serie de posts, muchas gracias!

    • Pirer

      Tienes razón Germán, las descargas no funcionan actualmente (seguramente una incompatibilidad del plugin que se encarga de gestionarlas). Te lo envío al email que introdujiste al escribir el comentario.

      Saludos!

  • ralph

    disculpa, me interesa el codigo podrias enviarlas a mi email tambien..gracias

Deja un comentario

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