![]() |
random <> zufall (würfeln)
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:
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!
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; 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 :roll: greetz fluffy |
Re: random <> zufall (würfeln)
Herzlich willkommen in der DP! :party:
Nutze doch nochmal Randomize() zwischen den Schleifen, vielleicht hilft das. |
Re: random <> zufall (würfeln)
öhm eigentlich sollte durch randomize doch zwei zufallszahlen rauskommen, es geschieht ja eh nicht genau zur gleichen zeit, das ist unmöglich!
|
Re: random <> zufall (würfeln)
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 :mrgreen:
|
Re: random <> zufall (würfeln)
Dann setzte RandSeed zwischen den Schleifen eben selbst.
|
Re: random <> zufall (würfeln)
Hi,
pack mal in dein Create oder so
Delphi-Quellcode:
..
Randomize; .. Zitat:
Daniel |
Re: random <> zufall (würfeln)
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...
|
Re: random <> zufall (würfeln)
@static: s. vorheriger post
@dax: :wall: das einfachste sieht man immer erst am schluss... ja, so gehts! vielen dank! |
Re: random <> zufall (würfeln)
moim,
:gruebel: 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; |
Re: random <> zufall (würfeln)
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.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:21 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