Proyecto de Diseño y Programacion Orientada a Objetos

Partida Cubo Rubik Meta


Inicio----- Descripcion del problema----- Analisis----- Diseño----- Implementacion----- Pruebas

Analisis


En este sistema los únicos entes considerables son el usuario y el programa.

El programa recibe las órdenes del usuario via mouse y muestra una respuesta por pantalla.

Entes del sistema y sus interacciones


Casos de Uso:

Caso 1:

Nombre: Usuario clickea el boton "Mezclar". Boton Mezclar

Actor: Usuario.

Descripción: El usuario hace click sobre el boton "Mezclar".

Precondiciones: Que el programa esté corriendo.

Flujo Principal:

  1. El programa hace 24 movimientos aleatorios al modelo logico del cubo rubik.
  2. El programa repinta las casillas del modelo grafico para que coincidan con el modelo lógico.

Caso 2:

Nombre: Usuario clickea el boton "Nuevo". Boton Nuevo

Actor: Usuario.

Descripción: El usuario hace click sobre el boton "Nuevo".

Precondiciones: Que el programa esté corriendo.

Flujo Principal:

  1. El programa crea un nuevo modelo logico, ordenado, del cubo rubik.
  2. El programa repinta las casillas del modelo grafico para que coincidan con el modelo lógico.

Caso 3:

Nombre: Usuario clickea con el boton izquierdo una de las cara del cubo.

Actor: Usuario.

Descripción: El usuario hace click con el boton izquierdo sobre una de las caras del cubo rubik.

Precondiciones: Que el programa esté corriendo.

Flujo Principal:

  1. El programa captura las coordenadas de ventana donde se hizo el click.
  2. El programa determina cual de las caras del cubo contiene tales coordenadas.
  3. Una vez identificada la cara, el programa determina que boton del mouse fue presionado (Para este caso de uso, debe ser el boton izquierdo).
  4. Se verifica que no hayan otras animaciones pendientes (de haberlas el programa retorna a su estado previo sin hacer la rotación de la cara).
  5. Se levanta el flag que indica que hay una animación pendiente.
  6. El programa rota la cara en el modelo lógico del cubo.
  7. El programa activa un Timer que generará interrupciones cada 20ms para dibujar la animacion de la cara que rota, hasta que se complete un giro de 90 grados.
  8. Se desactiva el Timer.
  9. El programa repinta las casillas del modelo grafico para que coincidan con el modelo lógico.
  10. Se baja el flag de animaciones pendientes.