Ich habe mal deinen Code herumgetestet, speziell um mir anzuschauen, wie das dem Deklarieren einer Klasse etc. funktioniert. Dafür eignet sich dein Ausschnitt bisher hervorragend
Meine Frage dazu: Wie kann ich denn die Kartenwerte in die Variablen schreiben?
Ich habe bisher ein bisschen herummodifiziert, was aber nicht funktioniert (
Exception, Zugriffsverletzung):
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 =
class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
type
TKartenWert = 1..13;
// 1 = AS, 11 = Bube, 12 = Dame, 13 = König
TKartenFarbe = (kfKaro, kfHerz, kfPik, kfKreuz);
TKartenPosition = 1..5;
TKarte =
class(TObject)
private
FWert: TKartenWert;
FFarbe: TKartenFarbe;
FPosition: TKartenPosition;
public
property RWert: TKartenwert
read FWert;
property RFarbe: TKartenFarbe
read FFarbe;
property RPosition: TKartenPosition
read FPosition;
property WWert: TKartenwert
write FWert;
property WFarbe: TKartenFarbe
write FFarbe;
property WPosition: TKartenPosition
write FPosition;
end;
var
Form1: TForm1;
TBlatt:
Array[1..5]
of TKarte;
implementation
{$R *.dfm}
function isOnePair():Boolean;
begin
result := ((TBlatt[1].RWert = TBlatt[2].RWert)
and (TBlatt[1].RWert <> TBlatt[3].RWert));
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
TBlatt[1].WWert:=1;
TBlatt[1].WFarbe:=kfKaro;
TBlatt[1].WPosition:=1;
{
TBlatt[2].WWert:=2;
TBlatt[2].WFarbe:=kfKaro;
TBlatt[2].WPosition:=2;
TBlatt[3].WWert:=3;
TBlatt[3].WFarbe:=kfKaro;
TBlatt[3].WPosition:=3;
TBlatt[4].WWert:=4;
TBlatt[4].WFarbe:=kfKaro;
TBlatt[4].WPosition:=4;
TBlatt[5].WWert:=5;
TBlatt[5].WFarbe:=kfKaro;
TBlatt[5].WPosition:=5;
}
isOnePair();
end;
end.
Mir ist übrigens klar, dass isOnePair nur die 1. beiden Karten auf ein Paar prüft und nur die 1. drei Karten brücksichtigt.
Wäre nett, wenn mir jemand helfen könnte, das System zu verstehen
Ich probiere und probiere, aber es will nicht so recht.