void __fastcall TMainForm::FormActivate(TObject *Sender)
{
if(FirstTimeShow)
FirstTimeShow=false;
InterfaceBezIgri();
menuBeginClick(this);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::menuBeginClick(TObject *Sender)
if (IsIgrayut)
menuStopClick(this);
if (IsIgrayut) return;
if (UstanParametrov()) //вызов 2-х форм для установки параметров
//----подключение----
switch(choosenProt)
case 0:
IPXConnect();
break;
case 1:
TCPIPConnect();
case 2:
NetBiosConnect();
case 3:
MailSlotConnect();
case 4:
PipeConnect();
if(IsServer) lbStat->Caption="Ожидается соединение с клиентом...";
bool __fastcall TMainForm::UstanParametrov(void)
int md1,md2;
for(;;)
md1=FormParamConnect->ShowModal();
FormParamConnect->Close();
if (md1==mrOk)
if (IsServer)
md2=FormGameParam->ShowModal();
if (md2==mrOk) return 1;
else continue;
else return 1;
else return 0;
void __fastcall TMainForm::OtobrazhDannihSopernika(int *MasPriem)
Graphics::TBitmap *Bitmap2 = new Graphics::TBitmap();
AnsiString strCat;
if(IsServer)
strCat="_2";
else
strCat="";
if(KolKub==1)
Bitmap2->LoadFromResourceName((unsigned int)HInstance,"KUB"+IntToStr(MasPriem[3])+strCat);
Kubiki2[0]->Picture->Bitmap=Bitmap2;
Kubiki2[0]->Left=MasPriem[4];
Kubiki2[0]->Top=MasPriem[5];
Kubiki2[0]->Visible=true;
else if (KolKub==2)
Bitmap2->LoadFromResourceName((unsigned int)HInstance,"KUB"+IntToStr(MasPriem[6])+strCat);
Kubiki2[1]->Picture->Bitmap=Bitmap2;
Kubiki2[1]->Left=MasPriem[7];
Kubiki2[1]->Top=MasPriem[8];
Kubiki2[1]->Visible=true;
else if (KolKub==3)
Bitmap2->LoadFromResourceName((unsigned int)HInstance,"KUB"+IntToStr(MasPriem[9])+strCat);
Kubiki2[2]->Picture->Bitmap=Bitmap2;
Kubiki2[2]->Left=MasPriem[10];
Kubiki2[2]->Top=MasPriem[11];
Kubiki2[2]->Visible=true;
Bitmap2->LoadFromResourceName((unsigned int)HInstance,"KUB"+IntToStr(MasPriem[12])+strCat);
Kubiki2[3]->Picture->Bitmap=Bitmap2;
Kubiki2[3]->Left=MasPriem[13];
Kubiki2[3]->Top=MasPriem[14];
Kubiki2[3]->Visible=true;
HisWholeOch=MasPriem[2];
lbHisWholeOch->Caption=IntToStr(MasPriem[2]);
delete Bitmap2;
//-----------пришли данные соперника--------------------------------------------
void __fastcall TMainForm::Priem(int *MasPriem)
if(MasPriem[0]==0) //первый ответ сервера клиенту
AnsiString mess;
mess="Ваш соперник выбрал следующие параметры игры:\nКоличество кубиков: "+IntToStr(MasPriem[1])+"\nМаксимальное количество очков: "+IntToStr(MasPriem[2]);
IsVisitApplicationBox=true;
Application->MessageBoxA(mess.c_str(),"Параметры игры",MB_OK);
KolKub=MasPriem[1];
MaxOch=MasPriem[2];
InterfaceBeginNewGame();
ChangeInterfacePerehodHoda(0);
IsVisitApplicationBox=false;
else if (MasPriem[0]==1) //соперник бросил
shapeBrosil->Brush->Color=0x0000CE00;
OtobrazhDannihSopernika(MasPriem);
if(!IsServer)
NomHoda++;
enum TypeDannihForTabl DannieForTabl;
DannieForTabl=hebrosil;
ZapolnTabl(DannieForTabl);
if(IsYaFixed && HisWholeOch>MyWholeOch && HisWholeOch<=MaxOch)
ViProigrali();
else if (HisWholeOch>MaxOch)
lbHisWholeOch->Font->Color=clRed;
ViViigrali();
else if(IsYaFixed && HisWholeOch<=MyWholeOch)
ChangeInterfacePerehodHoda(1);
else if (MasPriem[0]==2) //соперник зафиксировал
IsHeFixed=true;
shapeFixed->Brush->Color=0x000000CE;
DannieForTabl=hefixed;
if(IsYaFixed && MyWholeOch==HisWholeOch)
Nichia();
else if(MyWholeOch>HisWholeOch)
else if (MasPriem[0]==3) //соперник разорвал соединение
Application->MessageBoxA("Ваш соперник разорвал соединение.\nИгра окончена.","Разрыв соединения",MB_OK);
IPXCloseConnection();
TCPIPCloseConnection();
NetBiosCloseConnection();
MailSlotCloseConnection();
PipeCloseConnection();
for (int i=0;i<KolKub;i++)
delete Kubiki1[i];
delete Kubiki2[i];
IsIgrayut=false;
delete [] MasPriem;
//----------------процедура заполнения таблицы----------------------------------
void __fastcall TMainForm::ZapolnTabl(enum TypeDannihForTabl DannieForTabl)
if(DannieForTabl==yabrosil)
listboxOchki->Items->Add(" "+IntToStr(NomHoda)+"; "+IntToStr(MyCurOch));
listboxOchki->TopIndex=NomHoda-1;
if(NomHoda==9)
listboxOchki->Width=236;
listboxOchki->Left=14;
else if (DannieForTabl==yafixed)
listboxOchki->Items->Add(" "+IntToStr(NomHoda)+"; 0");
else if (DannieForTabl==hebrosil)
listboxOchki->SetItemPart(NomHoda-1,2," "+IntToStr(MasPriem[1]));
listboxOchki->SetItemPart(NomHoda-1,2," 0");
listboxOchki->SetItemPart(NomHoda-1,1," "+IntToStr(MyCurOch));
listboxOchki->SetItemPart(NomHoda-1,1," 0");
listboxOchki->Items->Add(" "+ IntToStr(NomHoda)+";; "+IntToStr(MasPriem[1]));
Страницы: 1, 2, 3, 4, 5, 6, 7