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;
}
