Gra w Życie
// | Opis gry: | // | Dana jest dwuwymiarowa tablica 10x10 symbolizujaca komorki. Tablice nalezy | // | losowo wypelnic cyframi 1 lub 0. Mozna przyjac, ze 0 oznacza martwa | // | komorkę natomiast 1 zywa komorke. Typowa komorka ma 8 sasiadów | // | (z lewej, z prawej, z gory, z dolu oraz czterech po skosach). | // | Dana komorka zmienia swoj stan (zywa lub martwa) wg nastepujacych regul: | // | *komorka ozywa gdy ma dokladnie trzech zywych sasiadow | // | *komorka pozostaje zywa gdy ma 2 lub 3 sasiadow | // | *komorka umiera gdy ma mniej niz 2 sasiadow (umiera z samotnosci) | // | *komorka umiera gdy ma wiecej niz 4 sasiadów (umiera z przeludnienia) | // ---------------------------------------------------------------------------------- #include<iostream> #include<time.h> #include<stdio.h> using namespace std; int wyswietl(int tab[10][10]){ int licznik=0; for(int i=0;i<10;i++){ cout<<endl; for(int j=0;j<10;j++){ if(tab[i][j]==1)licznik++; cout<<tab[i][j]<<" "; } } cout<<endl<<endl<<"Pozostalo przy zyciu "<<licznik<<" komorek"<<endl; return 0; } int zmien(int tab[10][10]){ for(int x=0;x<10;x++){ for(int y=0;y<10;y++){ int ilosc=0; if(tab[y][y]==0){ if(tab[x][y-1]==1)ilosc++; if(tab[x-1][y]==1)ilosc++; if(tab[x-1][y-1]==1)ilosc++; if(tab[x+1][y-1]==1)ilosc++; if(tab[x+1][y]==1)ilosc++; if(tab[x-1][y+1]==1)ilosc++; if(tab[x][y+1]==1)ilosc++; if(tab[x+1][y+1]==1)ilosc++; if(ilosc==3){ tab[x][y]=1; } } if(tab[x][y]==1){ if(tab[x][y-1]==1)ilosc++; if(tab[x-1][y]==1)ilosc++; if(tab[x-1][y-1]==1)ilosc++; if(tab[x+1][y-1]==1)ilosc++; if(tab[x+1][y]==1)ilosc++; if(tab[x-1][y+1]==1)ilosc++; if(tab[x][y+1]==1)ilosc++; if(tab[x+1][y+1]==1)ilosc++; if(ilosc==2 || ilosc==3){ tab[x][y]=1; } if(ilosc<2){ tab[x][y]=0; } if(ilosc>=4){ tab[x][y]=0; } } } } cout<<endl; wyswietl(tab); return 0; } int generuj(){ int tab[10][10],licznik=0; srand(time(0)); for(int i=0;i<10;i++){ cout<<endl; for(int j=0;j<10;j++){ tab[i][j]=rand()%2; if(tab[i][j]==1)licznik++; cout<<tab[i][j]<<" "; } } cout<<endl<<endl<<"Zywych komorek: "<<licznik; zmien(tab); return 0; } int main() { generuj(); cout<<endl; system("pause"); return 0; }