Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include "winbgi2.h"
- #include <time.h>
- #include <stdlib.h>
- #include <math.h>
- void plansza(int r, int Lx, int Ly);
- void fill_rectangles(int *tab[], int tabk, int tabw, int r);
- void init(int *tab[], int tabk, int tabw);
- void kolumna_test(int *tab[], int tabw);
- void DeadOrAlive(int *tab[], int tabk, int tabw);
- void DeadAll(int *tab[], int tabk, int tabw);
- void main()
- {
- srand(time(NULL));
- int Lx, Ly, r;
- Lx = 300;
- Ly = 300;
- r = 10;
- int tabk = Lx/r;
- int tabw = Ly/r;
- printf("%d\t%d",tabk, tabw);
- int **tab;
- tab = (int **)malloc(tabk*sizeof(int*));
- for(int i = 0; i < tabk; i++)
- {
- tab[i]=(int*)malloc(tabw*sizeof(int));
- }
- //DeadAll(tab, tabk, tabw);
- graphics(Lx, Ly);
- init(tab, tabk, tabw);
- fill_rectangles(tab, tabk, tabw, r);
- while(animate(1000))
- {
- plansza(r, Lx, Ly);
- DeadOrAlive(tab, tabk, tabw);
- fill_rectangles(tab, tabk, tabw, r);
- }
- }
- void plansza(int r, int Lx, int Ly)
- {
- setcolor(8);
- int Ax = 0;
- int Ay = 0;
- while(Ax<Lx)
- {
- line(Ax,0,Ax,Ly);
- Ax +=r;
- }
- while(Ay<Ly)
- {
- line(0,Ay,Lx,Ay);
- Ay +=r;
- }
- }
- void fill_rectangles(int *tab[], int tabk, int tabw, int r)
- {
- setcolor(15);
- for(int i = 0; i<tabk; i++)
- {
- for(int j = 0; j<tabw; j++)
- {
- if(tab[i][j]==1)
- {
- int ax = i*r;
- int ay = j*r;
- int axx = ax+5;
- for(int k = 0; k<r; k++)
- {
- line(ax, ay, axx, ay);
- ay+=1;
- }
- }
- }
- }}
- void init(int *tab[], int tabk, int tabw)
- {
- for(int i = 0; i<tabk; i++)
- {
- for(int j = 0; j<tabw; j++)
- {
- double a = (double)rand()/RAND_MAX*100;
- if(a>=90)
- {
- tab[i][j]=1;
- }
- else
- {
- tab[i][j]=0;
- }
- }}
- }
- void kolumna_test(int *tab[], int tabw)
- {for (int i = 0; i<tabw; i++)
- {tab[i][10]=1;}
- }
- void DeadAll(int *tab[], int tabk, int tabw)
- {
- for(int i = 0; i<tabk; i++)
- {
- for(int j = 0; j<tabw; i++)
- {
- tab[i][j]=0;
- }
- }
- }
- void DeadOrAlive(int *tab[], int tabk, int tabw)
- {
- int sum = 0;
- for(int i = 0; i<tabk; i++)
- {
- for(int j = 0; j<tabw; i++)
- {
- if(i==0 && j==0)
- {
- int sum=tab[0][1]+tab[1][1]+tab[1][0];
- }
- if(i==tabk && j==0)
- {
- int sum=tab[i-1][j]+tab[i-1][j]+tab[i][1];
- }
- if(i==tabk && j==tabw)
- {
- int sum=tab[i-1][j-1]+tab[i-1][j]+tab[i][j-1];
- }
- if(i==0 && j==tabw)
- {
- int sum=tab[i][j-1]+tab[1][j]+tab[i][j-1];
- }
- if(i==0 && j!=0 && j != tabw)
- {
- int sum =tab[0][j+1]+tab[0][j-1]+tab[1][j+1]+tab[1][j-1]+tab[1][j];
- }
- if(i==tabk && j!=0 && j != tabw)
- {
- int sum =tab[i][j+1]+tab[i][j-1]+tab[i-1][j-1]+tab[i-1][j+1]+tab[i-1][j];
- }
- if(i!=0 && i!=tabk && j==0)
- {
- int sum =tab[i+1][j]+tab[i-1][j]+tab[i+1][1]+tab[i-1][1]+tab[i][1];
- }
- if(i!=0 && i!=tabk && j==tabk)
- {
- int sum =tab[i+1][j]+tab[i-1][j]+tab[i+1][j-1]+tab[i-1][j-1]+tab[i][j-1];
- }
- if(j!=0&&i!=0)
- {
- int sum=tab[i-1][j]+tab[i-1][j+1]+tab[i-1][j-1]+tab[i][j+1]+tab[i][j-1]+tab[i+1][j]+tab[i+1][j+1]+tab[i+1][j-1];
- }
- switch (sum)
- {
- case 2:
- break;
- case 3:
- tab[i][j] = 1;
- break;
- default:
- tab[i][j]=0;
- break;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement