En primer lugar, hemos dividido el programa en varios módulos para simplificar el algoritmo principal, aquí están explicados: -Procedimiento Pidedatosalgenerar: Pide el lado de la matriz cuadrada y la probabilidad de vida de las celulas, ambas con sus respectivas restricciones (matriz 4-20 y probabilidad 0-1) -Procedimiento Borralados: Se ocupa de generar el borde muerto de la matriz una vez se ha generado aleatoriamente en el procedimiento anterior. -Procedimiento Pidereglas: Se ocupa de pedir las variables X,Y,Z de las que dependeran que vivan o mueran las celulas en el desarrollo del juego. -Procedimiento Ejecucion: Se ocupa de preguntar las reglas, por defecto X=3 Y=2 Z=3, o con el procedimiento Pidereglas si se desean otras. También pide el numero de turnos y el modo de juego, paso a paso o solo resultado (esto ultimo no esta implementado, por lo que por defecto se efectúa paso a paso). -Procedimiento pidedatos: pide posada y calavera con sus respectivas restricciones. Usando dos parametros de entrada/salida. -Procedimiento vivas: Funcion que devuelve un entero con el numero de celulas vivas en las casillas adyacentes de cada una de las casillas de la matriz. Una vez terminados los módulos del programa, definimos los tipos, constantes y variables, que serán: -Constantes: Max=100;Min=1; -Tipos: Tmatriz, que será un vector de dos dimensiones desde Min a Max de booleanos (vivo/muerto) Tregistro, que será un registro con un campo entero N para saber el máximo de posiciones ocupadas y otro campo de tipo Tmatriz. -Variables mimundo y mundofin, seran dos matrices de tipo Tregistro, se hacen dos con intencion de copiar una en la otra para leer los datos en una y escribirlos en la otra, de manera que empezando a tratar una matriz y finalizando tenga en ella los mismos datos, sin que hayan muerto o nacido ninguna y se cambien en la otra. X,Y,Z, son las variables enteras que se dejaran elegir al usuario y que de ello depende el sentido del juego, la cantidad de celulas que vivirán o morirán. nturnos, es otra variable entera para saber el numero de iteraciones (turnos) que se ejecutara el programa. a,i,j, son variables enteras para usarlas para recorrer matrices, ya sea escribir, leer... y en caso de la "a" para ejecutar el programa desde a=1 hasta nturnos. cont, es el contador para las celulas vivas adyacentes de cada celula. respuesta, es la variable que usamos en un bucle repeat until para evitar que salga del programa hasta que no se pulsa "salir" en el menu, es decir, hasta que no se pulsa "4". En el algoritmo principal se encuentra el menú en el que se puede elegir entre varias opciones. Al elegir cada una de ellas se entrará en los módulos correspondientes y al finalizar los mismos se volverá al menú para poder elegir cualquier otra opción. En la primera opción del menú se va al procedimiento de generar un mundo aleatorio, en la segunda al de ejecucion en el que se eligen las normas del juego. A continuación comienza el juego y se ejecutara el procedimiento jugar, que repite las iteraciones tantas veces como turnos haya indicado el usuario. Dentro de este procedimiento, para cada casilla del mundo se comprueba cuantas casillas tiene vivas alrededor y con ese número de casillas y las normas anteriores se actúa según las reglas del juego. Una vez terminados los turnos se vuelve al menú para poder volver a elegir la opción que se desee, hasta que se elija la cuarta opción con la que sale del juego. ---------------------------- (añadido tras someter) ---------------------------- 23:06:51 11/12/09 -> Segun los datos introducidos los ficheros son: G11P04D2 -> Los autores del trabajo son: LUCÍA GIL, DAVID DILOY SERRANO, Mª CRISTINA Nombres originales de los archivos entregados -> JUEGOV.PAS, DOCUMENTACION D2.txt