MİO GRAF  Milli İntellektual Oyun
       

   ƏSAS     XƏBƏRLƏR     SİZİN DƏRSLƏR     FOTO QALEREYA     VİDEO DƏRSLƏR     DƏRS GÖNDƏR     SUAL-CAVAB
DƏRSLİKLƏR
        AutoCad0003
        3D Studio Max0057
        Adobe After Effect0002
        Adobe Premier0002
        Adobe Photoshop0094
        Visual Studio0002
        Flash / Action Script0013
        Asp / Asp.net / C#0006
        PHP0002
        HTML / CSS0002
        JavaScript0001
        Visual Basic0004
        Delphi0002
        C / C++0006
        Microsoft Office0005
        Microsoft Windows0018
        Digər dərslər...0016

GİRİŞ
   İstifadəçi adı
   

   Şifrə
    
 
                                             
    Qeydiyyat ol
    Şifrəni unutdun?
 

YENİ LİNKLƏR
   tehsilimizinfo.blogspot.c...1366 
   www.azresce.com3546 
   www.evalin.az4614 
   www.novruzov.net4829 
   www.azgraf.net/mocuzeler5659 
   videoders.azersayt.com5991 
   www.mado.az6401 
   www.artdeco.az4991 
   www.cv-az.com7723 
   www.fakto.info5721 
 Ardı    


ELANLAR
Yaşıl: işçi axtarıram - Mavi: iş axtarıramBeynəlxalq holding koperasiyası. »»
Yaşıl: işçi axtarıram - Mavi: iş axtarıramMünasib iş axtarıram... »»
Yaşıl: işçi axtarıram - Mavi: iş axtarıramQrafik dizayner »»
Yaşıl: işçi axtarıram - Mavi: iş axtarıramNeft şirkətində işləmək istiyirəm. »»
Yaşıl: işçi axtarıram - Mavi: iş axtarıramAsp.Net, Delphi, HTML, Web Dizayner »»
Yaşıl: işçi axtarıram - Mavi: iş axtarıramİşci teleb olunur »»
Yaşıl: işçi axtarıram - Mavi: iş axtarıramİngilis dili hazırlığı. »»
Yaşıl: işçi axtarıram - Mavi: iş axtarıramİşçi tələb olunur. »»
 Ardı     



İstifadəçi: 0000732
Video dərs: 0000042
Şəkilli dərs: 0000193
Sual: 0000070
Şəkil: 0000305
Xəbər: 0000470
Sadə oyun proqramlama.
X və O oyununu sadə formada proqramlamaq üçün nümunəvi bir dərs.

Tarix:        08.02.2010
Oxunub:   3072        
Müəllif:     
urik (Ürfan Vəliyev)   

Çap et        Şərh yaz  


Oyunun sadəcə proqram hissəsini qeyd edirəm. Oyunu linkdən yükləyə bilərsiz...
Kodlara nəzər salaraq proqramlama alqoritması sahəsində biliyinizi artıra bilərsiniz...

http://www.azgraf.net/download/xoGame.rar

<hr />

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    Panel1: TPanel;
    TntLabel1: TTntLabel;
    TntLabel2: TTntLabel;
    Label2: TLabel;
    Timer1: TTimer;
    procedure Button1Click(Sender: TObject);
    function yaz:integer;
    procedure FormMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
      function yoxla:boolean;
      function xana11:integer;
      function xana12:integer;
      function xana13:integer;
      function xana21:integer;
      function xana22:integer;
      function xana23:integer;
      function xana31:integer;
      function xana32:integer;
      function xana33:integer;
    procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  gedis:array[1..3, 1..3] of char=(('-', '-', '-'),
                                  ('-', '-', '-'),
                                    ('-', '-', '-'));
  xana:array[1..3, 1..3] of integer;
  setir, sutun:integer;
  f:char;
  x, y:integer;
  i, j:integer;
implementation

{$R *.dfm}

