Professional Documents
Culture Documents
Autores:
Emilio José Miranda Rivas - 10411
Ana Rocio Debroy Bran – 10055
Hugo Daniel Mena Enamorado - 08825
Análisis:
1. Entradas:
a. Ingresar opción del menú.
b. Ingresar opción del sub-menú.
c. Ingresar número de filas a jugar.
d. Ingresar número de columnas a jugar.
e. Elegir si mover fila, columna o salir.
f. Elegir cuál fila o columna mover, anular movida o salir
g. Elegir dirección de la movida, anular movida o salir
2. Salidas:
a. Mostrar menú con opciones.
i. Jugar.
ii. Instrucciones.
iii. Salir
b. Pedir opción de menú.
c. Mostrar instrucciones de juego.
d. Mostrar sub-menú con opciones.
i. Fácil
ii. Medio
iii. Difícil
iv. Salir
e. Pedir opción de sub-menú.
f. Mostrar desafío, meta, No de movidas realizadas y No de movidas a vencer.
g. Pedir si desea mover fila, columna o salir.
h. Pedir qué fila o columna desea mover, si desea anular movida o salir.
i. Pedir dirección de la movida, si desea anular movida o salir.
j. Mostrar mensaje de victoria o derrota.
k. Mostrar mensaje de fin de ejecución del programa
l. Mostrar advertencias de error.
3. Condiciones:
a. Ingresar una opción válida para el menú (1-3).
b. Ingresar una opción válida para el sub-menú (1-4).
c. Ingresar un número entre 3 y 9 incluyendo extremos para el número de filas.
d. Ingresar un número entre 3 y 9 incluyendo extremos para el número de columnas.
e. Elegir entre fila o columna a mover o salir.
f. Elegir una fila o columna a mover existente, 0 para anular movimiento o -1 para
salir.
g. Elegir hacia donde desea mover la fila o columna (derecha,-izquierda o arriba-
abajo), 3 anular y 4 salir.
h. Para todas las entradas numéricas ingresar números enteros.
CC2006 – Programación Orientada a Objetos
Autores:
Emilio José Miranda Rivas - 10411
Ana Rocio Debroy Bran – 10055
Hugo Daniel Mena Enamorado - 08825
4. Descripción de ciclos:
Clase Rubix:
1. En Rubix(): no hay ciclos.
5. En inicializar():
Ciclo recorre filas:
¿Qué se repite?:
Ciclo recorre columnas
¿Qué condición controla la repetición?:
Mientras fil < filas
6. En derecha(int fil):
Ciclo recorre columnas -1 al revés
¿Qué se repite?:
matriz[fil][col] ← matriz[fil][col-1]
¿Qué condición controla la repetición?:
Mientras col > 0
7. En izquierda(int fil):
Ciclo recorre columnas -1
¿Qué se repite?:
matriz[fil][col] ← matriz[fil][col+1]
¿Qué condición controla la repetición?:
Mientras col < columnas-1
8. En arriba(int col):
Ciclo recorre filas -1
¿Qué se repite?:
matriz[fil][col] ← matriz[fil+1][col]
¿Qué condición controla la repetición?:
Mientras fil < filas-1
CC2006 – Programación Orientada a Objetos
Autores:
Emilio José Miranda Rivas - 10411
Ana Rocio Debroy Bran – 10055
Hugo Daniel Mena Enamorado - 08825
9. En abajo(int col):
Ciclo recorre filas -1 al revés
¿Qué se repite?:
matriz[fil][col] ← matriz[fil-1][col]
¿Qué condición controla la repetición?:
Mientras fil > 0
10. En copiar():
Ciclo recorre filas
¿Qué se repite?:
Ciclo recorre columnas
¿Qué condición controla la repetición?:
Mientras fil < filas
14. En toString():
Ciclo recorre columnas 1
¿Qué se repite?:
descripcion ← descripcion + " " + (col+1) + " "
col ← col + 1
¿Qué condición controla la repetición?:
Mientras col < columnas
Clase Leer_Archivo:
CC2006 – Programación Orientada a Objetos
Autores:
Emilio José Miranda Rivas - 10411
Ana Rocio Debroy Bran – 10055
Hugo Daniel Mena Enamorado - 08825
1. En Leer_texto(String file):
Ciclo leer línea:
¿Qué se repite?:
texto ← texto + archivo.nextLine() + "\n"
¿Qué condición controla la repetición?:
Mientras el archivo tenga otra línea de texto
Clase Driver_Rubix:
1. En revisar_Numero(String texto, int num): no hay ciclos.
Ciclo hacer 1
¿Qué se repite?:
opc1 ← revisar_Numero("- Desea mover 1. fila, 2. columna, 3. Salir ",0)
¿Qué condición controla la repetición?:
Mientras opc1<1 || opc1>3
Ciclo hacer 2
¿Qué se repite?:
opc2 ← revisar_Numero("- Ingrese el No de fila que desea mover, 0.
Anular o -1.Salir ",0)
¿Qué condición controla la repetición?:
Mientras opc2<-1 || opc2>filas de objeto desafio
Ciclo hacer 3
¿Qué se repite?:
opc3 ← revisar_Numero("- Desea mover hacia la 1. derecha o 2. izquierda,
3. anular o 4.Salir ",0)
CC2006 – Programación Orientada a Objetos
Autores:
Emilio José Miranda Rivas - 10411
Ana Rocio Debroy Bran – 10055
Hugo Daniel Mena Enamorado - 08825
Ciclo hacer 4
¿Qué se repite?:
opc2 ← revisar_Numero("- Ingrese el No de columna que desea mover, 0.
Anular o -1.Salir ",0)
¿Qué condición controla la repetición?:
Mientras opc2<-1 || opc2>columnas de objeto desafio
Ciclo hacer 5
¿Qué se repite?:
opc3 ← revisar_Numero("- Desea mover hacia 1. arriba o 2. abajo, 3.
anular o 4.Salir ",0)
¿Qué condición controla la repetición?:
Mientras opc3<1 || opc3>4
5. En main(String[] args):
Ciclo hacer 1:
¿Qué se repite?:
Mostrar menu()
opc ← revisar_Numero("- Ingrese una opcion: ",0)
Revisar opc
¿Qué condición controla la repetición?:
Mientras opc <> 3
Ciclo hacer 2:
¿Qué se repite?:
filas ← revisar_Numero("- Ingrese el No de filas con que desea jugar 3-9:
",0)
¿Qué condición controla la repetición?:
Mientras filas<3 || filas>9
Ciclo hacer 3:
¿Qué se repite?:
columnas ← revisar_Numero("- Ingrese el No de columnas con que desea
jugar 3-9: ",0)
¿Qué condición controla la repetición?:
Mientras columnas<3 || columnas>9
Ciclo hacer 4:
¿Qué se repite?:
CC2006 – Programación Orientada a Objetos
Autores:
Emilio José Miranda Rivas - 10411
Ana Rocio Debroy Bran – 10055
Hugo Daniel Mena Enamorado - 08825
Mostrar submenu()
opc2 ← revisar_Numero("- Ingrese una opcion: ",0)
Revisar opc2
¿Qué condición controla la repetición?:
Mientras opc2 <> 4
5. Clases
Clase Rubix:
Atributos
Visibilidad Tipo Identificador Observaciones
permitirá crear los desafíos y las metas
de cada nivel, es donde se almacenarán
private char[][] matriz las letras que representarán los colores
Métodos
Visibilidad Tipo de retorno Identificador Parámetros Funcionalidad
Leer_Archivo:
Métodos
Tipo de
Visibilidad retorno Identificador Parámetros Funcionalidad
Lee un archivo externo línea por línea, recibe el
public nombre del archivo y devuelve el texto completo
static String leerTexto String file o la notificación que el archivo no existe
Clase Driver_Rubix:
Métodos
Tipo de
Visibilidad retorno Identificador Parámetros Funcionalidad
Revisa que lo que se ingreso sea numero, recibe
String un texto y un número y devuelve lo que se
public texto, int ingresó como entero o el número que recibió si
static int revisar_Numero num da error
public Imprime las opciones del menú, no recibe
static void menu parámetros y no devuelve nada
public Imprime las opciones del sub-menú, no recibe
static void submenu parámetros y no devuelve nada
int Se revulve la matriz desafío, se muestra el
Public cantidad, tablero desafío y meta, el No de movimientos
static void juego Rubix realizados y el No de movimientos a vencer
CC2006 – Programación Orientada a Objetos
Autores:
Emilio José Miranda Rivas - 10411
Ana Rocio Debroy Bran – 10055
Hugo Daniel Mena Enamorado - 08825