PRÁCTICA 2 DE DISEÑO DE PROGRAMAS: VECTORES, REGISTROS Y FICHEROS. "JUEGO DE LA VIDA" -Datos personales: Jorge Lecina Sayas G.22 G08P08 Documentación de la practica: En la practica del juego de la vida se ha hecho uso de 2 procedimientos y 4 funciones para llevar a cabo todas acciones requeridas. Al principio de la practica se declara la unidad crt, una matriz, que será el tablero y como constantes unos valores que van a ser fundamentales más adelante para el funcionamiento del juego Se va ha hacer un pequeño hincapie en cada uno de estos módulos: -Procedimiento dibuja_tablero: Procedimiento en el cual se introduce el valor de la dimensión (largo x ancho). Se encarga de dibujarlo. La matriz se ha definido como booleano, asi que cuando sea “true” se representará con una X y cuando sea “false” se dejará espacio en blanco. -Función genera_mundo_aleatorio: Función que genera un tablero, con unas dimensiones y una probabilidad de que nazcan vivas que se le piden al usuario. Se hace uso en esta función del IOResult para dar mayor robustez al programa. En esta función se hace el llamamiento al procedimiento dibuja tablero. Como salida devuelve un valor entero que es la dimensión que se ha pedido al usuario. -Función vecinas_vivas: Función que comprueba las células vecinas vivas y devuelve un numero de células vecinas vivas. Se crea una variable llamada “numvecinas” de tipo entero que es usada como contador de células vecinas. Esta función estudia todos los casos posibles que existen en el tablero y hace uso de cada una de las partes dependiendo cual sea el valor de la matriz. -Procedimiento ejecución: Este procedimiento solamente se puede ejecutar si antes se ha generado un mundo aleatorio o se a cargado un mundo. En el se piden los turnos para ejecutar los cambios en el tablero, y si se desea que se muestren paso a paso o solamente el estado final. Se crea un bucle en el cual se comprueban las células vecinas para cada una, y utilizando los valores X,Y y Z, se comprueban los requisitos necesarios para que en el siguiente estado esa celda este viva o muerta. Llama a la función vecinas_vivas. -Función carga_mundo: Función que se encarga de llamar a un fichero que se encuentra fuera del programa, en la carpeta de turbo pascal. Como valor de salida devuelve una cadena de caracteres. -Función carga_estado_inicial: Esta función se encarga de analizar la cadena de caracteres que produce la función carga_mundo. Aparte de llamar a la función recientemente nombrada también llama al procedimiento dibuja_tablero. Esta función tiene el objetivo de obtener la dimensión del tablero, y una vez obtenida traducir los números “1” y “0” en boléanos para que el programa lo pueda entender y lo transforme en “X” o en espacios. Para obtener la dimensión del tablero que se ha cargado se ha hecho hincapié de la siguiente ecuación: L=(n+1)*n donde: L--Longitud de la cadena que ya se sabe. n--- Dimensión que es la incógnita. (n+1)--- En cada línea existe una separación Esta ecuación se ha resuelto mediante una ecuación de segundo grado. ---------------------------- (añadido tras someter) ---------------------------- 15:45:18 11/12/09 -> Segun los datos introducidos los ficheros son: G08P08D2 -> Los autores del trabajo son: Lecina Sayas, Jorge Nombres originales de los archivos entregados -> G08P08D2.PAS, G08P08D2.txt