Foros del Web » Programación para mayores de 30 ;) » C/C++ »

URGENTE! necesito hacer un programa y no me da!

Estas en el tema de URGENTE! necesito hacer un programa y no me da! en el foro de C/C++ en Foros del Web. Hola como estan? ando desesperado buscnado ayuda, ya que debo entregar a media noche un programa, y no he podido. A continuacion pongo lo que ...
  #1 (permalink)  
Antiguo 08/05/2008, 17:51
 
Fecha de Ingreso: mayo-2008
Mensajes: 1
Antigüedad: 16 años
Puntos: 0
Exclamación URGENTE! necesito hacer un programa y no me da!

Hola como estan? ando desesperado buscnado ayuda, ya que debo entregar a media noche un programa, y no he podido. A continuacion pongo lo que necesito hacer:
Funciones con pase de parámetros y arreglos
Simulación del Juego de la Vida

Elabore un programa en lenguaje “C” con funciones y variables locales (solo están permitidos utilizar variables globales para contadores y acumuladores). Su programa deberá implementar el juego de la vida, que es el mejor ejemplo de un autómata celular, diseñado por el matemático británico John Horton Conway en 1970.

Este juego hizo su primera aparición pública en el número de octubre de 1970 de la revista “Scientific American”, en la columna de juegos matemáticos de Martin Gardner.

La manera más fácil de entender el juego es imaginarse un arreglo bidimensional o matriz. Llamaremos al contenido de cada celda del tablero una “célula” y al tablero completo el “espacio celular”. Cada célula es idéntica y puede percibir a sus 8 células vecinas (derecha, izquierda, arriba, abajo y las cuatro celdas en las diagonales). Una célula puede estar en uno de dos estados: viva o muerta. Con el paso del tiempo, la población de células cambia según ciertas reglas, dando paso a nuevas generaciones. Las reglas son las siguientes:

1. Sobrevivencia: Si una célula está rodeada por dos o tres células vivas en la presente generación, ésta permanecerá viva en la siguiente generación.

2. Nacimiento: Si una celda vacía (célula muerta) está rodeada en la actual generación por exactamente tres vecinos vivos, esta célula "nacerá" en la siguiente generación.

3. Muerte por soledad: Si una célula no tiene vecinos vivos, o tiene sólo una célula vecina viva, ésta morirá de soledad en la siguiente generación.

4. Muerte por sobre-población: Si una célula tiene cuatro o más vecinos vivos, ésta morirá en la siguiente generación por sobre-población.

El juego consiste en que el usuario indica una configuración inicial, y a partir de ella se van formando otras mediante las reglas establecidas anteriormente. El objetivo del juego consiste en observar dicha evolución.

Su programa debe utilizar una función que le muestre al usuario un menú con las diversas opciones que considere puede tener este juego, en donde se debe incluir la posibilidad de terminarlo.

y a continuacion pongo lo que tengo hasta ahora

}


void condicionales(char m[8][8], char copia[8][8])
{
int i,j,cont=0,contm=0, x;

printf("%s","marca uno para comenzar las generacion siguiente\n");
scanf("%d",&x);

while(x==1)
{

for( i=0;i<8;i++)
{
for( j=0;j<8;j++)
{

copia[i][j]=m[i][j];

if (copia[i][j]=='v')
{
cont=0;


if ((m[i+1][j]=='v')&&(i<8))
{cont++;}

if ((m[i+1][j-1]=='v')&&(i<8)&&(j>1))
{cont++;}

if ((m[i+1][j+1]=='v')&&(i<8)&&(j<8))
{cont++;}

if ((m[i-1][j]=='v')&&(i>0))
{cont++;}

if ((m[i-1][j-1]=='v')&&(i>0)&&(j>1))
{cont++;}

if ((m[i-1][j+1]=='v')&&(i>1)&&(j<8))
{cont++;}

if ((m[i][j+1]=='v')&&(j<8))
{cont++;}

if ((m[i][j-1]=='v')&&(j>1))
{cont++;}

if ((cont==3)||(cont==2))
{copia[i][j]='v';}

else
{copia[i][j]='m';}
}




if (copia[i][j]=='m')

{ contm=0;


if ((m[i+1][j]=='v')&&(i<8))
{contm++;}

if ((m[i+1][j-1]=='v')&&(i<8)&&(j>1))
{ contm++;}

if ((m[i+1][j+1]=='v')&&(i<8)&&(j<8))
{contm++;}

if ((m[i-1][j]=='v')&&(i>1))
{contm++;}

if ((m[i-1][j-1]=='v')&&(i>1)&&(j>1))
{contm++;}

if ((m[i-1][j+1]=='v')&&(i>1)&&(j<8))
{contm++;}

if ((m[i][j+1]=='v')&&(j<8))
{contm++;}

if ((m[i][j-1]=='v')&&(j>1))
{contm++;}


if ((contm==3)||(contm==2))
{copia[i][j]='v';}

else
{copia[i][j]='m';}

}


}



} for(int i=0;i<8;i++)
{
for(int j=0;j<8;j++) {
printf(" ");
printf("%c%s", copia[i][j]," ");
}
printf("%s","\n");
}
printf("%s","marca uno para comenzar las generacion siguiente\n");
scanf("%d",&x);
}

}

main()
{ char copia[8][8];
char matriz[8][8]={'m','m','m','m','m','m','m','m','m','m','m','m', 'm','m','m','m','m','m','m','m','m','m','m','m','m ','m','m','m','m','m','m','m','m','m','m','m','m', 'm','m','m','m','m','m','m','m','m','m','m','m','m ','m','m','m','m','m','m','m','m','m','m','m','m', 'm','m'};
llenado(matriz);
mostrarMatriz(matriz);
condicionales(matriz,copia);
getchar();
getchar();
}
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:02.