![]() |
Re: Randomize mehrmals starten
ach ? kannst du dazu mal ein kleines beispiel machen ?
Bei einem Spiel währe das bestimmt nicht besonder schlimm kommt aber auf das Spiel an. mir ist aufgefallen wenn man Random in einem Timer aufruft zählt er nur hoch...... |
Re: Randomize mehrmals starten
Zitat:
Du kannst diese Demonstration aber durchführen indem du die globale Variable RandSeed von Hand belegst. |
Re: Randomize mehrmals starten
Zitat:
|
Re: Randomize mehrmals starten
Vielleicht ist es ja für einige interessant. :)
Hab das gerade mit OllyDbg rausgefunden. Zumindest ist das so bei Delphi 7 Enterprise. (Build 4.453)
Delphi-Quellcode:
function PredictNextRandom(RSeed: PInteger; Range: Integer): Integer;
begin result := RSeed^ * $8088405 + 1; asm PUSH EDX MOV EAX, Range MUL result MOV result, EDX POP EDX end; end; procedure TForm1.FormCreate(Sender: TObject); begin Randomize; ShowMessage(IntToStr(PredictNextRandom(@RandSeed,10)) + ' == '+ IntToStr(Random(10))); ShowMessage(IntToStr(PredictNextRandom(@RandSeed,10)) + ' == '+ IntToStr(Random(10))); ShowMessage(IntToStr(PredictNextRandom(@RandSeed,10)) + ' == '+ IntToStr(Random(10))); ShowMessage(IntToStr(PredictNextRandom(@RandSeed,10)) + ' == '+ IntToStr(Random(10))); ShowMessage(IntToStr(PredictNextRandom(@RandSeed,10)) + ' == '+ IntToStr(Random(10))); ShowMessage(IntToStr(PredictNextRandom(@RandSeed,10)) + ' == '+ IntToStr(Random(10))); ShowMessage(IntToStr(PredictNextRandom(@RandSeed,10)) + ' == '+ IntToStr(Random(10))); end; Zitat:
Also im Prinzip egal, bzw. eher überflüssig Randomize häufiger aufzurufen. |
Re: Randomize mehrmals starten
Zitat:
Bei Delphi 6 sehe ich in der System.Pas das hier
Delphi-Quellcode:
Aber die CodeGear-Fuzzis haben doch etwas verändert, denn bei BDS2006 sehe ich das hier
Procedure Randomize;
... CALL GetSystemTime ...
Delphi-Quellcode:
Procedure Randomize;
... if QueryPerformanceCounter(Counter) then Zitat:
|
Re: Randomize mehrmals starten
Zitat:
Zitat:
|
Re: Randomize mehrmals starten
Ne. Bei mir springt er immer auf "Unit System", wenn ich auf Random() "Strg+Mausklick" draufklicke.
EDIT: Ahh, jetz seh ichs. Wie biste auf RandInt_ gekommen. Einfach durchgekramt? :S |
Re: Randomize mehrmals starten
Zitat:
In diesem Fall RandInt und da die SystemInt etwas besonderes ist (PAS stimmt nicht mit ganz DCU überein), ist hier auch der Funktionsname nicht ganz stimmig, aber soein _ stört bei 'ner Suche ja nicht so sehr. Und wen es interessiert, hier nochmal alles in Pascal > ![]() und die vorheriggen Seiten sind wohl auch nicht sooo uninteressant :angel: |
Re: Randomize mehrmals starten
Zitat:
|
Re: Randomize mehrmals starten
*Autsch*
Danke ihr beiden. Ich habe bis jetzt wirklich immer gedacht, alle diese Funktionen seien hardcoded im Compiler drin. oh wee oh wee. Den Delphi Debugger benutze ich nicht so gerne, da bin ich zu sehr an Olly gewöhnt. :cyclops: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:44 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