Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
SoS
Beiträge: 340 Registriert: 29.08.2004 09:31
Kontaktdaten:
Beitrag
von SoS » 08.09.2005 23:43
Ich weiss nicht ob es das schon gab aber ich habe dazu nichts gefunden und brauchte das gerade dringend.
Code: Alles auswählen
Procedure Rnd(Min.l, Max.l)
Repeat
result.l=(Random(Max-Min)+Min)-(Random(Max-Min)+Min)
Until result <= Max And result >= Min
ProcedureReturn result
EndProcedure
For X= 1 To 20
Debug Rnd ( -60,60 )
Next
Zuletzt geändert von
SoS am 09.09.2005 12:01, insgesamt 1-mal geändert.
Deeem2031
Beiträge: 1232 Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:
Beitrag
von Deeem2031 » 09.09.2005 01:57
Man könnt ja auch einfach Random(120)-60 nehmen ...
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Agent
Beiträge: 296 Registriert: 13.09.2004 11:28
Kontaktdaten:
Beitrag
von Agent » 09.09.2005 10:40
Hm...
Man könnte es auch so machen:
Das wäre dann noch besser aus meiner Sicht:
Code: Alles auswählen
zufallsbereich=1000
Select Random(1)
Case 1
zufallszahl=Random(zufallsbereich)*-1
Case 0
zufallszahl=Random(zufallsbereich)
EndSelect
Debug zufallszahl
code2nil
Beiträge: 9 Registriert: 17.09.2004 09:39
Wohnort: Nähe K/BN/SU/GM
Beitrag
von code2nil » 09.09.2005 11:41
Allgemein liefert Random(max-min)+min eine ZZ im Intervall [min; max], wobei min, max mit min<=max beliebige ganze Zahlen sein dürfen.
SoS
Beiträge: 340 Registriert: 29.08.2004 09:31
Kontaktdaten:
Beitrag
von SoS » 09.09.2005 11:46
Deeem2031 hat geschrieben: Man könnt ja auch einfach Random(120)-60 nehmen ...
nur
ist nur ein Beispiel und ich kann da eingeben was ich will
z.b.
Code: Alles auswählen
Procedure Rnd(Min.l, Max.l)
Repeat
result.l=(Random(Max-Min)+Min)-(Random(Max-Min)+Min)
Until result <= Max And result >= Min
ProcedureReturn result
EndProcedure
For X= 1 To 20
Debug Rnd ( -14311,-123 )
Debug Rnd ( 60,6000 )
Debug Rnd ( -60,60 )
Debug Rnd ( -100,0 )
Debug Rnd ( -14311,14311 )
Debug ""
Next
code2nil
Beiträge: 9 Registriert: 17.09.2004 09:39
Wohnort: Nähe K/BN/SU/GM
Beitrag
von code2nil » 09.09.2005 11:54
Wie gesagt
Code: Alles auswählen
Procedure Rnd(Min.l, Max.l)
result.l=Random(Max-Min)+Min)
ProcedureReturn result
EndProcedure
For X= 1 To 20
Debug Rnd ( -14311,-123 )
Debug Rnd ( 60,6000 )
Debug Rnd ( -60,60 )
Debug Rnd ( -100,0 )
Debug Rnd ( -14311,14311 )
Debug ""
Next
sollte klappen...
SoS
Beiträge: 340 Registriert: 29.08.2004 09:31
Kontaktdaten:
Beitrag
von SoS » 09.09.2005 12:11
hmm,stimmt. (Bis auf das ")" hinter Min
)
Ich habe das scheinbar zu verkompliziert .
code2nil
Beiträge: 9 Registriert: 17.09.2004 09:39
Wohnort: Nähe K/BN/SU/GM
Beitrag
von code2nil » 09.09.2005 12:23
hmm,stimmt. (Bis auf das ")" hinter Min Smile )
Äh, genau - hatte das nur so reingetipselt
AndyX
Beiträge: 1272 Registriert: 17.12.2004 20:10
Wohnort: Niederösterreich
Kontaktdaten:
Beitrag
von AndyX » 09.09.2005 13:12
Wenn ich da jetzt nicht was falsch verstanden habe, sollte das helfen...
remi_meier
Beiträge: 1078 Registriert: 29.08.2004 20:11
Wohnort: Schweiz
Beitrag
von remi_meier » 09.09.2005 14:03
Da will jemand seine ASM Kentnisse zeigen..
ein einfaches a = -Random(2000) würds auch tun
und
du hast es falsch verstanden^^
mein Code oben ist auch falsch