Einzelnen Beitrag anzeigen

NormanNG

Registriert seit: 1. Feb 2006
294 Beiträge
 
Delphi 2007 Professional
 
#8

Re: primitives mau mau spiel

  Alt 17. Mai 2006, 17:32
OK, du hast natürlich Recht.
Ich war gedanklich bei einem Array... und im Set ist die Reihenfolge festgelegt. Damit scheidet das "Mischen" beim Initialisieren aus.


Warum auch immer, das randomrange scheint den oberen Wert nie zu liefern, obwohl dies in den OH behauptet wird:
Zitat:
RandomRange gibt einen zufälligen Integer-Wert im Bereich von AFrom bis ATo zurück (inklusive).
Also damit klappt es:
KartenWert := randomrange( Low(tKarten), High(TKarten)+1 ); Aber es bleibt immer noch das Problem, wenn der Stapel leer ist und KarteGeben aufgerufen wird. Du kannst ja die Elemente im Set zählen und ggf. anders reagieren:

Delphi-Quellcode:
type
    TKarten = 0..KartenAnzahl-1;
    TKarte = set of tKarten;


  function AnzElemente(ASet: TKarte): Integer;
  var
    i: TKarten;
  begin
    Result := 0;
    for i := High(TKarten) downto Low(TKarten) do
      if i in ASet then Begin
        Inc(Result);
      end;
  end;

[edit]Schreibfehler korrigiert [/edit]
Gruß
Norman
  Mit Zitat antworten Zitat