Hemos hecho el juego de la vida con procedimientos. Para crear el mundo del juego almacenamos valores de dos valores diferentes en un array bidimensional en el que una dimensión la consideraremos columnas y la otra filas. El array lo hemos llamado Tmatriz. Primero presentamos el juego con un titulo decorativo. Des pues viene el primer procedure. Lo hemos denominado parametros y no tiene variables de entrada y tiene dos de salida. En su interior pide al usuario que introduzcas el numero de nimeros por columna y por fila, los almacena en variables y el procedure las devuelve. El numero tiene que ser entre 3 y 20. Luego Hemos creado un procedimiento llamado imprimir que lo utilizaremos para que imprima en la pantalla los resultados del juego. Para ello, el procedimiento recoge dos valores que son los de numero de columna y fila (r y s) y una matriz llamada mat del tipo del array creado anteriormente. Aqui dentro la matriz le llega cargada de valores, y con dos bucles for la rastrea y lo ira imprimiendo. Cuando llegue al numero de columnas cambiara de linea con un writeln. Como el la matriz solo hay dos tipos de valores los hemos diferenciado con dos colores diferentes, rojo y verde. Después de esto creamos el procedimiento que generará los valores que llenarán la matriz de forma aleatoria.Al procedimiento lo hemos llamado Empezar y recogerá dos valores de fila y columna y devolverá la matriz llena en forma de estado inicial del juego. Para ello utilizamos el mismo metodo que antes.Con dos bucles for y limitandolos a los valores de columna y fila, rastreamos el array cargandole valores. El programa exige que el usuario deciada el porcenaje de vivas respecto a muertas. Entonces el programa pide al usuario que introduzca un numero de 0 a 100. Para crear numeros aleatorios utilizamos Random(100)+1 el programa crea aleatorios de 1 a 100 y si el numero creado es menor que el porcentaje introducido los almacenara en el array con un valor y si es mayor con otro. De esta forma se tiene el array cargado de valores que formarán el estado inicial del juego. Por último, en este procedimiento se llama al procedimiento imprimir para que lo muestre por pantalla. Despues de tener el array lleno, se procede al juego. Para ello hemos creado un procedimiento llamado condiciones que ejecutará las condiciones y cambios de un paso a otro del juego. Si lo pensamos cuando rastreemos el array y hagamos cambios para el siguiente valos los cambios ya se habran hecho y no funcionará como lo previsto, entoces nos apoyamos en una matriz auxiliar. Esta matriz auxiliar primero le damos los valores de la principal, luego se calculan las condiciones en la principal y los cambios los almacenamos en la auxiliar y al final se carga a la principal los valores de la auxiliar. De esta modo solucionamos el problema. Vamos rastreando el array y para cada valor se harán las condiciones. Hay dos casos, si la celula está muerta o viva. Si esta muerta y mas de 3 vecinas estan vivas revive y sino sigue muerta. Para lograr esto miramos si sus vecinas están vivas y de ser así vamos sumando uno por cada celula viva en una variable. Y al final si es mas de 3 el valor almacenado cambiamos el valor de la celda rastreada de muerto a vivo. El otro caso es si la celula está viva. El metodo es el mismo. Miraremos sus vecinas y si están vivas se lo sumanmos a una variable. Al final si el valor de esta vaiable esta entre 2 y 3 sigue viva(condiciones del juego) y si no muere por soledad o superhabit. En este procedimiento, el programa pedira que digas el numero de pasos del juego y si es automatico o lo quieres ver paso a paso. Los valores introducidos los almacenará en variables. con un for el contenido de este procedimiento lo repetirá tantas veces como pasos introduzcas y al final y has introducido a de automatico el programa en cada paso imprimirá y borrará el anterior de modo que tu solo verás el último paso. Y en el otro caso, en caso de introducir p de paso a paso el programa imprimirá y borrará lo anterior pero para ir al siguiente paso tienes que darle al intro de modo que ves el resultado de todos los pasos. Todos números y valores introducidos está protegidos con IOresult. Al final el juego lleva los siguientes pasos: - Titulo. - Cargar parametros del mundo - Empezar(porcentaje y creacion de estado inicial) - Condiciones(pasos del juego, manual-automatico y dara las condiciones y los cambios de un paso a otro durante X pasos) - Juego terminado. Para salir del programa pulsar ENTER. Raúl Alcate Arrieta Marino Gambarte Gracia. 1º Electricos G07 y P10 ---------------------------- (añadido tras someter) ---------------------------- 00:21:25 11/12/09 -> Segun los datos introducidos los ficheros son: G07P10D2 -> Los autores del trabajo son: Alcate Arrieta, Raúl Gambarte Gracia, Marino Nombres originales de los archivos entregados -> JUEGODEL.PAS, JuegoDeLaVida.txt