Sie sind auf Seite 1von 3

Programacin I

Proyecto: El juego de la vida


Descripcin Se pide implementar el juego de la vida, propuesto por el matemtico americano John Conway. El juego utiliza un tablero que, para esta implementacin, tendr una dimensin de 15 filas por 20 columnas. Cada celda de este tablero podr estar ocupada por una clula o podr estar vaca. En el juego se parte de una configuracin inicial de clulas (suministrada por el usuario o generada al azar) y se deja evolucionar esta poblacin de acuerdo a las siguientes reglas definidas por Conway:

Una clula presente en la generacin t desaparecer en la generacin t+1 si: - Se encontraba rodeada por menos de 2 clulas (muerte por soledad) - Se encontraba rodeada por mas de 3 clulas (muerte por superpoblacin)

Una clula nacer (aparecer) en la generacin t+1 en una celda vaca si esa celda se encontraba rodeada por exactamente tres clulas vivas en la generacin anterior. En cualquier otro caso, una celda no variar su estado al pasar de la generacin t a la t+1.

Ejemplos:

X- - x- - La clula central desaparecer en la siguiente generacin por soledad (1 vecino) Algunas

X XX - X- - X
la clula central morir en la siguiente generacin por superpoblacin (4 vecinos) configuraciones

X- X - -- -X
Una nueva clula nacer en la siguiente generacin en la casilla central (3 vecinos) iniciales

X- - x- - X
La celda central seguir conteniendo una clula viva en la siguiente generacin (2 vecinos) interesantes:

x xx- x - xx

- - x xx - - -

- x- xx x- x

- xx x x- xpatrn simple de evolucin muy compleja (R-pentomino)

patrn patrn oscilante patrn esttico("barco") ("faro") "deslizador" Notas Importantes

a) A efectos de aplicacin de las reglas, una celda del tablero se considerar rodeada por ocho celdas vecinas (celdas a izquierda-derecha, arriba-abajo y las cuatro celdas contiguas en diagonal). b) La supervivencia, nacimiento o muerte de las clulas deber determinarse considerando sus vecinos en esa generacin. Es decir, no debern realizarse cambios sobre el tablero hasta que no se haya determinado el destino de todas las celdas en la siguiente generacin. Implementacin El programa incorporar las caractersticas que se describen a continuacin. El programa aceptar o generar una configuracin inicial de clulas sobre el tablero definido. El programa permitir tanto calcular la evolucin de esta poblacin de generacin en generacin como calcular de una vez el resultado tras N generaciones (parmetro suministrado por el usuario). Tras mostrar por pantalla la poblacin obtenida (en la generacin siguiente en el primer caso o tras N generaciones en el segundo), el programa permitir: a) Terminar el juego. b) Guardar la configuracin obtenida a fichero. c) Editar de forma manual el tablero (eliminando clulas y/o creando otras nuevas). d) Continuar calculando nuevas generaciones. El programa permitir definir la configuracin inicial por cualquiera de estos procedimientos: a) Leyendo datos suministrados por teclado. b) Generando aleatoriamente la configuracin inicial. En este modo, el usuario fijar por teclado el nmero de celdas ocupadas por clulas, y el programa distribuir estas clulas de forma aleatoria sobre el tablero. c) Leyendo datos de un fichero.

El programa permitir configurar el comportamiento del juego con clulas que se encuentren en los bordes del tablero. En particular, ser posible seleccionar cualquiera de estas posibilidades: a) Tablero plano. Una celda en el borde del tablero evolucionar como si todos sus vecinos no accesibles fueran celdas vacas. b) Tablero cilndrico. En este modo, se tomarn la primera y ltima columnas del tablero como contiguas. c) Tablero toroidal. En este modo, se considerarn como contiguas tanto la primera y ltima columnas del tablero como la primera y ltima fila. Evaluacin No se evaluar el aspecto grfico ms all de la presentacin bsica del juego. Se evaluar positivamente : a) Modularidad y estructuracin del cdigo. b) Cantidad y calidad de los comentarios. c) Claridad en el cdigo. d) Calidad de la documentacin asociada, memoria y anlisis. e) Uso de estructuras de datos adecuadas al problema. f) Nombre de las variables y constantes acordes a la funcin que desempean en el programa. Se penalizar fuertemente : a) Uso de programacin no estructurada, es decir uso de goto, c) Funciones o procedimientos no documentados. Cada funcin o procedimiento debe tener unos comentarios de cabecera con informacin de : 1) qu es lo que realiza la funcin. 2) qu parmetros de entrada recibe, y cul es la funcin de cada uno de ellos. 3) qu parmetros de salida recibe, y cul es la funcin de cada uno de ellos. 4) qu valor devuelve. d) Paso de parmetros innecesarios a funciones y procedimientos. e) Programas que funcionen incorrectamente. Se deber entregar, en un cd libre de virus : a) Programas fuentes, debidamente documentados.

Das könnte Ihnen auch gefallen