He aquí un programa muy famoso y muy simple: el juego de la vida. Para quien no lo conozca, comience a leer por aquí.
El juego de la vida es un gran ejemplo del comportamiento emergente -un tema muy interesante, por cierto-. Si es la primera vez que se ve y si no se han asimilado los conceptos probablemente no tendrá mucha gracia, pero una vez que se entiende ¡no se puede dejar de ver!
En el código de más abajo -escrito en C, obviamente (aunque sospecho que no es la mejor decisión, sin embargo)- se puede modificar fácilmente el caracter que representa a las células vivas al igual que el caracter que representa a las células muertas. Asimismo, es posible modificar las dimensiones del "tablero" sin mayor esfuerzo. Sin embargo, está limitado a los patrones que se codifiquen señalando manualmente ciertos puntos en una matriz (arreglo de arreglos), lo que no es un gran problema si se tiene tiempo para escribir nuevos patrones... Por cierto, descubrir patrones interesantes es una parte realmente divertida del juego.
En cualquier caso, más allá de la torpe implementación que yo haya hecho, invito a quienquiera que se interese por esto a que escriba su propia versión, que juegue a cambiar las reglas y a descubrir la vida.
En cualquier caso, más allá de la torpe implementación que yo haya hecho, invito a quienquiera que se interese por esto a que escriba su propia versión, que juegue a cambiar las reglas y a descubrir la vida.
El código aquí: el juego de la vida.