AGB  ·  Datenschutz  ·  Impressum  







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

random <> zufall (würfeln)

Ein Thema von Fluffy · begonnen am 30. Sep 2004 · letzter Beitrag vom 30. Sep 2004
Antwort Antwort
Seite 1 von 2  1 2      
Fluffy

Registriert seit: 27. Sep 2004
Ort: Güttingen
7 Beiträge
 
#1

random <> zufall (würfeln)

  Alt 30. Sep 2004, 14:44
hi!

ich muss eine bestimmte anzahl würfel werfen und die augen zusammenzählen. danach nochmal eine andere anzahl würfel und nochmals zusammenzählen.
und zum schluss diese beiden zahlen zusammenrechnen - hier mein code bis jetzt:
Delphi-Quellcode:
procedure TForm1.FormActivate(Sender: TObject);
var
  i,z,v:Integer;
begin
  z:=0;
  v:=0;
  for i:=1 to max1 do begin
    z:=z+random(6)+1;
  end;
  for i:=1 to max2 do begin
    v:=v+random(6)+1;
  end;
  label1.Caption:=IntToStr(z+v);
end;
nur ist jetzt das problem, dass z und v genau dasselbe ergeben, wenn max1 und max2 identisch sind - soll heissen, random gibt mir keine zufällige zahl, auch nicht durch randomize, weil ja alles zur selben zeit passiert. es muss aber zufällig werden!
eigentlich will ich nicht unbedingt, dass ich zwei buttons klicken muss oder so was umständliches, aber wenn ihr nicht weiterwisst bleibt mir nichts anderes übrig

greetz
fluffy
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: random <> zufall (würfeln)

  Alt 30. Sep 2004, 14:46
Herzlich willkommen in der DP!

Nutze doch nochmal Randomize() zwischen den Schleifen, vielleicht hilft das.
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#3

Re: random <> zufall (würfeln)

  Alt 30. Sep 2004, 14:47
öhm eigentlich sollte durch randomize doch zwei zufallszahlen rauskommen, es geschieht ja eh nicht genau zur gleichen zeit, das ist unmöglich!
  Mit Zitat antworten Zitat
Fluffy

Registriert seit: 27. Sep 2004
Ort: Güttingen
7 Beiträge
 
#4

Re: random <> zufall (würfeln)

  Alt 30. Sep 2004, 14:55
wie ich bereits sagte, randomize funktioniert nicht, das hab ich schon versucht... vl ist es zu schnell als dass randomize einen anderen wert liefern könnte, keine ahnung - es geht einfach nicht
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#5

Re: random <> zufall (würfeln)

  Alt 30. Sep 2004, 14:56
Dann setzte RandSeed zwischen den Schleifen eben selbst.
  Mit Zitat antworten Zitat
static_cast

Registriert seit: 19. Okt 2003
Ort: Peine
300 Beiträge
 
#6

Re: random <> zufall (würfeln)

  Alt 30. Sep 2004, 14:58
Hi,

pack mal in dein Create oder so

Delphi-Quellcode:
..
Randomize;
..

Zitat:
procedure Randomize;

Beschreibung

Randomize initialisiert den integrierten Zufallszahlengenerator mit einem zufälligen Wert (der aus der Systemzeit abgeleitet wird). Der Zufallszahlengenerator sollte initialisiert werden, indem die Prozedur Randomize aufgerufen oder der Variablen RandSeed ein Wert zugewiesen wird.

Kombinieren Sie in einer Schleife nicht den Aufruf von Randomize mit Aufrufen der Funktion Random. Normalerweise wird Randomize vor den Aufrufen von Random nur einmal aufgerufen.
Grüße
Daniel
Daniel M.
  Mit Zitat antworten Zitat
Benutzerbild von Treffnix
Treffnix

Registriert seit: 25. Jun 2003
Ort: AC
740 Beiträge
 
Delphi 7 Professional
 
#7

Re: random <> zufall (würfeln)

  Alt 30. Sep 2004, 15:01
wo genau haste denn randomize aufgerufen? Prinzipiell darf man Randomize nur einmal aufrufen und zwar, bevor man das erste mal random benutzt. Ausserdem solltest du dir dein random nochmal angucken. Wenn ich mich nicht irre, gibt dir random( 6 ) + 1 eine Zahl zwischen 1 und 7 zurück. Ich denke mal du willst aber 1-6...
  Mit Zitat antworten Zitat
Fluffy

Registriert seit: 27. Sep 2004
Ort: Güttingen
7 Beiträge
 
#8

Re: random <> zufall (würfeln)

  Alt 30. Sep 2004, 15:03
@static: s. vorheriger post

@dax: das einfachste sieht man immer erst am schluss... ja, so gehts! vielen dank!
  Mit Zitat antworten Zitat
xineohp

Registriert seit: 29. Jan 2004
Ort: Heusenstamm
420 Beiträge
 
Delphi 2005 Professional
 
#9

Re: random <> zufall (würfeln)

  Alt 30. Sep 2004, 15:03
moim,

also bei mir funz folgender Code perfekt ... ob mit oder ohne randomize.
bei identischem max1 und max2 sind v und z halt recht dicht beieinander, aber nur selten gleich.
Delphi-Quellcode:
var
  i,z,v:Integer;
begin
  z:=0;
  v:=0;
  randomize;
  for i:=1 to 100 do begin
    z:=z+random(6)+1;
  end;
  randomize;
  for i:=1 to 100 do begin
    v:=v+random(6)+1;
  end;
  label1.Caption:=IntToStr(z+v);
  label2.Caption:=IntToStr(z);
  label3.Caption:=IntToStr(v);
end;
Peter Enenkel
  Mit Zitat antworten Zitat
Wheelie

Registriert seit: 21. Okt 2003
Ort: Dresden
177 Beiträge
 
#10

Re: random <> zufall (würfeln)

  Alt 30. Sep 2004, 15:04
Dann machst du irgendwas falsch. Habe deine Prozedur mal ausprobiert und Randomize im OnFormCreate-Ereignis ergänzt -> funktioniert tadellos. Du hast Randomize wahrscheinlich mit in die Schleife genommen, was zu nichtzufälligen Ergebnissen führen dürfte.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 06:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz