#include "cyclic.h" cyclic_space::cyclic_space() { Sizeable().Zoomable(); SetRect(100, 100, 640, 480); col[0] = LtGreen; col[1] = LtBlue; col[2] = Green; col[3] = Red; col[4] = LtMagenta; col[5] = Yellow; col[6] = Cyan; col[7] = LtRed; col[8] = LtCyan; col[9] = Magenta; col[10] = White; col[11] = LtYellow; col[12] = Blue; col[13] = Gray; col[14] = LtGray; col[15] = Black; BackPaint(); reset(16); } void cyclic_space::reset(int cn) // New random field { int k = cn; n = cn-1; // KillTimeCallback(0); srand ( time(NULL) ); for(int i=0; i<640; i++) { for(int j=0; j<480; j++) { fd[i][j]=rand() % k; } } /* for(int i=0;i<1000;i++) { step(); }*/ // SetTimeCallback(-20, THISBACK(step)); } void cyclic_space::change(int num, Color ncs[16]) // new colors from cyclic object { for(int j=0; j<16; j++) { col[j] = ncs[j]; } reset(num); } void cyclic_space::step() { calculate(); Refresh(); ProcessEvents(); } void cyclic_space::LeftDown(Point, dword) { /* cyclic cs; cs.Setcols(col); cs.RunAppModal();*/ step(); } void cyclic_space::calculate() // Next cell generation { int i,j; int id[480],od[480],ad,dat; id[0]=od[0]=fd[0][0]; dat=id[0]= 8?128:28; y = 8 + 32 * (i % 8); lbl[i] = Format("%d",i+1); cols[i].LeftPosZ(x, 64); cols[i].TopPosZ(y, 24); lbl[i].LeftPosZ(x-20, 14); lbl[i].TopPosZ(y, 24); Add(lbl[i]); Add(cols[i]); } } void cyclic::Click() { for(int i=0;i<16;i++) { dc[i]=cols[i].GetData(); } par.change(colnum, dc); Break(IDOK); } GUI_APP_MAIN { par.Run(); }