All pastes #507724 Raw Edit

Mine

public text v1 · immutable
·published 2007-05-24 18:29 UTC
rendered paste body
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "auto.h"
#include <time.h>


//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;


//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
int sasiedzi(int x, int a, int b)       // x - stan; a - wsp x; b - wsp y
{
int stan = 0;
                if (Tablica[a-1][b-1]==x)  stan++;
                if (Tablica[a-1][b]==x) stan++;
                if (Tablica[a-1][b+1]==x) stan++;
                if (Tablica[a][b+1]==x) stan++;
                if (Tablica[a+1][b+1]==x) stan++;
                if (Tablica[a+1][b]==x) stan++;
                if (Tablica[a+1][b-1]==x) stan++;
                if (Tablica[a][b-1]==x) stan++;
                return stan;

}
//---------------------------------------------------------------------------
void przepisz()
{
for (int i=0; i<60; i++)
   {
for (int j=0; j<60; j++)
        {
        Tablica[i][j]=Tablicab[i][j];
        }
   }

}



//---------------------------------------------------------------------------

void __fastcall TForm1::Panel1Click(TObject *Sender)
{
ColorDialog1->Execute();
Panel1->Color = ColorDialog1->Color;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Panel2Click(TObject *Sender)
{
ColorDialog1->Execute();
Panel2->Color = ColorDialog1->Color;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Panel3Click(TObject *Sender)
{
ColorDialog1->Execute();
Panel3->Color = ColorDialog1->Color;
}
//---------------------------------------------------------------------------
/* void __fastcall TForm1::Button3Click(TObject *Sender)
{
StringGrid1->RowCount = Edit1->Text.ToInt();
StringGrid1->ColCount = Edit2->Text.ToInt();
StringGrid1->Width = Edit1->Text.ToInt()*10+Edit1->Text.ToInt()+4;
StringGrid1->Height = Edit2->Text.ToInt()*10+Edit1->Text.ToInt()+4;

}  */
//---------------------------------------------------------------------------


void __fastcall TForm1::StringGrid1SelectCell(TObject *Sender, int ACol,
      int ARow, bool &CanSelect)
{
Label2->Caption = String(ACol+1);
Label4->Caption = String(ARow+1);


if (RadioButton1->Checked == True)
{
          StringGrid1->Canvas->Brush->Color = Panel1->Color;
          StringGrid1->Canvas->FillRect(Rect(10*ACol+ACol,10*ARow+ARow,10*ACol+ACol+10,10*ARow+ARow+10));
          Tablica[ACol][ARow]=1;
}
if (RadioButton2->Checked == True)
{
          StringGrid1->Canvas->Brush->Color = Panel2->Color;
          StringGrid1->Canvas->FillRect(Rect(10*ACol+ACol,10*ARow+ARow,10*ACol+ACol+10,10*ARow+ARow+10));
          Tablica[ACol][ARow]=0 ;
          }
if (RadioButton3->Checked == True)
{
          StringGrid1->Canvas->Brush->Color = Panel3->Color;
          StringGrid1->Canvas->FillRect(Rect(10*ACol+ACol,10*ARow+ARow,10*ACol+ACol+10,10*ARow+ARow+10));
          Tablica[ACol][ARow]=2 ;
          }
}
//---------------------------------------------------------------------------


void __fastcall TForm1::FormCreate(TObject *Sender)
{

int i=0, j=0;
for (j=0; j<60;j++)
{
        for (i=0; i<60;i++)
                {
                Tablica[i][j] = 0 ;
                }
}
}
//---------------------------------------------------------------------------


void __fastcall TForm1::Button2Click(TObject *Sender)
{
int i=0;
int j=0;
int nic = 0;
if (ComboBox1->ItemIndex == 0) {                // je&#347;li zaznaczono Inwazje
for (i=0; i<60;i++)
   {
for (j=0; j<60;j++)
        {
        if (Tablica[i][j] == 1)                 // jesli komórka jest aktywna
                {
                if (sasiedzi(1, i, j) >= 3 || sasiedzi(2, i, j) >= 3)  // i ma przynajmniej 3 aktywnych lub 3 subaktywnych sasiadow
                        {
                          Tablicab[i][j] = 2;              //to staje sie subaktywna
                          continue;
                        }
                        else nic++;                     // jesli warunek nie spe&#322;niony to zwi&#281;ksz licznik

                if (sasiedzi(1, i, j) >= 1 && sasiedzi(1, i, j) <= 2 || sasiedzi(2, i, j) >= 1 && sasiedzi(2, i, j) <= 2) // je&#347;li komórka jest aktywna i ma od 1-2 aktywnych lub subaktywnych sasiadów
                        {
                          Tablicab[i][j] = 1;             // to ma zost&#263; aktywna
                          continue;
                        }
                        else nic++;                    // jesli warunek nie spe&#322;niony to zwi&#281;ksz licznik
                }
       if (Tablica[i][j] == 0)                 // jesli komórka jest NIEaktywna
                {
                if (sasiedzi(1, i, j) >= 3 || sasiedzi(2, i, j) >= 3)  //i ma co najmniej 3 aktywnych lub subaktywnych sasiadów
                        {
                          Tablicab[i][j] = 1;             // to staje sie aktywna
                          continue;
                        }
                else nic++;                    // jesli warunek nie spe&#322;niony to zwi&#281;ksz licznik
                }
       if (nic == 3)
                Tablicab[i][j] = 0;              // W innych przypadkach staje si&#281; nieaktywna.
                nic = 0;
        }
   }
Button4->Click();
}   // zamkniety if - wybor dzialania

//=====================================


if (ComboBox1->ItemIndex == 1)
{                               // je&#347;li zaznaczono Marsz
for (int i=0; i<60;i++)
   {
for (int j=0; j<60;j++)
        {
        if (Tablica[i][j] == 1)                 // jesli komórka jest aktywna
                {
                if (sasiedzi(1, i, j) >= 4)    // i ma przynajmniej 4 aktywnych s&#261;siadów
                        {
                          Tablicab[i][j] = 0;            // ma sie stac nieaktywna
                          continue;
                        }
                else nic++;
                }
        if (Tablica[i][j] == 0)                 // je&#347;li komórka jest nieaktywna
                {
                if (sasiedzi(1, i, j) == 2)   //i ma dwóch aktywnych s&#261;siadów
                        {
                          Tablicab[i][j] = 1; // to staje sie aktywna
                          continue;
                        }
                else nic++;
                }
        if (sasiedzi(1, i, j) == 3)       //je&#347;li komórka ma 3 aktywnych s&#261;siadów
                        {
                          Tablicab[i][j] = 1; // to staje sie aktywna
                          continue;
                        }
                else nic++;
        if (nic == 3)
                        {
                          Tablicab[i][j] = 0;              // W innych przypadkach staje si&#281; nieaktywna.
                          continue;
                        }
        nic = 0;
        }   // zamyka for 2
   } // zamyka for 1

  Button4->Click();    //odrysuj plansze
  } // zamyka warunek wyboru dzialania



//=====================================
if (ComboBox1->ItemIndex == 2)
{                               // je&#347;li zaznaczono Zycie
for (int i=0; i<60;i++)
   {
for (int j=0; j<60;j++)
        {
        if (Tablica[i][j] == 1 || Tablica[i][j] == 0)        // jesli komórka jest aktywna lub nie
                {
                if (sasiedzi(1, i, j) == 3)    // i ma 3 aktywnych sasiadow
                        {
                          Tablicab[i][j] = 1; // to staje sie aktywna
                          continue;
                        }
                    else nic++;
                 }
        if (Tablica[i][j] == 1)        // jesli komórka jest aktywna
                {
                if (sasiedzi(1, i, j) == 2)    // i ma 2 aktywnych sasiadow
                        {
                          Tablicab[i][j] = 1; // to staje sie aktywna
                          continue;
                        }
                    else nic++;
                 }
         if (nic == 2)
                        {
                           Tablicab[i][j] = 0; // to staje sie martwa
                            continue;
                        }
                        nic = 0;
          }  // zamyka for 2
   }   // zamyka for 1
   Button4->Click();    //odrysuj plansze
}  // zamyka ifa wyboru dzialania
}  // konczacy
//---------------------------------------------------------------------------


void __fastcall TForm1::Button4Click(TObject *Sender)
{
int i=0;
int j=0;
for (i=0; i<60;i++)
{
for (j=0; j<60;j++)
   {
        if (Tablicab[i][j] == 1)
        {
        StringGrid1->Canvas->Brush->Color = Panel1->Color;
        StringGrid1->Canvas->FillRect(Rect(10*i+i,10*j+j,10*i+i+10,10*j+j+10));
        }
        if (Tablicab[i][j] == 0)
        {
        StringGrid1->Canvas->Brush->Color = Panel2->Color;
        StringGrid1->Canvas->FillRect(Rect(10*i+i,10*j+j,10*i+i+10,10*j+j+10));
        }
         if (Tablicab[i][j] == 2)
        {
        StringGrid1->Canvas->Brush->Color = Panel3->Color;
        StringGrid1->Canvas->FillRect(Rect(10*i+i,10*j+j,10*i+i+10,10*j+j+10));
        }
   }
}
przepisz();        
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button5Click(TObject *Sender)
{
int i=0, j=0;
randomize();

if (ComboBox1->ItemIndex == 1 || ComboBox1->ItemIndex == 2)
{
for (j=0; j<60;j++)
{
        for (i=0; i<60;i++)
                {

                int rand = random(2);
                Tablicab[i][j] = rand ;
                }
}
}
if (ComboBox1->ItemIndex == 0)
{
for (j=0; j<60;j++)
{
        for (i=0; i<60;i++)
                {

                int rand = random(3);
                Tablicab[i][j] = rand ;
                }
}
}
Button4->Click();
przepisz();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ComboBox1Change(TObject *Sender)
{
if (ComboBox1->ItemIndex == 1 || ComboBox1->ItemIndex == 2)
        {
        Label7->Enabled = False;
        Panel3->Enabled = False;
        RadioButton3->Enabled = False;
        }
        else
        {
        Label7->Enabled = True;
        Panel3->Enabled = True;
        RadioButton3->Enabled = True;
        }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
int i=0, j=0;
for (j=0; j<60;j++)
{
        for (i=0; i<60;i++)
                {
                Tablicab[i][j] = 0 ;
                }
}
Button4->Click();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)
{
Form1->Close();
}
//---------------------------------------------------------------------------