Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include<stdio.h>
- #include<stdlib.h>
- #include<math.h>
- #include<windows.h>
- #include"winbgi2.h"
- #include<time.h>
- void wypelnij(int (&a)[100][100], int num) {
- int aso = (1000 / num)+1;
- for (int i = 0; i < num; i++) { setlinestyle(0,1,2); line(i * aso, 0, i * aso, 1000); line(0, i * aso, 1000, i * aso); }
- for (int i = 0; i < num; i++) {
- for (int j = 0; j < num; j++) {
- if(a[i+1][j+1]==1) { setfillstyle(SOLID_FILL, DARKGRAY);
- rectangle(i*aso,j*aso,i*aso+aso,j*aso+aso);
- floodfill(i * aso + 1, j * aso + 1, DARKGRAY);}
- }
- }
- }
- void tzwroszada(int (&a)[100][100], int (&b)[100][100],int num) {
- for (int i = 1; i <= num; i++) {
- for (int j = 1; j <= num; j++) {
- int sum = 0;
- if (a[i-1][j-1] == 1) { sum++; }
- if (a[i][j-1] == 1) { sum++; }
- if (a[i+1][j-1] == 1) { sum++; }
- if (a[i-1][j] == 1) { sum++; }
- if (a[i+1][j] == 1) { sum++; }
- if (a[i-1][j+1] == 1) { sum++; }
- if (a[i][j+1] == 1) { sum++; }
- if (a[i+1][j+1] == 1) { sum++; }
- if (a[i][j] == 1) {
- if (sum == 2) { b[i][j] = 1; }
- else { if (sum == 3) { b[i][j] = 1; } else { b[i][j] = 0; } }
- }
- if (a[i][j] == 0) {
- if (sum == 3) { b[i][j] = 1;}else { b[i][j] = 0; }
- }
- sum = 0;
- }
- }
- }
- void zerowanie(int (&a)[100][100], int (&b)[100][100],int num) {
- for (int i = 0; i <num; i++) {
- for (int j = 0; j < num; j++) {
- a[i][j] = b[i][j];
- b[i][j] = 0;
- }
- }
- }
- void losowanko(int (&a)[100][100],int num) {
- int k = int((double(rand()) / RAND_MAX) * (num*num));
- for (int i = 0; i < k; i++) {
- a[int((double(rand()) / RAND_MAX) * num)][int((double(rand()) / RAND_MAX) * num)] = 1;
- }
- }
- void zerowanietablicy(int (&a)[100][100],int num) {
- for (int i = 0; i <= num; i++) {
- for (int j = 0; j <= 99; j++) {
- a[i][j] = 0;
- }
- }
- }
- int main(void) {
- srand(time(NULL));
- printf("Gra w zycie zostanie zainicjowana na planszy o rozmiarze A x A, prosze podac A\n maksymalna wartosc A to 100\n");
- int num;
- scanf("%i", &num);
- int a[100][100];
- int b[100][100];
- int GraphDriver = DETECT, GraphMode;
- initgraph(&GraphDriver, &GraphMode, "", 1010, 1015);
- setpalette(15,DARKGRAY);
- setbkcolor(WHITE);
- cleardevice();
- zerowanietablicy(a,num);
- losowanko(a,num);
- for (int i = 0; i <= 100000; i++) {
- cleardevice();
- wypelnij(a, num);
- tzwroszada(a, b, num);
- zerowanie(a, b,num);
- Sleep(100);
- }
- for (int i = 0; i < num; i++) {
- free(a[i]);
- free(b[i]);
- }
- free(a);
- free(b);
- closegraph();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement