1
« en: Martes 24 de Junio de 2008, 02:03 »
/*
Autor: Imydes
Descripció: Joc de la vida
Data: 21/02/2008
*/
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
/*****************************
* 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×5n");
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; g<=i; g++){
printf("GENERACION %in",g+1);
for (fila=1;fila<m; fila++)
for (col=1;col<n;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("%d",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;fila for (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:%in",fila,col);
else
original[fila][col] = 1;
else
if (fila != 0 || col != 0) printf("El terreno es de 1x5 x 1x5n");
}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 < m; fila++){
for (col=1;col < n; col++){
printf("%d",original[fila][col]);
printf("n");
}
}
}
este es mi code pero sale mil de errores plis urgente