Informatik Material Portal Portfolio Präsentation Grafik Tabellenkalkulation Informatik56 9 10 11 12 13 Messen, Steuern, Regeln Linux Theorie Didaktik Open Source Spiele Wettbewerbe Netzbetreuung intern Literatur Links Energie corewar UNIX/Linux
Pfad: Startseite / Fächer / Informatik
Autor: be
21.09.2005 10:53
445

Snake 1 - Lösung

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.