All pastes #291759 Raw Edit

Stuff

public text v1 · immutable
#291759 ·published 2006-12-25 18:26 UTC
rendered paste body
unit Unit2;

interface

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

type

  TGame = class

    bNorth    : boolean;
    bSouth    : boolean;
    bEast     : boolean;
    bWeast    : boolean;

    lastkey   : byte;

  private

    function GetEast   : boolean;
    function GetNorth  : boolean;
    function GetSouth  : boolean;
    function GetWeast  : boolean;

    procedure SetEast  (const Value: boolean);
    procedure SetNorth (const Value: boolean);
    procedure SetSouth (const Value: boolean);
    procedure SetWeast (const Value: boolean);

  public

    function NE: boolean;
    function NW: boolean;
    function SE: boolean;
    function SW: boolean;

    function SimultanDir: byte;

    function isBlocked: boolean;

    property North : boolean read GetNorth write SetNorth;
    property South : boolean read GetSouth write SetSouth ;
    property East  : boolean read GetEast  write SetEast ;
    property Weast : boolean read GetWeast write SetWeast ;

  end;

implementation

{ TGame }

function TGame.NE: boolean;
begin
  if bNorth=TRUE and bEast=TRUE then Result:=TRUE else Result:=FALSE;
end;

function TGame.NW: boolean;
begin
  if bNorth=TRUE and bWeast=TRUE then Result:=TRUE else Result:=FALSE;
end;

function TGame.SE: boolean;
begin
  if bSouth=TRUE and bEast=TRUE then Result:=TRUE else Result:=FALSE;
end;

function TGame.SW: boolean;
begin
  if bSouth=TRUE and bEast=TRUE then Result:=TRUE else Result:=FALSE;
end;

function TGame.SimultanDir: byte;
begin
  Result:=0;
  if   bNorth  =  TRUE   then Inc(Result);
  if   bSouth  =  TRUE   then Inc(Result);
  if   bEast   =  TRUE   then Inc(Result);
  if   bWeast  =  TRUE   then Inc(Result);
end;

function TGame.isBlocked: boolean;
begin
  Result:=FALSE;
  if SimultanDir>2 then Result:=TRUE
  else if (  bEast=TRUE and bWeast=TRUE   ) then Result:=TRUE
  else if (  bNorth=TRUE and bSouth=TRUE  ) then Result:=TRUE
end;

function TGame.GetEast: boolean;
begin
  Result:=bEast;
end;

function TGame.GetNorth: boolean;
begin
  Result:=bNorth;
end;

function TGame.GetSouth: boolean;
begin
  Result:=bSouth;
end;

function TGame.GetWeast: boolean;
begin
  Result:=bWeast;
end;

procedure TGame.SetEast(const Value: boolean);
begin
  bEast:=Value;
end;

procedure TGame.SetNorth(const Value: boolean);
begin
  bNorth:=Value;
end;

procedure TGame.SetSouth(const Value: boolean);
begin
  bSouth:=Value;
end;

procedure TGame.SetWeast(const Value: boolean);
begin
  bWeast:=Value;
end;

end.