#include ?stdafx.h? #include ?stdio.h? // Количество клеток const int count=23; // Функция, обеспечивающая ?заворачивание? структуры // клеточного автомата в тор во избежание возникновения // краевых эффектов inline int TorIt(int x) { if (x<0) return x+count; else return x%count; } // Функция поведения клетки // U - Верх; UR - Верх-Право; R - Право; DR - Низ-Право; // D - Низ; DL - Низ-Лево; L - Лево; UL - Верх-Лево int f(int y, int yU, int yUR, int yR, int yDR, int yD, int yDL, int yL, int yUL) { // Вычисление количества живых соседей int i=yU+yUR+yR+yDR+yD+yDL+yL+yUL; // Мертвая клетка оживет, если у нее имеются три // живых соседа if (y==0 && i==3) return 1; // Живая клетка останется живой, если у нее имеются // два или три живых соседа if (y==1 && (i==2 || i==3)) return 1; // В остальных случаях клетка будет мертвой return 0; } // Главная функция приложения int main(int argc, char* argv[]) { // Массив для хранения текущих состояний клеток int y[count][count]; // Массив для хранения новых состояний клеток int y1[count][count]; // Переменная, используемая при обработке нажатия на // клавишии q char c; // Счетчик итераций long iter=0; // Начальное заполнение массива клеток for (int i=0; i и q c=getchar(); if (c==?q?) return 0; iter++; } return 0;}