JUEGO DE LA VIDA El juego de la vida constra de 8 procedimientos en los que se desarrolla todo el programa.. 1º procedimiento --> este se desarrolla para dibujar el tablero, que escriba si están vivas o están muertas. se genera con dos 'for' uno dentro del otro que nos dibuja el tablero de la longitud indicada por el usuario.Como variables del procedimiento tenemos tab1 del tipo matriz(definido en la cabecera del programa) y long que será la longitud introducida por el usuario siendo las dos de entrada, ya que en ningun momento modificamos valores de la variable del tipo matriz ni la longitud que nos ha introducido el usuario. 2º procedimiento --> sirve para pedirle al usuario que especifique: - el numero de celulas que han de estar vivas para que una muerta nazca. - el numero mínimo de células que han de estar vivas para que siga viva. - el numero máximo de células que han de estar vivas para que siga viva. - sabiendo de que el tablero es cuadrado: Te pide que escribas el número de casillas que quiere el usuario que tenga el tablero por lado. Pedimos al usuario todos los datos anteriores de manera robusta (utilizamos el while), de manera que si introdujera un valor que no se encuentra en el rango o que no sea del tipo especificado volvería a pedirnos ese dato. Utilizamos como variables del programa que son todas de salida y entradas, ya que vamos a modificar su valor que va a ser utilizado más adelante son:x,y,z,lado. 3º procedimiento --> Este procedimiento lo utilizaremos para hallar las vecinas que estan vivas o muertas siempre que la célula que estemos observando este siempre viva. Utilizamos un for que vaya de la fila superior a la inferior de la fila en que esta situada la célula y otro for dentro que vaya recorriendo desde la columna anterior a la columna superior de la columna de la célula en la que estamos situados,y una variable se suma 1 si la célula vecina está viva,esta variable tiene un valor inicial de -1 porque como va recorriendo todas las células también pasará por la célula que estamos buscando y como siempre estará viva pues empiza desde -1.Después comparando la variable anterior con las células vecinas mínimas y máximas que han de estar vivas diremos si sigue estando viva o muere. Utilizamos como variables del programa:x,y,z,lado,columna y fila del tipo integer que serán todas de entrada y t2,t3 del tipo matriz( una de ellas sera de tipo salida, la que la vamos modificando mientras vamos viendo las células vecinas que tiene y la otra la utilizamos para saber las vecinas que tiene en el estado inicial); 4º procedimiento --> Este procedimiento lo utilizaremos para hallar las vecinas que estan vivas o muertas siempre que la célula que estemos observando siempre este muerta. La forma de buscar las vecinas es analoga a la del procedimiento anterior, la única diferencia que la variable que va sumando uno si las vecinas están vivas comienza desde 0, porque como esta muerta al pasar sobre ella no se sumará uno. Las variables del programa son las mismas que en el apartado anterior y del mismo tipo. 5º procedimiento --> Este procedimiento realiza un tablero aleatorio de las dimensiones establecidas por el usuario (lo realizamos con un random,que nos de una probabilidad del 50%, en este caso que vaya de 0 a 1 si nos da 1 la célula este viva y si es 0 la célula estará muerta).Y finalmente llamamos al procedimiento dibujar_tablero y lo representa. Utilizamos como variables del programa lado de entrada del tipo integer y tab del tipo matriz que será de salida porque le vamos dando valores en cada posicion de la matriz que despues en el proce- dimiento dibujar matriz nos lo dibujará según lo que hayamos introducido. 6º procedimiento --> Este procedimiento nos parte de un primer estado aleatorio y modifica los turnos que el usuario quiera jugar y lo puede hacer paso o paso o solo mostrando el estado final. Primeramente le decimos al usuario si quiere los datos por defecto o quiere introducirlos, a partir de allí le pedimos los turnos que quiere jugar y vamos modificando el estado inicial las veces que nos haya indicado, para ello lo metemos en un repeat/until y un contador se va sumando y el until será hasta que el contador llege al número de turnos introducido.Para ir viendo como va cambiando cada turno hacemos un if con la condición(if=1...) que le hemos preguntado al usuario y que vaya dibujando el tablero cada turno y sino que lo dibuje una vez salido del repeat/until si if(if <>1..) es lo contrario de la condicion. Las variables del procedimiento son:x,y,z,lado,fila,columna de tipo integer todas de tipo entrada/salida ya que las vamos a ir modificando a lo largo del procedure y dos t,t2 del tipo matriz también de entrada/salida. 7º procedimiento--> Este procedimiento dibuja el estado inicial que se nos ha dado en el add, que es un tablero 10x10. Le damos el valor indicado a una variable tipo matriz y la dibujamos con el procedimiento dibujar_tablero. Como variables del procedimiento utilizaremos t de tipo matriz, que es de entrada/salida. 8º procedimiento--> Hacemos procedimiento que sea un menu inicial, con 4 opciones: 1. generar mundo aleatorio. 2. ejecución. 3. cargar estado inicial. 4. salir del programa. Le pedimos al usuario que introduzca un número según el que iremos a una opción del menú u otra lo hacemos de manera robusta. Para hacer este menú lo realizamos con un 'case of' que pueda tener tres posibles valores (ya que el 4 nos servirá para salir del programa) y en los otros tres hacemos llamadas a los procedimientos oportunos. Como variables del procedimiento utilizamos (seran todas de entrada/salida):x,y,z,lado,fila,columna,l(integer) y tb,tb2(tipo matriz). El desarollo del programa se basa en la llamada al procedimiento menu dentro de un repeat/until, que salga cuando el valor de l sea 4 (salir del programa). ---------------------------- (añadido tras someter) ---------------------------- 16:45:06 11/12/09 -> Segun los datos introducidos los ficheros son: G15P11D2 -> Los autores del trabajo son: Chiné Hidalgo, Abel Jiménez Ruiz de la Torre, Rubén Nombres originales de los archivos entregados -> MUNDO2_1.PAS, vida.txt