Руководство программиста




unit Unit1;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Menus, unit2, ExtCtrls, ComCtrls, unit3, StdCtrls, ImgList;

 

type

TForm1 = class(TForm)

MainMenu1: TMainMenu;

FileMenuItem: TMenuItem;

NewMenuItem: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

InformationMenuItem: TMenuItem;

AboutMenuItem: TMenuItem;

Panel1: TPanel;

Panel2: TPanel;

Panel3: TPanel;

Panel4: TPanel;

Panel5: TPanel;

Panel6: TPanel;

Panel7: TPanel;

Panel8: TPanel;

Panel9: TPanel;

Panel10: TPanel;

Timer1: TTimer;

ImageList1: TImageList;

procedureAboutMenuItemClick(Sender: TObject);

procedure Panel2Click(Sender: TObject);

procedure Panel5Click(Sender: TObject);

procedure Panel8Click(Sender: TObject);

procedure Panel3Click(Sender: TObject);

procedure Panel6Click(Sender: TObject);

procedure Panel9Click(Sender: TObject);

procedure Panel4Click(Sender: TObject);

procedure Panel7Click(Sender: TObject);

procedure Panel10Click(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedureNewMenuItemClick(Sender: TObject);

procedureFormCreate(Sender: TObject);

procedure N4Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

 

Implementation

 

{$R *.dfm}

 

procedureclean; // Процедура общего сброса ("Новая игра")

begin

Form1.Timer1.Enabled:=false; // Для надежности выключаем таймер

Form1.Panel2.BevelInner:=bvNone; // Меняем стиль панели на начальный

Form1.Panel2.Caption:=''; // Убираем заголовок панели

Form1.Panel3.BevelInner:=bvNone;

Form1.Panel3.Caption:='';

Form1.Panel4.BevelInner:=bvNone;

Form1.Panel4.Caption:='';

Form1.Panel5.BevelInner:=bvNone;

Form1.Panel5.Caption:='';

Form1.Panel6.BevelInner:=bvNone;

Form1.Panel6.Caption:='';

Form1.Panel7.BevelInner:=bvNone;

Form1.Panel7.Caption:='';

Form1.Panel8.BevelInner:=bvNone;

Form1.Panel8.Caption:='';

Form1.Panel9.BevelInner:=bvNone;

Form1.Panel9.Caption:='';

Form1.Panel10.BevelInner:=bvNone;

Form1.Panel10.Caption:='';

Form1.Tag:=0;

Form1.Timer1.Enabled:=true; // Возобновляемработутаймера

end;

 

procedure TForm1.AboutMenuItemClick(Sender: TObject);

begin

Form2.ShowModal; // Вызываем окно "О программе"

end;

 

procedure TForm1.Panel2Click(Sender: TObject);

begin

if Panel2.Caption<>'' thenexit; // Проверка на заголовок панели (анти-мухлеж)

Panel2.BevelInner:=bvLowered; // Присваиваем стиль при нажатии на панель

if Form1.Tag=0

then// Меняем tag формы (для чередования X и O)

begin

Panel2.Caption:='X'; // если таг=0 тогда вписываем X

Form1.Tag:=1;

end

else

begin

Panel2.Caption:='O'; // еслитаг=1 тогдавписываемO

Form1.Tag:=0;

end;

end;

procedure TForm1.Panel5Click(Sender: TObject);

begin

if Panel5.Caption<>'' then exit;

Panel5.BevelInner:=bvLowered;

if Form1.Tag=0

then

begin

Panel5.Caption:='X';

Form1.Tag:=1;

end

else

begin

Panel5.Caption:='O';

Form1.Tag:=0;

end;

end;

 

procedure TForm1.Panel8Click(Sender: TObject);

begin

if Panel8.Caption<>'' then exit;

Panel8.BevelInner:=bvLowered;

if Form1.Tag=0

then

begin

Panel8.Caption:='X';

Form1.Tag:=1;

end

else

begin

Panel8.Caption:='O';

Form1.Tag:=0;

end;

end;

 

procedure TForm1.Panel3Click(Sender: TObject);

begin

if Panel3.Caption<>'' then exit;

Panel3.BevelInner:=bvLowered;

if form1.Tag=0

then

begin

Panel3.Caption:='X';

Form1.Tag:=1;

end

else

begin

Panel3.Caption:='O';

Form1.Tag:=0;

end;

end;

 

 

procedure TForm1.Panel6Click(Sender: TObject);

begin

if Panel6.Caption<>'' then exit;

Panel6.BevelInner:=bvLowered;

if form1.Tag=0

then

begin

Panel6.Caption:='X';

Form1.Tag:=1;

end

else

begin

Panel6.Caption:='O';

Form1.Tag:=0;

end;

end;

 

procedure TForm1.Panel9Click(Sender: TObject);

begin

if Panel9.Caption<>'' then exit;

Panel9.BevelInner:=bvLowered;

if form1.Tag=0

then

begin

Panel9.Caption:='X';

Form1.Tag:=1;

end

else

begin

Panel9.Caption:='O';

Form1.Tag:=0;

end;

end;

 

procedure TForm1.Panel4Click(Sender: TObject);

begin

if Panel4.Caption<>'' then exit;

Panel4.BevelInner:=bvLowered;

if Form1.Tag=0

then

begin

Panel4.Caption:='X';

Form1.Tag:=1;

end

else

begin

Panel4.Caption:='O';

Form1.Tag:=0;

end;

end;

 

 

procedure TForm1.Panel7Click(Sender: TObject);

begin

if Panel7.Caption<>'' then exit;

Panel7.BevelInner:=bvLowered;

if Form1.Tag=0

then

begin

Panel7.Caption:='X';

Form1.Tag:=1;

end

else

begin

Panel7.Caption:='O';

Form1.Tag:=0;

end;

end;

 

procedure TForm1.Panel10Click(Sender: TObject);

begin

if Panel10.Caption<>'' then exit;

Panel10.BevelInner:=bvLowered;

if Form1.Tag=0

then

begin

Panel10.Caption:='X';

Form1.Tag:=1;

end

else

begin

Panel10.Caption:='O';

Form1.Tag:=0;

end;

end;

 

procedure TForm1.Timer1Timer(Sender: TObject); // Процедурапроверкинавыигрыш;

begin

try // защита от непредвиденных ошибок

if (Panel2.BevelInner=bvLowered) and (Panel4.BevelInner=bvLowered) and (Panel3.BevelInner=bvLowered) then

// Еслипанелинажаты, топроверяемзаголовки

if (Panel2.Caption=Panel3.Caption) and (Panel2.Caption=Panel4.Caption)

then

begin

Form3.Label1.Caption:=Form1.Panel2.Caption; // ЕсливыигрышнаякомбинациятоприсваиваемХилиОвЛейблформыпоздравления

Form3.ShowModal; // Открываем окно поздравления ":-)"

clean; // Очистка игрового поля

end;

 

if (Panel7.BevelInner=bvLowered) and (Panel5.BevelInner=bvLowered) and (Panel6.BevelInner=bvLowered) then

if (Panel5.Caption=Panel6.Caption) and (Panel5.Caption=Panel7.Caption)

then

begin

Form3.Label1.Caption:=Form1.Panel5.Caption;

Form3.ShowModal;

clean;

end;

 

if (Panel9.BevelInner=bvLowered) and (Panel10.BevelInner=bvLowered) and (Panel8.BevelInner=bvLowered) then

if (Panel8.Caption=Panel9.Caption) and (Panel8.Caption=Panel10.Caption)

then

begin

Form3.Label1.Caption:=Form1.Panel10.Caption;

Form3.ShowModal;

clean;

end;

 

if (Panel5.BevelInner=bvLowered) and (Panel2.BevelInner=bvLowered) and (Panel8.BevelInner=bvLowered) then

if (Panel2.Caption=Panel5.Caption) and (Panel2.Caption=Panel8.Caption)

then

begin

Form3.Label1.Caption:=Form1.Panel2.Caption;

Form3.ShowModal;

clean;

end;

 

if (Panel9.BevelInner=bvLowered) and (Panel3.BevelInner=bvLowered) and (Panel6.BevelInner=bvLowered) then

if (Panel6.Caption=Panel3.Caption) and (Panel6.Caption=Panel9.Caption)

then

begin

Form3.Label1.Caption:=Form1.Panel3.Caption;

Form3.ShowModal;

clean;

end;

 

if (Panel4.BevelInner=bvLowered) and (Panel7.BevelInner=bvLowered) and (Panel10.BevelInner=bvLowered) then

if (Panel4.Caption=Panel7.Caption) and (Panel10.Caption=Panel4.Caption)

then

begin

Form3.Label1.Caption:=Form1.Panel4.Caption;

Form3.ShowModal;

clean;

end;

 

if (Panel6.BevelInner=bvLowered) and (Panel2.BevelInner=bvLowered) and (Panel10.BevelInner=bvLowered) then

if (Panel2.Caption=Panel6.Caption) and (Panel2.Caption=Panel10.Caption)

then

begin

Form3.Label1.Caption:=Form1.Panel2.Caption;

Form3.ShowModal;

clean;

end;

 

if (Panel6.BevelInner=bvLowered) and (Panel8.BevelInner=bvLowered) and (Panel4.BevelInner=bvLowered) then

if (Panel4.Caption=Panel6.Caption) and (Panel8.Caption=Panel4.Caption)

then

begin

Form3.Label1.Caption:=Form1.Panel4.Caption;

Form3.ShowModal;

clean;

end;

except;

end;

 

if (Panel2.BevelInner=bvLowered) and (Panel3.BevelInner=bvLowered) and (Panel4.BevelInner=bvLowered) and (Panel5.BevelInner=bvLowered) and (Panel6.BevelInner=bvLowered) and (Panel7.BevelInner=bvLowered) and (Panel8.BevelInner=bvLowered) and (Panel9.BevelInner=bvLowered) and (Panel10.BevelInner=bvLowered)

then

begin

Form1.Timer1.Enabled:=False;

ShowMessage ('Ничья, попробуйте ещё раз!');

clean;

end;

end;

 

procedure TForm1.NewMenuItemClick(Sender: TObject);

begin

clean; // Очистка игрового поля для новой игры

end;

 

procedure TForm1.FormCreate(Sender: TObject);

var

l:DWORD; // Процедура блокировки кнопки "Развернуть"

begin

l:=GetWindowLong(Self.Handle,GWL_STYLE);

l:=l and not(WS_MAXIMIZEBOX);

l:=SetWindowLong(Self.Handle,GWL_STYLE,l);

end;

 

 

procedure TForm1.N4Click(Sender: TObject);

begin

Close; // Выход из программы

end;

 

end.

 

 

unit Unit2;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, jpeg, ExtCtrls;

 

type

TForm2 = class(TForm)

Image1: TImage;

Label1: TLabel;

Label3: TLabel;

Label2: TLabel;

Label4: TLabel;

procedure Image1Click(Sender: TObject);

procedure Label1Click(Sender: TObject);

procedure Label2Click(Sender: TObject);

procedure Label3Click(Sender: TObject);

procedure Label4Click(Sender: TObject);

 

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form2: TForm2;

 

Implementation

 

{$R *.dfm}

 

procedure TForm2.Image1Click(Sender: TObject);

begin

Close; // Закрытие окна при нажатии на него

end;

 

procedure TForm2.Label1Click(Sender: TObject);

begin

Close;

end;

 

procedure TForm2.Label2Click(Sender: TObject);

begin

Close;

end;

 

procedure TForm2.Label3Click(Sender: TObject);

begin

Close;

end;

procedure TForm2.Label4Click(Sender: TObject);

begin

Close;

end;

 

end.

 

 

unit Unit3;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls, jpeg;

 

type

TForm3 = class(TForm)

Image1: TImage;

Label3: TLabel;

Label2: TLabel;

Label1: TLabel;

procedureFormShow(Sender: TObject);

procedure Image1Click(Sender: TObject);

procedure Label1Click(Sender: TObject);

procedure Label2Click(Sender: TObject);

procedure Label3Click(Sender: TObject);

 

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form3: TForm3;

 

implementation

 

uses Unit1;

 

{$R *.dfm}

 

procedure TForm3.FormShow(Sender: TObject);

begin

Form1.Timer1.Enabled:=False; // Выключаемтаймер

end;

 

procedure TForm3.Image1Click(Sender: TObject);

begin

Close; // Закрытие окна при нажатии на него

end;

 

procedure TForm3.Label1Click(Sender: TObject);

begin

Close;

end;

 

procedure TForm3.Label2Click(Sender: TObject);

begin

Close;

end;

 

procedure TForm3.Label3Click(Sender: TObject);

begin

Close;

end;

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-08-20 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: