unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls, Menus;

type
  TForm1 = class(TForm)
    Image1: TImage;
    MainMenu1: TMainMenu;
    hra1: TMenuItem;
    start1: TMenuItem;
    koniec1: TMenuItem;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure mreza;
    procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure kontrola(x:integer);
    procedure koniec1Click(Sender: TObject);
    procedure start1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  f:tcanvas;
  d:boolean;
  aa:array [1..10,1..10] of integer;
implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
halt;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
f:=image1.canvas;
f.rectangle(0,0,image1.width,image1.height);
 mreza;
end;
procedure Tform1.mreza;
var i,j:integer;
begin
for i:=1 to 10 do
for j:=1 to 10 do
aa[i,j]:=0;

for i:=0 to 9 do
   for j:=0 to 9 do
      begin
      f.Rectangle(i*30,j*30,i*30+30,j*30+30);
      end;
end;


procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
  var k,i,j,m:integer;
begin
i:=x div 30;
j:=y div 30;
x:=30*i+12;
y:=30*j+11;
if d then begin
           if aa[i+1,j+1]=0 then
           begin
                  aa[i+1,j+1]:=1;
                  f.font.color:=clred;
                  f.Textout(x,y, 'O');
                  d:=not d;
           end;
          end
else begin
      if aa[i+1,j+1]=0 then
           begin
                  aa[i+1,j+1]:=2;
                  f.font.size:=10;

                   f.font.color:=clblue;
                  f.Textout(x,y, 'X');
                  d:=not d;
           end;
     end;



kontrola(aa[i+1,j+1]);

end;
procedure tform1.kontrola(x:integer);
var i,j,s1,s2,s3,s4:integer;
begin
s1:=0;
s2:=0;
s3:=0;
s4:=0;
for i:=1 to 10 do
for j:=1 to 10 do
begin
 if (aa[i,j]=aa[i,j+1]) and (aa[i,j+1]=aa[i,j+2])and (aa[i,j+2]=aa[i,j+3])and (aa[i,j+3]=aa[i,j+4])and (aa[i,j]=x) then s1:=1;
 if (aa[j,i]=aa[j+1,i]) and (aa[j+1,i]=aa[j+2,i])and (aa[j+2,i]=aa[j+3,i])and (aa[j+3,i]=aa[j+4,i])and (aa[j,i]=x) then s2:=1;
 if (aa[i,j]=aa[i+1,j+1]) and (aa[i+1,j+1]=aa[i+2,j+2])and (aa[i+2,j+2]=aa[i+3,j+3])and (aa[i+3,j+3]=aa[i+4,j+4])and (aa[i,j]=x) then s3:=1;
 if (aa[i,j]=aa[i+1,j-1]) and (aa[i+1,j-1]=aa[i+2,j-2])and (aa[i+2,j-2]=aa[i+3,j-3])and (aa[i+3,j-3]=aa[i+4,j-4])and (aa[i,j]=x) then s4:=1;
 end;


if (not d) and ( (s1=1) or (s2=1)or (s3=1) or (s4=1)) then messagedlg('Vyhral hrac c.O',mtinformation,[mbok],0);
if ( d) and ( (s1=1) or (s2=1)or (s3=1) or (s4=1)) then messagedlg('Vyhral hrac c.X',mtinformation,[mbok],0);


end;


procedure TForm1.koniec1Click(Sender: TObject);
begin
 halt;
end;

procedure TForm1.start1Click(Sender: TObject);
begin
 mreza;
end;

end.