ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 30.03.2025
Просмотров: 197
Скачиваний: 1
BitMapl->Assign(IMan->Picture); // if not shape!!!
if (repeat==10)
{
repeat=0;
NewGame1->Enabled=true;
TimerAroundBrok->Enabled=false;
Kind1->Enabled=true;
if (left_right==0)
}
switch(result)
{
case 0:
if (need==1)
{
need_x=last_x;
need_y=last_y;
}
if (side_x_y==1)
{
side_x_y=0;
need=0;
int game_end=0; //0;
for (int i=0;i<10;i++)
{
for (int j=0;j<10;j++)
{
if (man.show_bit(i,j)==1)
game_end=1;
}
}
if (!game_end)
end_game(1);
else
{
if (!RadarOFF1->Checked&&set_radar)
{
need=1;
serch_near_target();
}
else
{
TimerMachine->Enabled=true;
Kind1->Enabled=false;
}
}
}
else
{
serch_near_target();
}
break;
}
}
else
{
int game_end=0;
if (result==0)
{
TimerMachine->Enabled=true;
Kind1->Enabled=false;
}
else
{
for (int i=0;i<10;i++)
{
for (int j=0;j<10;j++)
{
if (comp.show_bit(i,j)==1)
game_end=1;
}
}
if (!game_end)
end_game(0);
}
if (need_man==0&&need==1)
serch_near_target();
}
}
if (tired_x==0) //&&need==0)
{
TimerMachine->Enabled=false;
TimerGo->Enabled=true;
Kind1->Enabled=false;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Example1Click(TObject *Sender)
{
if (BHideExample->Visible)
{
Kind1->Enabled=true;
ButtonChoiceScheme->Enabled=true;
BHideExample->Visible=false;
IMan->Canvas->Draw(0,0,BitMapl);
cover=0;
count=0;
count_sh=0;
vector=1;
for ( int i=0;i<16;i++ )
{
fign[i]=0;
}
for (int x=0;x<10;x++)
{
for (int y=0;y<10;y++)
{
man.put_bit(x,y,0);
}
}
}
else
{
Kind1->Enabled=false;
switch (RadioGroup1->ItemIndex)
{
case 0:
count=20;
count_sh=10;
break;
case 1:
count=25;
count_sh=9;
break;
case 2:
count=20;
count_sh=12;
break;
case 3:
count=20;
count_sh=10;
RadioGroup1->ItemIndex=0;
break;
}
ButtonChoiceScheme->Enabled=false;
BHideExample->Visible=true;
man.next_ship(RadioGroup1->ItemIndex,1);
show_example();
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BHideExampleClick(TObject *Sender)
{
Kind1->Enabled=true;
ButtonChoiceScheme->Enabled=true;
BHideExample->Visible=false;
IMan->Canvas->Draw(0,0,BitMapl);
cover=0;
count=0;
count_sh=0;
vector=1;
for ( int i=0;i<16;i++ )
{
fign[i]=0;
}
for (int x=0;x<10;x++)
{
for (int y=0;y<10;y++)
{
man.put_bit(x,y,0);
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ShowMap1Click(TObject *Sender)
{
if (BHideMap->Visible)
{
Kind1->Enabled=true;
IComp->Picture->Assign(BitMap);
BHideMap->Visible=false;
PCompCovered->Visible=true;
PCompShoots->Visible=true;
BCompResults->Visible=true;
}
else
{
con_man=1;
Kind1->Enabled=false;
BHideMap->Visible=true;
PCompCovered->Visible=false;
PCompShoots->Visible=false;
BCompResults->Visible=false;
BitMap->Assign(IComp->Picture);
if (School1->Checked)
IComp->Picture->Assign(ISchool->Picture);
else if (Windows1->Checked)
IComp->Picture->Assign(IWindows->Picture);
else
IComp->Picture->Assign(BitMaprr);
for (int x=0;x<10;x++)
{
for (int y=0;y<10;y++)
{
paint_array(x,y);
}
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BHideMapClick(TObject *Sender)
{
Kind1->Enabled=true;
IComp->Picture->Assign(BitMap);
BHideMap->Visible=false;
PCompCovered->Visible=true;
PCompShoots->Visible=true;
BCompResults->Visible=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::brok_milk(int x, int y)
{
need_x=x;
need_y=y;
shoot_comp++;
covered_comp=0;
for (int i=0;i<10;i++)
{
for (int j=0;j<10;j++)
{
if (man.show_bit(i,j)==2)
{
covered_comp++;
}
if (man.show_bit(i,j)==3)
{
covered_comp++;
}
}
}
if (English1->Checked)
{
PCompShoots->Caption="Shoots: "+IntToStr(shoot_comp);
PCompCovered->Caption="Covered: "+IntToStr(covered_comp)+" % ";
}
else
{
PCompShoots->Caption="Выстрелы: "+IntToStr(shoot_comp);
PCompCovered->Caption="Накрыто: "+IntToStr(covered_comp)+" % ";
}
TimerMachine->Enabled=false;
TimerAroundBrok->Enabled=true;
Kind1->Enabled=false;
}
//--------------------------------------------------------------------------
void __fastcall TForm1::end_game(int man_com)
{
if(man_com)
{
for (int i=0;i<10;i++)
{
for (int j=0;j<10;j++)
{
if (comp.show_bit(i,j)==1)
{
if (School1->Checked)
{
IComp->Canvas->Pen->Width=3;
IComp->Canvas->Pen->Color=clBlue; //Navy;
IComp->Canvas->Brush->Color=clGray;
IComp->Canvas->Rectangle(i*25+1,j*25+1,i*25+25-1,j*25+25-1);
}
else if (Windows1->Checked)
IComp->Canvas->Draw(i*25,j*25,BitMapw);
else
{
IComp->Canvas->Brush->Color = clTeal;
IComp->Canvas->Pen->Color = clTeal;
IComp->Canvas->Rectangle(i*25,j*25,i*25+25,j*25+25);
}
}
}
}
PWin->Visible=true;
Win->Caption="Я Выиграл!!!";
PMyShoot->Visible= false;
Language1->Enabled=false;
Kind1->Enabled=false;
OwnMap1->Enabled=false;
ShowMap1->Enabled=false;
count_man_com(1);
}
else
{
if (Show1->Enabled)
{
for (int i=0;i<10;i++)
{
for (int j=0;j<10;j++)
{
if (man.show_bit(i,j)==1)
{
if (School1->Checked)
{
IMan->Canvas->Pen->Width=3;
IMan->Canvas->Pen->Color=clBlue; //Navy;
IMan->Canvas->Brush->Color=clGray;
IMan->Canvas->Rectangle(i*25+1,j*25+1,i*25+25-1,j*25+25-1);
}
else if (Windows1->Checked)
IMan->Canvas->Draw(i*25,j*25,BitMapw);
else
{
IMan->Canvas->Brush->Color = clTeal;
IMan->Canvas->Pen->Color = clTeal;
IMan->Canvas->Rectangle(i*25,j*25,i*25+25,j*25+25);
}
}
}
}
}
PWin->Visible=true;
if (con_man)
{
else
PWin->Caption="Вы Выиграли!!!";
count_man_com(0);
}
PYourShoot->Visible=false;
Language1->Enabled=false;
Kind1->Enabled=false;
OwnMap1->Enabled=false;
ShowMap1->Enabled=false;
}
PWont->Visible=true;
BYes->Visible=true;
BNo->Visible=true;
}
//---------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "AboutForm.h"
//---------------------------------------------------------------------
#pragma resource "*.dfm"
TAboutBox *AboutBox;
//---------------------------------------------------------------------
__fastcall TAboutBox::TAboutBox(TComponent* AOwner)
: TForm(AOwner)
{
}
//---------------------------------------------------------------------
void __fastcall TAboutBox::OKButtonClick(TObject *Sender)
{
Timer1->Enabled=false;
AboutBox->Hide();
}
//---------------------------------------------------------------------------
void __fastcall TAboutBox::Timer1Timer(TObject *Sender)
{
static int animation;
switch (animation)
{
case 0:
Image1->Show();
Image2->Hide();
break;
case 1:
Image2->Show();
Image1->Hide();
break;
case 2:
Image3->Show();
Image2->Hide();
break;
case 3:
Image4->Show();
Image3->Hide();
break;
case 4:
Image5->Show();
Image4->Hide();
break;
case 5:
Image6->Show();
Image5->Hide();
break;
animation=-1;
break;
}
animation++;
}
//---------------------------------------------------------------------------
Заключение
Результаты тестирования показывают, что программа работает корректно и выполняет поставленную задачу, а именно реализует игру сапер. В чем мы и убедились в ходе тестирования данного программного обеспечения.
Список использованных источников
-
Создание приложений на GTK+ с использованием среды Glade
-
Krause, A. Foundations of GTK+ Development. Apress, 2007.
-
Мэтью Н., Стоунс Р. Основы программирования в Linux: 4-е издание. С-Пб: БХВ-Петербург, 2009. – 896 с.
-
Руководство GTK+ 2.0
-
Примеры использования Cairo
-
Краткое руководство по Cairo
-
Кроссплатформенный анимированный осциллограф на GTK+
-
М. Эллис, Б. Строуструп. Справочное руководство по языку C++ с комментариями: Пер. с англ. - Москва: Мир, 1992. 445с.
-
Стенли Б. Липпман. C++ для начинающих: Пер. с англ. 2тт. - Москва: Унитех; Рязань: Гэлион, 1992, 304-345сс.
-
Бруно Бабэ. Просто и ясно о Visual C++: Пер. с англ. - Москва: БИНОМ, 1994. 400с.