AUTORES: -ALBERTO CÁCERES FRANCO; NIP: 553183 -MARCOS ONS FUERTES; NIP:550430 -GRUPO:14; PUESTO:2. EXPLICACION DEL JUEGO DE LA VIDA La práctica consiste en realizar el desarrollo del juego de la vida en función de los turnos que se quiera. En el se aprecia como unas "células" viven o mueren según unas condiciones dadas. Para recrear esto hemos utilizado programación modular, y vectores como base fundamental del programa. A continuación explicamos el desarrollo del programa. Todas las entradas de tipo tablero (Ttablero) se consideran variables de entrada-salida para trabajar con ellas sin dejar datos en el buffer (aconsejado por la profesora Mayte Lozano en la clase correspondiente a vectores) Lo primero de todo hemos definido nuestro vector tablero que consta de dos componentes para poder representar un tablero de como maximo, 20X20. A continuación empezamos con los procedimientos en los cuales se ha buscado robustez a base de las opciones $I+/$I- y algunos If para mostrar mensajes de error u otras opciones: Como inicio se utiliza un procedimiento llamado "Bienvenida" para que muestre una pantalla principal con el titulo del juego y un encabezamiento. Este procedimiento es luego llamado en el programa principal. El primer procedimiento llamado "DimensiónTablero" pide al usuario que delimite las dimensiones del tablero entre 4 y 20. El parámetro de entrada-salida "N" determina las dimensiones del tablero. El segundo procedimiento llamado "Probabilidad" establece un número real aleatorio entre 0 y 1 para crear un número inicial de células vivas. El parámetro de entrada-salida "probabilidad" determina el valor de la probabilidad aleatoria entre 0 y 1 El tercer procedimiento llamado "PedirLaProbabilidad" solicita al usuario que introduzca una probabilidad entre 0 y 1. El parámetro de entrada-salida "Probabilidad_Dada" representa la probabilidad introducida por el usuario entre 0 y 1. El cuarto procedimiento llamado "GeneraMundo" determina el tablero en función de la probabilidad dada anteriormente. También establece que en los extremos de este no pueda haber ninguna casilla viva tal y como aparece en el enunciado. El parámetro de entrada "N" representa las dimensiones del tablero, El parámetro de entrada"Probabilidad_Dada" representa la probabilidad introducida por el usuario entre 0 y 1. El parámetro de entrada-salida "tablero" representa al tablero y sus dimensiones. El quinto procedimiento llamado "PintaTablero" pinta por pantalla el tablero con sus correspondientes casillas vivas y muertas. El parámetro de entrada "N" representa las dimensiones del tablero, El parámetro de entrada-salida "tablero" representa al tablero y sus dimensiones. El sexto procedimiento llamado "PedirTurnos" solicita al usuario cuantos turnos se va a ejecutar el juego. El parámetro de entrada-salida "Turnos" representa el número de turnos totales introducidos por el usuario en los que se va a ejecutar el juego. El séptimo procedimiento llamado "PedirSiReglas" permite preguntar al usuario si utiliza las reglas por defecto o en cambio prefiere definirlas por si mismo. También muestra los valores de las reglas por defecto. Los parámetros de entrada-salida "x","y" y "z" representan las condiciones de juego. El parámetro de entrada-salida "defecto" representa los valores por defecto de "x", "y" y "z" El octavo procedimiento "PedirReglas" permite introducir al usuario las reglas que el desee en el caso de que anteriormente halla decidido que quiere cambiarlas respecto a las reglas por defecto. Los parámetros de entrada-salida"x","y" y "z" representan las condiciones de juego. El noveno procedimiento "PedirModoDeEjecución" pregunta al usuario cual de los dos modos de juego quiere aplicar para jugar, si el modo paso a paso o el modo solo resultados. El parámetro de entrada-salida "modoejecución" representa el modo de juego elegido. El décimo procedimiento "Ejecución" desarrolla lo que ocurre en un turno completo. Hace las comparaciones correspondientes con cada regla (x,y y z) en cada una de las casillas y establece si la célula vive o muere almacenando esos datos y plasman- dolos al final en el tablero inicial. Los parámetros de entrada "x","y" y "z" representan las condiciones de juego. El parámetro de entrada "N" representa las dimensiones del tablero. El parámetro de entrada-salida "tablero" representa al tablero y sus dimensiones. El undécimo procedimiento llamado "PasoAPaso" ejecuta el juego tal y como dice el sistema paso a paso. Mostrando el tablero, haciendo las modificaciones y haciendo que el usuario intervenga para hacer el siguiente turno con la tecla Enter. Este procedimiento esta vinculado con el de "ejecución" y a su vez con el "PedirModoEjecución" que es el que determina que modo de juego se aplica. Los parámetros de entrada "x","y" y "z" representan las condiciones de juego. El parámetro de entrada "N" representa las dimensiones del tablero. El parámetro de entrada "Turnos" representa el número de turnos que se ejecuta el juego. El parámetro de entrada-salida "tablero" representa al tablero y sus dimensiones. El duodécimo procedimiento llamado "SoloResultados" ejecuta el juego sin mostrar ninguna operación ni paso hasta llegar al ultimo turno en el cual muestra el tablero final que ha quedado. Este procedimiento esta vinculado con el de "ejecución" y a su vez con el "PedirModoEjecución" que es el que determina que modo de juego se aplica. Los parámetros de entrada "x","y" y "z" representan las condiciones de juego. El parámetro de entrada "N" representa las dimensiones del tablero. El parámetro de entrada "Turnos" representa el número de turnos que se ejecuta el juego. El parámetro de entrada-salida "tablero" representa al tablero y sus dimensiones. El decimotercer procedimiento llamado "LlamarFichero" solicita al usuario que introduzca el nombre del fichero a cargar. El parámetro de entrada-salida "nombreFich" representa el nombre del fichero. la función decimocuarta "cargar_mundo" permite cargar un archivo de texto disponible en el sistema para usarlo en el programa. El parámetro de entrada "nombreFich" representa el nombre del fichero. El decimoquinto procedimiento llamado "DimensionVector" cuenta la dimensión total que tiene el fichero cargado para saber la longitud total del vector. El parámetro de entrada "nombreFich" representa el nombre del fichero. El parámetro de entrada-salida "cargar" representa los carácteres de la función cargar_mundo. El parámetro de entrada-salida "N" representa la dimensión del tablero. El decimosexto procedimiento llamado "GuardaVector" asigna los carácteres de la función cargar_mundo al vector que representa el tablero. El parámetro de entrada "cargar" representa los carácteres de la función cargar_mundo. El parámetro de entrada "N" representa la dimensión del tablero. El parámetro de entrada-salida "tablero" representa al tablero y sus dimensiones. El decimoséptimo procedimiento llamado "Menu" muestra por pantalla el menú de elección del juego con sus 4 correspondientes opciones. El parámetro de entrada-salida "numero" representa el número del menú elegido por el usuario. El decimooctavo procedimiento llamado "Menu1" agrupa en el los procedimientos correspondientes al punto 1 "GenerarMundoAleatorio" Dentro de el tenemos a DimensiónTablero, PedirLaProbabilidad, GeneraMundo y PintaTablero. El parámetro de entrada-salida "N" representa las dimensiones del tablero. El parámetro de entrada-salida "tablero" representa al tablero y sus dimensiones. El decimonoveno procedimiento llamado "Menu2" agrupa en el los procedimientos correspondientes al punto 2 "Ejecucion" Dentro de el tenemos a PedirTurnos, PedirSiReglas, PedirReglas, PedirModoDeEjecución y Ejecución. El parámetro de entrada"N" representa las dimensiones del tablero. El parámetro de entrada-salida "tablero" representa al tablero y sus dimensiones. El vigésimo procedimiento llamado "Menu3" agrupa en el los procedimientos correspondientes al punto 3 "Cargar Estado Inicial" Dentro de el tenemos a "LlamarFichero", "Cargar_Mundo", "DimensionVector" y "GuardarVector". El parámetro de entrada-salida "N" representa las dimensiones del tablero. El parámetro de entrada-salida "tablero" representa al tablero y sus dimensiones. El progarama principal simplemente inicializa el "Randomize" para poder ejecutar la opción de números aleatorios, define el tablero y permite la movilidad por el menú a base de llamar a los distintos procedimientos hasta que la opción 4 y ultima da la posibilidad de salir. ---------------------------- (añadido tras someter) ---------------------------- 17:43:11 11/12/09 -> Segun los datos introducidos los ficheros son: G14P02D2 -> Los autores del trabajo son: ONS FUERTES, MARCOS CÁCERES FRANCO, ALBERTO Nombres originales de los archivos entregados -> VIDA16.PAS, Explicación del juego de la vida.txt