Mit dieser Funktion zeichnet das ganze..glaube ich Zumindest:
Delphi-Quellcode:
procedure TControler.Step;
var i : integer;
dir : TDirection;
begin
for i := 0 to Flist.Count - 1 do
begin
dir := TDirection(random(4));
if Fpb.Canvas.Pixels[FList.Bugs[i].NextLeft[dir],FList.Bugs[i].NextTop[dir]]<>Fpb.color then
begin
FList.Bugs[i].Direction := dir;
Flist.Bugs[i].Move;
end
else
FList.Bugs[i].Show;
end;
end;
und ich würde gern den oberen und diesen code durch eine andere Lösung ersetzen. Das ganze Programm soll eine beliebige Anzahl von Kästchen in zufälliger Richtung über den Bildschirm laufen lassen. Die Methode step prüft, ob sich an dem Platz an dem gezeichnet werden soll, schon ein Kästchen befindet. Wenn ja wird Direction freigesetzt. Move bewegt, Show zeigt..
das ganze in dieser klasse:
Delphi-Quellcode:
type TControler = class
private
//private Variable zum Speichern von Höhe, Breite und Anzahl
FHeight, FN, FWidth : integer;
//private Paintbox, in die gezeichnet werden soll
FPb : TPaintBox;
//private Liste zum verwalten der Bugs
Flist : TBugList;
FSize : integer;
protected
public
//Properties
property Height : integer read FHeight write FHeight;
property N : integer read FN write FN;
property Width : integer read FWidth write FWidth;
//Konstruktor
constructor Create(N:integer;pb : TPaintbox);
//Destruktor
destructor Free;
procedure Show;
procedure Step;