Víctor Ruiz Álvarez Juan Villafranca Navarro Grupo: 10 Puesto: 3 Práctica: D2 (Juego de la Vida) G10P03D2 Hemos utilizado la unidad Crt de Pascal, además de la unidad System (que es la utilizada por defecto), para el uso de las funciones: - TextColor: para añadir colores a las letras. Sumando 128 a cualquier color, se consigue que parpadee. Es algo que queda muy vistoso. Todos los procedimientos y funciones, así como tipos, constantes y variables, han sido explicados detenidamente en los comentarios del programa 'Juego de la Vida', por lo que a continuación los expicaremos brevemente: a)Tipos: hemos definido el tipo Tmatriz, que se refiere a un vector de 2 coordenadas para crear la matriz. b)Procedimientos: -Encabezado: para introducir el juego. Es llamado por el programa principal. -Continuar: usado para estructurar el juego. Es invocado por la mayoria de procedimientos del juego. -Instrucciones: comunica al usuario las reglas del juego. Llama al procedimiento Continuar. -Pedir_C_max: pide al usuario el nº de casillas del tablero por lado. Es invocado por los procedimientos Generar_mundo_plano y Generar_mundo toroidal que se definen después. -Probabilidad:pregunta al usuario la probabilidad que desea para que nazcan las células. Es invocado por los procedimientos Generar_mundo_plano y Generar_mundo toroidal que se definen después. -Estado: esta función determina el estado de las células iniciales. Devuelve 0 si está muerta o 1 si está viva, dependiendo de la probabilidad elegida. Es llamado por los procedimientos T_inicial_plano y T_inicial_toroidal. -T_inicial_plano: muestra en pantalla el mundo plano. Invoca al proc. Estado y es invocado por Generar_mundo_plano. -T_inicial_toroidal:muestra en pantalla el mundo toroidal. Invoca al proc. Estado y es invocado por Generar_mundo_toroidal. -Generar_mundo_plano: genera en pantalla la matriz (tablero) con las células vivas o muertas. Es invocado por los procedimientos Mundos_2 y Menu_plano. Invoca a los procedimientos Pedir_C_max, Probabilidad, T_inicial_plano y Continuar. -Generar_mundo_toroidal:genera en pantalla la matriz (tablero) con las células vivas o muertas. Es invocado por los procedimientos Mundos_2 y Menu_toroidal. Invoca a los procedimientos Pedir_C_max, Probabilidad, T_inicial_toroidal y Continuar. -Turnos: preguntaal usuario el nº de turnos que el juego ejecutará. Es invocado por los procedimientos Ejecucion_plano y Ejecucion_toroidal. -Reglas: pregunta el nº de células vecinas vivas o muertas que cada célula necesita para seguir viviendo, nacer o morir. Es invocado por los procedimientos Ejecucion_plano y Ejecucion_toroidal. -Calculos_plano: cuenta las células vecinas vivas de cada célula en el mundo plano(teniendo en cuenta el marco de ceros). -Calculos_toroidal: cuenta las células vecinas vivas de cada célula en el mundo toroidal(sin el marco de ceros). -C_vivas:comprueba el estado de cada célula dependiendo de las reglas impuestas por el usuario. -C_muertas: comprueba el estado de cada célula dependiendo de las reglas impuestas por el usuario. -Ejecucion_plano: ejecuta el juego según los datos generados en los procedimientos anteriores. Invoca a los procedimientos Turnos, Reglas, Continuar, Calculos_plano, C_vivas y C_muertas. -Ejecucion_toroidal: ejecuta el juego según los datos generados en los procedimientos anteriores. Invoca a los procedimientos Turnos, Reglas, Continuar, Calculos_toroidal, C_vivas y C_muertas. -Función cargar_mundo: carga la matriz dada desde un fichero de tipo .txt previamente guardado. -Procedure Cargar_estado: utiliza la matriz anterior como un nuevo estado inicial, sin necesidad de generar un mundo aleatorio. -Salir: este procedimiento se crea para salir del Juego de la Vida, cada vez que el usuario lo desee. Es ivocado a los procedimientos Mundos_2, Menu_plano y Menu_toroidal. -Mundos_2: muestra en pantalla el menú que da a elegir entre mundo plano o toroidal. Invoca a los procedimientos Generar_mundo_plano, Ejecucion_plano, Cargar_estado, Mundos_2, Instrucciones y Salir en caso de que el elegido sea el mundo plano; y Generar_mundo_toroidal, Ejecucion_toroidal, Cargar_estado, Mundos_2, Instrucciones y Salir en caso de que el elegido sea el mundo toroidal. -Menu_plano: muestra las 6 opciones que damos al usuario una vez que ha escogido el mundo plano para jugar. Invoca a los procedimientos Generar_mundo_plano, Ejcucion_plano, Cargar_estado, Mundos_2, Instrucciones y Salir. A su vez, es invocado por el último procedimiento llamado Mundos. -Menu_toroidal: muestra las 6 opciones que damos al usuario una vez que ha escogido el mundo toroidal para jugar. Invoca a los procedimientos Generar_mundo_toroidal, Ejcucion_toroidal, Cargar_estado, Mundos_2, Instrucciones y Salir. A su vez, es invocado por el último procedimiento llamado Mundos. -Mundos: da la posibilidad al usuario de elegir entre los 2 tipos de mundo disponibles, plano y toroidal, diciéndolo en qué consiste cada uno de ellos. Para esto, sólo hace uso de los procedimientos Mundo_plano y Mundo_toroidal. A su vez este procedimiento es llamado por el programa principal. ---------------------------- (añadido tras someter) ---------------------------- 23:04:06 11/12/09 -> Segun los datos introducidos los ficheros son: G10P03D2 -> Los autores del trabajo son: Villafranca Navarro, Juan Ruiz Álvarez, Víctor Nombres originales de los archivos entregados -> VIDA_3.PAS, D2.txt