Inhalt

Aktueller Ordner: beute
โฌ… รœbergeordnet

umain.pas

unit UMain;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
  Grids, StdCtrls, Unitbeute;

type
  (* Datentyp fuer die virtuelle Welt*)


  { TfrmMain }

  TfrmMain = class(TForm)
    btnZufall: TButton;
    btnNext: TButton;
    btnStart: TButton;
    btnStopp: TButton;
    btnLeer: TButton;
    Spielfeld: TDrawGrid;
    pnlBottom: TPanel;
    tmrAnimation: TTimer;
    procedure btnLeerClick(Sender: TObject);
    procedure Auswerten(Sender: TObject);
    procedure btnStoppClick(Sender: TObject);
    procedure btnStartClick(Sender: TObject);
    procedure btnZufallClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure SpielfeldDrawCell(Sender: TObject; aCol, aRow: Integer;
      aRect: TRect; aState: TGridDrawState);
    procedure SpielfeldSelectCell(Sender: TObject; aCol, aRow: Integer;
      var CanSelect: Boolean);
  private
    { private declarations }

    (* virtuelle Spielwelt *)


  public
    { public declarations }
  end;

var
  frmMain: TfrmMain;

implementation

{$R *.lfm}

{ TfrmMain }

procedure TfrmMain.FormCreate(Sender: TObject);
begin
  aufbau;
  FillByte (a,SizeOf(a),0);
  FillByte (b,SizeOf(b),0);
end;







procedure TfrmMain.SpielfeldDrawCell(Sender: TObject; aCol, aRow: Integer;
  aRect: TRect; aState: TGridDrawState);
begin

  if a[aCol+1, aRow+1] = 10 then
    Spielfeld.Canvas.Brush.Color := clRed
  else
   if a[aCol+1, aRow+1] = 1 then
    Spielfeld.Canvas.Brush.Color := clGreen
  else
    Spielfeld.Canvas.Brush.Color := clWhite;

 Spielfeld.Canvas.FillRect(aRect);
end;

procedure TfrmMain.SpielfeldSelectCell(Sender: TObject; aCol, aRow: Integer;
  var CanSelect: Boolean);
begin


  if a[aCol+1, aRow+1] = 0 then
    a[aCol+1, aRow+1] := 1
  else
   if a[aCol+1, aRow+1] = 1 then
    a[aCol+1, aRow+1] := 10
  else
    a[aCol+1, aRow+1] := 0;
end;




procedure TfrmMain.btnLeerClick(Sender: TObject);
begin
  FillByte (a,SizeOf(a),0);
  FillByte (b,SizeOf(b),0);
  Spielfeld.Repaint;
end;

procedure TfrmMain.Auswerten(Sender: TObject);

begin

    spiel(a,b);
    Spielfeld.Refresh;
    a:= b;
end;

procedure TfrmMain.btnStoppClick(Sender: TObject);
begin
  tmrAnimation.Enabled := false;
  a:=b;
  Spielfeld.Refresh;
end;

procedure TfrmMain.btnStartClick(Sender: TObject);
begin
  tmrAnimation.Enabled := true;
end;

procedure TfrmMain.btnZufallClick(Sender: TObject);
begin
  zufall(a);
  Spielfeld.Repaint;
end;

procedure TfrmMain.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
  tmrAnimation.Enabled := false;
  x := xa;
 abbaux(x);
 y := ya;
 abbauy(y);
end;

end.