@sx2008
Ich weiß auch nicht warum ich TRobot überhaupt abgeleitet habe, denn es verwendent keine der Attribute oder Methoden von TDatabase... Ich glaube ich werde es extrahieren und eigenständig machen.
Zu deiner Frage: Ich verwende in der Klasse TRobot eine Variable, die ein TRobot ist:
Delphi-Quellcode:
...
var
Ziel: TRobot;
...
procedure TRobot.ZielAussuchen (Feinde: Array of TRobot; Prioritaet: integer);
var i: integer; Entfernung: double;
begin
Entfernung:=1000000;
for i:= 1 to (High(Feinde))+1 do
begin
if EntfernungMessen(Feinde[i].PPunkt)<Entfernung then
begin
Entfernung:=EntfernungMessen(Feinde[i].PPunkt);
Ziel:=Feinde[i];
Showmessage('Ziel gewählt');
end;
end;
end;
...
Diese Methode dient dazu, dass der Roboter den ihm nächsten Feind angreift.
Zur restlichen Klasse inklusiv Initialisieren:
Delphi-Quellcode:
unit Robot;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
DBTables;
type
TRobot =
class(TDatabase)
private
{ Private-Deklarationen }
protected
{ Protected-Deklarationen }
public
...
procedure Initialisieren(PosX, PosY: integer; StartWinkel, Geschwindigkeit: double);
...
{ Public-Deklarationen }
published
{ Published-Deklarationen }
end;
procedure Register;
var Position:
Array[1..2]
of integer;
Winkel_1,Speed:double;
Ziel: TRobot;
implementation
...
procedure TRobot.Initialisieren (PosX, PosY: integer; StartWinkel, Geschwindigkeit: double);
begin
Position[1]:=PosX;
Position[2]:=PosY;
Winkel_1:=StartWinkel;
Speed:=Geschwindigkeit;
end;
...
end.
Ich hoffe das hilft weiter. Es kann sein, dass euch die Programmierung etwas schlampig vorkommt, aber ich programmiere erst seit kurzem öfters. Danke bereits für die Posts!