consulta
Publicado por rafael (1 intervención) el 10/12/2007 17:24:02
buenas necesito ayuda por favor pa realizar este proyecto...que a continuacion les envio..tengo 9 dias para entregarlo...gracias:
Proyecto No. 1: El juego de la vida
El juego de la vida es el mejor ejemplo de un autómata celular, diseñado por el matemático británico John Horton Conway en 1970.
Desde un punto de vista teórico, es interesante porque es equivalente a una máquina universal de Turing, es decir, todo lo que se puede computar algorítmicamente se puede computar en el juego de la vida.
Desde su publicación, ha atraído mucho interés debido a la gran variabilidad de la evolución de los patrones. Se considera que la vida es un buen ejemplo de emergencia y autoorganización. Es interesante para los científicos, matemáticos, economistas y otros observar cómo patrones complejos pueden provenir de la implementación de reglas muy sencillas.
El juego de la vida es en realidad un juego de cero jugadores, lo que quiere decir que su evolución está determinada por el estado inicial y no necesita ninguna entrada de datos posterior. El "tablero de juego" es una malla formada por cuadrados ("células") que se extiende por el infinito en todas las direcciones. Cada célula tiene 8 células vecinas, que son las que están próximas a ella, incluso en las diagonales. Las células tienen dos estados: están "vivas" o "muertas". El estado de todas las células se tiene en cuenta para calcular el estado de las
Se pide implementar el juego de la vida.
El juego utiliza un tablero que, para esta implementación, tendrá una dimensión de 15 filas por 20 columnas. Cada celda de este tablero podrá estar ocupada por una célula o podrá estar vacía. En el juego se parte de una configuración inicial de células (suministrada por el usuario o generada al azar) y se deja evolucionar esta población de acuerdo a las siguientes reglas definidas por Conway:
• Una célula presente en la generación t desaparecerá en la generación t+1 si:
- Se encontraba rodeada por menos de 2 células (muerte por soledad)
- Se encontraba rodeada por mas de 3 células (muerte por superpoblación)
• Una célula nacerá (aparecerá) en la generación t+1 en una celda vacía si esa celda se encontraba rodeada por exactamente tres células vivas en la generación anterior.
• En cualquier otro caso, una celda no variará su estado al pasar de la generación t a la t+1.
Ejemplos:
X - -
- x -
- - -
X X X
- X -
- - X
X - X
- - -
- - X
X - -
- x -
- - X
La célula central desaparecerá en la siguiente generación por soledad (1 vecino) la célula central morirá en la siguiente generación por superpoblación (4 vecinos) Una nueva célula nacerá en la siguiente generación en la casilla central (3 vecinos) La celda central seguirá conteniendo una célula viva en la siguiente generación (2 vecinos)
Algunas configuraciones iniciales interesantes:
x x -
x - x
- x x
- - -
x x x
- - -
- x -
- x x
x - x
- x x
x x -
- x -
patrón estático patrón oscilante patrón "deslizador" patrón simple de evolución muy compleja
Notas Importantes
a) A efectos de aplicación 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 células deberá determinarse considerando sus vecinos en esa generación. Es decir, no deberán realizarse cambios sobre el tablero hasta que no se haya determinado el destino de todas las celdas en la siguiente generación.
Implementación
El programa incorporará las características que se describen a continuación.
El programa aceptará o generará una configuración inicial de células sobre el tablero definido. El programa permitirá tanto calcular la evolución de esta población de generación en generación como calcular de una vez el resultado tras N generaciones (parámetro suministrado por el usuario). Tras mostrar por pantalla la población obtenida (en la generación siguiente en el primer caso o tras N generaciones en el segundo), el programa permitirá:
a) Terminar el juego
b) Editar de forma manual el tablero (eliminando células y/o creando otras nuevas).
c) Continuar calculando nuevas generaciones.
El programa permitirá definir la configuración inicial por cualquiera de estos procedimientos:
a) Leyendo datos suministrados por teclado.
b) Generando aleatoriamente la configuración inicial. En este modo, el usuario fijará por teclado el número de celdas ocupadas por células, y el programa distribuirá estas células de forma aleatoria sobre el tablero.
El programa permitirá configurar el comportamiento del juego con células 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 vacías.
b) Tablero cilíndrico. En este modo, se tomarán la primera y última columnas del tablero como contiguas.
c) Tablero toroidal. En este modo, se considerarán como contiguas tanto la primera y última columnas del tablero como la primera y última fila.
Evaluación
1.- No se evaluará el aspecto gráfico más allá de la presentación básica del juego.
2.- Se evaluará positivamente:
a) Modularidad y estructuración del código.
b) Cantidad y calidad de los comentarios.
c) Claridad en el código.
d) Calidad de la documentación asociada, memoria y análisis.
e) Uso de estructuras de datos adecuadas al problema.
f) Nombre de las variables y constantes acordes a la función que desempeñan en el programa.
3.- Se penalizará fuertemente:
a) Uso de programación no estructurada, es decir uso de goto, exit y halt.
b) Uso de variables globales dentro de funciones o procedimientos.
c) Funciones o procedimientos no documentados. Cada función o procedimiento debe tener unos comentarios de cabecera con información de:
1) Qué es lo que realiza la función.
2) Qué parámetros de entrada recibe, y cuál es la función de cada uno de ellos.
3) Qué parámetros de salida recibe, y cuál es la función de cada uno de ellos.Q
4) Qué valor devuelve.
5) Requisitos, o precondiciones en los valores de los parámetros en la llamada a la función, y qué condiciones de error se manejan dentro de cada función.
d) Paso de parámetros innecesarios a funciones y procedimientos.
e) Programas que funcionen incorrectamente.
Se deberá entregar, en un CD libre de virus:
a) Programas fuentes, debidamente documentados.
b) Memoria, en formato txt, con información sobre:
1) Las estructuras de datos utilizadas.
2) Análisis de cómo se ha implementado el juego, módulos principales, comunicación entre
ellos, etc.
3) Qué pruebas se han efectuado, y cuáles han sido los resultados.
4) Qué ficheros son necesarios para la compilación y ejecución del juego.
5) Programas ejecutables
Proyecto No. 1: El juego de la vida
El juego de la vida es el mejor ejemplo de un autómata celular, diseñado por el matemático británico John Horton Conway en 1970.
Desde un punto de vista teórico, es interesante porque es equivalente a una máquina universal de Turing, es decir, todo lo que se puede computar algorítmicamente se puede computar en el juego de la vida.
Desde su publicación, ha atraído mucho interés debido a la gran variabilidad de la evolución de los patrones. Se considera que la vida es un buen ejemplo de emergencia y autoorganización. Es interesante para los científicos, matemáticos, economistas y otros observar cómo patrones complejos pueden provenir de la implementación de reglas muy sencillas.
El juego de la vida es en realidad un juego de cero jugadores, lo que quiere decir que su evolución está determinada por el estado inicial y no necesita ninguna entrada de datos posterior. El "tablero de juego" es una malla formada por cuadrados ("células") que se extiende por el infinito en todas las direcciones. Cada célula tiene 8 células vecinas, que son las que están próximas a ella, incluso en las diagonales. Las células tienen dos estados: están "vivas" o "muertas". El estado de todas las células se tiene en cuenta para calcular el estado de las
Se pide implementar el juego de la vida.
El juego utiliza un tablero que, para esta implementación, tendrá una dimensión de 15 filas por 20 columnas. Cada celda de este tablero podrá estar ocupada por una célula o podrá estar vacía. En el juego se parte de una configuración inicial de células (suministrada por el usuario o generada al azar) y se deja evolucionar esta población de acuerdo a las siguientes reglas definidas por Conway:
• Una célula presente en la generación t desaparecerá en la generación t+1 si:
- Se encontraba rodeada por menos de 2 células (muerte por soledad)
- Se encontraba rodeada por mas de 3 células (muerte por superpoblación)
• Una célula nacerá (aparecerá) en la generación t+1 en una celda vacía si esa celda se encontraba rodeada por exactamente tres células vivas en la generación anterior.
• En cualquier otro caso, una celda no variará su estado al pasar de la generación t a la t+1.
Ejemplos:
X - -
- x -
- - -
X X X
- X -
- - X
X - X
- - -
- - X
X - -
- x -
- - X
La célula central desaparecerá en la siguiente generación por soledad (1 vecino) la célula central morirá en la siguiente generación por superpoblación (4 vecinos) Una nueva célula nacerá en la siguiente generación en la casilla central (3 vecinos) La celda central seguirá conteniendo una célula viva en la siguiente generación (2 vecinos)
Algunas configuraciones iniciales interesantes:
x x -
x - x
- x x
- - -
x x x
- - -
- x -
- x x
x - x
- x x
x x -
- x -
patrón estático patrón oscilante patrón "deslizador" patrón simple de evolución muy compleja
Notas Importantes
a) A efectos de aplicación 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 células deberá determinarse considerando sus vecinos en esa generación. Es decir, no deberán realizarse cambios sobre el tablero hasta que no se haya determinado el destino de todas las celdas en la siguiente generación.
Implementación
El programa incorporará las características que se describen a continuación.
El programa aceptará o generará una configuración inicial de células sobre el tablero definido. El programa permitirá tanto calcular la evolución de esta población de generación en generación como calcular de una vez el resultado tras N generaciones (parámetro suministrado por el usuario). Tras mostrar por pantalla la población obtenida (en la generación siguiente en el primer caso o tras N generaciones en el segundo), el programa permitirá:
a) Terminar el juego
b) Editar de forma manual el tablero (eliminando células y/o creando otras nuevas).
c) Continuar calculando nuevas generaciones.
El programa permitirá definir la configuración inicial por cualquiera de estos procedimientos:
a) Leyendo datos suministrados por teclado.
b) Generando aleatoriamente la configuración inicial. En este modo, el usuario fijará por teclado el número de celdas ocupadas por células, y el programa distribuirá estas células de forma aleatoria sobre el tablero.
El programa permitirá configurar el comportamiento del juego con células 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 vacías.
b) Tablero cilíndrico. En este modo, se tomarán la primera y última columnas del tablero como contiguas.
c) Tablero toroidal. En este modo, se considerarán como contiguas tanto la primera y última columnas del tablero como la primera y última fila.
Evaluación
1.- No se evaluará el aspecto gráfico más allá de la presentación básica del juego.
2.- Se evaluará positivamente:
a) Modularidad y estructuración del código.
b) Cantidad y calidad de los comentarios.
c) Claridad en el código.
d) Calidad de la documentación asociada, memoria y análisis.
e) Uso de estructuras de datos adecuadas al problema.
f) Nombre de las variables y constantes acordes a la función que desempeñan en el programa.
3.- Se penalizará fuertemente:
a) Uso de programación no estructurada, es decir uso de goto, exit y halt.
b) Uso de variables globales dentro de funciones o procedimientos.
c) Funciones o procedimientos no documentados. Cada función o procedimiento debe tener unos comentarios de cabecera con información de:
1) Qué es lo que realiza la función.
2) Qué parámetros de entrada recibe, y cuál es la función de cada uno de ellos.
3) Qué parámetros de salida recibe, y cuál es la función de cada uno de ellos.Q
4) Qué valor devuelve.
5) Requisitos, o precondiciones en los valores de los parámetros en la llamada a la función, y qué condiciones de error se manejan dentro de cada función.
d) Paso de parámetros innecesarios a funciones y procedimientos.
e) Programas que funcionen incorrectamente.
Se deberá entregar, en un CD libre de virus:
a) Programas fuentes, debidamente documentados.
b) Memoria, en formato txt, con información sobre:
1) Las estructuras de datos utilizadas.
2) Análisis de cómo se ha implementado el juego, módulos principales, comunicación entre
ellos, etc.
3) Qué pruebas se han efectuado, y cuáles han sido los resultados.
4) Qué ficheros son necesarios para la compilación y ejecución del juego.
5) Programas ejecutables
Valora esta pregunta


0