rubik cube timer - diapositivas presentacion clases

19
Rubik Cube Timer INGENIERIA EN SISTEMAS – PROGRAMACIÓN 3 - 4TO CICLO SEMESTRE SEPTIEMBRE 2016 – FEBRERO 2017 AUTOR : CHRISTIAN PAUL SALINAS 10/11/2016 UNIVERSIDAD DE CUENCA Educamos para el desarrollo

Upload: christian-salinas

Post on 15-Apr-2017

71 views

Category:

Engineering


3 download

TRANSCRIPT

Page 1: Rubik Cube Timer - Diapositivas presentacion Clases

Rubik Cube TimerINGENIERIA EN SISTEMAS – PROGRAMACIÓN 3 - 4TO CICLOSEMESTRE SEPTIEMBRE 2016 – FEBRERO 2017AUTOR : CHRISTIAN PAUL SALINAS10/11/2016

UNIVERSIDAD DE CUENCAEducamos para el desarrollo

Page 2: Rubik Cube Timer - Diapositivas presentacion Clases

Contenido• Introducción• ¿Por qué del proyecto?• Objetivos• Descripción del proyecto

• Estructura de Datos • Libreras utilizadas • Programación por Capas • Diagrama de Clases

• Aplicación

Page 3: Rubik Cube Timer - Diapositivas presentacion Clases

Introducción•En la actualidad, resolver un cubo de Rubik puede llegar ser muy complejo para muchas personas, sin embargo, para otras llega a ser una afición resolver el cubo a grandes velocidades, para aquello existen torneos que reúne a gente a practicar y mejorar sus habilidades. Esta aplicación  ayuda a practicar y obtener información estadistica de tiempos registrados en varias sesiones de practica.

Page 4: Rubik Cube Timer - Diapositivas presentacion Clases

¿Por qué de Proyecto?• Proveer de una aplicación que permita guardar datos de una sesión de practica , ya sea para verlos en una forma fácil para el usuario, y con otro formato de guardado poder cargar los datos de una sesión y continuar donde se había quedado.

• Por afición personal, poder crear una aplicación propia, con las características principales, para que puedan ser usada ya sea por personas que son avanzadas, o por personas que recién están comenzando y que deseen mejorar.

Page 5: Rubik Cube Timer - Diapositivas presentacion Clases

Objetivos• Obtener registros estadísticos sesiones de practica de la resolución del cubo que se elija en la aplicación.

• Simular un sistema de registro en el cual el usuario pueda borrar, descalificar o dar una penalización a un tiempo.

• Guardar los datos de una sesión de practica (2 formas).• Cargar los datos guardados.• Generar gracias XY de acuerdo a los tiempos registrados y el numero de resoluciones.

• Implementacion de Estructura de Datos en Java , y uso de archivos 

Page 6: Rubik Cube Timer - Diapositivas presentacion Clases

Descripción•El programa contara con una interfaz de usuario unica donde sera posible ver todos los datos que el usuario elija para resolver un cubo y los datos que consiga en cada resolución.

•Para cada tiempo registrado, se podrá aplicar diferentes acciones las cuales son:•Eliminar Tiempo•Penalización +2•DNF (did not finish)

Page 7: Rubik Cube Timer - Diapositivas presentacion Clases

Descripción•Para las personas que no estén muy familiarizadas con lo que es un Scramble, habrá una venta que indique lo que es y el porque de uso.

•Se podrá elegir diferentes categorías de cubos sin borrar los datos de la categoría en la que haya estado

•Cada tiempo se ira generando junto con los botones antes mencionados, de forma dinámica, en un JPanel parámetro, que tomara el valor un JPanel especifico cada vez que este en determinada categoría. 

Page 8: Rubik Cube Timer - Diapositivas presentacion Clases

Descripción•Los datos que se registraran en cada sesión de practica en cada categoría de cubo son:

• Mejor Tiempo• Peor Tiempo• Promedio (AVG)• Numero de Resoluciones• Mejores 5 tiempos• AVG de 5 mejores• Mejores 10 tiempos• AVG de 10 mejores• Grafica Xy de Desempeño de una sesión.

