Codigo fuente de mi programa: Juego de la Vida
Bueno, como seguramente ya sabreis mi objetivo es ser un programador y estoy estudiando eso, informática y en mi blog espero ir compartiendo los programas que escriba.
Generalmente use C para escribir los programas aunque no descarto algunos otros lenguajes como PHP o Python (o quizás perl).
Aquí va el codigo fuente de un juego de la vida (cualquier duda podeis dejar un comentario y lo responderé lo más rápido posible):
Licencia:

Esta obra está bajo una
licencia de Creative Commons.
WordPress no me permite poner todo el código del programa así que adjunto el fichero .c que podeis descargarlo dándole click aquí:
Autor: Imydes
Descripció: Joc de la vida
Data: 21/02/2008
*/#include
/*****************************
* Definicions *
****************************/
#define MAX_COOR 7/*****************************
* Tipus *
*****************************/typedef int Tterreny[MAX_COOR][MAX_COOR];
/*****************************
* Capcelera de les funcions *
******************************/void preparar_terreny(Tterreny &original, Tterreny &temporal);
void inserir_habitants(Tterreny &original);
void mostrar_terreny(Tterreny &original);
int obtenir_generacions(void);
void resoldre_terreny(int generacions, Tterreny &original, Tterreny &temporal);
void copiar_terreny(Tterreny &original,Tterreny &temporal);int main() {
int generacions;
Tterreny original, temporal;printf(”Introduce los habitantes mediante coordenadas, la tabla es de 5×5\n”);
preparar_terreny(original, temporal);
inserir_habitants(original);
mostrar_terreny(original);
generacions = obtenir_generacions();
resoldre_terreny(generacions, original, temporal);
return 0;
}/* Copiar Terreny */
void copiar_terreny(Tterreny &original,Tterreny &temporal) {
int fila, col;
for (fila = 1; fila < MAX_COOR-1;fila++)
for (col = 1; col < MAX_COOR-1; col++)
original[fila][col] = temporal[fila][col];
}/* Gestió d'habitants del terreny */
void resoldre_terreny(int generacions, Tterreny &original, Tterreny &temporal) {
int g, fila, col;
int contador;
for(g=0;gprintf("GENERACION %i\n",g+1);
for (fila=1;filafor (col=1;col contador = 0;
contador = original[fila-1][col-1]+original[fila-1][col]+original[fila-1][col+1];
contador = contador+original[fila][col-1]+original[fila][col+1];
contador = contador+original[fila+1][col-1]+original[fila+1][col]+original[fila+1][col+1];/* Decidim si creem o eliminem un habitant */
if (original[fila][col] == 1) {
if (contador == 2 || contador == 2 ) {
temporal[fila][col] = 1;
}
else {
temporal[fila][col] = 0;
}
}
else {
if (contador == 3) temporal[fila][col] = 1;
else temporal[fila][col] = 0;
}
printf("%i",temporal[fila][col]);
}
printf("\n");
}
copiar_terreny(original,temporal);
}
}/* Preparació del terreny */
void preparar_terreny(Tterreny &original, Tterreny &temporal) {
int fila, col;
for (fila=0;filafor (col=0;col original[fila][col] = 0;
temporal[fila][col] = 0;
}
}
/* Sistema d'insersió d'habitants */
void inserir_habitants(Tterreny &original) {
int fila, col;
do {
scanf("%i",&fila);
scanf("%i",&col);if (fila > 0 && fila < MAX_COOR-1 && col > 0 && col < MAX_COOR-1)
if (original[fila][col] == 1)
printf("Ya tienes un habitante en la casilla %i:%i\n",fila,col);
else
original[fila][col] = 1;
else
if (fila != 0 || col != 0) printf("El terreno es de 1x5 x 1x5\n");
}while(fila != 0 || col != 0);
}/* Obtenim el nombre de generacions */
int obtenir_generacions(void) {int generacions;
printf("Dime el numero de generacions que quieres que haga (valor positivo)\n");do {
scanf("%i",&generacions);
printf("\n");
}while(generacions < 1);
return generacions;
}/* Mostrem el terreny amb els habitants */
void mostrar_terreny(Tterreny &original) {int fila, col;
for (fila=1;fila
for (col=1;col printf("%i",original[fila][col]);
printf("\n");
}
}
En teoria si tienes las librerias de ANSI C instaladas y un compilador de C (como gcc en *NUX y Visual C++ en Windows) debería funcionar perfectamente.
Un saludo y espero que os haya gustado!!


Códigos « FalconDeOro blog said,
March 2, 2008 @ 10:21 pm
[...] Imydes acaba de publicar el código fuente de un juego de la vida en C. Aquí podeis ver un listado de todos sus [...]
Juego de la vida (Juego en C) « GenLinux | Cultura Linux, Comunidad Libre, Software Libre y Codigo abierto said,
March 7, 2008 @ 2:51 am
[...] Web Oficial de Imydes [...]
parrandes said,
April 10, 2008 @ 8:16 pm
noi aket codi esta mal eh, ia coses k no s poden fer!! ex.
for (fila=0;fila for (col=0;col original[fila][col] = 0;
¿??¿¿???¿??
admin said,
April 12, 2008 @ 2:31 pm
Parrandes me he dado cuenta que cuando pongo códigos en el WordPress se me ven cortados.
Adjunto el archivo .c que ahí sale todo, Gracias por el aviso.
Imydes » Arreglo del Juego de la Vida said,
April 13, 2008 @ 8:02 pm
[...] de arreglar el juego de la vida ya que con WordPress no me permite poner según qué códigos (por ejemplo los parentesis del for [...]