function TForm1.yaz:integer;
begin
if odd(i) then
Result:=3
else
Result:=2;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
TntLabel1.Caption:='';
Form1.Repaint;
Form1.Visible:=false;
Form1.Visible:=true;
for i:=1 to 3 do
for j:=1 to 3 do
begin
gedis[i, j]:='-';
end;
Randomize;
i:=random(100);
x:=100;
y:=100;
canvas.Pen.Width:=2;
with Canvas do
begin
Polygon([Point(x, y),     Point(x, y+300)]);
Polygon([Point(x+100, y), Point(x+100, y+300)]);
Polygon([Point(x+200, y), Point(x+200, y+300)]);
Polygon([Point(x+300, y), Point(x+300, y+300)]);
Polygon([Point(x, y),     Point(x+300, y)]);
Polygon([Point(x, y+100), Point(x+300, y+100)]);
Polygon([Point(x, y+200), Point(x+300, y+200)]);
Polygon([Point(x, y+300), Point(x+300, y+300)]);
end;
end;





procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin

label1.Caption:=inttostr(i);
Canvas.Pen.Width:=5;
yaz;
  //Label2.Visible:=true;
//1ci xana
if ((x>100) and (y>100)) and ((x<200) and (y<200)) then
begin
if gedis[1, 1]<>'-' then
exit;
if yaz=3 then

begin
gedis[1, 1]:='x';
f:=gedis[1, 1];
xana11;

end
else
begin
gedis[1, 1]:='0';
f:=gedis[1, 1];
Canvas.RoundRect(110, 110, 190, 190, 120, 120);

end;
end
else

//2ci xana
if ((x>200) and (y>100)) and ((x<300) and (y<200)) then
begin
if gedis[1, 2]<>'-' then
exit;
if yaz=3 then
begin
gedis[1, 2]:='x';
f:=gedis[1, 2];
xana12;

end
else
begin
gedis[1, 2]:='0';
f:=gedis[1, 2];
Canvas.RoundRect(210, 110, 290, 190, 110, 110);

end;
end
else


//3cu xana
if ((x>300) and (y>100)) and ((x<400) and (y<200)) then
begin
if gedis[1, 3]<>'-' then
exit;
if yaz=3 then
begin
  gedis[1, 3]:='x';
f:=gedis[1, 3];
xana13;

end
else
begin
  gedis[1, 3]:='0';
f:=gedis[1, 3];
Canvas.RoundRect(310, 110, 390, 190, 110, 110);

end;
end
else

//4cu xana
  if ((x>100) and (y>200)) and ((x<200) and (y<300)) then
begin
if gedis[2, 1]<>'-' then
exit;
if yaz=3 then
begin
   gedis[2, 1]:='x';
f:=gedis[2, 1];
xana21;
end
else
begin
   gedis[2, 1]:='0';
f:=gedis[2, 1];
Canvas.RoundRect(110, 210, 190, 290, 110, 110);
end;
end
else


//5ci xana
   if ((x>200) and (y>200)) and ((x<300) and (y<300)) then
begin
if gedis[2, 2]<>'-' then
exit;
  if yaz=3 then
  begin
    gedis[2, 2]:='x';
f:=gedis[2, 2];
  xana22;
  end
  else
begin
  gedis[2, 2]:='0';
f:=gedis[2, 2];
  Canvas.RoundRect(210, 210, 290, 290, 110, 110);
end;
end
else

//6ci xana
   if ((x>300) and (y>200)) and ((x<400) and (y<300)) then
begin
if gedis[2, 3]<>'-' then
exit;
    if yaz=3 then
    begin
      gedis[2, 3]:='x';
f:=gedis[2, 3];
  xana23;
  end
  else
begin
  gedis[2, 3]:='0';
f:=gedis[2, 3];
  Canvas.RoundRect(310, 210, 390, 290, 110, 110);
  end;
end
else

//7ci xana
   if ((x>100) and (y>300)) and ((x<200) and (y<400)) then
begin
if gedis[3, 1]<>'-' then
exit;
   if yaz=3 then
   begin
     gedis[3, 1]:='x';
