niedziela, 15 lipca 2018

Point density. StringGrid. C++ Builder



__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
 srand(time(NULL));
}
//---------------------------------------------------------------------------


void __fastcall TForm1::init_first_Table()
{
 int i,j,x;
 for(i=0;i<30;i++)
 {
   for(j=0;j<30;j++)
   {
     x=rand()%100+1;
     if(x%2==0)
     {
      tab1[i][j]=1;
      StringGrid1->Cells[i][j]="1";
     }
     else
     {
      tab1[i][j]=0;
      StringGrid1->Cells[i][j]="O";

     }
   }
 }
}
void __fastcall TForm1::init_second_Table()
{
 int i,j;
 for(i=0;i<30;i++)
  for(j=0;j<30;j++)
   tab2[i][j]=0;

  for(i=0;i<30;i++)
  {
   for(j=0;j<30;j++)
   {
    if((i-1>-1) && tab1[i-1][j]==1)

     tab2[i][j]++;

    if((i-1>-1) && (j-1>=0))
     if(tab1[i-1][j-1]==1)
      tab2[i][j]++;
    if((j-1>-1) && (tab1[i][j-1]==1))
     tab2[i][j]++;
    if((i+1<=30) && (j-1>-1))
     if(tab1[i+1][j-1]==1)
      tab2[i][j]++;
    if((i+1<=30) && (tab1[i+1][j]==1))
      tab2[i][j]++;
    if((i+1<30) && (j+1<30))
     if(tab1[i+1][j+1]==1)
      tab2[i][j]++;
    if((j+1<30) && (tab1[i][j+1]==1))
     tab2[i][j]++;
    if((i-1>-1) && (j+1<30))
     if(tab1[i-1][j+1]==1)
      tab2[i][j]++;
    if(tab1[i][j]==1)
     tab2[i][j]++;

   }
  }

  for(i=0;i<30;i++)
   for(j=0;j<30;j++)
    StringGrid2->Cells[i][j]=IntToStr(tab2[i][j]);
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 init_first_Table();
 init_second_Table();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
 Close();        
}