Thema: Delphi Skatspiel programmieren

Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Skatspiel programmieren

  Alt 26. Mär 2011, 23:38
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Karten: Integer;
  Ausgabe: String;
  x : Integer;
  Liste1: TStringList;
begin
  Memo1.Lines.Clear;
  Randomize; // Nur einmal beim Programmstart aufrufen

  for x:= 1 to 32 do
    begin
      Karten:=Random(32)+1;
      Liste1:=TStringList.Create; // Speicherleck 32x erzeugt und 1x freigegeben (s.u.)

      if Karten=1 then
        begin
          Ausgabe:='Kreuz Bube';
          Liste1.insert(1,'1'); // Liste1 hat zu diesem Zeitpunkt 0 Einträge! ;o)
        end

[...]

      else if Karten=32 then
        begin
          Ausgabe:='Karo 7';
          Liste1.insert(32,'32');
        end;

      Memo1.Lines.Add(Ausgabe);
    end;

  Liste1.Free;
end;
Liste1 als eine temporäre Instanz sollte auch hier wie folgt deklariert werden (dann gibt es auch keine Speicherlecks)
Delphi-Quellcode:
Liste1 := TStringList.Create;
try
  ...
finally
  Liste1.Free;
end;
Generell zu den Karten, dem Mischen und der Problematik mit den doppelten Karten:
Warum gibt es beim Spiel im RealLife keine doppelten Karten?
Wenn du das raus hast, dann hast du auch den Ansatz wie man es programmiert
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)
  Mit Zitat antworten Zitat