f:=gedis[3, 1];
  xana31;
  end
  else
  begin
    gedis[3, 1]:='0';
f:=gedis[3, 1];
  Canvas.RoundRect(110, 310, 190, 390, 110, 110);
end;
end
else


// 8ci xana
   if ((x>200) and (y>300)) and ((x<300) and (y<400)) then
    begin
    if gedis[3, 2]<>'-' then
exit;
      if yaz=3 then
      begin
        gedis[3, 2]:='x';
f:=gedis[3, 2];
  xana32;
  end
  else
begin
  gedis[3, 2]:='0';
f:=gedis[3, 2];
  Canvas.RoundRect(210, 310, 290, 390, 110, 110);
end;
end
else

//9cu xana
   if ((x>300) and (y>300)) and ((x<400) and (y<400)) then
begin
if gedis[3, 3]<>'-' then
exit;
   if yaz=3 then
    begin
     gedis[3, 3]:='x';
f:=gedis[3, 3];
  xana33;
  end
  else
begin
    gedis[3, 3]:='0';
f:=gedis[3, 3];
  Canvas.RoundRect(310, 310, 390, 390, 110, 110);
end;
end
else
ShowMessage('Bura yazmaq olmaz!');


  if yoxla=true then
begin
TntLabel1.Caption:='Uddun';
end;
i:=i+1;
end;



function TForm1.yoxla:boolean;
begin
if (gedis[1, 1]=f) and (gedis[1, 2]=f) and (gedis[1, 3]=f) then
begin
Result:=true;
Canvas.Polygon([Point(110, 150), Point(390, 150)]);
end
else
if (gedis[2, 1]=f) and (gedis[2, 2]=f) and (gedis[2, 3]=f) then
begin
Result:=true;
  Canvas.Polygon([Point(110, 250), Point(390, 250)]);
  end
else
if (gedis[3, 1]=f) and (gedis[3, 2]=f) and (gedis[3, 3]=f) then
begin
Result:=true;
   Canvas.Polygon([Point(110, 350), Point(390, 350)]);
   end
else
  if (gedis[1, 1]=f) and (gedis[2, 1]=f) and (gedis[3, 1]=f) then
  begin
Result:=true;
  Canvas.Polygon([Point(150, 110), Point(150, 390)]);
  end
else
   if (gedis[1, 2]=f) and (gedis[2, 2]=f) and (gedis[3, 2]=f) then
   begin
Result:=true;
      Canvas.Polygon([Point(250, 110), Point(250, 390)]);
      end
else
  if (gedis[1, 3]=f) and (gedis[2, 3]=f) and (gedis[3, 3]=f) then
  begin
Result:=true;
       Canvas.Polygon([Point(350, 110), Point(350, 390)]);
       end
       else
    if (gedis[1, 1]=f) and (gedis[2, 2]=f) and (gedis[3, 3]=f) then
  begin
Result:=true;
       Canvas.Polygon([Point(110, 110), Point(390, 390)]);
       end
else
if (gedis[1, 3]=f) and (gedis[2, 2]=f) and (gedis[3, 1]=f) then
  begin
Result:=true;
       Canvas.Polygon([Point(390, 110), Point(110, 390)]);
       end
       else
TntLabel1.Caption:=TntLabel2.Caption;


end;


function TForm1.xana11: integer;
begin
Canvas.Polygon([Point(110, 110), Point(190, 190)]);
Canvas.Polygon([Point(110, 190), Point(190, 110)]);
Result:=1;
end;

function TForm1.xana12: integer;
begin
Canvas.Polygon([Point(210, 110), Point(290, 190)]);
Canvas.Polygon([Point(210, 190), Point(290, 110)]);
Result:=2;
end;

function TForm1.xana13: integer;
begin
Canvas.Polygon([Point(310, 110), Point(390, 190)]);
Canvas.Polygon([Point(310, 190), Point(390, 110)]);
Result:=3;
end;

function TForm1.xana21: integer;
begin
Canvas.Polygon([Point(110, 210), Point(190, 290)]);
Canvas.Polygon([Point(190, 210), Point(110, 290)]);
Result:=1;
end;

