AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zufallszahlen erstellen

Ein Thema von LPIG · begonnen am 7. Nov 2012 · letzter Beitrag vom 14. Nov 2012
Antwort Antwort
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#1

AW: Zufallszahlen erstellen

  Alt 8. Nov 2012, 17:55
Die Roulette-Strategie des Verdoppelns bis man gewinnt ist "Quark".
10 Euro gesetzt -> verloren
20 Euro -> verloren
40 Euro -> verloren
80 Euro -> verloren
160 Euro -> gewonnen!!
Verlust: 10+20+40+80=150 Euro Gewinn:160 Euro
Nettogewinn: 10 Euro (also der 1. Einsatz)

Wenn man also max. den 1. Einsatz gewinnen kann, muss man diesen erhöhen denkt sich der "schlaue" Roulettespieler:
1000 -> gewonnen (Hurra)
1000 -> gewonnen (Glücksträhne, schon 2000 im Plus)
1000 -> verloren
2000 -> verloren
4000 -> verloren
8000 -> verloren
16000 ?? Ohoooh - das Geld reicht nicht mehr und schon 13000 verpulvert.
Und jetzt kommen auch noch zwei Rausschmeiser und sagen es wäre jetzt besser wenn man geht.
Andreas
  Mit Zitat antworten Zitat
LPIG

Registriert seit: 7. Nov 2012
5 Beiträge
 
#2

AW: Zufallszahlen erstellen

  Alt 8. Nov 2012, 18:38
Die Roulette-Strategie des Verdoppelns bis man gewinnt ist "Quark".
10 Euro gesetzt -> verloren
20 Euro -> verloren
40 Euro -> verloren
80 Euro -> verloren
160 Euro -> gewonnen!!
Verlust: 10+20+40+80=150 Euro Gewinn:160 Euro
Nettogewinn: 10 Euro (also der 1. Einsatz)

