Stworzyłem grę kółko i krzyżyk. Ale trochę dziwną. Wykorzystuje w obliczaniu wyniku zmienne. Kompilator nie chcę mi skąpilować pliku mówi że jest incompantible types w :
if tura = 0 then
begin
a1 := a1 + 1;
b1 := b1 + 1;
c1 := c1 + 1;
tura := tura + 1;
a1.Caption := 'X';
a1.Enabled := false;
Czy ktoś mógłby znaleźć błąd w:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
Edit6: TEdit;
Label2: TLabel;
Button1: TButton;
Button2: TButton;
a1: TBut4on;
a4: TButton;
a2: TButton;
a3: TButton;
a5: TButton;
a7: TButton;
a8: TButton;
a6: TButton;
a9: TButton;
Timer1: TTimer;
procedure a1Click(Sender: TObject);
procedure a2Click(Sender: TObject);
procedure a3Click(Sender: TObject);
procedure a4Click(Sender: TObject);
procedure a5Click(Sender: TObject);
procedure a6Click(Sender: TObject);
procedure a7Click(Sender: TObject);
procedure a8Click(Sender: TObject);
procedure a9Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
var
tura : integer;
a1 : integer;
a2 : integer;
a3 : integer;
b1 : integer;
b2 : integer;
b3 : integer;
c1 : integer;
c2 : integer;
x1 : integer;
x2 : integer;
x3 : integer;
y1 : integer;
y2 : integer;
y3 : integer;
z1 : integer;
z2 : integer;
procedure TForm1.a1Click(Sender: TObject);
begin
if tura = 0 then
begin
a1 := a1 + 1;
b1 := b1 + 1;
c1 := c1 + 1;
tura := tura + 1;
a1.Caption := 'X';
a1.Enabled := false;
end;
if tura = 1 then
begin
x1 := x1 + 1;
y1 := y1 + 1;
z1 := z1 + 1;
tura := tura - 1;
a1.Caption := 'O';
a1.Enabled := false;
end;
end;
procedure TForm1.a2Click(Sender: TObject);
begin
if tura = 0 then
begin
a1 := a1 + 1;
b2 := b2 + 1;
tura := tura + 1;
a2.Caption := 'X';
a2.Enabled := false;
end;
if tura = 1 then
begin
x1 := x1 + 1;
y2 := y2 + 1;
tura := tura - 1;
a2.Caption := 'O';
a2.Enabled := false;
end;
end;
procedure TForm1.a3Click(Sender: TObject);
begin
if tura = 0 then
begin
a1 := a1 + 1;
b3 := b3 + 1;
c2 := c2 + 1;
tura := tura + 1;
a3.Caption := 'X';
a3.Enabled := false;
end;
if tura = 1 then
begin
x1 := x1 + 1;
y3 := y3 + 1;
z2 := z2 + 1;
tura := tura - 1;
a3.Caption := 'O';
a3.Enabled := false;
end;
end;
procedure TForm1.a4Click(Sender: TObject);
begin
if tura = 0 then
begin
a2 := a2 + 1;
b1 := b1 + 1;
tura := tura + 1;
a4.Caption := 'X';
a4.Enabled := false;
end;
if tura = 1 then
begin
x2 := x2 + 1;
y1 := y1 + 1;
tura := tura - 1;
a4.Caption := 'O';
a4.Enabled := false;
end;
end;
procedure TForm1.a5Click(Sender: TObject);
begin
if tura = 0 then
begin
a2 := a2 + 1;
b2 := b2 + 1;
tura := tura + 1;
a5.Caption := 'X';
a5.Enabled := false;
end;
if tura = 1 then
begin
x2 := x2 + 1;
y2 := y2 + 1;
z1 := z1 + 1;
z2 := z2 + 1;
tura := tura - 1;
a5.Caption := 'O';
a5.Enabled := false;
end;
end;
procedure TForm1.a6Click(Sender: TObject);
begin
if tura = 0 then
begin
a2 := a2 + 1;
b3 := b3 + 1;
tura := tura + 1;
a6.Caption := 'X';
a6.Enabled := false;
end;
if tura = 1 then
begin
x2 := x2 + 1;
y3 := y3 + 1;
tura := tura - 1;
a6.Caption := 'O';
a6.Enabled := false;
end;
end;
procedure TForm1.a7Click(Sender: TObject);
begin
if tura = 0 then
begin
a3 := a3 + 1;
b1 := b1 + 1;
c2 := c2 + 1;
tura := tura + 1;
a7.Caption := 'X';
a7.Enabled := false;
end;
if tura = 1 then
begin
x3 := x3 + 1;
y1 := y1 + 1;
z2 := z2 + 1;
tura := tura - 1;
a7.Caption := 'O';
a7.Enabled := false;
end;
end;
procedure TForm1.a8Click(Sender: TObject);
begin
if tura = 0 then
begin
a3 := a3 + 1;
b2 := b2 + 1;
tura := tura + 1;
a8.Caption := 'X';
a8.Enabled := false;
end;
if tura = 1 then
begin
x3 := x3 + 1;
y2 := y2 + 1;
tura := tura - 1;
a8.Caption := 'O';
a8.Enabled := false;
end;
end;
procedure TForm1.a9Click(Sender: TObject);
begin
if tura = 0 then
begin
a3 := a3 + 1;
b3 := b3 + 1;
c1 := c1 + 1;
tura := tura + 1;
a9.Caption := 'X';
a9.Enabled := false;
end;
if tura = 1 then
begin
x3 := x3 + 1;
y3 := y3 + 1;
z1 := z1 + 1;
tura := tura - 1;
a9.Caption := 'O';
a9.Enabled := false;
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
If a1 = 3 then
begin
ShowMessage('Wins');
end;
If a2 = 3 then
begin
ShowMessage('Wins');
end;
If a3 = 3 then
begin
ShowMessage('Wins');
end;
If b1 = 3 then
begin
ShowMessage('Wins');
end;
If b2 = 3 then
begin
ShowMessage('Wins');
end;
If b3 = 3 then
begin
ShowMessage('Wins');
end;
If c1 = 3 then
begin
ShowMessage('Wins');
end;
If c2 = 3 then
begin
ShowMessage('Wins');
end;
If x1 = 3 then
begin
ShowMessage('Wins');
end;
If x2 = 3 then
begin
ShowMessage('Wins');
end;
If x3 = 3 then
begin
ShowMessage('Wins');
end;
If y1 = 3 then
begin
ShowMessage('Wins');
end;
If y2 = 3 then
begin
ShowMessage('Wins');
end;
If y3 = 3 then
begin
ShowMessage('Wins');
end;
If z1 = 3 then
begin
ShowMessage('Wins');
end;
If z2 = 3 then
begin
ShowMessage('Wins');
end;
end;
end.