Skocz do zawartości


W jaki sposób zrobić grę kółko i krzyżyk w Delphi


1 odpowiedź w tym temacie

#1 SlimSoft

    Nowy na forum

  • Użytkownicy
  • 1 Postów:

Napisano pon, 01 lut 2016 - 18:13

Wrzućcie 10 przycisków na formę i przypiszcie zdarzenia:

oto kod
delphi
unit code;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
type
  TForm3 = class(TForm)
        Button1: TButton;
        Button2: TButton;
        Button3: TButton;
        Button4: TButton;
        Button5: TButton;
        Button6: TButton;
        Button7: TButton;
        Button8: TButton;
        Button9: TButton;
        Button10: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure Button3Click(Sender: TObject);
        procedure Button4Click(Sender: TObject);
        procedure Button5Click(Sender: TObject);
        procedure Button6Click(Sender: TObject);
        procedure Button7Click(Sender: TObject);
        procedure Button8Click(Sender: TObject);
        procedure Button9Click(Sender: TObject);
        procedure Button10Click(Sender: TObject);
  private
        { Private declarations }
  public
  procedure SprawdzStan;
  function KrzyzykVictoria: Boolean;
  function Kolkovictoria: Boolean;
  procedure NoweRozdanie;
        { Public declarations }
  end;
var
  Form3: TForm3;
  Table: array [1..9] of byte = (0,0,0,0,0,0,0,0,0);
  // tablica stanów:
  {
  0 - bez napisu
  1: - kółko
  2: - krzyżyk
  }


  Gracz: Integer = 0; //gracz 1 - kółko, 0 - krzyżyk
implementation
{$R *.dfm}
procedure TForm3.Button10Click(Sender: TObject);
begin
button10.Enabled := False;
If Application.MessageBox(':-) nowe rozdanie?','Kółko i krzyżyk',MB_IconInformation or MB_YESNO) = ID_YES then
NoweRozdanie;
Button10.Enabled := True;
end;
procedure TForm3.Button1Click(Sender: TObject);
begin
if Button1.Caption <> '' then exit;

case Gracz of
0: begin button1.Caption := 'x'; Table[1] := 2; sprawdzStan; gracz := 1; button1.Enabled := False; end;
1: begin button1.Caption := 'o'; Table[1] := 1; sprawdzStan; gracz := 0; button1.Enabled := False; end;
end;
end;
procedure TForm3.Button2Click(Sender: TObject);
begin
if Button2.Caption <> '' then exit;

case Gracz of
0: begin button2.Caption := 'x'; Table[2] := 2; sprawdzStan; gracz := 1; button2.Enabled := False; end;
1: begin button2.Caption := 'o'; Table[2] := 1; sprawdzStan; gracz := 0; button2.Enabled := False; end;
end;

end;
procedure TForm3.Button3Click(Sender: TObject);
begin
if Button3.Caption <> '' then exit;

case Gracz of
0: begin button3.Caption := 'x'; Table[3] := 2; sprawdzStan; gracz := 1; button3.Enabled := False; end;
1: begin button3.Caption := 'o'; Table[3] := 1; sprawdzStan; gracz := 0; button3.Enabled := False; end;
end;
end;
procedure TForm3.Button4Click(Sender: TObject);
begin
if Button4.Caption <> '' then exit;

case Gracz of
0: begin button4.Caption := 'x'; Table[4] := 2; sprawdzStan; gracz := 1; button4.Enabled := False; end;
1: begin button4.Caption := 'o'; Table[4] := 1; sprawdzStan; gracz := 0; button4.Enabled := False; end;
end;
end;
procedure TForm3.Button5Click(Sender: TObject);
begin
if Button5.Caption <> '' then exit;

case Gracz of
0: begin button5.Caption := 'x'; Table[5] := 2; sprawdzStan; gracz := 1; button5.Enabled := False; end;
1: begin button5.Caption := 'o'; Table[5] := 1; sprawdzStan; gracz := 0; button5.Enabled := False; end;
end;
end;
procedure TForm3.Button6Click(Sender: TObject);
begin
if Button6.Caption <> '' then exit;

case Gracz of
0: begin button6.Caption := 'x'; Table[6] := 2; sprawdzStan; gracz := 1; button6.Enabled := False; end;
1: begin button6.Caption := 'o'; Table[6] := 1; sprawdzStan; gracz := 0; button6.Enabled := False; end;
end;
end;
procedure TForm3.Button7Click(Sender: TObject);
begin
if Button7.Caption <> '' then exit;

