TAZ-PFC-2015-132


Aplicación web de póker Texas Hold'em multijugador

Serrate Pardo, Rubén
Hutton, Graham (dir.)

Merseguer Hernáiz, José Javier (ponente)

Universidad de Zaragoza, EINA, 2015
Informática e Ingeniería de Sistemas department, Lenguajes y Sistemas Informáticos area

Ingeniero en Informática

Abstract: Puesto que soy jugador ocasional de póker, en todo momento tuve clara la funcionalidad básica de la aplicación. Sin embargo, tras realizar un pequeño análisis de productos similares, obtuve la conclusión de que el usuario siempre necesitaba ejecutar software adicional para acceder a las partidas, ya fuera en forma de applets o de plug-ins para el navegador. A partir de esta observación, y puesto que la tecnología actual lo permite, decidimos que la principal característica diferenciadora de nuestra aplicación iba a ser que se podría utilizar simplemente con un navegador web actualizado, sin necesidad de instalar ningún otro software. Durante todo el ciclo de desarrollo de la aplicación se siguió una metodología ágil, dando lugar a varios prototipos que se iban mejorando en sucesivas iteraciones. El primero de estos prototipos que se programó fue una librería que ofrecía una serie de operaciones a través de las cuales era posible desarrollar una partida de póker. Siguiendo con las prácticas ágiles, se aplicó TDD (Test Driven Development, Desarrollo guiado por pruebas), es decir, primero se programaron los tests para las clases involucradas y posteriormente el código necesario para satisfacerlos, todo ello en C#. Esta primera versión fue después enriquecida con funcionalidad para soportar varias partidas simultáneas y con una base de datos que almacenaría las acciones de los usuarios. Se añadieron también operaciones para calcular estadísticas comunes a partir de éstas, jugadores de la IA (Inteligencia Artificial) y otras pequeñas funcionalidades que habían quedado fuera del ámbito de la primera iteración. Este conjunto de clases y sus tests dio lugar al núcleo de la aplicación, el cual se puede ver como una API que ofrece soporte para desarrollar partidas de póker. El siguiente paso fue integrar este núcleo en el servidor web. Puesto que el patrón con el que se trabaja en el servidor web es MVC (Modelo Vista Controlador), las clases que conforman el núcleo de nuestra aplicación pasaron a ser los modelos, se crearon controladores para permitir la interacción con estos modelos a través de peticiones HTTP, y por último unas vistas muy sencillas que volcaban la información en forma de documento HTML. Por otro lado, se adaptó el sistema de identificación que ASP.NET MVC provee para integrarlo con nuestra aplicación, o en otras palabras, se estableció la relación entre un jugador en una mesa y un usuario identificado en el sistema. Una vez se tuvo el sistema integrado en la aplicación web, se diseñó una primera interfaz a la que se añadió tanto la información como los controles necesarios para que los jugadores pudieran desarrollar partidas y ver sus estadísticas. Para implementar esta interfaz, se extendieron las vistas del modelo MVC y se ofrecieron nuevas operaciones en los controladores para ofrecer soporte a las peticiones AJAX por parte del cliente. Estas peticiones asíncronas son necesarias para actualizar el estado de la mesa y transmitir al servidor las acciones realizadas por los jugadores entre otras funciones. En este momento se adoptaron también una serie de medidas para permitir el acceso concurrente a la aplicación de varios jugadores. Por último, una vez se tuvo una aplicación completamente funcional, se pidió a un grupo de usuarios que trataran de desarrollar una partida y consultar sus estadísticas y que después dieran sus opiniones sobre la interfaz y/o posibles problemas encontrados. Este último análisis de la aplicación dio lugar a un rediseño de la interfaz y a la implementación de nuevas funcionalidades que facilitaban el manejo de la misma.

Tipo de Trabajo Académico: Proyecto Fin de Carrera
Notas: Realizado de Erasmus en la Universidad de Nottingham, Reino Unido.

Creative Commons License



El registro pertenece a las siguientes colecciones:
Academic Works > Trabajos Académicos por Centro > escuela-de-ingeniería-y-arquitectura
Academic Works > Final Degree Projects




Rate this document:

Rate this document:
1
2
3
 
(Not yet reviewed)