Primero activamos la función uses crt para poder utilizar recursos como el de limpiar pantalla. Tenemos la función cargar_mundo, esta función sirve para cargar el fichero del mundo que se nos dejo en el add, k en mi caso esta en C:/TP/mundo.txt. Con el procedure pintalineas, como su nombre indica pintara las lineas del tablero hasta llegar a la dimension marcada por el usuario. El procedure pintacelulas se encargara de pintar las lineas en las que se encuentra celula viva (pintara un *) o celula muerta, y en este ultimo caso dejara un espacio en blanco. El procedure pintartablero, se encarga de pintar el tablero completo juntando los dos procedimientos anteriores. El procedure pintartablero2, es igual que el anterior con la diferencia de que si al celula esta viva pintara un 1 y si la celula esta muerta pintara un 0, este procedimiento esta comentado, ya que hice los dos tableros, pero por estetica decidi dejar el otro. El procedure cargamundo se encarga de llamar al fichero, lo lee y lo pinta. El procedure aleatorio, mediante la orden randomice se encargara de pintar un tablero con celulas vivas en posiciones aleatorias.En este procedimiento se te pide la dimensión del tablero, que sera de forma cuadrada y por lo tando abra el mismo número de filas que de columnas,con el IOResult nos aseguramos de que lo introducido sea un número, y después con con if lo ajustamos para que no valgan valores poe debajo de 1 o por encima de 20.Después pedimos al usuario la probabilidad del número de celulas encendias, y con el IOResut conseguimos que no nos meta una letra y con un if conseguimos que el valor se encuentre entre 0 y 1.Y finalmente pintamos el tablero. El procedure numerovecinas se encarga de contar el numero de celulas vivas que ay alrededor de una casilla, incluyendola a ella misma si esta viva. El procedure actualizartablero se encargara como su nombre indica de actualizar el tablero, cada vez que pase un turno. Lo primero le asigna el valor del ultimo tablero que se a pintado a tsiguiente, y pregunta si quiere jugar con al reglas predefinidas que son x=3,y=2,z=3 con las opciones de decir si o no, y con un IOResult nos aseguramos de que usuario mete una letra y con un if conseguimos que el usuario solo pueda meter s (si) o n (no), en el suspuesto de que el usuario diga que no, se le preguntara que valores quiere darle a x,y,z.Despues tienes que introducir el número que quieres jugar, y con el IOResult te aseguras de que el usuario mete un numero pero esta vez no utilizamos ningun if para limitar el valor por encima, porque el número de turnos que se quiera jugar no tiene limite, solo lo utilizamos para que el numero de turnos sea mayor que 0. Después te pregunta si quieres ver los turnos paso a paso, o quieres que te enseñe solo el final,las opciones son si o no y con el IOResult te aseguras de que te mete una letra y con el if te aseguras de que esa letra sea s (si) o n (no). Después empezamos a contar los turnos con un for desde 1 hasta el numero de turnos introducidos por el usuario, recorremos el tablero poniendo que los bordes siempre estaran muertos y por eso no los leemos, y leemos el número de celulas vivas que tiene cada una a su arrededor llamando a numerovecinas, si la celula en la que nos encontramos esta viva, al número de celulas vivas que nos da número de vecinas le restarmos 1, ya que como hemos comentado antes, cuenta el numero de celulas vivas, incluyendose a si misma,entonces si x es igual al número de celulas vivas entonces se que encendida, y si el numero de celulas vivas esta entre los valores de z e y entonces tambien se quedara encendida, si no cumple esto, se apagara. Dentro del bucle for ponemos que si el usuario nos a dicho que le pintemos el tablero paso por caso, lo pinte antes de restar un turno, y al final del for le ponemos que el el tactural tome el valor de tsiguiente, y salimos del for y tenemos que si el usuario no quiere ver todos los pasos nos pinte ese ultimo tactual. Ahora empezamos con el programa principal. Primero limpiamos pantalla y ponemos randomize para que los valores aleatorios funcionen correctamente Después le pedimos que nos pinte el menu con las 4 opciones, 1:generar mundo aleatorio, 2:cargar mundo, 3: ejecutar, 4:salir. y ya le ponermos como condicion que mientras menu sea diferente de 4 entonces vuelva a mostar el menu. Después con un case of asignamos al 1 el procedure aleatorio, al 2 el procedure cargamundo, al 3 el procedure actualizartablero, los cuales hemos descrito antes, y mientras los valores que le pidan a menu sean mayores que 4 o menores que 0 entonces que pida un valor correcto, y por ultimo partida terminada. ---------------------------- (añadido tras someter) ---------------------------- 21:43:21 09/12/09 -> Segun los datos introducidos los ficheros son: G08P06D2 -> Los autores del trabajo son: Mazón Minguez, Héctor Claver Laborda, Angel Nombres originales de los archivos entregados -> VIDADEF.PAS, juego de la vida.txt