Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Fragen zur Funktion Random


Seyomi - Sa 14.07.12 21:10
Titel: Fragen zur Funktion Random
Hi Leute,

ich wollte mich mal erkundigen, ob es möglich ist mit dem Random-Befehl nur einee bestimmten Bereich festzulegen. Ich brauche das für eine kleines Text-RPG.

RANDOM(10-20);

kann ich es so machen, oder muss ich dazu noch zusätliche Befehle schreiben?

Gruß Seyomi.

P.S. BItte in den Delphi-Bereich verschiebn, habe es ausversehen in den falschen Thread gepostet.

Seyomi


Moderiert von user profile iconChristian S.: Topic aus Basistechnologien verschoben am Sa 14.07.2012 um 21:20


Christian S. - Sa 14.07.12 21:16

Hallo!

Das ist in C# ja noch nicht einmal eine gültige Syntax ;-)

Du musst eine Instanz der Random-Klasse erstellen und dann davon die Next-Methode aufrufen.


Das ist in Delphi ja noch nicht einmal eine gültige Syntax ;-)

Du machst Dir mit der Random-Funktion eine Zufallszahl von 0-10 und addierst dann 10 drauf. Damit erhältst Du eine Zufallszahl von 10-20.

Viele Grüße,
Christian


Seyomi - Sa 14.07.12 21:27

Danke für den Hinweis.

hoffe, das es damit dann schnell voran geht. Wenn das Projekt fertig ist, werde ich es hier reinstellen.

Seyomi


IhopeonlyReader - Sa 14.07.12 23:06

Du kannst dir aber auch eine eigene Funktion dafür schreiben:


Delphi-Quelltext
1:
2:
3:
4:
Function RandomBereich(Von, Bis: Integer): Integer;
begin
Result := Random(Von)+Bis-Von;
end;


Edit: Diese kannst du natürlich noch bearbeiten, dass sie auch negative oder extended zahlen verwenden kann... geht ja relativ schnell und dass solltest du gut hinkriegen


Christian S. - Sa 14.07.12 23:46

@IhopeonlyReader: Das sieht ziemlich falsch aus.

Richtig wäre (ohne es testen zu können, habe kein Delphi installiert):

Delphi-Quelltext
1:
 result := random(bis-von+1) + von;                    


Martok - Sa 14.07.12 23:54

Oder du nimmst RandomRange (Unit Math).


IhopeonlyReader - So 15.07.12 15:29

ja ok :D mit dem beispiel 10-20 war das ein bisschen verwirrend... aber na klar

Delphi-Quelltext
1:
Result := Random(Bis-Von)+Von;                    

Warum addierst du einen?
Randorm gibt doch 0-die angegebene Zahl zuück also randrom(3) gibt doch 0,1,2 zurück ,oder?
Wenn man 5 bis 10 sagt, dann gehe ich davon aus, dass man NICHT einschließlich 10 meint... aber wenn man einschl. meint, dann natürlich 1 addieren ;)