ja geht auch, wenn ich mein "Prüfungskonzept" eh ändern muss. Usprünglich hatte ich alle Würfel aufaddiert, da spar ich mir mit int die Umwandlung.
aber wie definiere ich denn die Klasse TKlotz innerhalb der TFeld? Oder ist TKlotz keine Klasse?
Das werden beides Klassen, aber du hast eigentlich die wichtigste Klasse vergessen.
Die Würfel!
Delphi-Quellcode:
TLage = (horizontal, vertikal);
TWürfel = class
PositionImKlotz : Integer; // 0..9
function GetKoordinate( AIndex : Integer; ALage : TLage ) : TPoint;
end;
TKlotz = class
Würfel : array of TWürfel;
end;
TKlotzImFeld
Klotz : TKlotz;
Index : Integer;
Lage : TLage;
end;
TFeld = class
Klötze : array of TKlotzImFeld;
function IstZelleBelegt( x,y : Integer ): Boolean;
end;
function TFeld.IstZelleBelegt( AKoord : TPoint ) : Boolean;
begin
for LKlotzInFeld in Klötze do
for LWürfel in LKlotzInFeld.Klotz.Würfel do
begin
LKoord := LWürfel.Koordinate( LKlotzInFeld.Index, LKlotzInFeld.Lage );
if LKoord = AKoord then
Exit( True );
Result := False;
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)