Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
E[0][5]=5;
E[0][6]=6;
E[0][7]=7;
E[0][8]=8;
E[0][9]=9;
E[0][10]=0;
E[0][11]=1;
E[0][12]=2;
E[0][13]=3;
E[0][14]=4;
E[0][15]=5;
E[0][16]=6;
E[0][17]=7;
E[0][18]=8;
E[0][19]=9;
E[0][20]=20;
E[1][0]=1;
E[2][0]=2;
E[3][0]=3;
E[4][0]=4;
E[5][0]=5;
E[6][0]=6;
E[7][0]=7;
E[8][0]=8;
E[9][0]=9;
E[10][0]=0;
E[11][0]=1;
E[12][0]=2;
E[13][0]=3;
E[14][0]=4;
E[15][0]=5;
E[16][0]=6;
E[17][0]=7;
E[18][0]=8;
E[19][0]=9;
E[20][0]=20;
for(i=1;i<21;i++){/*Faz com que todos os termos da matriz M ,com exceo da primeira
linha e coluna,sejam preenchidos por um espao vazio*/
for(j=1;j<21;j++){
M[i][j]=' ';
}
}
for(i=1;i<21;i++){/*Faz com que todos os termos da matriz E ,com exceo da primeira
linha e coluna,sejam preenchidos por um espao vazio*/
for(j=1;j<21;j++){
E[i][j]=' ';
}
}
i=-1;/*inicializa-se i e j com valores negativos para entrarem no while sem sere
m impressos*/
j=-1;
printf(">>>>>>>>>>>>>JOGO DA VIDA<<<<<<<<<<<<<<<\n");
printf("Regras:\n");
printf("1-Se a celula esta viva e tem menos de dois vizinhos,ela morre de solida
o. Se\nela tem mais de tres vizinhos,ela morre por problemas devidos a super-pop
ulacao.\n");
printf("2-Uma celula morta rodeado por tres celulas vivas resultara em uma celul
a viva\nna proxima geracao.\n");
printf("\n");
printf("3-Uma celula viva, adjacente a duas ou tres celulas vivas, permanece viv
a.\n");
printf("\n");
printf("4-Todas as celulas vao de gerao a geracao ao mesmo tempo.\n");
printf("\n");
printf("Para passar para a proxima gerao basta apertar a tecla ENTER.\n");
while (i!=0 && j!=0){/*While utilizador para parar de pedir o Usurio as coordenad
as at ele inserir pelo menos uma coordenada com 0.*/
M[i][j]='*';
do{
i=-1;
j=-1;
printf("\n");
printf("Digite as coordenadas de linha e coluna (no formato L,C *lembrese da vrgula)\nque deseja que tenham vida(entre com pelo menos um 0 nas coordenad
as para parar)\n");
scanf("%d,%d",&i,&j);/*Leitura das coordenadas os quais o usurio entra*/
if (((i<0)||(i>20))||((j<0)||(j>20))){
printf("Entre com valores de 0 ate 20.\n");/*Correo de dados caso o us
urio entre com valores acima de 20 ou abaixo de 0.*/
}
printf("--------------------------------------\n");
}while(((i<0)||(i>20))||((j<0)||(j>20)));/*do-while para repetir a entrada d
e dados do usurio caso ele entre com dados invlidos.*/
getchar();/*getchar para mostrar a matriz original sem pul-la*/
}
printf ("---------------------------------------------\n");
for (i=0;i<21;i++){/*for para vasculhar cada termo da matriz M e imprim-lo*/
for(j=0;j<21;j++){
if ((i==0)||(j==0)){/*If para imprimir a primeira linha e coluna com %d,
pois so nmeros, e depois imprimir o resto com %c pois so char.*/
printf(" %d",M[i][j]);
}else printf(" %c",M[i][j]);
}
printf("\n");
}
printf("----------------------------------------------------\n");
printf("Essa e a sua geracao original,agora tecle enter para ver cada geracao.\n
");
getchar();
for(geracao=0;geracao<30;geracao++){/*for para fazer o jogo durante as 30 geraes.*
/
printf("Geracao %d:\n",geracao+1);
for (i=1;i<21;i++){
for (j=1;j<21;j++){/*for para vasculhar toda a matriz M e procurar a qua
ntidade de vizinhos de cada termo dela com exceo da primeira linha e coluna.*/
nvizinhos=0;
E[i][j]=M[i][j];/*Para fazer com que a matriz espelho fique igual ma
triz M, para ento poder alterar os dados.*/
if (M[i+1][j+1]== '*') nvizinhos+=1;/*condies para encontrar os vizinh
os de cada termo e armazenar a quantidade na varivel nvizinhos*/
if (M[i+1][j]== '*') nvizinhos+=1;
if (M[i][j+1]== '*') nvizinhos+=1;
if (M[i-1][j-1]== '*') nvizinhos+=1;
if (M[i-1][j]== '*') nvizinhos+=1;
if (M[i][j-1]== '*') nvizinhos+=1;
if (M[i-1][j+1]== '*') nvizinhos+=1;
if (M[i+1][j-1]== '*') nvizinhos+=1;