Hi,
KartenWert := randomrange( Low(tKarten), High(TKarten)+1 );
Ich hab's nochmal getestet: diese Anweisung liefert (ziemlich gleichverteilt) zufällige Werte zwischen 0 und 15 (inklusive beider Grenzen).
Damit wird in "kartegeben" solange ein kartenwert erzeugt, bis auch die letzte Karte vom Stapel gezogen wurde. Soweit stimmt es.
Die beiden Funktionen SpielerGewonnen und PCGewonnen haben auch noch einen Fehler.
Delphi-Quellcode:
function SpielerGewonnen(computer : boolean) : Boolean;
begin
if ((SpielerBlatt = []) or (Stapel = []) and (Computer)) then
SpielerGewonnen := true;
end;
function PCGewonnen(computer : boolean) : Boolean;
begin
if ((ComputerBlatt = []) or (Stapel = []) and (not Computer)) then
PCGewonnen := true;
end;
im Else-Fall ist der Funktionswert nicht definiert!
Richtiger:
Delphi-Quellcode:
function SpielerGewonnen(computer : boolean) : Boolean;
begin
SpielerGewonnen := ((SpielerBlatt = []) or (Stapel = []) and (Computer)) ;
end;