Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Исходный текст. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,






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;

procedure AboutMenuItemClick(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);

procedure NewMenuItemClick(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure N4Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

 

Implementation

 

{$R *.dfm}

 

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

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< > '' then exit; // Проверка на заголовок панели (анти-мухлеж)

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;

procedure FormShow(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;

 

end.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.