SlideShare una empresa de Scribd logo
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
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
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.
¿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.
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
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)
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 generandojunto 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.
Descripción
•Los datos que se registraran en cada sesión de practica en cada categoría de
cubo son:
• MejorTiempo
• PeorTiempo
• 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.
Estructura de Datos
Listas Ligadas – Clases Lista y Nodo
Lista parametro tomar el valor de un lista especifica cada vez que
se cambia de categoria
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 realizarala accion de un evento.
taskPerformer taskPerformer será la accion que seespecifique dentrodel código
.start() para iniciar los eventos
Eventos de Teclado – Key Listener
Principalmente 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),
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 tipo
Esta librería no se encuentra por defecto en
Java, por lo que hay que importar
descargado los archivos .jar desde una
pagina web
Librerías Utilizadas – DJ NativeSwing
La 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
Programación en Capas
Capa 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.
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)
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
Rubik Cube Timer - Diapositivas presentacion Clases
Aplicación
Enlaces
• URL Proyecto en GitHub:
• https://github.com/ChristianPaulSalinas/Rubik-Cube-Timer-en-Java
• URLVideo PresentaciónYouTube:
• https://www.youtube.com/watch?v=pvJl_zkW31o
• URL Diapositivas de Presentacion deVideo(SlideShare):
• http://es.slideshare.net/ChristianSalinas10/rubik-cube-timer-diapositivas-
presentacion-video

Más contenido relacionado

PPTX
mindstorms 3a parte
PPTX
Medición marketing
PPTX
Proyecto Agenda Estudiantil
PPTX
SEGUNDA CLASE - EVIVALENCIA para estudiantes.pptx
PPTX
tipos de datos abtractos para estudiantes .pptx
PDF
UDESA 2010 - Educación y Tecnología - Ciencias de la Educación - Taller 08
PDF
PPTX
OVA DISEÑO ORACLE II Administración.pptx
mindstorms 3a parte
Medición marketing
Proyecto Agenda Estudiantil
SEGUNDA CLASE - EVIVALENCIA para estudiantes.pptx
tipos de datos abtractos para estudiantes .pptx
UDESA 2010 - Educación y Tecnología - Ciencias de la Educación - Taller 08
OVA DISEÑO ORACLE II Administración.pptx

Similar a Rubik Cube Timer - Diapositivas presentacion Clases (20)

PDF
Grupo Trabajo Scratch: Profundizando con Scratch
DOCX
Grado Noveno
DOCX
Grado Noveno
PPTX
Estructura de Datos Unidad 1 Tipo abstracto de datos TAD
PPT
Tema i
PDF
05 gfpi f-019 guia de aprendizaje mantenimiento f2 ap1 ga5
PDF
Arquitecturas de Programación Avanzadas en NI LabVIEW.pdf
PPTX
Manual de robotica parte 5
PPTX
Diapositivas herramientas-herramientas-informaticas
PPTX
Herramientas para el diseño e implementación de Cubos .pptx
PPTX
FUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOS Raimon Koudsi
PPTX
Tu primer script en Katalon - Paso a Paso
PDF
Framework GSM para Pruebas Automatizadas
PDF
Semana 2 Mapa de historias de usuario
PDF
Estructura de datos c++
PPTX
Plantilla Desarrollo web.pptx
PPTX
[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptx
PDF
Curso IBM Redes SAN y Almacenamiento con Tivoli
PDF
Jcser
PPTX
Faces y Sub Faces de la Metodologia XP
Grupo Trabajo Scratch: Profundizando con Scratch
Grado Noveno
Grado Noveno
Estructura de Datos Unidad 1 Tipo abstracto de datos TAD
Tema i
05 gfpi f-019 guia de aprendizaje mantenimiento f2 ap1 ga5
Arquitecturas de Programación Avanzadas en NI LabVIEW.pdf
Manual de robotica parte 5
Diapositivas herramientas-herramientas-informaticas
Herramientas para el diseño e implementación de Cubos .pptx
FUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOS Raimon Koudsi
Tu primer script en Katalon - Paso a Paso
Framework GSM para Pruebas Automatizadas
Semana 2 Mapa de historias de usuario
Estructura de datos c++
Plantilla Desarrollo web.pptx
[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptx
Curso IBM Redes SAN y Almacenamiento con Tivoli
Jcser
Faces y Sub Faces de la Metodologia XP
Publicidad

Último (20)

PPTX
376060032-Diapositivas-de-Ingenieria-ESTRUCTURAL.pptx
PPT
357161027-seguridad-industrial-diapositivas-ppt.ppt
PDF
manual-sostenibilidad-vivienda-yo-construyo (1).pdf
PDF
SESION 9 seguridad IZAJE DE CARGAS.pdf ingenieria
PDF
Repaso sobre el Gusano_cogollero y como ataca .pdf
PDF
SESION 10 SEGURIDAD EN TRABAJOS CON ELECTRICIDAD.pdf
PDF
Módulo V. Tema 2. Disruptive & Transformation 2024 v.0.4.pdf
PDF
Diseño y Utiliación del HVAC Aire Acondicionado
PDF
experto-gestion-calidad-seguridad-procesos-quimicos-industriales-gu.pdf
PPTX
PPT SESIÓN 6 Los Injertos.- Micropropagación e Injertos Clonales.pptx
PDF
silabos de colegio privado para clases tema2
PPTX
A8B08CED-D3D9-415C-B4A3-2A6CA6409A48.1.1Presentación Dirección 2022 unidade...
PPTX
Presentación - Taller interpretación iso 9001-Solutions consulting learning.pptx
PPTX
MANEJO DE QUIMICOS Y SGA GRUPO Mnsr Aleman.pptx
PPTX
Riesgo eléctrico 5 REGLAS DE ORO PARA TRABAJOS CON TENSION
PDF
alimentos de bebidas45rtrtytyurrrr 1.pdf
PDF
LIBRO UNIVERSITARIO SOFTWARE PARA INGENIERIA BN.pdf
PDF
TRABAJO DE ANÁLISIS DE RIESGOS EN PROYECTOS
PDF
UD3 -Producción, distribución del aire MA.pdf
PDF
Curso Introductorio de Cristales Liquidos
376060032-Diapositivas-de-Ingenieria-ESTRUCTURAL.pptx
357161027-seguridad-industrial-diapositivas-ppt.ppt
manual-sostenibilidad-vivienda-yo-construyo (1).pdf
SESION 9 seguridad IZAJE DE CARGAS.pdf ingenieria
Repaso sobre el Gusano_cogollero y como ataca .pdf
SESION 10 SEGURIDAD EN TRABAJOS CON ELECTRICIDAD.pdf
Módulo V. Tema 2. Disruptive & Transformation 2024 v.0.4.pdf
Diseño y Utiliación del HVAC Aire Acondicionado
experto-gestion-calidad-seguridad-procesos-quimicos-industriales-gu.pdf
PPT SESIÓN 6 Los Injertos.- Micropropagación e Injertos Clonales.pptx
silabos de colegio privado para clases tema2
A8B08CED-D3D9-415C-B4A3-2A6CA6409A48.1.1Presentación Dirección 2022 unidade...
Presentación - Taller interpretación iso 9001-Solutions consulting learning.pptx
MANEJO DE QUIMICOS Y SGA GRUPO Mnsr Aleman.pptx
Riesgo eléctrico 5 REGLAS DE ORO PARA TRABAJOS CON TENSION
alimentos de bebidas45rtrtytyurrrr 1.pdf
LIBRO UNIVERSITARIO SOFTWARE PARA INGENIERIA BN.pdf
TRABAJO DE ANÁLISIS DE RIESGOS EN PROYECTOS
UD3 -Producción, distribución del aire MA.pdf
Curso Introductorio de Cristales Liquidos
Publicidad

Rubik Cube Timer - Diapositivas presentacion Clases

  • 1. 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
  • 2. 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
  • 3. 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.
  • 4. ¿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.
  • 5. 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
  • 6. 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)
  • 7. 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 generandojunto 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.
  • 8. Descripción •Los datos que se registraran en cada sesión de practica en cada categoría de cubo son: • MejorTiempo • PeorTiempo • 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.
  • 9. Estructura de Datos Listas Ligadas – Clases Lista y Nodo Lista parametro tomar el valor de un lista especifica cada vez que se cambia de categoria
  • 10. 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 realizarala accion de un evento. taskPerformer taskPerformer será la accion que seespecifique dentrodel código .start() para iniciar los eventos
  • 11. Eventos de Teclado – Key Listener Principalmente 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),
  • 12. 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 tipo Esta librería no se encuentra por defecto en Java, por lo que hay que importar descargado los archivos .jar desde una pagina web
  • 13. Librerías Utilizadas – DJ NativeSwing La 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
  • 14. Programación en Capas Capa 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.
  • 15. 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)
  • 16. 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
  • 19. Enlaces • URL Proyecto en GitHub: • https://github.com/ChristianPaulSalinas/Rubik-Cube-Timer-en-Java • URLVideo PresentaciónYouTube: • https://www.youtube.com/watch?v=pvJl_zkW31o • URL Diapositivas de Presentacion deVideo(SlideShare): • http://es.slideshare.net/ChristianSalinas10/rubik-cube-timer-diapositivas- presentacion-video