#include <vcl.h>
#include <stdlib.h>
#include <time.h>
#pragma hdrstop
#include "p_Lotto.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
srand(time(NULL));
Button1->Caption="&RUN";
Button2->Caption="&CLOSE";
UnicodeString c="";
Edit1->Text=c;
Edit2->Text=c;
Edit3->Text=c;
Edit4->Text=c;
Edit5->Text=c;
}
void __fastcall TForm1::my_Sort(int* tab, int s)
{
int i,j,k;
for(i=1;i<s;i++)
{
j=i;
k=tab[j];
while((j>0) && (tab[j-1]>k))
{
tab[j]=tab[j-1];
j--;
}
tab[j]=k;
}
}
void __fastcall TForm1::init_Base()
{
int i,j;
for(i=0;i<42;i++)
temp[i]=0;
i=0;
do
{
do{
j=rand()%42;
}while(temp[j]!=0);
temp[j]=1;
base[i]=j+1;
++i;
}while(i<5);
my_Sort(base,5);
}
void __fastcall TForm1::init_Simulations()
{
int i,j,k,l;
for(i=0;i<1000;i++)
{
for(j=0;j<42;j++)
{
temp_Simulations[i][j]=0;
}
}
k=0;
do
{
j=0;
do
{
do
{
l=rand()%42;
}while(temp_Simulations[k][l]!=0);
temp_Simulations[k][l]=1;
rand_Lotto[k][j]=l+1;
++j;
}while(j<5);
++k;
}while(k<1000);
}
bool __fastcall TForm1::is_5(int* base, int* temp)
{
int i,j,sum;
sum=0;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(base[i]==temp[j])
++sum;
}
}
if(sum==5)
return true;
else
return false;
}
bool __fastcall TForm1::is_4(int* base, int* temp)
{
int i,j,sum;
sum=0;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(base[i]==temp[j])
++sum;
}
}
if(sum==4)
return true;
else
return false;
}
bool __fastcall TForm1::is_3(int* base, int* temp)
{
int i,j,sum;
sum=0;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(base[i]==temp[j])
++sum;
}
}
if(sum==3)
return true;
else
return false;
}
bool __fastcall TForm1::is_2(int* base, int* temp)
{
int i,j,sum;
sum=0;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(base[i]==temp[j])
++sum;
}
}
if(sum==2)
return true;
else
return false;
}
bool __fastcall TForm1::is_1(int* base, int* temp)
{
int i,j,sum;
sum=0;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(base[i]==temp[j])
++sum;
}
}
if(sum==1)
return true;
else
return false;
}
bool __fastcall TForm1::is_0(int* base, int* temp)
{
int i,j,sum;
sum=0;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(base[i]==temp[j])
++sum;
}
}
if(sum==0)
return true;
else
return false;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int i,j;
init_Base();
init_Simulations();
sum_5=sum_4=sum_3=sum_2=sum_1=sum_0=0;
Edit1->Text=IntToStr(base[0]);
Edit2->Text=IntToStr(base[1]);
Edit3->Text=IntToStr(base[2]);
Edit4->Text=IntToStr(base[3]);
Edit5->Text=IntToStr(base[4]);
ListBox1->Items->Clear();
ListBox1->Items->Add("After 1000 draws");
for(i=0;i<1000;i++)
{
if(is_5(base,rand_Lotto[i]))
++sum_5;
if(is_4(base,rand_Lotto[i]))
++sum_4;
if(is_3(base,rand_Lotto[i]))
++sum_3;
if(is_2(base,rand_Lotto[i]))
++sum_2;
if(is_1(base,rand_Lotto[i]))
++sum_1;
if(is_0(base,rand_Lotto[i]))
++sum_0;
}
ListBox1->Items->Add("5/5 ="+IntToStr(sum_5));
ListBox1->Items->Add("5/4 ="+IntToStr(sum_4));
ListBox1->Items->Add("5/3 ="+IntToStr(sum_3));
ListBox1->Items->Add("5/2 ="+IntToStr(sum_2));
ListBox1->Items->Add("5/1 ="+IntToStr(sum_1));
ListBox1->Items->Add("5/0 ="+IntToStr(sum_0));
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
UnicodeString t,d;
t=TimeToStr(Time());
d=DateToStr(Date());
Label1->Caption=d+" "+t;
}





