Lorena Crespo Monge D2G13P12 En el programa he utilizado una constante (Tmax) que indica la amplitud maxima del tablero. Y en tipos e definido un vector de tipo caracter de dos dimensiones. He utilizado procedimientos y funciones y voy a explicar para que sirven cada uno: 1-.Procedimiento Menu: tiene una unica variable de E/S y se utiliza para que el usuario introduzca por teclado la opcion que desee. Es llamado solamente en el programa principal. 2-.Procedimiento dibujar_tablero: tiene una variable de E/S de tipo ttablero y una variable de E (lado). Y dentro del modulo he definido dos variables de tipo entero (i,j) para poder usar el vector. Sirve para dibujar el tablero.Este modulo es llamado por tres procedimientos: generar_mundo_aleatorio, Paso_a_paso, Solo_Resultados. 3-.Procedimiento Generar_Mundo_Aleatorio: Tiene dos variables de E/S una de tipo entero (lado) y otra de tipo ttablero (tab) y dos variables de E de tipo real. Dentro he definido dos variables de tipo entero (x,y) para poder usar el vector. En este modulo el usuario introduce por teclado el tamaño del tablero y la probabillidad. Dentro de este se utiliza la funcion predeterminada RANDOM que genera un numero aleatorio entre 0 y 1, este procedimiento compara la probabilidad determinada por el usuario con el numero aleatorio. Si sale que la célula esta viva: se le asigna _ '0'. Si por el contrario sale que muere:se le asigna -'*'; Es llamado solamente por el programa principal. 4-.Procedimiento Cambiar_Reglas_Juego: tiene 3 variables de E/S (A,B,C). Dentro se utiliza una variable de tipo carácter que es (resp) que solo podrá tener dos valores (S/N); Para que lea minusculas y las transforme en mayusculas he utilizado UPCASE. Sirve para que el usuario tenga la opcion de cambiar las reglas del juego, es decir el numero de vecinas para que una célula viva o muera. Es llamado por el procedimiento Ejecucion. 5-.Procedimiento Turnos_Modo_Ejecucion: tiene dos variables de E/S de tipo entero (turnos,modo). Se utiliza para que el usuario introduzca por teclado el numero de turnos (he puesto que dene ser >0) y el modo de ejecucion (solo podrá ser 1 o 2). Es llamado por el procedimiento Ejecucion. 6-.Procedimiento Reglas_Del_Juego: tiene dos variables de E/S (lado) y (t de tipo ttablero) y tres variables solo de E (x,y,z). Dentro de este módulo he definido otras variables: tab1-- de tipo ttablero, es una var. auxiliar para que se calcule bien el numero de vecinas. i,j--de tipo entero para poder trabajar con el vector. nvecinas de tipo entero. En este se suman para cada posicion en el vector todas las vecinas que estan vivas ('O') y asi se ve si sigue o no viva segun cumpla las reglas. Es llamado por varios procedimientos: Paso_a_Paso, Solo_Resultados. 7-.Procedimiento Paso_a_paso: tiene variables de E de tipo entero (lado,turno,x,y,z) y una variable de E/S de tipo Ttablero. Dentro he definido 3 variables de tipo entero: (i,j para el vector) y (ind para usarlo en un for y se cumplan los turnos establecidos por el usuario). Este llama a dos procedimientos definidos anteriormente. 8-.Procedimiento Solo_Resultados: es smilar al anterior lo unicio que cambia es que la llamada a dibujar el tablero se hace al final del todo, una vez que se han hecho todos los turnos. 9-.Procedimiento Ejecucion: Tiene una variable de E/S de tipo ttablero (tabl) y una variable de E de tipo entero (lado). Dentro he definido 5 variables de tipo entero. Este procedimiento llama a cuatro procedimientos definidos anteriormente. 10-.Funcion Cargar_Mundo 11-.Cargar_estado_inicial:tiene una variable de E/S tab de tipo ttablero. He definido dentro 4 variables de tipo entero: i,j: para los indices del vector. n:para indicar la posición en mundo(string). nlado:para saber hasta donde va a corresponder una fila en el vector que quiero hacer. y estado, de tipo string que es a la que se le asigna el valor de la funcion anterior. Primero se calcula el valor nlado que se hace con un while sumandole 1 a la variabl nlado hasta que hay un caracter '|'. Como el vector es cuadrado ya sabemos las filas y las columnas. Ahora se utiliza un for dentro de otro for con los dos indices del vector y se le va asignando al vector el valor de ('O') si esta viva en el estado (1) o se le asigna un ('*') si esta muerta en el estado (0). Una vez que se ha terminado una fila del vector se sale del for y se sigue sumando a n 1 para que no se copie en el vector el caracter '|'. PROGRAMA PRINCIPAL variables definidas: nu: de tipo entero indica la opcion del menú que ha elegido el usuario. nlado: de tipo entero. Indica el tamaño del tablero elegido por el usuario. numaleat,nproba: de tipo real. Son el numero aleatorio (random) y la probabilidad elegida por el usuario. tablero: de tipo ttablero. Es el vector utilizado para los distintos estados. nturnos,nmodo:de tipo entero. Son el numero de turnos y el modo de ejecucion que elige el usuario. Al principo se inicializa el random con RANDOMIZE. Hay un repeat hasta que el usuario escoge la opcion 4 que es salir del juego. Dentro del repeat hay un case con 3 opciones que son las que hay en el menu. ---------------------------- (añadido tras someter) ---------------------------- 12:11:08 11/12/09 -> Segun los datos introducidos los ficheros son: G13P12D2 -> Los autores del trabajo son: CRESPO MONGE, LORENA Nombres originales de los archivos entregados -> JUEGOVID.PAS, juegvida.txt