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.
Nombre: Usuario clickea el boton "Mezclar".
Actor: Usuario.
Descripción: El usuario hace click sobre el boton "Mezclar".
Precondiciones: Que el programa esté corriendo.
Flujo Principal:
- El programa hace 24 movimientos aleatorios al modelo logico del cubo rubik.
- El programa repinta las casillas del modelo grafico para que coincidan con el modelo lógico.
Nombre: Usuario clickea el boton "Nuevo".
Actor: Usuario.
Descripción: El usuario hace click sobre el boton "Nuevo".
Precondiciones: Que el programa esté corriendo.
Flujo Principal:
- El programa crea un nuevo modelo logico, ordenado, del cubo rubik.
- El programa repinta las casillas del modelo grafico para que coincidan con el modelo lógico.
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:
- El programa captura las coordenadas de ventana donde se hizo el click.
- El programa determina cual de las caras del cubo contiene tales coordenadas.
- Una vez identificada la cara, el programa determina que boton del mouse fue presionado (Para este caso de uso, debe ser el boton izquierdo).
- 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).
- Se levanta el flag que indica que hay una animación pendiente.
- El programa rota la cara en el modelo lógico del cubo.
- 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.
- Se desactiva el Timer.
- El programa repinta las casillas del modelo grafico para que coincidan con el modelo lógico.
- Se baja el flag de animaciones pendientes.