Sei sulla pagina 1di 19


  

 Proyecto de Programación de Computadores


Abrahán Ayala Ignacio (Ingeniería de Sistemas) 
Ayala_abrahan@javeriana.edu.co 
Pablo Santander Álvarez (Ingeniería de Sistemas) 
santander_p@javeriana.edu.co

Pontificia Universidad Javeriana. 
Facultad de ingeniería.  

Ingeniería de Sistemas 
Programación de computadores.

Septiembre 2018. II Semestre


Análisis

Objetos conocidos:
- Todos los pixeles pintados que llevan a la solución de la matriz (conocido para el
programa)
- Tamaño de la matriz
- Las coordenadas que el jugador ingresara para representar los pixeles que se dibujaran.

Objetos desconocidos:
- Que los pixeles que el jugador ingrese coincidan con los pixeles del nonograma.

Condiciones:
La cantidad de pixeles a dibujar basadas en las coordenadas dadas no debe sobrepasar el
tamaño del tablero de juego, además, el jugador solo tiene 5 posibles movimientos para
completar el tablero. El tablero de juego solucionado no es visible para el usuario sino
hasta que complete el juego. En el tablero de juego se debe mostrar las indicaciones para
pintar los pixeles, y estas se deben cumplir para completar el juego. Para la impresión del
tablero, se utilizarán caracteres como '|', '-', y '+' para marcar las subdivisiones de las
casillas. Las indicaciones numéricas de cada fila se ubicarán al lado izquierdo, y las de cada
columna en la parte superior. Para facilitar la ubicación del usuario, en el lado derecho se
imprimirá la numeración de las filas, y en la parte inferior la de las columnas. A medida
que se van coloreando los pixeles del patrón, las casillas se llenarán con el carácter '#'. Es
necesario verificar que los pixeles que se vayan a dibujar no ocupen posiciones ya
dibujadas, si esto ocurre se debe solicitar nuevamente en qué lugares se va a dibujar.
Diseño

Entradas:
- Opcion, de tipo entero.
- CoordX, la cual será de tipo de dato entero.
- CoordY, la cual será de tipo de dato entero.

Salidas:
- Mtableroj, de cualquier tipo de dato, para este caso usaremos enteros(0,1)
- turnos, de tipo entero.

Condiciones:
1. Mtableroj, debe ser 15 x 15.
2. La opción debe estar en el menú, no puede ser un número real.
3. Para las coordenadas X, Y los números deben ser de tipo entero.
4. Mtableroj, solo podrá contener 1’s y 0’s.
5. turnos<=5.
Para función Validar ():
Análisis
Objetos conocidos:
-Las coordenadas en la matriz en donde se encuentran puntos pintados.
-Las coordenadas ingresadas por el jugador.
-Los rangos de coordenadas validos
Objetos desconocidos
-Validación, sobre si la persona acertó sobre uno o varios puntos y si las coordenadas son
válidas o invalidas.

Condiciones
- La función recibirá la matriz del tablero predeterminada ya pintada y la matriz que
el usuario está llenando, lo que hará es comparar si la coordenada o el rango de
coordenadas es válida, en caso de serlo, la pinta y le notifica al usuario que
encontró uno o mas puntos, en caso contrario se da la posibilidad que al ingresar
el rango de coordenadas atine a unos cuantos puntos pero no a todos, por lo que
por igual se valida a cuales atino y esos se pintan, mientras que los demás quedan
vacíos

Diseño
Entradas:
-La matriz del tablero predeterminada de tipo entera.
-La matriz que el jugador se encuentra llenando de tipo entera.
-Las indicaciones de filas y columnas las cuales son arreglos de cadenas de texto.
-Una opción ingresada por el usuario, de tipo entera.

Salidas:
-Un booleano que depende de la opción ingresada.

Condiciones
Básicamente la función se encarga de validar que ninguna de las condiciones del programa
principal sea violadas, que las coordenadas existan en la matriz y que los puntos que se
pinten realmente están pintados en la matriz predeterminada del tablero.
Para función leerdatos ():
Análisis
Objetos conocidos:
-La función leerá todos los datos ingresados por la persona, por lo que con antelación no
se tiene conocimiento de estos

Objetos desconocidos
-La coordenada o coordenadas que el jugador seleccionara para ser pintadas
Condiciones
- La función recibirá la opción ingresada por el usuario y dependiendo de esta le
pedirá, ya sea una coordenada o un rango de coordenadas para ser pintadas.

Diseño
Entradas:
-La matriz del jugador de tipo entera.
-Una opción ingresada por el usuario, de tipo entera.

Salidas:
-Un apuntador de tipo entero.

Condiciones
La entrada de la matriz jugador es realmente un apuntador que apunta a esta, la función
retorna este apuntador de forma modificada.
Para función iniciartablero ():
Análisis
Objetos conocidos:
-El tamaño del tablero
Objetos desconocidos
-Todo es conocido.
Condiciones
- La función recibirá la matriz del jugador y la inicializará, llenándola y asignándole
memoria dinámica.

Diseño
Entradas:
-La matriz del jugador de tipo entera.

Salidas:
-La función es de tipo vacía.

Condiciones
Se debe tener en cuenta e tamaño del tablero y llenar este totalmente.
Para función imprimir ():
Análisis
Objetos conocidos:
-La matriz del jugador.
Objetos desconocidos
-La matriz del jugador actualizada con los puntos o no que se pintaron.
Condiciones
- La función recibirá la matriz del jugador y la actualizará, imprimiéndola en pantalla
toda completa junto a los puntos que el jugador hallo.