case Gracz of
0: begin button7.Caption := 'x'; Table[7] := 2; sprawdzStan; gracz := 1; button7.Enabled := False; end;
1: begin button7.Caption := 'o'; Table[7] := 1; sprawdzStan; gracz := 0; button7.Enabled := False; end;
end;
end;
procedure TForm3.Button8Click(Sender: TObject);
begin
if Button8.Caption <> '' then exit;

case Gracz of
0: begin button8.Caption := 'x'; Table[8] := 2; sprawdzStan; gracz := 1; button8.Enabled := False; end;
1: begin button8.Caption := 'o'; Table[8] := 1; sprawdzStan; gracz := 0; button8.Enabled := False; end;
end;
end;
procedure TForm3.Button9Click(Sender: TObject);
begin
if Button9.Caption <> '' then exit;

case Gracz of
0: begin button9.Caption := 'x'; Table[9] := 2; sprawdzStan; gracz := 1; button9.Enabled := False; end;
1: begin button9.Caption := 'o'; Table[9] := 1; sprawdzStan; gracz := 0; button9.Enabled := False; end;
end;
end;
procedure TForm3.NoweRozdanie;
begin
Button1.Caption := '';
Button2.Caption := '';
Button3.Caption := '';
Button4.Caption := '';
Button5.Caption := '';
Button6.Caption := '';
Button7.Caption := '';
Button8.Caption := '';
Button9.Caption := '';
Table[1] := 0;
Table[2] := 0;
Table[3] := 0;
Table[4] := 0;
Table[5] := 0;
Table[6] := 0;
Table[7] := 0;
Table[8] := 0;
Table[9] := 0;

Gracz := 1;
Button1.Enabled := True;
Button2.Enabled := True;
Button3.Enabled := True;
Button4.Enabled := True;
Button5.Enabled := True;
Button6.Enabled := True;
Button7.Enabled := True;
Button8.Enabled := True;
Button9.Enabled := True;
end;
procedure TForm3.SprawdzStan;
begin
{ KRZYŻYK }
// krzyzyk w poziomie
if (Table[1] = 2) and (Table[2] = 2) and (Table[3] = 2) then KrzyzykVictoria;
if (Table[4] = 2) and (Table[5] = 2) and (Table[6] = 2) then KrzyzykVictoria;
if (Table[7] = 2) and (Table[8] = 2) and (Table[9] = 2) then KrzyzykVictoria;
// krzyżyk w pionie
if (Table[1] = 2) and (Table[4] = 2) and (Table[7] = 2) then KrzyzykVictoria;
if (Table[2] = 2) and (Table[5] = 2) and (Table[8] = 2) then KrzyzykVictoria;
if (Table[3] = 2) and (Table[6] = 2) and (Table[9] = 2) then KrzyzykVictoria;
// krzyżyk po skosie
if (Table[1] = 2) and (Table[5] = 2) and (Table[9] = 2) then KrzyzykVictoria;
if (Table[7] = 2) and (Table[5] = 2) and (Table[3] = 2) then KrzyzykVictoria;
{ K&#211;ŁKO}
// kółko w poziomie
if (Table[1] = 1) and (Table[2] = 1) and (Table[3] = 1) then KolkoVictoria;
if (Table[4] = 1) and (Table[5] = 1) and (Table[6] = 1) then KolkoVictoria;
if (Table[7] = 1) and (Table[8] = 1) and (Table[9] = 1) then KolkoVictoria;
// kółko w pionie
if (Table[1] = 1) and (Table[4] = 1) and (Table[7] = 1) then KolkoVictoria;
if (Table[2] = 1) and (Table[5] = 1) and (Table[8] = 1) then KolkoVictoria;
if (Table[3] = 1) and (Table[6] = 1) and (Table[9] = 1) then KolkoVictoria;
// kółko po skosie
if (Table[1] = 1) and (Table[5] = 1) and (Table[9] = 1) then KolkoVictoria;
if (Table[7] = 1) and (Table[5] = 1) and (Table[3] = 1) then KolkoVictoria;

end;
function TForm3.Kolkovictoria: Boolean;
begin
If Application.MessageBox('Wygrało kółko o :-) nowe rozdanie?','Kółko i krzyżyk',MB_IconInformation or MB_YESNO) = ID_YES then
NoweRozdanie;
Result := True;
end;
function TForm3.KrzyzykVictoria: Boolean;
begin
If Application.MessageBox('Wygrał krzyżyk x :-) nowe rozdanie?','Kółko i krzyżyk',MB_IconInformation or MB_YESNO) = ID_YES then
NoweRozdanie;
Result := True;
end;
end.
 


#2 babubabu

    Starszy bywalec

  • Użytkownicy
  • 82 Postów:

Napisano śro, 03 lut 2016 - 09:28

http://forum.4progra...kolko_i_krzyzyk