000037192 001__ 37192
000037192 005__ 20160204081820.0
000037192 037__ $$aTAZ-PFC-2015-132
000037192 041__ $$aspa
000037192 1001_ $$aSerrate Pardo, Rubén
000037192 24500 $$aAplicación web de póker Texas Hold'em multijugador
000037192 260__ $$aZaragoza$$bUniversidad de Zaragoza$$c2015
000037192 500__ $$aRealizado de Erasmus en la Universidad de Nottingham, Reino Unido.
000037192 506__ $$aby-nc-sa$$bCreative Commons$$c3.0$$uhttp://creativecommons.org/licenses/by-nc-sa/3.0/
000037192 520__ $$aPuesto 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.
000037192 521__ $$aIngeniero en Informática
000037192 540__ $$aDerechos regulados por licencia Creative Commons
000037192 700__ $$aHutton, Graham$$edir.
000037192 7102_ $$aUniversidad de Zaragoza$$bInformática e Ingeniería de Sistemas$$cLenguajes y Sistemas Informáticos
000037192 7202_ $$aMerseguer Hernáiz, José Javier$$eponente
000037192 8560_ $$f562776@celes.unizar.es
000037192 8564_ $$s3161645$$uhttps://zaguan.unizar.es/record/37192/files/TAZ-PFC-2015-132.pdf$$yMemoria (spa)
000037192 909CO $$ooai:zaguan.unizar.es:37192$$pproyectos-fin-carrera$$pdriver
000037192 950__ $$a
000037192 951__ $$adeposita:2016-01-15
000037192 980__ $$aTAZ$$bPFC$$cEINA