Kółko i Krzyżyk w Delphi. Błąd

0

Ejo. Mam problem z napisaniem aplikacji Kółko i krzyżyk. Korzystam z Delphi 7.0. Grę stworzyłem z pomocą "Delphi 5 dla początkujących"

Wszystko wyszło mi następująco.

unit kik;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Buttons;

type
  TMainForm = class(TForm)
    b1: TSpeedButton;
    b2: TSpeedButton;
    b3: TSpeedButton;
    b4: TSpeedButton;
    b5: TSpeedButton;
    b6: TSpeedButton;
    b7: TSpeedButton;
    b8: TSpeedButton;
    b9: TSpeedButton;
    Player1: TSpeedButton;
    Player2: TSpeedButton;
    procedure b1Click(Sender: TObject);
  private

  procedure CheckIt;
  if (b1.Caption = 'X') and (b2.Caption = 'X') and
  (b3.Caption = 'X') or (b1.Caption = 'O' and
  (b2.Caption = 'O') and (b3.Caption = 'O') then
  Winner;
  if (b1.Caption = 'X') and (b5.Caption = 'X') and
  (b9.Caption = 'X') or (b1.Caption = 'O' and
  (b5.Caption = 'O') and (b3.Caption = 'O') then
  Winner;
  if (b1.Caption = 'X') and (b4.Caption = 'X') and
  (b7.Caption = 'X') or (b1.Caption = 'O' and
  (b4.Caption = 'O') and (b7.Caption = 'O') then
  Winner;
  if (b4.Caption = 'X') and (b5.Caption = 'X') and
  (b6.Caption = 'X') or (b4.Caption = 'O' and
  (b5.Caption = 'O') and (b6.Caption = 'O') then
  Winner;
  if (b7.Caption = 'X') and (b8.Caption = 'X') and
  (b9.Caption = 'X') or (b7.Caption = 'O' and
  (b8.Caption = 'O') and (b9.Caption = 'O') then
  Winner;
  if (b2.Caption = 'X') and (b5.Caption = 'X') and
  (b8.Caption = 'X') or (b2.Caption = 'O' and
  (b5.Caption = 'O') and (b8.Caption = 'O') then
  Winner;
  if (b3.Caption = 'X') and (b6.Caption = 'X') and
  (b9.Caption = 'X') or (b3.Caption = 'O' and
  (b6.Caption = 'O') and (b9.Caption = 'O') then
  Winner;
  if (b3.Caption = 'X') and (b5.Caption = 'X') and
  (b7.Caption = 'X') or (b3.Caption = 'O' and
  (b5.Caption = 'O') and (b7.Caption = 'O') then
  Winner;
  procedure Change;
  if Player1.Down then //Jezeli wcisnięty jest klawisz Player1
  Player2.Dwoan := True //Wcisniety klawisz Player2
  else //Jezeli jest odwrotnie....
  Player1.Down := True; //...wcisnij klawisz Player1
  procedure Winne;
  if Player1.Down then
  ShowMessage(Format('Jestes zajebisty! Wygrał gracz %s', [Player1.Caption]))
  else
  ShowMessage(Format('Jestes zajebisty! Wygrał gracz %s', [Player2.Caption]));


    { Private declarations }
  public
    { Public declarations }
  end;

var
  MainForm: TMainForm;

implementation

{$R *.dfm}

procedure TMainForm.b1Click(Sender: TObject);
if Player1.Down then
TSpeedButton(Sender).Caption := 'X'
else
TSpeedButton(Sender).Caption := 'O';
CheckIt;
Change;

begin

end;



end.

JEDNAK kiedy próbuję włączyć aplikacje skrótem F9 zaznacza mi się linijka:

  if (b1.Caption = 'X') and (b2.Caption = 'X') and

A na dole pisze:

[Error] kik.dpr(26): 'END' expected but 'IF' found
[Error] kik.dpr(26): ',' or ':' expected but '=' found
[Error] kik.dpr(26): Identifier redeclared: 'b2'
[Error] kik.dpr(26): ',' or ':' expected but '=' found
[Error] kik.dpr(27): Identifier redeclared: 'b3'
[Error] kik.dpr(27): ',' or ':' expected but '=' found
[Error] kik.dpr(27): Identifier redeclared: 'b1'
[Error] kik.dpr(27): ',' or ':' expected but '=' found
[Error] kik.dpr(28): ',' or ')' expected but '.' found
[Error] kik.dpr(28): Incompatible types: 'Integer' and 'Char'
[Error] kik.dpr(28): ',' or ':' expected but '=' found
[Error] kik.dpr(29): ',' or ':' expected but ';' found
[Error] kik.dpr(30): ',' or ')' expected but '.' found
[Error] kik.dpr(30): Incompatible types: 'Integer' and 'Char'
[Error] kik.dpr(30): ',' or ':' expected but '=' found
[Error] kik.dpr(31): Identifier redeclared: 'b9'
[Error] kik.dpr(31): ',' or ':' expected but '=' found
[Error] kik.dpr(31): Identifier redeclared: 'b1'
[Error] kik.dpr(31): ',' or ':' expected but '=' found
[Error] kik.dpr(32): ',' or ')' expected but '.' found
[Error] kik.dpr(32): Incompatible types: 'Integer' and 'Char'
[Error] kik.dpr(32): ',' or ':' expected but '=' found
[Error] kik.dpr(33): Identifier redeclared: 'Winner'
[Error] kik.dpr(34): Identifier redeclared: 'b1'
[Error] kik.dpr(34): Incompatible types: 'Integer' and 'Char'
[Error] kik.dpr(34): ',' or ':' expected but '=' found
[Error] kik.dpr(35): Identifier redeclared: 'b7'
[Error] kik.dpr(35): ',' or ':' expected but '=' found
[Error] kik.dpr(35): Identifier redeclared: 'b1'
[Error] kik.dpr(35): ',' or ':' expected but '=' found
[Error] kik.dpr(36): ',' or ')' expected but '.' found
[Error] kik.dpr(36): Incompatible types: 'Integer' and 'Char'
[Error] kik.dpr(36): ',' or ':' expected but '=' found
[Error] kik.dpr(37): Identifier redeclared: 'Winner'
[Error] kik.dpr(38): Identifier redeclared: 'b4'
[Fatal Error] kik.dpr(38): Compilation terminated; too many errors

Z góry dziękuję za pomoc.

0

Proponuję napisać jeszcze raz uważniej czytając ten kod jest pozbawiony sensu zbyt dużo błędów do poprawianie a jak zrobisz jeszcze raz (tym razem lepiej) to pewnie czegoś się przy okazji nauczysz.

0

I takie bzdury były w "Delphi 5 dla początkujących"????

Co to za wpisywanie funkcji w deklaracji klasy? Cała ta pisanina funkcji powinna się znaleźć po implementation poczynając od

procedure CheckIt;

a kończąc na

 ShowMessage(Format('Jestes zajebisty! Wygrał gracz %s', [Player2.Caption]));

w książce nie napisali, że każda procedura ma postać?

procedure jakastam;
begin
//tutaj kod procedury
end;

Popraw i zobaczymy dalej...

1 użytkowników online, w tym zalogowanych: 0, gości: 1