Курсовая работа: Создание сетевой игры
{
ViProigrali();
}
else if
(HisWholeOch>MaxOch)
{
lbHisWholeOch->Font->Color=clRed;
ViViigrali();
}
else if(IsYaFixed
&& HisWholeOch<=MyWholeOch)
{
ChangeInterfacePerehodHoda(0);
}
else
{
ChangeInterfacePerehodHoda(1);
}
}
else if
(MasPriem[0]==2) //соперник зафиксировал
{
IsHeFixed=true;
lbHisWholeOch->Font->Color=clRed;
shapeFixed->Brush->Color=0x000000CE;
if(!IsServer)
{
NomHoda++;
}
enum
TypeDannihForTabl DannieForTabl;
DannieForTabl=hefixed;
ZapolnTabl(DannieForTabl);
if(IsYaFixed
&& MyWholeOch==HisWholeOch)
{
Nichia();
}
else
if(MyWholeOch>HisWholeOch)
{
ViViigrali();
}
else
{
ChangeInterfacePerehodHoda(1);
}
}
else if (MasPriem[0]==3)
//соперник разорвал соединение
{
IsVisitApplicationBox=true;
Application->MessageBoxA("Ваш соперник разорвал соединение.\nИгра окончена.","Разрыв соединения",MB_OK);
switch(choosenProt)
{
case 0:
IPXCloseConnection();
break;
case 1:
TCPIPCloseConnection();
break;
case 2:
NetBiosCloseConnection();
break;
case 3:
MailSlotCloseConnection();
break;
case 4:
PipeCloseConnection();
break;
}
for (int
i=0;i<KolKub;i++)
{
delete
Kubiki1[i];
delete
Kubiki2[i];
}
IsIgrayut=false;
InterfaceBezIgri();
IsVisitApplicationBox=false;
}
delete [] MasPriem;
}
//----------------процедура
заполнения таблицы----------------------------------
void __fastcall TMainForm::ZapolnTabl(enum
TypeDannihForTabl DannieForTabl)
{
if(IsServer)
{
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");
listboxOchki->TopIndex=NomHoda-1;
if(NomHoda==9)
{
listboxOchki->Width=236;
listboxOchki->Left=14;
}
}
else if
(DannieForTabl==hebrosil)
{
listboxOchki->SetItemPart(NomHoda-1,2,"
"+IntToStr(MasPriem[1]));
listboxOchki->TopIndex=NomHoda-1;
}
else
{
listboxOchki->SetItemPart(NomHoda-1,2," 0");
listboxOchki->TopIndex=NomHoda-1;
}
}
else
{
if(DannieForTabl==yabrosil)
{
listboxOchki->SetItemPart(NomHoda-1,1,"
"+IntToStr(MyCurOch));
listboxOchki->TopIndex=NomHoda-1;
}
else if
(DannieForTabl==yafixed)
{
listboxOchki->SetItemPart(NomHoda-1,1," 0");
listboxOchki->TopIndex=NomHoda-1;
}
else if
(DannieForTabl==hebrosil)
{
listboxOchki->Items->Add(" "+
IntToStr(NomHoda)+";; "+IntToStr(MasPriem[1]));
listboxOchki->TopIndex=NomHoda-1;
if(NomHoda==9)
{
listboxOchki->Width=236;
listboxOchki->Left=14;
}
}
else
{
listboxOchki->Items->Add(" "+
IntToStr(NomHoda)+";; 0");
listboxOchki->TopIndex=NomHoda-1;
if(NomHoda==9)
{
listboxOchki->Width=236;
listboxOchki->Left=14;
}
}
}
}
//------------------------------Результаты--------------------------------------
void __fastcall
TMainForm::ViProigrali(void)
{
IsVisitApplicationBox=true;
HisWinPoPartiam++;
Application->MessageBoxA("Вы проиграли!\nИграем дальше!","Поражение",MB_OK+MB_ICONEXCLAMATION);
InterfaceIgraemDalshe();
IsVisitApplicationBox=false;
}
//---------------------------------
void __fastcall
TMainForm::ViViigrali(void)
{
IsVisitApplicationBox=true;
MyWinPoPartiam++;
Application->MessageBoxA("Вы выиграли!\nИграем дальше!","Победа!!",MB_OK+MB_ICONEXCLAMATION);
InterfaceIgraemDalshe();
IsVisitApplicationBox=false;
}
//----------------------------------
void __fastcall
TMainForm::Nichia(void)
{
IsVisitApplicationBox=true;
MyWinPoPartiam++;
HisWinPoPartiam++;
Application->MessageBoxA("Вы сыграли вничью!\nИграем дальше!","Ничья",MB_OK+MB_ICONEXCLAMATION);
InterfaceIgraemDalshe();
IsVisitApplicationBox=false;
}
//----------------------------------------------------------------------------
void __fastcall
TMainForm::menuOProgrClick(TObject *Sender)
{
FormAbout->ShowModal();
}
//----------------------------Интерфейсы---------------------------------------
void __fastcall
TMainForm::InterfaceBezIgri(void)
{
MyWholeOch=0;
HisWholeOch=0;
MyCurOch=0;
NomHoda=0;
IsYaFixed=false;
IsHeFixed=false;
NomPartia=0;
MyWinPoPartiam=0;
HisWinPoPartiam=0;
ServerHostName="";
ServerHostIP="";
IsIgrayut=false;
menuStop->Enabled=false;
panParam->Visible=false;
lbNomPartia->Visible=false;
panSchetPoPartiam->Visible=false;
gbPole1->Top=15;
gbPole2->Top=15;
gbTabl->Top=15;
this->Height=400;
this->Caption="Игровое поле";
btBrosit->Enabled=false;
btFix->Enabled=false;
btBrosit->Color=clCream;
btFix->Color=clCream;
shapeBrosil->Brush->Color=clSilver;
shapeFixed->Brush->Color=clSilver;
shapeBrosil->Caption->Font->Color=clWhite;
shapeFixed->Caption->Font->Color=clWhite;
lbMyWholeOch->Caption="0";
lbHisWholeOch->Caption="0";
lbMaxOch2->Caption="";
listboxOchki->Clear();
listboxOchki->Width=218;
listboxOchki->Left=23;
AnsiString
tmp=AnsiQuotedStr("Игра->Начать новую игру",'"');
lbStat->Caption="Для начала
новой игры выберете пункт меню "+tmp;
}
//--------------------------------------------------------------
void __fastcall
TMainForm::InterfaceBeginNewGame(void)
{
menuStop->Enabled=true;
if(IsServer)
{
Caption=Caption+"
Сервер";
imStolServer->Parent=panPole1;
imStolClient->Parent=panPole2;
}
else
{
Caption=Caption+"
Клиент";
imStolClient->Parent=panPole1;
imStolServer->Parent=panPole2;
}
for (int
i=0;i<KolKub;i++)
{
Kubiki1[i] = new
TImage(this);
Kubiki1[i]->Parent=panPole1;
Kubiki1[i]->Transparent=true;
Kubiki2[i] = new
TImage(this);
Kubiki2[i]->Parent=panPole2;
Kubiki2[i]->Transparent=true;
}
panParam->Visible=true;
lbNomPartia->Visible=true;
panSchetPoPartiam->Visible=true;
gbPole1->Top=80;
gbTabl->Top=80;
gbPole2->Top=80;
this->Height=470;
lbKolKub->Caption=IntToStr(KolKub);
lbMaxOch->Caption=IntToStr(MaxOch);
lbMaxOch2->Caption=IntToStr(MaxOch);
lbNomPartia->Caption="Партия
№ 1";
lbSchetPoPartiam->Caption="0 : 0";
NomPartia=1;
IsIgrayut=true;
}
//---------------------------------------------------------
void __fastcall
TMainForm::ChangeInterfacePerehodHoda(bool HozhuYa)
{
if(HozhuYa)
{
btBrosit->Enabled=true;
btFix->Enabled=true;
btBrosit->Color=clCream;
btFix->Color=clCream;
shapeBrosil->Caption->Font->Color=clWhite;
shapeFixed->Caption->Font->Color=clWhite;
lbStat->Caption="Твой ход...";
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9 |