Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#19

Re: Skatblatt darstellen durch Random?

  Alt 11. Nov 2009, 14:32
ach ja, auf das aktuelle Problem zurückgebaut, kommt z.B. sowas bei raus:
Delphi-Quellcode:
Type TBlatt = Set of 0..31;

Const cKarte: Array[0..7] of String = ('7', '8', '9', '10', 'Bube', 'Dame', 'Koenig', 'As');

Function Ziehe(Var Blatt: TBlatt): Integer;
  Var i, i2: Integer;

  Begin
    If Blatt = [] Then Raise Exception.Create('keine Karten vorhanden');
    i := 0;
    For i2 := 0 to 31 do If i2 in Blatt Then Inc(i);
    i := Random(i);
    i2 := -1;
    Repeat
      Inc(i2);
      While not (i2 in Blatt) do Inc(i2);
      Dec(i);
    Until i < 0;
    Exclude(Blatt, i2);
    Result := i2 div 4;
  End;

Procedure TForm1.FormCreate(Sender: TObject);
  Var i, i2: Integer;
    Blatt: TBlatt;

  Begin
    Randomize;
    Blatt := [0..31];
    For i := 1 to 32 do Begin
      i2 := Ziehe(Blatt);
      Memo1.Lines.Add(cKarte[i2]);
    End;
  End;
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat