Descripción del Problema
En la vida contemporánea, se ha vuelto una necesidad latente la búsqueda de medios de entretenimiento y competencia, tal que nos brinde una experiencia tanto agradable como desafiante.
Cualquier tipo de juego está al alcance de nuestra mano, a un click o tap, sin embargo, muy pocos de ellos buscan
poder brindar entretenimiento y al mismo tiempo generar una ayuda cognitiva, juego clásicos como el Ajedrez son aquellos que nutren al usuario de ambas experiencias.
Similar a este es el juego conocido como Gomoku (del japonés "go" = cinco, y "moku" que aunque literalmente quiere decir ojo, en este caso se toma como punto, también llamado cinco en línea o cinco en raya).
Para que puedan conocer el juego entrar al siguiente enlace.
Análisis del Problema
El problema se identifica como la construcción del juego elegido, para ello se debe escoger una plataforma de diseño, un lenguaje y cuales serán los objetivos visuales.
Como grupo sabemos la importancia de lo atractivo en un juego, sea desde un juego simple hasta el más reciente y complejo. Por ello se escogió la plataforma Android, la cual debe ser implementada en Android Studio, por su infinidad de utilidades, librerias, las cuales vemos cada día en nuestros propios teléfonos y dispositivos móviles.
Del problema anterior se identifican los siguientes desafios:
- Desarrollar en Lenguaje Java el código correspondiente al "Cerebro del Juego"
- Comprender los conceptos básicos de Android y como usar Android Studio
- Unir el juego con la parte gráfica de Android
Solución Entregada
La solución al problema propuesto, fue implementar el juego descrito en una plataforma móvil, como juego fue programado en Android.
Por ello se pensó en inicialmente crear un sistema en el que se pudiera marcar las casillas en una interfaz gráfica, que fue creada con las herramientas propia de Android Studio, creando las Actividades necesarias.
El primer modo de juego implementado fue Multijugador que permite varios jugadores en el mismo tablero, hasta un total de 4, para ello se debe tener un signo distintivo en el tablero según el jugador. Diferenciando asi las marcas de cada uno, evaluando en cada jugada, si existe un ganador.
El siguiente modo de juego es Un jugador , el cual posee un bot el cual debe estar "pendiente" de los movimientos del jugador, para escoger la mejor contrajugada. Para ello se conocen muchos algoritmos de juego, sin embargo, consideramos realizar un algoritmo propio que pudiera ser simple y a la vez funcional, con ello se creó un sistema de evaluación de casillas en torno al último movimiento del jugador, las cuales tendrán mayor valor si son "mejores jugadas". El código adjunto en la sección de Implementación puede explicar mejor lo descrito.
Diagrama UML
Para el diagrama descrito se debe recordar que la aplicación creada en este proyecto fue en la plataforma Android, la cual posee de 3 Actividades principales que se ven en la imágen adjunta, MainActivity, Secondary Activity, SplashActivity.
Descripción de las Clases
- Bot_analisis: clase encargada de analisar jugadas presentes y a futuro en el tablero para que la computadora juegue de la mejor manera
- Game: contiene la estructura del game, tal como condiciones de victoria y analisis de estas
- Board: contiene el tablero en si, y metodos relacionados con este como marcar una jugada en el tablero o ver las coordenadas vacias
Descripción de las Actividades
- MainActivity:Contiene la interfaz gráfica principal del juego
- SplashActivity:Pantalla inicial que se muestra al comienzo del juego
- SecondActivity:Es el menú que se muestra al iniciar el juego, selección de Modo de Juego