Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int ofield[ 320 ][ 200 ]; // Старое поле
- int nfield[ 320 ][ 200 ]; // Новое поле
- // Выполнить шаг
- void conway() {
- // Перебрать каждую клетку
- for (int y = 0; y < 200; y++)
- for (int x = 0; x < 320; x++) {
- int n = 0, cl = 0;
- // 2-3 соседа - клетка живет
- for (int a = -1; a <= 1; a++)
- for (int b = -1; b <= 1; b++) {
- if (a == 0 && b == 0)
- continue;
- int cr = ofield[ (320 + x + a) % 320 ][ (200 + y + b) % 200 ];
- if (cr > 0) { n++; cl += cr; }
- }
- // Если 3 соседа, то зарождение
- if (n == 3) nfield[x][y] = (cl % 15) + 1;
- // Если <2 или >3, то погибает
- else if (n < 2 || n > 3) nfield[x][y] = 0;
- }
- // Копирование новой области в старую
- for (int y = 0; y < 200; y++)
- for (int x = 0; x < 320; x++)
- if (y < 192)
- pset(x, y, (ofield[x][y] = nfield[x][y]) ? 10 : 0);
- }
Add Comment
Please, Sign In to add comment