Thema: Delphi Mischalgorithmus Fehler

Einzelnen Beitrag anzeigen

omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: Mischalgorithmus Fehler

  Alt 26. Mär 2011, 23:44
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Randomize;
end;

procedure TForm1.Button1Click(Sender: TObject);
type
  TKarten = (
    Herz_7, Herz_8, Herz_9, Herz_10, Herz_Bube, Herz_Dame, Herz_Koenig, Herz_Ass,
    Karo_7, Karo_8, Karo_9, Karo_10, Karo_Bube, Karo_Dame, Karo_Koenig, Karo_Ass,
    Pik_7, Pik_8, Pik_9, Pik_10, Pik_Bube, Pik_Dame, Pik_Koenig, Pik_Ass,
    Kreuz_7, Kreuz_8, Kreuz_9, Kreuz_10, Kreuz_Bube, Kreuz_Dame, Kreuz_Koenig, Kreuz_Ass
  );
const
  cKarten:array[TKarten] of string = (
    'Herz 7', 'Herz 8', 'Herz 9', 'Herz 10', 'Herz Bube', 'Herz Dame', 'Herz König', 'Herz Ass',
    'Karo 7', 'Karo 8', 'Karo 9', 'Karo 10', 'Karo Bube', 'Karo Dame', 'Karo König', 'Karo Ass',
    'Pik 7', 'Pik 8', 'Pik 9', 'Pik 10', 'Pik_Bube', 'Pik Dame', 'Pik König', 'Pik Ass',
    'Kreuz 7', 'Kreuz 8', 'Kreuz 9', 'Kreuz 10', 'Kreuz Bube', 'Kreuz Dame', 'Kreuz König', 'Kreuz_Ass'
  );
var KartenIndex: Integer;
    Karten: TStringList;
    Karte:TKarten;
begin
  Memo1.Lines.BeginUpdate;
  Karten:=TStringList.Create;
  try
    Memo1.Lines.Clear;
    for Karte:=low(TKarten) to high(TKarten) do
      Karten.Append(cKarten[Karte]);

    while Karten.Count > 0 do begin
      KartenIndex:=Random(Karten.Count);
      Memo1.Lines.Append(Karten[KartenIndex]);
      Karten.Delete(KartenIndex);
    end;
  finally
    Karten.Free;
    Memo1.Lines.EndUpdate;
  end;
end;
  Mit Zitat antworten Zitat