Wenn man also max. den 1. Einsatz gewinnen kann, muss man diesen erhöhen denkt sich der "schlaue" Roulettespieler:
1000 -> gewonnen (Hurra)
1000 -> gewonnen (Glücksträhne, schon 2000 im Plus)
1000 -> verloren
2000 -> verloren
4000 -> verloren
8000 -> verloren
16000 ?? Ohoooh - das Geld reicht nicht mehr und schon 13000 verpulvert.
Und jetzt kommen auch noch zwei Rausschmeiser und sagen es wäre jetzt besser wenn man geht.
Das mag ja stimmen, ich möchte das taktische Roulette hier auf keinen Fall verfechten, mir geht es eigentlich nur um die Lösung für mein Problem mit Delphi. (;

lg
LPIG
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

AW: Zufallszahlen erstellen

  Alt 8. Nov 2012, 18:59
mir geht es eigentlich nur um die Lösung für mein Problem mit Delphi.
Du hast bislang aber noch keinen Sourcecode gezeigt sondern nur bezüglich randomize herumtheoretisiert.

Delphi-Quellcode:
// liefert den Nettogewinn oder Verlust für eine Spielserie
function PlayRoulette(einsatz, maxeinsatz:Currency):Currency;
var
   win : Boolean;
begin
   Result := 0;

   repeat
      win := random(33) < 16;
      if win then
      begin
         Result := Result + einsatz;
         Exit;
      end;
      Result := Result - einsatz;
      einsatz := einsatz * 2; // verdoppeln...
   until win or (einsatz > maxeinsatz); // bis zum Gewinn oder bis das Limit überschritten ist
end;
Andreas
  Mit Zitat antworten Zitat
LPIG

Registriert seit: 7. Nov 2012
5 Beiträge
 
#4

AW: Zufallszahlen erstellen

  Alt 8. Nov 2012, 19:25
Hast du auch wieder Recht, hier der Quellcode:

Delphi-Quellcode:
var
  Form1: TForm1;
  x,a,b,c:integer;
  Einsatz : integer;
  Gewinn : integer;
  Zaehler : integer;
  Check:Integer;
  fortschritt:integer;
  //Tabelle : Array[0..10, 0..20] of integer;
  //Anzahl:Integer;
  //Menge:Integer;
implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
//randomize;
x:=random(32);
lbzufallszahl.caption := inttostr(x);
//rbGerade.checked := true;
c:=c+1;


if x Mod 2 = 0 then //##################GERADE#####################
begin
  lbAuswertung.caption := 'Es handelt sich um eine GERADE Zahl!';

If rbGerade.checked = true then //Gewonnen
   begin
   Gewinn := Gewinn + Einsatz;
   lbAuswertung.caption := 'Es handelt sich um eine GERADE Zahl! Sie haben '+inttostr(Einsatz)+' Euro gewonnen';
   end;

If rbUngerade.checked = true then //Verlooooren
   begin
   lbAuswertung.caption := 'Es handelt sich um eine GERADE Zahl! Sie haben '+inttostr(Einsatz)+' Euro verloren';
   Gewinn := Gewinn - Einsatz;
   end;
end;

If x Mod 2 > 0 then // ###################UNGERADE################
begin
     lbAuswertung.Caption := 'Es handelt sich um eine UNGERADE Zahl!';

If rbGerade.checked = true then //Verloooren
   begin
   lbAuswertung.caption := 'Es handelt sich um eine UNGERADE Zahl! Sie haben '+inttostr(Einsatz)+' Euro verloren';
   Gewinn := Gewinn - Einsatz;
   end;

If rbUngerade.checked = true then //Gewonnen
   begin
   lbAuswertung.caption := 'Es handelt sich um eine UNGERADE Zahl! Sie haben '+inttostr(Einsatz)+' Euro gewonnen';
   Gewinn := Gewinn + Einsatz;
   end;
end;


if x = 0 then // ##################BANK######################
   begin
   lbAuswertung.caption := 'Die Bank hat gewonnen!';
   Gewinn := Gewinn-Einsatz; // Es spielt keine Rolle, man hat immer verloren!
   end;
lbGewinn.caption := inttostr(gewinn);
lbVersuche.caption := inttostr(c);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
randomize;
//Anzahl:=0;
//Menge := 0;
Check:=1;
c:=0;
Einsatz := 2;
Gewinn := 0;
end;

procedure TForm1.edEinsatzChange(Sender: TObject);
begin
If edEinsatz.text = 'then
begin
edEinsatz.text := '2';
end;

Einsatz := strtoint(edEinsatz.text);

end;

procedure TForm1.btComputerClick(Sender: TObject);
var
h : integer;

begin
Fortschritt:=strtoint(edVersuche.text);// Damit die Fortschrittsanzeige funktioniert. Die Zahl brauch ich bestimmmt noch.
for check:=1 to strtoint(edVersuche.text) do
begin
Zaehler := strtoint(edVersuche.text);
rbGerade.checked := true;
a := Gewinn;
Button1Click(Sender); //Wie spielen auf Gerade
ProgressBar1.max := Fortschritt;
ProgressBar1.position := check;

If Gewinn < a then // Wir haben verloren
   begin
   Einsatz := Einsatz*2;
   b := 2;
   {Anzahl := Anzahl+1;
  if Anzahl > 4 then
  begin
  Tabelle[Anzahl,Menge] := Anzahl;
   end; }

   end;

If (Gewinn > a) and (b = 2) then //Wir haben gewonnen und davor verloren
   begin
   b:=1;
   Einsatz:=2;
   end;

If Einsatz > 1000 then //Das Limit ist erreicht
   begin
   Einsatz := Einsatz DIV 2 ;
   end;

edEinsatz.text := inttostr(Einsatz);
if h>=1 then
begin
h:=h-1;
btComputerClick(Sender);
end;
end;
end;


procedure TForm1.btZurueckClick(Sender: TObject);
begin
c:=0;
lbversuche.caption := '';
end;
procedure TForm1.edVersucheChange(Sender: TObject);
begin
If edVersuche.text = 'then
begin
edVersuche.text := '1';
end;
end;

procedure TForm1.btBilanzbackClick(Sender: TObject);
begin
gewinn:=0;
lbgewinn.caption:='';
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;

end.
Ist bestimmt etwas umständlicher und so, aber wie gesagt, ich bin blutiger Anfänger! (;

lg
LPIG
  Mit Zitat antworten Zitat
nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Zufallszahlen erstellen

  Alt 8. Nov 2012, 22:03
Ist bestimmt etwas umständlicher und so, aber wie gesagt, ich bin blutiger Anfänger! (;
Ich verstehe nicht, warum "Anfänger" scheinbar immer gleichbedeutend mit "keine Einrückung" ist.

Oder was sollen solche Sachen? Wer soll das lesen, ohne einen Knoten im Hirn zu bekommen?

Delphi-Quellcode:
edEinsatz.text := inttostr(Einsatz);
if h>=1 then
begin
h:=h-1;
btComputerClick(Sender);
end;
end;
end;


procedure TForm1.btZurueckClick(Sender: TObject);
begin
c:=0;
lbversuche.caption := '';
end;
procedure TForm1.edVersucheChange(Sender: TObject);
begin
If edVersuche.text = 'then
begin
edVersuche.text := '1';
end;
end;

procedure TForm1.btBilanzbackClick(Sender: TObject);
begin
gewinn:=0;
lbgewinn.caption:='';
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz