![](/imgs/logo_uniandes.png)

ISIS1206 - Estructuras de Datos

Implementando un Triqui

Objetivos

  • Entender el manejo de la consola utilizando Java (DrJava)
  • Crear una interfaz de usuario utilizando como medio de interacción la línea de comandos
  • Cargar un proyecto de desarrollo a un repositorio GIT (Bitbucket) por medio de un cliente (SourceTree)

Nota: Antes de iniciar, lea la sección 0. Envío de talleres: Términos y Condiciones, en esta sección se encuentran enumeradas las reglas y recomendaciones de desarrollo y envío de proyectos establecidas a lo largo del curso. Así mismo, complete las instrucciones de configuración para su cuenta de git en BitBucket y use el repositorio personal (invitación que debió llegar por correo electrónico) que aloje los talleres a desarrollar a lo largo del curso. Para todo lo anterior lea la sección Ambiente de Desarrollo y Control de Versiones GIT

Taller 1: Triqui

A continuación, se propone la construcción de un juego de triqui de dos jugadores que cumpla con los requisitos acerca del diseño de una aplicación basada en CLI, definidos en la sección previa. El juego debería registrar los nombres de los jugadores involucrados y asignar el turno correspondiente (X | O), así como presentar un tablero que represente el estado del juego tras cada movimiento. Además, el juego debe permitir que durante cada turno, el jugador introduzca las coordenadas en el tablero en las cuales desea ejecutar su jugada. Puede hacer uso de los ejemplos presentados en secciones previas, así como de la documentación oficial de Java.

  1. Ejecute git clone url, donde url corresponde a la dirección de su repositorio e.g., https://bitbucket.org/isis1206_XXXX/pypy. Recuerde que puede realizar este proceso de forma visual utilizando la herramienta SourceTree. Si ya tiene un copiar local de su repositorio, por favor, dirigirse al directorio (usando el comando cd) y ejecute git pull.

  2. Descargue el esqueleto del proyecto y descomprímalo en la carpeta donde se encuentra su repositorio.

  3. Renombre la carpeta esqueleto como taller_1.

  4. Inicie DrJava y seleccione en el menú principal Project->Open, luego seleccione el archivo project.xml que se encuentra en la carpeta taller_1. Esto abrirá el proyecto en DrJava.

  5. Verifique que puede ejecutar el proyecto utilizando la opción Compile Project(F5) y luego Run Project(F2). Una vez se ejecute el proyecto deberá ver en la pestaña Interactions:

    > run taller.Main
    taller
    >
    
  6. Verifique que puede ejecutar las pruebas unitarias utilizando la opción Test Project(ctrl+T), si todo funciona correctamente deberá ver en la pestaña Test Output el siguiente mensaje:

    All tests completed successfully.
     taller.test.MainTest
       testSample
    
  7. Ahora está listo para empezar a desarrollar su aplicación. Analice la descripción del programa expuesta previamente e identifique los requerimientos funcionales.

  8. Una vez haya identificado las funcionalidades principales de la aplicación, implemente una nueva clase Triqui.java en el paquete taller, esta representará el juego de Triqui. Tenga en cuenta que siguiendo los patrones de diseño en esta clase no debería existir código relacionado con la interfaz.

    1. Defina e implemente los atributos que sean requeridos para guardar la información del juego.
    2. Establezca las funcionalidades principales que debería ofrecer esta clase e implemente los métodos necesarios. Si necesita clases adicionales puede crearlas y utilizarlas según su criterio.

    Nota: Puede considerar el tablero de Triqui como una matriz de estado con tres valores posibles, uno para cada estado posible: O, Vacío o X.

  9. A continuación, defina una clase para manejar la interfaz de la aplicación en consola que permite que los usuarios accedan a una partida de triqui. Recuerde, toda aplicación de consola debe tener un conjunto de menús que permita al usuario acceder a todas las características y opciones dispuestas por el programa. Utilice la aplicación calculadora como guía para su implementación.

  10. Una vez complete la implementación de la interfaz, modifique el método main de la clase taller.Main para que cree una nueva instancia de la clase que definió en el punto anterior e inicie la interfaz de usuario.

  11. Finalmente, pruebe la aplicación, y a continuación salvaguarde su proyecto en su repositorio de BitBucket usando git. El proceso de actualización de repositorios gestionados a través de git por consola es el siguiente:

git add .                                         #Agrega todos los elementos actualizados al próximo commit.
git commit -m "Descripción de la actualización"   #Guarda los cambios en la copia local del repositorio
git push                                          #Envía los cambios al repositorio

Nota: Si lo prefiere de manera gráfica puede usar SourceTree

Preguntas

  • Consola y codificación: ¿Escribir en consola se encuentra sujeto a la codificación de caracteres definida por el sistema?
  • Consola extendida: ¿Es posible modificar los colores de impresión de texto en consola? ¿Usar mouse y otras opciones del teclado como entrada a la consola? Ver ANSI Escape Codes y JCDP.

Reto (opcional)

  • Extender la aplicación de Triqui para que sea posible jugar contra la máquina.
  • Diseñar un juego de Tetris, considerando el tablero y las fichas como una matriz.

Entrega para bonificación

Fecha límite de entrega: Jueves 6 de Agosto - 23:59 (COT)

  1. Verifique que su aplicación cumple con las condiciones descritas en Envío talleres.
  2. Conteste las preguntas en el archivo README.txt.
  3. Realice pruebas unitarias para el juego de triqui las cuales se deben encontrar en el paquete taller.test. Como como mínimo sus pruebas deberían validar los siguientes casos:
    • Realizar una jugada en una posición ocupada
    • Verificar si el juego ya acabó (por medio de triqui o porque se llenó el tablero)
    • Al reiniciar un juego verificar que el tablero está limpio
    • Otras pruebas que usted considere importantes
  4. Extienda su aplicación para que permita simular los resultados de un juego de triqui aleatorio. i.e., Visualice todas las jugadas del juego en orden, permitiendo al usuario ir y regresar entre los movimientos, además de poder salir y regresar al menú principal.
  5. Cargue el taller a su repositorio en Bitbucket. No olvide crear el archivo calificacion.txt