scieee AI-readable full text Open interactive document viewer

Desarrollo de una aplicación que facilita la enseñanza y el estudio del póker en su variante Texas Hold'em

León Santana, Josué De

Abstract

PokerTrainer es una aplicación para dispósitivos móviles con Android como sistema operativo. Está dirigida a aquellos jugadores de póker en su variante Texas Hold'em que quieran aprender ciertos conceptos básicos que les van a ayudar a mejorar su juego. Se basa en la gamificación mediante un sistema de quiz de contenidos teóricos referidos al póker.

Full text

! Las$Palmas$de$Gran$Canaria,$Diciembre$de$2014$ Desarrollo(de(una(aplicación(que( facilita(la(enseñanza(y(el(estudio(del( póker(en(su(variante(Texas(Hold’em( Josué(De(León(Santana( Tutor:(José(Juan(Hernández(Cabrera( Tutor:(José(Évora(Gómez( 08! Fall$ ! Agradecimientos De lo primero que me acuerdo al escribir estas líneas es de la persona que no solo me crió sino que también estaba siempre pendiente de que pudiera tener un futuro y una buena vida para que nunca tuviera que pasar por la pobreza con la que él creció. Gracias abuelo. A mi madre y a mi abuela, que han hecho posible que llegara hasta este punto apoyándome en todo momento, siendo un ejemplo de trabajo constante y de amor incondicional. A Gabriela, mi novia, que ha aguantado mis días de agobio, mis incontables cambios de parecer y mis interminables charlas de informática y poker sin quejas y siempre con cariño. A toda mi familia, si hay algo que nunca se queda atrás en el camino eso es la familia y yo doy gracias porque con nuestros más y nuestros menos siempre hemos sido una familia pequeña pero muy unida. A la familia Sobrado Delgado, por tratarme desde el principio como uno más. Ellos también son partícipes de este proyecto. A mis amigos, que siempre son una vía de escape por donde desaparece el estrés. A mis tutores, sin los cuales este proyecto sin duda no sería lo mismo y de los cuales he aprendido infinidad de lecciones. A todas aquellas personas que me han ayudado a que este proyecto salga adelante. GRACIAS. ! ! Índice' ! Motivación!y!contextualización!..............................................................................................!6! La!idea!................................................................................................................................................!9! Objetivos!........................................................................................................................................!10! Marco!teórico!...............................................................................................................................!11! Patrones!de!diseño!...............................................................................................................!11! Código!limpio!..........................................................................................................................!11! Uso!de!herramientas!profesionales!..............................................................................!12! Hockeyapp!...........................................................................................................................!12! Bitbucket!..............................................................................................................................!12! SourceTree!..........................................................................................................................!12! Android!Studio!..................................................................................................................!12! Principios!SOLID!....................................................................................................................!12! Filosofía!Ágil!............................................................................................................................!13! Principios!del!Manifiesto!Ágil!..........................................................................................!13! Historias!de!usuario!.............................................................................................................!13! Diseño!de!la!arquitectura!..................................................................................................!15! Gamificación!............................................................................................................................!15! Justificación!de!las!competencias!cubiertas!...................................................................!17! Ficha!de!PokerTrainer!.............................................................................................................!22! Análisis!...........................................................................................................................................!23! Diseño!de!la!aplicación!............................................................................................................!25! Dominio!del!problema!........................................................................................................!25! Diagramas!de!clase!...............................................................................................................!26! Diagrama!de!paquetes!........................................................................................................!35! Diseño!de!la!interfaz!de!usuarios!...................................................................................!37! Desarrollo!del!proyecto!...........................................................................................................!42! Desarrollo!en!Android!.............................................................................................................!43! Soportando!distintos!tamaños!de!pantalla!................................................................!43! Soportando!distintos!lenguajes!......................................................................................!44! Opciones!de!almacenamiento!..........................................................................................!44! Aportaciones!y!trabajo!futuro!..............................................................................................!45! Fuentes!de!información!...........................................................................................................!47! ! CAPÍTULO(1.!INTRODUCCIÓN( ! Al! leer! este! capítulo! entenderemos! de! donde! viene! la! idea! de! crear! una! aplicación!en!el!entorno!del!juego!y!más!concretamente!del!póker.!Además! serán!detalladas!las!herramientas!que!se!han!utilizado!para!ello!y!se!explica! que!competencias!se!han!cubierto.! ! 6! ' Josué!de!Leon!Santana! ' ' ' Motivación$y$contextualización$ En!el!año!2008!descubrí! el! póker!y!fue!un!juego!que!me! fascinó.! Tenía! un! componente! azaroso! pero,! al! adentrarte! un! poco! más,! descubres! que! está! lleno!de!estrategia!y!estadística.!Además!vives!en!un!entorno!en!el!que!es!muy! importante! basar! todas! tus! decisiones! en! las! matemáticas,! ya! que! cometer! una! acción! irracional! con! tu! banca! te! puede! llevar! a! la! bancarrota.! Hay! muchos!ejemplos!de!jugadores!que!han!ganado!mucho!dinero!pero!al!querer! avanzar!más!rápido!de!lo!establecido!jugando!partidas!que!no!son!adecuadas! para!su!banca!lo!han!perdido!todo.! ! El!siguiente!paso!en!mi!vida!relacionado!con!el!poker!fue!la!fundación!de!la! Asociación!Canaria!de!Póker!Amateur!(a!partir!de!ahora!ACPA)!en!2009,!que! llegaría!a!presidir!en!el!periodo!de!2011`2013.!ACPA!nace!con!unos!objetivos! muy! claros:! obtener! el! reconocimiento! del! poker! como! juego! mental;! su! promoción! como! actividad! lúdica,! social! y! de! competición;! y! educar! e! informar! a! los! aficionados! sobre! su! desarrollo! en! Canarias.! A! medida! que! ACPA!se!da!a!conocer!se!crean!unas!relaciones!con!los!casinos!de!Canarias! para!la!creación!de!un!proyecto!en!común.!Nace!así!Canarias!Póker!Tour,!una! serie! de! torneos! de! póker!que! van! rotando! por! los! siete! casinos! del! archipiélago! (por! ese! entonces).! Había! pasado!de! ser! un! jugador! a! ser! un! gestor! del! juego! ya! que! dentro! de! las! principales! responsabilidades! se! encontraban!el!diseño!previo!de!los!torneos!y!su!dirección.! ! Como!obra!final!presento!este!trabajo!de!fin!de!título,!PokerTrainer,!para!la! plataforma!Android,!en!el!cual!he!plasmado!los!conocimientos!básicos!que!he! ido! adquiriendo! a! lo! largo! de! los! últimos! años! de! carrera! para! crear! una! herramienta!útil,!portable!y!entretenida!para!los!jugadores!noveles!de!póker! que!quieran!aprender!lo!que!hay!más!allá!del!juego!en!sí.!Concretamente!se! centra!en!la!variante!Texas!hold’em.! ! Texas! hold’em! es! actualmente! la! variante! más! popular.! En! el! juego! a! cada! jugador!se!le!reparten!dos!cartas!ocultas!y,!una!vez!ocurrido!esto,!comienza! una! ronda! de! apuestas.! Si! hay! más! de! un! jugador! sin! retirarse! de! la! mano! después! de! esta! ronda! se! ponen! sobre! la! mesa! tres! cartas! descubiertas! y! comunitarias.!Mientras!siga!habiendo!más!de!un!jugador!sin!retirarse!de!la! mano! se! repite! el! proceso! de! rondas! de! apuestas! y! se! enseña! una! carta! comunitaria.!El!límite!son!cinco!cartas!comunitarias.!El!jugador!que!tenga!la! mejor!mano!formada!entre!sus!cartas!ocultas!y!las!cartas!comunitarias!o!el! que!sea!el!único!en!no!retirarse!gana!la!mano!y!consigue!las!fichas!que!estén! en!el!bote.! ! El!póker!no!es!un!juego!de!instinto!y!azar,!contrario!a!lo!que!mucha!gente! piensa!es!un!juego!matemático!sobre!todo!basado!en!la!estadística!y!es!por! ello! que! existen! jugadores! profesionales.! También! existen! jugadores! ! 7! ' Desarrollo!de!un!aplicación!para!la!variante!Texas!Hold’em! ' ' ' regulares!que,! aunque! no! viven! del! juego,! tampoco! pierden! dinero! apostando.!Si!los!anteriores!no!pierden!nunca,!¿quiénes!ponen!dinero!en!el! sistema?.!Los!jugadores!recreacionales,!que!son!los!que!usan!el!sistema!con! motivo!de!ocio!son!los!que!de!verdad!mantienen!el!ecosistema!vivo.! ! Según!el!informe!del!primer!trimestre!de!2013!que!generó!la!DGOJ!(Dirección! general! de! ordenación! del! juego),! en! España! hay! un! total! de! 1.420.256! jugadores.!De!esta!cantidad,!la!mayoría!de!ellos!son!jugadores!recreacionales.! Uno! de! los! problemas! con! los! que! se! encuentra! la! industria! es! la! caída! de! nuevos!jugadores!(véase!la!Figura!1.1).!Esto!se!debe,!entre!otras!cosas!por!dos! fenómenos:!la!aparición!de!las!escuelas!y!la!práctica!del!“bumhunting”.! ! ! Figura!1.1:!Análisis!de!la!dirección!general!de!juego!sobre!la!evolución!del!poker!en!España!en! el!último!trimestre!de!2014! ! Durante!la!época!en!la! que!explotó!el! boom!del!póker!online! entre!2003!y! 2006!se!empezaron!a!crear!unas!alianzas!entre!las!salas!de!póker!y!algunos! jugadores.!Los!jugadores!atraían!a!nuevos!jugadores!a!las!salas!y!las!salas!a!su! vez!concedían!una!parte!de!los!beneficios!que!generan!esos!nuevos!jugadores! a!la!persona!que!los!llevaba!al!sistema.!! ! A!raíz!de!esto!nacen!las!escuelas!de!póker.!La!mejor!forma!de!atraer!a!alguien! a! una! sala! era! dotando! de! conocimientos! a! esa! persona! para! que! ésta! no! pierda!su!ingreso!inicial!y!pueda!seguir!jugando!y!recaudando!beneficios!a!la! escuela!y!a!la!sala.!! ! El!término!“bumhunting”!aparece!cuando!cierto!sector!de!jugadores!se!dedica! a! jugar! exclusivamente! contra! jugadores! recreacionales,! buscándolos! con! ayuda!de!herramientas!de!datamining,!y!dejando!de!dar!acción!a!los!demás! jugadores!de!la!mesa!en!cuanto!los!jugadores!más!débiles!se!han!quedado!sin! dinero.! ! La!nueva!irrupción!de!estos!elementos!cambió!todo!el!ecosistema!del!póker! online.!La!consecuencia!ha!sido!el!endurecimiento!del!juego!en!las!mesas!a!lo! largo! de! los! años! por! dos! motivos:! los! jugadores! regulares! son! mejores! gracias!a!las!escuelas!y!cada!vez!hay!menos!jugadores!recreacionales.! ! La! conclusión! ha! sido! que! el! jugador! recreacional! (el! que! realmente! pone! dinero!en!el!sistema)!que!no!dedica!parte!de!su!tiempo!a!estudiar!el!juego! ! 8! ' Josué!de!Leon!Santana! ' ' ' pierde!su!dinero!cada!vez!más!rápido!y,!debido!a!ello,!sus!expectativas!de!ocio! no!se!cumplen.! ! Dado! este! análisis! y,! aunque! no! se! plantee! durante! este!trabajo! de! fin! de! título,! si! la! aplicación! tiene! buena! acogida! podría! plantearse!un! modelo! de! negocio! con! un! nicho! de! mercado! con! los! jugadores! recreacionales! por! objetivo.! ! 9! ' Desarrollo!de!un!aplicación!para!la!variante!Texas!Hold’em! ' ' ' La$idea$ Hemos!hablado!del!por!qué!del!contexto!del!proyecto!y!también!de!los!deseos! del! desarrollo! móvil.! Además! se! introdujo! un! pequeño! análisis! del! estado! actual! del! mercado.! Pero! ¿cómo! se! llegó! hasta! esa! idea?! ¿fue! siempre! la! primera!opción?.! ! A!decir!verdad!no.!El!proyecto!se!empapó!desde!un!principio!de!los!principios! ágiles! y,! como! bien! dice! uno! de! ellos! aceptamos! el! cambio! como! parte! del! trabajo.!La!idea!inicial!era!desarrollar!una!aplicación!que!analizara!una!base! de!datos!con!jugadas!y!devolviera!al!usuario!un!indicador!sobre!si!la!jugada! era!o!no!correcta!estadísticamente!hablando!pero,!tras!un!estudio!previo!del! mercado,!los!tutores!y!yo!mismo!decidimos!que!esa!idea!no!encajaba!bien!con! el! nicho! que! previamente! habíamos! descubierto! (los! jugadores! recreacionales)! ya! que! ellos! no! utilizan! software! destinado! a! guardar! sus! jugadas!de!póker.! ! Al!final!tras!decidir!que!ese!era!el!mercado!objetivo,!nos!decidimos!por!un! software! para! los! jugadores! recreacionales,! que,! como! si! se! tratara! de! un! juego! pudiesen! elevar! su! nivel! de! póker.! Además! nos! decidimos! por! la! plataforma!Android.! ! 16! ' Josué!de!Leon!Santana! ' ' ' siempre! es! fácil! estimular! la! actividad! dinámica! y! frecuente! entre! los! miembros!de!una!comunidad.! ! Una!correcta!implementación!de!estrategias!de!gamificación!permite!pasar!de! la! mera! conectividad! al! engagement! (o! compromiso),! logrando! que! los! miembros! de! una! comunidad,! los! trabajadores! de! una! empresa,! los! estudiantes! de! un! instituto,! los! habitantes! de! una! ciudad! –prácticamente! cualquier!colectivo!o!individuo`!participen!de!manera!dinámica!y!proactiva!en! acciones!que!generalmente!requieren!un!esfuerzo!de!la!voluntad.! ! La! integración! de! dinámicas! de! juego! en! entornos! no! lúdicos! no! es! un! fenómeno!nuevo,!pero!el!crecimiento!exponencial!del!uso!del!videojuego!en! los! últimos! años! ha! despertado! el! interés! de! expertos! en! comunicación,! psicología,!educación,!salud,!productividad!–y!casi!cualquiera!área!humana`! por!descifrar!las!claves!que!hacen!del!videojuego!un!medio!tan!eficaz.!En!estos! últimos! años! ha! comenzado! también! la! expansión! en! el! estudio! de! su! aplicación! a! otros! ámbitos! no! necesariamente! lúdicos.! Gamificación! es! el! término!escogido!para!definir!esta!tendencia.! ! 17! ' Desarrollo!de!un!aplicación!para!la!variante!Texas!Hold’em! ' ' ' Justificación$de$las$competencias$cubiertas$ CII01.&Capacidad¶&diseñar,&desarrollar,&seleccionar&y&evaluar&aplicaciones&y& sistemas&informáticos,&asegurando&su&fiabilidad,&seguridad&y&calidad,&conforme& a&principios&éticos&y&a&la&legislación&y&normativa&vigente.& ! PokerTrainer!se!ha!desarrollado!como!una!aplicación!móvil!para!dispositivos! con!el!sistema!operativo!Android.!Su!implementación!se!ha!desarrollado!en! cuatro!etapas:! ! • Análisis! de! requisitos:! En! el! cual! se! han! definido! las! historias! de! usuarios!basadas!en!el!problema!a!resolver!y!donde!se!han!tomado!las! decisiones!base!sobre!cómo!abordar!dicho!problema.! • Diseño!y!arquitectura:!Donde!se!define!la!arquitectura!del!software!y! se!realiza!un!diseño!detallado!de!los!datos!e!interfaces.! • Desarrollo:!Donde! se!ha!implementado!la! solución! a!las!historias!de! usuario!mediante!el!diseño!previo.! • Pruebas:! Donde! se! definen! las! pruebas! necesarias! para! validar! el! modelo!de!la!aplicación.! ! CII02.& Capacidad& para& planificar,& concebir,& desplegar& y& dirigir& proyectos,& servicios&y&sistemas&informáticos&en&todos&los&ámbitos,&liderando&su&puesta&en& marcha&y&su&mejora&continua&y&valorando&su&impacto&económico&y&social.& ! Este! proyecto! ha! sido! concebido! con! la! idea! de! agrupar! principios! importantes!del!desarrollo!de!ingeniería!del!software!y,!como!tal,!ha!sufrido! distintos!cambios!a!medida!que!se!implementaba,!consiguiendo!así!un!código! más!limpio!y!una!mejora!continua!en!las!prestaciones.!Además!también!ha! sufrido! cambios! importantes! en! etapas! avanzadas! debido! al! feedback! recogido!por!distintos!betatesters.! ! CII18.& Conocimiento& de& la& normativa& y& la& regulación& de& la& informática& en& los& ámbitos&nacional,&europeo&e&internacional.& ! Un! análisis! de! las! legislaciones! que! se! han! promulgado! en! diversos! países! arroja!que!las!normas!jurídicas!que!se!han!puesto!en!vigor!están!dirigidas!a! proteger! la! utilización! abusiva! de! la! información! reunida! y! procesada! mediante!el!uso!de!computadoras,!e!incluso!en!algunas!de!ellas!se!ha!previsto! formar!órganos!especializados!que!protejan!los!derechos!de!los!ciudadanos! amenazados!por!los!ordenadores.! ! En!cuanto! a!la!regulación!en!el!ámbito!del! juego!es!interesante! comprobar! como!han!habido!cambios!recientes!provocados!desde!la!Dirección!General!de! la! Ordenación! del! Juego! en! España! con! la! inclusión! de! tres! nuevas! resoluciones!que!han!entrado!en!vigor!en!Octubre!de!2014!y!que!desarrollan! ! 18! ' Josué!de!Leon!Santana! ' ' ' y! marcan! las! pautas! a! seguir! en! relación! a! los! requisitos! técnicos! de! las! actividades!del!juego!online.!Con!estas!tres!resoluciones!se!ha!terminado!de! desarrollar!el!Real!Decreto!1613/2011!con!instrucciones!claras!y!precisas!de! cómo!se!debe!recopilar!y!aportar!la!información!necesaria!para!el!control!de! la!actividad!en!una!sala!online!y!cómo!se!debe!comportar!el!software!de!los! operadores!a!la!hora!de!identificar!y!dar!servicio!al!usuario.! ! TFG01.&Ejercicio&original&a&realizar&individualmente&y&presentar&y&defender&ante& un& tribunal& universitario,& consistente& en& un& proyecto& en& el& ámbito& de& las& tecnologías& específicas& de& la& Ingeniería& en& Informática& de& naturaleza& profesional&en&el&que&se&sinteticen&e&integren&las&competencias&adquiridas&en&las& enseñanzas& ! PokerTrainer! es! una! aplicación! para! dispositivos! móviles! que! soporten! el! sistema!operativo!Android.!En!el!desarrollo!se!han!integrado!muchos!de!los! conocimientos! adquiridos! a! lo! largo! de! los! años! de! enseñanza.! Ha! sido! desarrollado!individualmente.! ! T1.& Capacidad& para& concebir,& redactar,& organizar,& planificar,& desarrollar& y& firmar&proyectos&en&el&ámbito&de&la&ingeniería&en&informática&que&tengan&por& objeto,& de& acuerdo& con& los& conocimientos& adquiridos& según& lo& establecido& en& apartado& 5& de& la& resolución& indicada,& la& concepción,& el& desarrollo& o& la& explotación&de&sistemas,&servicios&y&aplicaciones&informáticas.&(G1,&G2)& ! Este!primer!punto!se!pone!de!manifiesto!con!la!elaboración!de!la!memoria.! ! T5.& Capacidad& para& concebir,& desarrollar& y& mantener& sistemas,& servicios& y& aplicaciones&informáticas&empleando&los&métodos&de&la&ingeniería&del&software& como& instrumento& para& el& aseguramiento& de& su& calidad,& de& acuerdo& con& los& conocimientos&adquiridos&según& lo&establecido&en&apartado&5&de&la&resolución& indicada.&(G1,&G2)& ! Uno! de! los! aspectos! importantes! del! desarrollo! de! la! aplicación! ha! sido! plasmar!los!conocimientos!adquiridos!en!la!intensificación!de!Ingeniería!del! Software! para! promover! y! desarrollar! software! limpio,! ágil,! legible,! modulable,!abierto!a!cambios,!etc.! ! T8.&Conocimiento&de&las&materias&básicas&y&tecnologías,&que&capaciten¶&el& aprendizaje&y&desarrollo&de&nuevos&métodos&y&tecnologías,&así&como&las&que&les& doten&de&una&gran&versatilidad¶&adaptarse&a&nuevas&situaciones.& Se! demuestra! habiendo! realizado! una! aplicación! con! una! tecnología! no! aprendida!directamente!en!la!docencia!del!Grado!en!Ingeniería!Informática.! ! T11.&Capacidad¶&analizar&y&valorar&el&impacto&social&y&medioambiental&de& las&soluciones&técnicas,&comprendiendo&la&responsabilidad&ética&y&profesional&de& la&actividad&del&Ingeniero&Técnico&en&Informática.& ! ! 19! ' Desarrollo!de!un!aplicación!para!la!variante!Texas!Hold’em! ' ' ' Uno! de! los! aspectos! a! valorar! fue! que! valor! podría! añadir! y! qué! impacto! podría!tener!la!aplicación!en!el!ámbito!para!el!que!se!desarrolla.! ! Capítulo)2.)El)producto( En!este!capítulo!se!mostrará!cuál!es!la!ficha!del!proyecto,!el!análisis!final!y!la! arquitectura!de!la!aplicación.! ! 22! ' Josué!de!Leon!Santana! ' ' ' Ficha$de$PokerTrainer$ Título:!PokerTrainer! Descripción!breve:! Aplicación! que! te! enseñará! conceptos! básicos! sobre! Texas!Hold'em.! Descripción' completa:! PokerTrainer! es! una! aplicación! dirigida! a! aquellos! jugadores! de! poker! en! su! variante! Texas! Hold'em! que! quieran! aprender! ciertos!conceptos!básicos!del!juego!que!les!ayudará!a!mejorar.!Se!basa!en!dar! un!cierto!concepto!y!generar!un!quiz!posterior!donde!el!usuario!tendrá!que! validar!que!realmente!ha!aprendido!la!lección!para!poder!pasar!al!siguiente! nivel.! Tipo'de'aplicación:!Juegos! Categoría:!Cartas! Clasificación'de'contenidos:!Nivel!de!madurez!medio!'! ! Elementos'gráficos:!! ! ! ! 23! ' Desarrollo!de!un!aplicación!para!la!variante!Texas!Hold’em! ' ' ' Análisis$ Para!el!análisis!del!problema!se!han!utilizado!las!historias!de!usuario!(véase! marco!teórico).!La!recopilación!de!historias!es!la!que!sigue:! ! 1. Yo,!como!un!jugador,!necesito!poder!ver!la!lista!de!niveles!con!la! finalidad!de!ver!los!niveles!disponibles.! Criterios&de&aceptación:!! Debe!haber!uno!o!más!niveles!disponibles.! ! 2. Yo,!como!un!jugador,!necesito!poder!ver!la!introducción!a!la!lección!de! “calles”!con!la!finalidad!de!conocer!la!introducción!a!dicho!nivel.! Criterios&de&aceptación:&! El!nivel!está!bloqueado! El!nivel!está!desbloqueado! ! 3. Yo,!como!un!jugador,!necesito!poder!ver!la!introducción!a!la!lección!de! “categorías”!con!la!finalidad!de!conocer!la!introducción!a!dicho!nivel.! Criterios&de&aceptación:& &&&El!nivel!está!bloqueado! !!!El!nivel!está!desbloqueado! ! 4. Yo,!como!un!jugador,!necesito!poder!ver!la!introducción!a!la!lección!de! “fuerza!de!la!mano”!con!la!finalidad!de!conocer!la!introducción!a!dicho! nivel.! Criterios&de&aceptación:& &!!El!nivel!está!bloqueado! !!!El!nivel!está!desbloqueado! ! 5. Yo,!como!un!jugador,!necesito!poder!ver!la!introducción!a!la!lección!de! “tipos! de! mesa”! con! la! finalidad! de! conocer! la! introducción! a! dicho! nivel.! Criterios&de&aceptación:& &&&El!nivel!está!bloqueado! !El!nivel!está!desbloqueado! ! 6. Yo,!como!un!jugador,!necesito!poder!acceder!al!tutorial!de!un!nivel!con! la!finalidad!de!comenzar!a!aprender!la!lección.! Criterios&de&aceptación:& &&&Se!ha!accedido!al!tutorial! ! 7. Yo,!como!un!jugador,!necesito!poder!navegar!por!el!tutorial!de!un!nivel! con!la!finalidad!de!acceder!a!todos!los!contenidos!de!dicho!nivel.! Criterios&de&aceptación:& &&&Se!ha!accedido!al!tutorial! ! 24! ' Josué!de!Leon!Santana! ' ' ' ! 8. Yo,!como!un!jugador,!necesito!poder!saltarme!el!tutorial!de!un!nivel! con!la!finalidad!de!desbloquear!el!quiz!sin!leerme!todos!los!contenidos! de!dicho!nivel.! Criterios&de&aceptación:& &&&Se!ha!accedido!al!tutorial! ! 9. Yo,!como!un!jugador,!necesito!poder!acceder!al!quiz!de!un!nivel!con!la! finalidad!de!conocer!el!quiz!para!pasar!el!nivel.! Criterios&de&aceptación:& &&&El!quiz!está!bloqueado! !!!El!quiz!está!desbloqueado! ! 10. Yo,!como!un!jugador,!necesito!poder!contestar!a!las!preguntas!del!quiz! de!un!nivel!con!la!finalidad!de!pasar!el!nivel!y!saber!mi!resultado.! Criterios&de&aceptación:& &&&Se!ha!accedido!al!quiz! ! 25! ' Desarrollo!de!un!aplicación!para!la!variante!Texas!Hold’em! ' ' ' Diseño$de$la$aplicación$ Como!se!ha!explicado!en!el!marco!teórico!en!este!apartado!se!detallarán!el! dominio!del!problema,!los!diagramas!de!clase!y!los!diagramas!de!paquetes.! Además!también!se!mostrarán!las!interfaces!de!usuario.! Dominio$del$problema$ ! Para!poder!entender!mejor!los!diagramas,!en!esta!sección!se!explicarán!los! conceptos!más!importantes!que!se!han!utilizado.! ! Card:!hace!referencia!al!objeto!carta.!! Deck:!hace! referencia! al! objeto! baraja.! Se! utiliza! la! referencia! de! la! baraja! inglesa,!que!es!la!utilizada!en!el!ámbito!del!póker.! CardSuit:!hace!referencia!al!palo!de!una!carta.! Board:&hace!referencia!a!las!cartas!comunitarias!que!están!a!la!vista.! Street:&nombre!que!recibe!el!Board!según!el!número!de!cartas!comunitarias!a! la!vista!que!haya.! Table:&hace!referencia!al!objeto!mesa!de!póker.! Hand:&interfaz!que!se!usa!para!referirse!a!cualquier!objeto!llamado!“mano”!en! el!póker.! PokerHand:&hace!referencia!a!una!mano!de!póker!formada!por!cinco!cartas.! TexasHand:!hace!referencia!a!las!dos!cartas!ocultas!que!son!repartidas!a!cada! jugador!en!la!variante!Texas!Hold’em.! Player:&hace!referencia!a!un!jugador!de!póker.! Scene:&hace!referencia!a!un!determinado!momento!dentro!de!una!partida!de! póker!en!el!que!hay!una!mesa!con!un!board!concreto!y!unos!jugadores.! Indicator:& hace! referencia! al! un! término! relacionado! con! algunos! de! los! elementos! explicados! antes.! Por! ejemplo,! el! nombre! de! la! categoría! de! un! mano!de!póker!será!un!indicador.! ! 32! ' Josué!de!Leon!Santana! ' ' ' ! Figura!2.7:!Comprobador!de!subtipos!de!categorías! ! El! comprobador! de! subtipos! de! categorías! (figura! 2.7)! se! encarga! de! categorizar!las!manos!en!subtipos!para!ser!más!preciso!a!la!hora!de!analizar! la!fuerza!de!la!mano.! ! 33! ' Desarrollo!de!un!aplicación!para!la!variante!Texas!Hold’em! ' ' ' ! Figura!2.8:!Comprobador!de!subtipos!de!mesa! ! El!comprobador!de!subtipos!de!mesa!(figura!2.8)!al!igual!que!el!comprobador! de!subtipos!de!categorías!(figura!2.7)!categoriza!los!tipos!de!mesa!en!subtipos! con!el!mismo!fin.! ! 34! ' Josué!de!Leon!Santana! ' ' ' ! Figura!2.9:!Comprobador!de!fuerza!de!la!mano! ! El! comprobador! de! fuerza! de! la! mano! (figura! 2.9)! se! ayuda! de! los! comprobadores!de!subtipos!de!categorías!y!mesas!para!calcular!la!fuerza!de!la! mano! que! tiene! un! determinador! jugador! con! unas! determinadas! cartas! comunitarias.! ! Figura!2.10:!Creador!de!indicadores! La!interfaz!IndicatorCreator!(figura!2.10)!se!encarga!de!crear!los!indicadores! que! queremos! enseñar! al! usuario.! Por! tanto! coinciden! con! las! fases! de! la! aplicación.! Para! aumentar! niveles! habrá! que! crear! más! indicadores! que! implementan!el!método!create.! ! 35! ' Desarrollo!de!un!aplicación!para!la!variante!Texas!Hold’em! ' ' ' ! Figura!2.11:!Manejador!de!indicadores! ! El!controlador!IndicatorManager!(figura!2.11)!es!el!encargado!de!generar!que! la!interfaz!IndicatorCreator!haga!su!trabajo.!! ! ! Figura!2.12:!Atributos!de!un!conjunto!de!cartas! ! Las!diferentes!clases!que!implementan!la!interfaz!cardListAttributes!(figura! 2.12)!permiten!conocer!aspectos!que!necesitan!conocer!los!checkers!para!sus! comprobaciones!pero!que!son!genéricos!a!cualquier!conjunto!de!cartas!y!no! solamente!al!póker.!Por!ejemplo,!si!un!conjunto!de!cartas!son!del!mismo!palo,! si!hay!cartas!emparejadas!etc.! Diagrama$de$paquetes$ El! diagrama! de! paquetes! que! se! muestra! en! la! figura! 2.13! completa! a! los! diagramas!de!clases!de!la!sección!anterior.!Es!uno!de!los!últimos!pasos!para! formalizar!y!entender!la!fase!de!diseño.! ! ! 36! ' Josué!de!Leon!Santana! ' ' ' ! Figura!2.13:!Diagrama!de!paquetes! ! El!paquete!de!control!es!el!encargado!crear!las!clases!de!modelo!y!de!hacer!las! comprobaciones! mediante! el! paquete! checkers! para! crear! los! indicadores! para!el!usuario.! ! En!el!paquete!de!model!se!encuentran!todas!aquellas!clases!bases.!Es!decir,! los!objetos!claves!del!póker!y!algunos!otros!como!los!indicadores.!! ! Checkers!se!encarga!de!comprobar!una!serie!de!parámetros!para!decidir!si!es! o!no!es!un!determinado!indicador.! ! El!paquete!utils!se!refiere!a!todas!aquellas!clases!que!son!necesarias!para!una! mejora!en!la!implementación!pero!que!no!son!una!parte!base!del!juego!del! póker.!En!este!paquete!se!realizan!ordenamientos!de!cartas,!comparadores,! etc.! ! CardListAttributes!nos!proporciona!una!serie!de!atributos!sobre!una!lista!de! cartas.!Si!son!del!mismo!palo,!están!o!no!conectadas!y!algunos!casos!más.!Es! de!vital!importancia!para!los!comprobadores!pero!se!ha!extraído!el!paquete! porque! las! clases! dentro! de! cardListAttributes! son! genéricas! y! por! ello! el! paquete!actúa!como!una!librería.! ! 37! ' Desarrollo!de!un!aplicación!para!la!variante!Texas!Hold’em! ' ' ' Diseño$de$la$interfaz$de$usuarios$ ! Figura!2.14:!Interfaz!inicial! ! La! interfaz! inicial! (figura! 2.14)! de! la! aplicación!es!donde! el! usuario! es! introducido!al!juego!ya!que!el!título!de!la!app!es!presentado!y!además!se!da! cuenta! de! que! la! aplicación! será! en! landscape.! La! única! interacción! que! el! usuario!puede!hacer!es!darle!al!play!para!continuar.! ! ! Figura!2.15:!!Interfaz!del!menú!de!fases La!interfaz!de!introducción!a!las!fases.!(figura!2.15)!es!donde!el!usuario!puede! ver!todas!las!fases!existentes,!así!como!saber!cuales!tiene!bloqueadas!y!cuales! desbloqueadas!además!de!las!puntuaciones!de!cada!una!de!ellas!mediante!los! elementos!de!rating.! ! 38! ' Josué!de!Leon!Santana! ' ' ' ! Figura!2.16:!Interfaz!de!introducción!a!un!nivel! ! La! interfaz! de! introducción! a! una! fase! (figura! 2.16)! determinada! donde! el! usuario!conoce!que!va!a! aprender!en!esa! fase.!Además!tiene!los!accesos!al! tutorial!y!puede!tener!el!acceso!al!quiz!bloqueado!o!desbloqueado.! ! Figura!2.17:!Interfaz!del!tutorial! ! La!interfaz!del!tutorial!de!una!fase!(figura!2.17)!es!donde!el!usuario!puede! navegar!por!las!distintas!páginas!explicativas!del!nivel!al!que!le!corresponde.! Cuando!el!usuario!termine!el!tutorial!o!haga!click!en!el!botón!de!skip!tutorial! se!le!desbloqueará!el!acceso!al!quiz!de!la!interfaz!anterior.! ! ! ! 39! ' Desarrollo!de!un!aplicación!para!la!variante!Texas!Hold’em! ' ' ' Figura!2.18:!!Interfaz!del!quiz! ! La! interfaz! de! un! quiz!(figura! 2.18)! es!donde! el! usuario!podrá! contestar! preguntas! relacionadas! con! la! fase! en! la! que! se! encuentra! mediante! los! pertinentes!radiobuttons.! ! Figura!2.19:!Quiz!terminado! ! La!interfaz!de!un!quiz!terminado!(figura!2.19)!es!donde!el!usuario!conocerá!si! ha! pasado! o! no! el! nivel! y! con! qué! puntuación.! Además! se! le! da! acceso! al! usuario!a!volver!al!menú!de!fases,!repetir!el!quiz!o!pasar!al!siguiente!nivel!sin! pasar!por!el!menú.! ! Capítulo)3.)Desarrollo( ! Leyendo!este!capítulo!podremos!entender!la!evolución!del!proyecto!desde!su! idea!a!la!concepción!del!mismo.!Además!se!hablará!también!de!lo!que!aporta!y! puede!aportar!en!un!futuro.!