Page 9: Rubik Cube Timer - Diapositivas presentacion Clases

Estructura de DatosListas Ligadas – Clases Lista y

NodoLista parametro tomar el valor de un lista especifica cada vez que se cambia de categoria

Page 10: Rubik Cube Timer - Diapositivas presentacion Clases

Librerías Utilizadas – CLASS TIMER

Realiza varias veces Acciones de Eventos

(ActionEvents) en intervalos especificados

new Timer(delay, taskPerformer).start();

delay es un entero en milisegundos, que indica el interval0 en que realizara la accion de un evento.taskPerformer  taskPerformer será la accion que se especifique dentro del código.start() para iniciar los eventos

Page 11: Rubik Cube Timer - Diapositivas presentacion Clases

Eventos de Teclado – Key ListenerPrincipalmente se tiene por defecto que el, Inicio del conteo atrás, inicio  del cronometro y fin del mismo, esta dado por la tecla Espacio

La finalidad es ser lo mas rápido posible al momento de realizar una resolución del cubo, a comparacion de hacerlo con botones los cuales quitarian mucho tiempo y no quedaria bien

Se tiene que implementar los métodos de la interfaz KeyListener, donde en KeyPressed() sera donde se realice las operaciones de la interfaz

La interfaz KeyListener se implementa en la Interfaz principal de Usuario (rubiktimer),

Page 12: Rubik Cube Timer - Diapositivas presentacion Clases

Librerías Utilizadas – JFreeChart

JFreeChart es una librería de graficas de Java, la cual permite a las aplicaciones poder crear gráficos de diferente tipoEsta librería no se encuentra por defecto en Java, por lo que hay que importar descargado los archivos .jar desde una pagina web

Page 13: Rubik Cube Timer - Diapositivas presentacion Clases

Librerías Utilizadas – DJ NativeSwingLa Biblioteca NativeSwing permite la fácil integración de algunos componentes a las aplicaciones, principalmente se obtiene un JWebBrowser.Se implemente esta biblioteca únicamente para poder visualizar un video extraído de YouTube donde se indica como resolver un cubo de 3x3, esta opción es dirigida a las personas que no saben como resolver un cubo. Como ocurrió con JFreeChart, esta librería se debe descargar e importar los archivos .jar al proyecto

Page 14: Rubik Cube Timer - Diapositivas presentacion Clases

Programación en CapasCapa de

Interfaces • rubiktimer.java - Es la interfaz principal, donde se mostrara toda la aplicación y datos obtenidos además del menú  e imágenes

• AyudaScramble.java - Ayuda al usuario, ¿Qué es un Scramble?, Conocer movimientos.

• CargarDat.java - Se comunica con la clase CargarTiempos para cargar un archivo

• GuardarDatos.java - Se comunica con la clase GuardarTiempos, para guardar los registro de una sesión

• ConsultaLimpiar.java - Confirma o cancela, cuando se quiere eliminar los registro de una sesión.

Page 15: Rubik Cube Timer - Diapositivas presentacion Clases

Programación en Capas

Capa de Lógica• Clase rubikMain – Contiene

el main de la aplicación donde se instancia la interfaz principal (rubiktimer)

• Clase Lista – contiene funciones y métodos para registrar información y generar datos del programa

• Clase Graficas – Encargada de crear las graficas de desempeño de una sesión de practica (JFreeChart)

Page 16: Rubik Cube Timer - Diapositivas presentacion Clases

Programación en Capas

Capa de Datos• Clase Nodo – Almacena la

información de cada registro que ingresa en una lista ligada

• Clase GuardarTiempos – Guardar los registro de una sesion de practica, puede guardarlo de 2 maneras, para el usuario y para cargar al programa 

• Clase CargarTiempos – Carga datos dentro de la aplicación procedente de un documentdo guardado de la misma aplicación, carga los valores a una lista enlazada para mostrar a la interfaz de usuario

Page 17: Rubik Cube Timer - Diapositivas presentacion Clases
Page 18: Rubik Cube Timer - Diapositivas presentacion Clases

Aplicación