COLORREF CCADlg::f(COLORREF y, COLORREF yU, COLORREF yUR, COLORREF yR, COLORREF yDR, COLORREF yD, COLORREF yDL, COLORREF yL, COLORREF yUL) { // Переменная содержит единицу только в бите, соответ // ствующем первой плоскости COLORREF c=0x800000; // Переменная содержит единицу только в бите, соответ- // ствующем второй плоскости COLORREF b=0x400000; // Переменная, в которой хранится число живых соседей // клетки на второй плоскости int i=((yU&b)?1:0)+((yUR&b)?1:0)+((yR&b)?1:0)+ ((yDR&b)?1:0)+((yD&b)?1:0)+((yDL&b)?1:0)+((yL&b)?1:0)+ ((yUL&b)?1:0); // Мертвая клетка оживет, если у нее три живых соседа if ((y&b)==0 && i==3) y|=c; else // Живая клетка останется живой, если у нее два // или три живых соседа if ((y&b)!=0 && (i==2 || i==3)) y|=c; else // В остальных случаях клетка мертва y&=(~c); return y; }