ForrestFox

Conway Game

Feb 23rd, 2021 (edited)
226
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.08 KB | None | 0 0
  1. int ofield[ 320 ][ 200 ]; // Старое поле
  2. int nfield[ 320 ][ 200 ]; // Новое поле
  3.  
  4. // Выполнить шаг
  5. void conway() {
  6.  
  7.     // Перебрать каждую клетку
  8.     for (int y = 0; y < 200; y++)
  9.     for (int x = 0; x < 320; x++) {
  10.  
  11.         int n = 0, cl = 0;
  12.  
  13.         // 2-3 соседа - клетка живет
  14.         for (int a = -1; a <= 1; a++)
  15.         for (int b = -1; b <= 1; b++) {
  16.  
  17.             if (a == 0 && b == 0)
  18.                 continue;
  19.  
  20.             int cr = ofield[ (320 + x + a) % 320 ][ (200 + y + b) % 200 ];
  21.  
  22.             if (cr > 0) { n++; cl += cr; }
  23.         }
  24.  
  25.         // Если 3 соседа, то зарождение
  26.         if (n == 3) nfield[x][y] = (cl % 15) + 1;
  27.         // Если <2 или >3, то погибает
  28.         else if (n < 2 || n > 3) nfield[x][y] = 0;
  29.     }
  30.  
  31.     // Копирование новой области в старую
  32.     for (int y = 0; y < 200; y++)
  33.     for (int x = 0; x < 320; x++)
  34.         if (y < 192)
  35.             pset(x, y, (ofield[x][y] = nfield[x][y]) ? 10 : 0);
  36. }
  37.  
Add Comment
Please, Sign In to add comment