PDF de programación - Desarrollando con Java 8 - Poker

Imágen de pdf Desarrollando con Java 8 - Poker

Desarrollando con Java 8 - Pokergráfica de visualizaciones

Publicado el 20 de Marzo del 2018
2.414 visualizaciones desde el 20 de Marzo del 2018
1,1 MB
136 paginas
Creado hace 9a (22/01/2015)
Creando una aplicación para explicar algunas de las novedades de Java 8

Como: expresiones lambda, programación funcional,

anotaciones, métodos por defecto en interfaces,

y otras curiosidades.

Versión 1.0

22 de Enero de 2015

Por David Pérez Cabrera.
Este documento ha sido creado para www.javahispano.org seguramente aquí encontrarás más
documentación que pueda resultar de tu interés, sí no la hay ¡se el primero en prepararla y
compartirla! JavaHispano es una comunidad que se hace entre todos.

2

Índice
Introducción..........................................................................................................................................4
¿Por qué el Póquer?..............................................................................................................................5
Licencia del documento........................................................................................................................6
Licencia del código...............................................................................................................................7
Capítulo 0: Introducción al Póquer.......................................................................................................8
Manos en el Póquer..............................................................................................................................8
Etapas en el Texas hold'em.................................................................................................................12
Apuestas en el Texas Hold'em sin límites..........................................................................................13
El bote.................................................................................................................................................18
Capítulo 1: Modelado básico..............................................................................................................20
Capítulo 2: Algoritmos iniciales.........................................................................................................36
Capítulo 3: Póquer API.......................................................................................................................56
Capítulo 4: Máquina de estados.........................................................................................................67
Capítulo 5: Eventos y concurrencia....................................................................................................77
Capítulo 6: Temporizador...................................................................................................................83
Capítulo 7: Modelo de Póquer para la máquina de estados................................................................87
Capítulo 8: Estados del Póquer...........................................................................................................95
Capítulo 9: Controladores para el Póquer........................................................................................106
Capítulo 10: Creando la estrategia del jugador.................................................................................116
Capítulo 11: La interfaz gráfica........................................................................................................119
Capítulo 12: Ensamblando componentes.........................................................................................132
Bibliografía.......................................................................................................................................135

3

Introducción

Introducción

El desarrollo de software es una actividad que puede llegar a ser muy complicada, requiere un gran
esfuerzo y práctica. Existe una importante diversidad de paradigmas de programación,
innumerables lenguajes, muchos de los cuales tienen varias especificaciones. Cada lenguaje invita a
abordar los problemas de forma diferente, por muy similares que puedan llegar a ser siempre hay
matices que te hacen enfocar de forma distinta el mismo problema, incluso dentro de un mismo
lenguaje y especificación, cada persona construirá software de forma distinta aunque tenga el
mismo fin. Si esta enorme diversidad no fuera suficiente, hay ecosistemas enteros de herramientas y
tecnologías con la intención de facilitar la labor del desarrollo.

Dado el renovado interés despertado tras la especificación de Java 8 y sobre todo al gran salto dado
con respecto al de especificaciones anteriores no quería desaprovechar la oportunidad de explorar
las posibilidades que nos brinda.

El objetivo de este documento es desarrollar un juego de Póquer de forma didáctica utilizando Java
8 y una familia de tecnologías muy habituales en el ecosistema de Java. No es necesario tener un
conocimiento profundo en estas herramientas/tecnologías ya que según vaya avanzando se van a ver
algunas pinceladas para entender cómo van encajando hasta llegar al resultado final.

Cuando en 2007 apareció la Javacup, me encantó, participé con escasa fortuna, pero disfruté
enormemente con la emoción de los enfrentamientos, el ambiente y la camaradería del resto de
participantes. Entonces entendí como había logrado su propósito: Aprender a programar y mejorar
de forma divertida con un juego. Pura genialidad, convertir el arduo proceso de aprender en un
hobby. No he podido volver a participar pero me dejo una huella profunda y una espinita. Participar
ahora se me hace difícil, han evolucionado mucho las tácticas de los otros participantes y soy un
mal perdedor.

4

¿Por qué el Póquer?

¿Por qué el Póquer?

Siempre he sido un gran apasionado del Ajedrez, me ha parecido un juego fascinante, enormemente
complejo y divertido. Con el tiempo crecí y mi pasión por el ajedrez también lo hizo, cuando
aprendí a programar descubrí a mi otra gran pasión, me han acompañado ambas desde entonces y
siempre he querido tener la oportunidad de combinarlas. Esta parece una gran ocasión, sin embargo,
el juego elegido es el Póquer, voy a tratar de explicar el porqué.

Antes de tener ningún contacto con el Póquer ya tenía una idea preconcebida, lo asociaba a los
casinos y a las salas de juego, de modo que a priori no le veía mayor interés del que tienen lanzar
unos dados y tenía muchos prejuicios por la asociación que hacía con el juego y a la parte más
oscura que este tiene.

Pasó el tiempo y por casualidad di con un artículo sobre Ajedrez y Póquer, la primera reacción fue
de cierto desconcierto, leyendo explicaba como los buenos Ajedrecistas solían ser buenos jugadores
de Póquer y esto desde mis prejuicios no era capaz de entenderlo.

No veía que relación podía tener un juego tan noble y preciso como el Ajedrez en el que juegan dos
adversarios, con otro juego de azar al que ya tenía estigmatizado y en el que se enfrentan muchos
jugadores. Así que me pico la curiosidad y empecé a leer un poquito sobre el Póquer, no tarde en
darme cuenta de algo que ambos tenían en común, el factor psicológico y que el mejor acaba
ganado cuando se disputa el número suficiente de partidas. Entonces empecé a ver el Póquer con
otros ojos, no se trata sólo de azar, se trata de ganar la batalla psicológica calculando con precisión
milimétrica las opciones en cada momento y además ¡a varios adversarios a la vez! Esto ya tomaba
un cariz bastante más interesante. Nunca he llegado a aprender a jugar bien al Póquer, pero he
pasado buenos ratos jugando con amigos.

En 1997 se marcó un hito muy importante en la historia del Ajedrez, una máquina fue capaz de
ganar al campeón mundial, por un resultado muy ajustado y no sin cierta polémica, pero lo cierto es
que ocurrió. Hoy tal enfrentamiento ya carece de sentido, la mejora del hardware y el
perfeccionamiento que han tenido los algoritmos hacen que una máquina con el software adecuado
no tenga rival (humano).

El Ajedrez desde el punto de vista computacional, para mí ha perdido interés, no sería capaz de
ganar a un algoritmo sencillo con una base de datos importante de partidas, finales y un buen libro
de aperturas, sin embargo, el Póquer no tiene esa problemática y debido a la gran componente
psicológica que tiene, además la participación de muchos jugadores con diferentes estilos complica
la forma de plantear la estrategia.

La posibilidad de hacer una estrategia de Póquer lo suficientemente buena como para jugar contra
ella en una lucha equilibrada me resulta demasiado atractiva como no para elegir Póquer en lugar
del Ajedrez.

5

Licencia del documento

Licencia del documento

Este documento se distribuye bajo licencia creative commons by-nc-sa versión 3 para uso no
comercial. Usted puede reproducir, distribuir o comunicar públicamente la obra o prestación
solamente bajo los términos de esta licencia y debe incluir una copia de la misma, o su Identificador
Uniforme de Recurso (URI).

Puede consultar los detalles de esta licencia en el siguiente enlace:

http://creativecommons.org/licenses/by-nc-sa/3.0/es/legalcode.es

El trabajo de revisión es una tarea ardua y es muy posible que se hayan escapado algunos errores, si
detectas alguno por favor házmelo llegar a [email protected] para corregirlo y tratar de
mejorar el documento.

Internet facilita enormemente la comunicación y difusión del conocimiento, así que gracias a que
alguien ha compartido este documento, te ha podido llegar a ti, siéntete libre de compartirlo pero es
importante respetar las licencias de uso, citar al autor y a la fuente.

6

Licencia del código

Licencia del código

El código distribuido en este documento y en el repositorio está bajo la licencia GPL v3.0.

Copyright © 2015 David Pérez Cabrera <[email protected]>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3
  • Links de descarga
http://lwp-l.com/pdf9735

Comentarios de: Desarrollando con Java 8 - Poker (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad