Inhalt
Aktueller Ordner:
beuteumain.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.