Der manuell geschriebene Quelltext ist blau hervorgehoben.
unit mSnake;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;
type
TForm1 = class(TForm)
Image1: TImage;
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private-Deklarationen }
schlangeX: array[0..899] of Integer;
schlangeY: array[0..899] of Integer;
laenge: Integer;
procedure zeichnen;
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var i: Integer;
begin
laenge := 8;
for i:=0 to laenge-1 do
begin
schlangeX[i] := 3+i;
schlangeY[i] := 10;
end;
zeichnen;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var i: Integer;
begin
for i:=0 to laenge-1 do
begin
Inc(schlangeX[i]);
if schlangeX[i] = 30 then
schlangeX[i] := 0;
end;
zeichnen;
end;
procedure TForm1.zeichnen;
var i: Integer;
begin
with Image1.Canvas do
begin
Brush.Color := clWhite;
Rectangle(0,0,Image1.Width,Image1.Height);
Brush.Color := clBlack;
for i:=0 to laenge-1 do
Rectangle(schlangeX[i]*8, schlangeY[i]*8,
(schlangeX[i]+1)*8,(schlangeY[i]+1)*8);
end;
end;
end.