unit MasseEgale;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TfMasseEgale = class(TForm)
btStart: TButton;
edAnzahl: TEdit;
lbGewinn: TLabel;
procedure btStartClick(Sender: TObject);
private
i,a : integer;
aManque,aPasse,aZero,aGewinn,aMinus : real;
procedure Wurf (pWette : string);
procedure StueckGewinn;
procedure Manquespiel;
procedure Passespiel;
public
{ Public declarations }
end;
var
fMasseEgale: TfMasseEgale;
implementation
{$R *.dfm}
procedure TfMasseEgale.btStartClick(Sender: TObject);
begin
i := 0;
aManque := 0;
aPasse := 0;
aZero := 0;
aGewinn := 0;
aMinus := 0;
Randomize;
Stueckgewinn;
end;
procedure TfMasseEgale.Stueckgewinn;
begin
if i < strtoint(edAnzahl.Text)
then
begin
while ((aManque - aPasse) < 5) and ((aPasse - aManque) < 5) do
begin
Wurf('Keine Wette');
end;
if aManque - aPasse = 5
then Passespiel
else Manquespiel;
Stueckgewinn;
end;
lbGewinn.Caption := floattostr(aGewinn) + ' Gewinn, Rückhalt: ' + floattostr(-aMinus);
edAnzahl.Text := inttostr(i);
end;
procedure TfMasseEgale.Manquespiel;
var aGewinnziel : real;
begin
aGewinnziel := aGewinn + 1;
while aGewinn < aGewinnziel do
begin
Wurf('Manque');
end;
end;
procedure TfMasseEgale.Passespiel;
var aGewinnziel : real;
begin
aGewinnziel := aGewinn + 1;
while aGewinn < aGewinnziel do
begin
Wurf('Passe');
end;
end;
procedure TfMasseEgale.Wurf (pWette : string);
begin
a := Random(37);
case a of
0 : begin
aZero := aZero + 1;
if pWette <> 'Keine Wette'
then aGewinn := aGewinn - 0.5;
end;
1..18 : begin
aManque := aManque + 1;
if pWette <> 'Keine Wette'
then aGewinn := aGewinn -1;
if pWette = 'Manque'
then aGewinn := aGewinn + 2;
end;
19..36 : begin
aPasse := aPasse + 1;
if pWette <> 'Keine Wette'
then aGewinn := aGewinn -1;
if pWette = 'Passe'
then aGewinn := aGewinn + 2;
end;
end;
i := i + 1;
if aGewinn < aMinus
then aMinus := aGewinn;
end;
end.