Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.98 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <time.h>
  3. #include <windows.h>
  4.  
  5. const int n = 15;
  6.  
  7. int a[n][n] = {{0,0,0,0,0},
  8.                {0,0,1,0,0},
  9.                {0,0,0,1,0},
  10.                {0,1,1,1,0},
  11.                {0,0,0,0,0}};
  12.  
  13.  
  14. //int a[n][n];
  15.  
  16. int p[n][n];
  17. int flag;
  18.  
  19. void firstgeneration() {
  20. /*
  21.     for (int i = 0; i < n; i++) {
  22.         for (int j = 0; j < n; j++) {
  23.             a[i][j] = rand() % 2;
  24.         }
  25.     }
  26. */
  27. }
  28.  
  29. void swap() {
  30.     for (int i = 0; i < n; i++) {
  31.         for (int j = 0; j < n; j++) {
  32.             a[i][j] = p[i][j];
  33.         }
  34.     }
  35. }
  36.  
  37. int count(int i, int j) {
  38.     int c = 0;
  39.     if (a[i][(j + 1) % n] == 1) c++;
  40.     if (a[(i + 1) % n][(j + 1) % n] == 1) c++;
  41.     if (a[(i + 1) % n][j] == 1) c++;
  42.     if (a[(i + 1) % n][(j - 1) % n] == 1) c++;
  43.     if (a[i][(j - 1) % n] == 1) c++;
  44.     if (a[(i - 1) % n][(j - 1) % n] == 1) c++;
  45.     if (a[(i - 1) % n][j] == 1) c++;
  46.     if (a[(i - 1) % n][(j + 1) % n] == 1) c++;
  47.     return c;
  48. }
  49.  
  50. void move() {
  51.     for (int i = 0; i < n; i++) {
  52.         for (int j = 0; j < n; j++) {
  53.             int c = count(i, j);
  54.             if (a[i][j]) {
  55.                 if (c < 2 || c > 3) {
  56.                     p[i][j] = 0;
  57.                     flag++;
  58.                 } else {
  59.                     p[i][j] = 1;
  60.                 }
  61.             } else {
  62.                 if (c == 3) {
  63.                     p[i][j] = 1;
  64.                     flag++;
  65.                 } else {
  66.                     p[i][j] = 0;
  67.                 }
  68.             }
  69.         }
  70.     }
  71. }
  72.  
  73. void output() {
  74.     system("cls");
  75.     for (int i = 0; i < n; i++) {
  76.         for (int j = 0; j < n; j++) {
  77.             printf("%d", a[i][j]);
  78.         }
  79.         printf("\n");
  80.     }
  81.     Sleep(1000);
  82. }
  83.  
  84. int main() {
  85.     srand(time(NULL));
  86.     firstgeneration();
  87.     flag = 1;
  88.     while (flag) {
  89.         output();
  90.         flag = 0;
  91.         move();
  92.         swap();
  93.         if (flag == 0) {
  94.             break;
  95.         }
  96.     }
  97.     return 0;
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement