ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 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++;

}

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

Заключение

Результаты тестирования показывают, что программа работает корректно и выполняет поставленную задачу, а именно реализует игру сапер. В чем мы и убедились в ходе тестирования данного программного обеспечения.

Список использованных источников

  1. Создание приложений на GTK+ с использованием среды Glade

  2. Krause, A. Foundations of GTK+ Development. Apress, 2007.

  3. Мэтью Н., Стоунс Р. Основы программирования в Linux: 4-е издание. С-Пб: БХВ-Петербург, 2009. – 896 с.

  4. Руководство GTK+ 2.0

  5. Примеры использования Cairo

  6. Краткое руководство по Cairo

  7. Кроссплатформенный анимированный осциллограф на GTK+

  8. М. Эллис, Б. Строуструп. Справочное руководство по языку C++ с комментариями: Пер. с англ. - Москва: Мир, 1992. 445с.

  9. Стенли Б. Липпман. C++ для начинающих: Пер. с англ. 2тт. - Москва: Унитех; Рязань: Гэлион, 1992, 304-345сс.

  10. Бруно Бабэ. Просто и ясно о Visual C++: Пер. с англ. - Москва: БИНОМ, 1994. 400с.