function TForm1.xana22: integer;
begin
Canvas.Polygon([Point(210, 210), Point(290, 290)]);
Canvas.Polygon([Point(290, 210), Point(210, 290)]);
Result:=1;
end;

function TForm1.xana23: integer;
begin
Canvas.Polygon([Point(310, 210), Point(390, 290)]);
Canvas.Polygon([Point(390, 210), Point(310, 290)]);
Result:=1;
end;

function TForm1.xana31: integer;
begin
Canvas.Polygon([Point(110, 310), Point(190, 390)]);
Canvas.Polygon([Point(190, 310), Point(110, 390)]);
Result:=1;
end;

function TForm1.xana32: integer;
begin
Canvas.Polygon([Point(210, 310), Point(290, 390)]);
Canvas.Polygon([Point(290, 310), Point(210, 390)]);
Result:=1;
end;

function TForm1.xana33: integer;
begin
Canvas.Polygon([Point(310, 310), Point(390, 390)]);
Canvas.Polygon([Point(390, 310), Point(310, 390)]);
Result:=1;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
if (x>100) and (y>100) and (x<400) and (y<400) then
Form1.Cursor:=crHandPoint
else
Form1.Cursor:=crDefault;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label2.Caption:=TimeToStr(time);

end;

end.


 



Ferid
07.02.2012 14:51
Salam olsun herkese, Bagislayin movzudan kenar danisacam ama 1 - ci reyde Urik nikli biri yaratmisam sozunden istifade edib, Yaratmaq Allaha mexsus oldugu ucun bu soz den insanlarin istifade etmemesi lap yaxsi olardi, Tesekkurler....
urik
10.02.2010 12:01
Yox Nail qardasim, ele Olmayasidir. proqramda istifade olunan funksiyalari ozum yazmışam onu sen tezden yazmalisan, sonra Ctrl+ Shift+C ni basmalisan delphi onu ozu compile etsin, ona gore copy hec duzgun vesite deyil.
Nail
09.02.2010 11:40
Hmm olduqda genis proqram yazmisan urik. Lap dubai daki binaya benziyir. Eline saglik... Bunu test ucun kopy edib delphi atsaq isleyecek?
AzGraf
08.02.2010 17:43
Hə Ürfan. Sualı olan buyursun.... Qeydiyyata da ehtiyac yoxdur artıq...
urik
08.02.2010 17:35
Düzü programın kodlaarına axirda baxanda ozumde teeccub eledim, bu qeder çox olacağını fikirləşmirdim. Onu ders kimi elemek çətin olar, çünki istifadə olunmuş funksiya və proseduralar qarışıq şəkildə istifadə olunub. Yeni başlayanlar üçün mencə çox çətin olacaq. Ama belə konktret sual olsa memnuniyyetlə cavablandırıram.
Ramil
08.02.2010 16:46
Ürfan qardaş çox sağ ol. Bunu məncə bir az daha səliqəli dərs formasına salaraq şəkilli bir dərs də yaz... Yeni başlayanlar üçün daha rahat olar elə... Uğurlar...

   Ad, soyad:
    *
   Əlaqə:
    *
   (e-poçt, şəxsi sayt ya da telefon ola bilər)

   Şərh:
  

           
   • şərh yazmaq üçün saytımıza üzv olmalı və istifadəçi girişi etməlisiniz;
   • şərh yazarkən təhqir edici sözlərdən istifadə etməməli və mövzudan kənarlaşmamalısınız;
   • latın hərflərindən istifadə etməlisiniz.
ELAN GÖNDƏRDƏRS GÖNDƏRSAYT SİFARİŞİREKLAM SİFARİŞİBİZİM SƏHİFƏƏLAQƏ  
   Dizayn & proqramist: Emin Novruzov
   Şəxsi Portal  © 2010 Bütün hüquqları qorunur

   Standart 1024x768 px ekran ölçüsü, minimum 64 K/Bit internet sürəti ilə saytdan rahat istifadə edə bilərsiniz!