N10 Tangram

Enunciado

El equipo Cupi2 quiere hacer una aplicación que recree un antiguo juego chino llamado Tangram. Un Tangram es un cuadrado que se divide en varias figuras y el objetivo del juego es usarlas para armar diferentes siluetas sin superponerlas. Existen varios tipos de Tangram, que están definidos por las figuras en las cuales se divide el cuadrado inicial. En esta aplicación en particular, se deben manejar dos tipos de Tangram: tradicional y una versión especial de Cupi2.

Para iniciar el juego, el usuario selecciona el tipo de Tangram con el que quiere jugar. Luego, la aplicación crea automáticamente las figuras de acuerdo al tipo seleccionado. Una vez creado el Tangram, el usuario escoge una silueta del listado disponible. El usuario debe tener en cuenta que el programa no valida si la figura armada corresponde con la silueta escogida, solo permite mostrar el contorno de la silueta seleccionada como ayuda.

El propósito del diseño de la aplicación es que en un futuro se puedan incluir otros tipos de Tangrams y figuras para hacer la aplicación más completa.

La información que maneja la aplicación para cada Tangram es la siguiente:

  • Lista de figuras que lo conforman.
  • Alto del Tangram.
  • Ancho del Tangram.
  • Estado del Tangram (modificado o no modificado).
  • Tipo del Tangram.
  • Lista de las siluetas que se pueden formar con las figuras del Tangram.

La información que maneja la aplicación para cada figura es la siguiente:

  • Representación gráfica dependiendo de su tipo.
  • Punto inicial (x,y) que corresponde a la posición de la esquina superior izquierda de la figura.
  • Alto de la figura.
  • Ancho de la figura.
  • Ángulo de rotación de la figura.

Se espera que la aplicación ofrezca las siguientes funcionalidades:

  1. Crear un Tangram, ya sea de tipo tradicional o Cupi2.
  2. Visualizar las figuras que conforman el Tangram.
  3. Seleccionar una figura del Tangram.
  4. Desplazar una figura del Tangram sobre la superficie. Al desplazarla, ésta debe quedar por encima de las demás visualmente y mostrarse como seleccionada.
  5. Rotar la figura seleccionada en un ángulo específico (sentido horario o antihorario).
  6. Rotar la figura seleccionada un grado en sentido horario.
  7. Rotar la figura seleccionada un grado en sentido antihorario.
  8. Activar la ayuda. Se muestra el contorno de la silueta actual y se actualiza la visualización de las figuras (sin bordes).
  9. Navegar a la siguiente silueta.
  10. Navegar a la anterior silueta.
  11. Abrir un intento de juego. Al abrirlo, la aplicación debe permitir seleccionar el archivo, cargar la información y dibujar las figuras en la superficie.
  12. Guardar un intento en un archivo de texto plano. Este archivo debe contener el tipo y las dimensiones del tangram, y cada una de las figuras en su estado actual (posición y ángulo de rotación). El formato del archivo se encuentra en la sección de persistencia de este documento.

Es importante que cada vez que el usuario vaya a salir del programa o iniciar un nuevo juego sin guardar su intento de juego, el programa le pregunte si desea guardar antes de continuar.

Interfaz

 Interfaz

Demo