Hi,
ich kann zwar kein Skat, aber um die Karten zu mischen und in einer Liste zu haben, würde ich wie folgt vorgehen. Erstmal braucht man ja die Karten, dafür sollte man sich eine Klasse bauen, wenn man es ordentlich machen will.
Delphi-Quellcode:
type
TFarbe = (Pik, Kreuz, Karo, Herz);
TWert = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K, A);
TKarte = class
public
Farbe: TFarbe;
Wert: TWert;
end;
procedure ListeBauen;
var
i, n: Integer;
Karten: TList;
begin
Karten := TList.Create;
for i := 0 to High(TFarbe) do
for n := 0 to High(TWert) do
begin
Karten.Add(TKarte.Create);
Karten[Karten.Count - 1].Farbe := TFarbe(i);
Karten[Karten.Count - 1].Wert := TWert(n);
end;
Mische(Karten);
end;
Vielleicht passen die Werte für Skat jetzt nicht, aber damit hat man dann alle Karten in der Liste, die mir jetzt einfallen. Du müsstest dann nur noch diese Liste mischen (meine nicht implementierte Mische()-Funktion), über Google habe ich z.B.
das hier gefunden.
Tipp: Bevor du, wie in deinem Beispiel, jede Karte nur eine Zahl sein lässt, fang gleich damit an, alles, was ein Objekt sein sollte, auch so zu bauen. Dadurch wird der Code schöner und du kommst später besser damit klar.
Achja, und der Code von mir da oben ist ungetestet..
HTH
Edit: Roter Kasten, aber dieses tolle Beispiel muss unbedingt gepostet werden!