Diseño
Entradas:
-La matriz que el jugador se encuentra llenando de tipo entera.
-Las indicaciones de filas y columnas las cuales son arreglos de cadenas de texto.

Salidas:
-La matriz modificada.

Condiciones
La matriz en su impresión debe estar constituida de ciertos caracteres y las indicaciones
para la parte de arriba de la matriz, deben ser de forma vertical.
Para función gano ():
Análisis
Objetos conocidos:
-La matriz del jugador y la matriz predeterminada del tablero.
Objetos desconocidos
-Valida si la persona pinto todos los puntos y gano el juego.
Condiciones
- La función recibirá la matriz del jugador y la matriz predeterminada del tablero y
las compara, si estas coinciden en todos sus puntos, quiere decir que el jugador
gano y completo el tablero.

Diseño
Entradas:
-La matriz que el jugador se encuentra llenando de tipo entera.
-La matriz predeterminada del tablero de tipo entera.

Salidas:
-Un booleano que notifique si ha ganado o no.

Condiciones
Para que el jugador haya ganado, debe haber obtenido cierto puntaje, 1 punto equivale a
1 punto pintado, si esa cantidad de puntos llega a ser igual a la cantidad de puntos
pintados en la matriz predeterminada, el jugador ha ganado.
Para función Transformar ():
Análisis
Objetos conocidos:
-La matriz del tablero.
-Nombre del archivo para el tablero
-La matriz de las indicaciones para las filas
-La matriz de las indicaciones para las columnas

Objetos desconocidos
-Un archivo que contiene la información de la matriz.
Condiciones
- La función recibirá las diferentes matrices y usara su respectiva información para
crear un archivo donde se almacenara de cierta manera y con cierta estructura
estas matrices, las cuales conforman la matriz del tablero.

Diseño
Entradas:
-La matriz del tablero de tipo carácter.
-La matriz de las indicaciones de las filas de tipo carácter
- La matriz de las indicaciones de las columnas de tipo carácter.

Salidas:
-La matriz del tablero, modificada y escrita en un archivo.

Condiciones
Las matrices ingresadas conforman sub-partes de la matriz del tablero, estas matrices se
almacenan de forma especifica en el archivo, iniciando con la cantidad de filas y las
indicaciones respectivas de estos, luego la cantidad de columnas y las indicaciones
respectivas de estas y finalizando con la matriz interna que contiene que celdas están
pintadas o no, determinándolas con 0 o 1.
Para función Tam ():
Análisis
Objetos conocidos:
-La opción del archivo que se quiere abrir.

Objetos desconocidos
-El tamaño de la matriz del archivo que se quiere abrir.
Condiciones
- La función recibirá la opción que determina que archivo desea abrirse, para luego
calcular el tamaño de la matriz en filas y columnas.

Diseño
Entradas:
-Una opción de tipo entero.

Salidas:
-Un entero que determina el tamaño de la matriz.

Condiciones
La opción ingresada permite determinar que archivo de que tablero desea abrirse y a su
vez hallar el tamaño de este para futuro uso.
Para función Tamn ():
Análisis
Objetos conocidos:
-El nombre del archivo que se desea abrir

Objetos desconocidos
-El tamaño del archivo que se desea abrir.
Condiciones
- La función recibirá el nombre de un archivo y esta permitirá determinar el tamaño
de la matriz de ese archivo/tablero.

Diseño
Entradas:
-El nombre del archivo de tipo cadena de caracteres

Salidas:
-Un entero que determina el tamaño de la matriz.

Condiciones
El nombre del archivo permite abrirlo y determinar su tamaño mediante la función.
Para función Guardar ():
Análisis
Objetos conocidos:
-La matriz del jugador
-El nombre del archivo que contiene la matriz del jugador
-El nombre del archivo donde se guardará el progreso de la matriz.

Objetos desconocidos
-El archivo y la forma en donde guardar el progreso de la matriz.
Condiciones
- La función recibirá la matriz actual, el nombre del archivo donde esta contenida
esta matriz y el nombre del archivo donde se guardará.

Diseño
Entradas:
-El nombre del archivo de la matriz original de tipo cadena de caracteres
-El nombre del archivo de la matriz actualizada de tipo cadena de caracteres
-La matriz actual y original de tipo de caracteres.

Salidas:
-Un archivo en donde se guardará la matriz actualizada.

Condiciones
La función tiene como objetivo recibir tanto la matriz original como el nombre del archivo
donde esta se encuentra para luego guardar el progreso que se ha hecho dentro de esta
matriz, este progreso se guarda en un archivo diferente y con otro nombre.
Para función Guardar ():
Análisis
Objetos conocidos:
-La matriz del jugador
-El nombre del archivo que contiene la matriz del jugador
-El nombre del archivo donde se guardará el progreso de la matriz.

Objetos desconocidos
-El archivo y la forma en donde guardar el progreso de la matriz.
Condiciones
- La función recibirá la matriz actual, el nombre del archivo donde está contenida
esta matriz y el nombre del archivo donde se guardará.

Diseño
Entradas:
-El nombre del archivo de la matriz original de tipo cadena de caracteres
-El nombre del archivo de la matriz actualizada de tipo cadena de caracteres
-La matriz actual y original de tipo de caracteres.

Salidas:
-Un archivo en donde se guardará la matriz actualizada.

Condiciones
La función tiene como objetivo recibir tanto la matriz original como el nombre del archivo
donde esta se encuentra para luego guardar el progreso que se ha hecho dentro de esta
matriz, este progreso se guarda en un archivo diferente y con otro nombre.
Diagrama de flujo
Pantallazos del Programa

Potrebbero piacerti anche