Mehrere Variablen? - Zufall?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

GearTechDE

ehemals 'KillerJo96'

Betreff: Mehrere Variablen? - Zufall?

BeitragDo, Jun 30, 2011 14:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
ich bin denke ich mal völlig verrückt geworden. Entweder ich habe gerade voll den BlackOut oder ich bin wirklich zu dumm. Also folgendes Problem...

Ich habe Variablen angelegt:

BlitzBasic: [AUSKLAPPEN]


Zahl1 = 1
Zahl2 = 2
Zahl3 = 3
Zahl4 = 4



Wie kann ich machen, dass ich eine Zahl per Zufall von den Variablen abrufen kann?
Also iwie Rnd(Zahl1,Zahl4) geht nicht.

Wie kann ich das machen?

Lg Killerjo96
Mit freundlichen Grüßen: GearTechDE

Xeres

Moderator

BeitragDo, Jun 30, 2011 14:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Warum geht das nicht? Ich würde nur ein Array nehmen, aber sonst...

BlitzBasic: [AUSKLAPPEN]
Dim zahlen(4)
zahlen(0) = 10
zahlen(1) = 20
zahlen(2) = 30
zahlen(3) = 40
zahlen(4) = 50

Print (zahlen(Rand(0,4)))
WaitKey()
End
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

GearTechDE

ehemals 'KillerJo96'

BeitragDo, Jun 30, 2011 15:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke, so ähnlich hatte ich zwar gedacht, aber hat doch nicht funktioniert...
Mit freundlichen Grüßen: GearTechDE

ToeB

BeitragDo, Jun 30, 2011 15:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie genau hast du es denn Versucht und was hat nicht Funktioniert ? Vielleicht können wir dir dann sagen wo bei dir der Denkfehler ist Wink


mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!
 

CO2

ehemals "SirMO"

BeitragDo, Jun 30, 2011 15:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Also bei mir funktioniert es: BlitzBasic: [AUSKLAPPEN]
Global zahl1 = 1
Global zahl2 = 2
Global zahl3 = 3
Global zahl4 = 4

Print Rand(zahl1, zahl4)

WaitKey()
End

Gibt bei mir beim ersten durchlauf 2 zurück

BlitzBasic: [AUSKLAPPEN]
Global zahl1 = 1
Global zahl2 = 2
Global zahl3 = 3
Global zahl4 = 4

Print Rnd(zahl1, zahl4)

WaitKey()
End

Gibt bei mir beim ersten durchlauf 2.06698

Dazu sollte man noch sagen, dass "Rand()" Ganzzahlen zurückliefert, "Rnd()" auch Kommazahlen.

mfG,
CO2
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

ToeB

BeitragDo, Jun 30, 2011 18:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja, er will aber nicht durch die erste und letzte Variable einen Zahlenraum definieren, sondern aus beliebig vielen unterschiedlichen Zahlen eine aussuchen Wink

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!
 

PhillipK

Betreff: Re: Mehrere Variablen? - Zufall?

BeitragFr, Jul 01, 2011 7:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Killerjo96 hat Folgendes geschrieben:
Hallo,
ich bin denke ich mal völlig verrückt geworden. Entweder ich habe gerade voll den BlackOut oder ich bin wirklich zu dumm. Also folgendes Problem...

Ich habe Variablen angelegt:

BlitzBasic: [AUSKLAPPEN]


Zahl1 = 1
Zahl2 = 2
Zahl3 = 3
Zahl4 = 4



Wie kann ich machen, dass ich eine Zahl per Zufall von den Variablen abrufen kann?
Also iwie Rnd(Zahl1,Zahl4) geht nicht.

Wie kann ich das machen?

Lg Killerjo96


Du musst etwas grundsätzliches bedenken:
Zahl1, Zahl2, ZahlN sind nur namen für dich als programmierer - der Compiler wird intern wohl die speicheradresse austauschen *vermut aber keine ahnung hat*

Somit wird es unmöglich sein, eine Variable anhand ihres namens zu finden.

Rnd(Zahl1,Zahl4)

Das liefert dir eine zufallszahl zwischen 1.0 und 4.0
(weil: Zahl1 enthält '1' und Zahl4 enthält '4'. Das definiert den Zahlenraum 1 bis 4! Sollte Zahl4 nun zb den wert 50 halten, würde die random funktion zb auch eine 34 zurückgeben können!)

Dh auch Zahlen wie 3.4445436 sind möglich Smile
Ums genauer zu sagen - Mit den parametern bestimmt du einen Zahlenraum, wovon eine Zahl innerhalb diesem zurückgegeben wird, zufällig bestimmt.

Rnd() liefert einen FloatWert -> 3.545345 zb
Rand() liefer einen IntegerWert -> 3 zb

Xeres hats schon ganz richtig geschrieben:
BlitzBasic: [AUSKLAPPEN]
Dim zahlen(4) ;Dim leitet eine Array-deklaration ein - letzter INDEX ist 4! 
zahlen(0) = 10 ;Index 0 erhält den wert '10'
zahlen(1) = 20
zahlen(2) = 30
zahlen(3) = 40
zahlen(4) = 50 ; ... Index 4 erhält den wert '50'

Print (zahlen(Rand(0,4))) ; Hier wird Rand(0,4) ausgeführt, welches eine zahl einschließlich null bis einschließlich 4 ausgibt! Mit zahlen( wert ) wird anschließend der entsprechende Array eintrag wiedergegeben.
WaitKey()
End


Das sollte doch genau das sein, was du suchst?
Ich hab mir mühe gegeben, ein wenig zu erklären *g* Sollte es unklar sein, poste doch einmal mein dein Komplettes vorhaben Smile (die random funktion betreffend, am besten mit Codeschnipseln aus deinem Programm!)

Gruß, Phillipk
 

CO2

ehemals "SirMO"

BeitragFr, Jul 01, 2011 23:55
Antworten mit Zitat
Benutzer-Profile anzeigen
@ Phillip:
Zitat:
Zahl1, Zahl2, ZahlN sind nur namen für dich als programmierer - der Compiler wird intern wohl die speicheradresse austauschen *vermut aber keine ahnung hat*

Somit wird es unmöglich sein, eine Variable anhand ihres namens zu finden.

Rnd(Zahl1,Zahl4)

Das liefert dir eine zufallszahl zwischen 1.0 und 4.0
(weil: Zahl1 enthält '1' und Zahl4 enthält '4'. Das definiert den Zahlenraum 1 bis 4! Sollte Zahl4 nun zb den wert 50 halten, würde die random funktion zb auch eine 34 zurückgeben können!)

Da muss ich dir widersprechen: setzt man in meinem beispiel die zahlen von 5 - 8 ein, so wird 6 und nicht wieder 2 ausgegeben Wink

mfG,
CO2
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti
 

Sterbendes Lüftlein

BeitragSa, Jul 02, 2011 7:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Text entfernt

GearTechDE

ehemals 'KillerJo96'

BeitragMi, Aug 03, 2011 20:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke also habe jetzt das Beispiel mit dem Array genommen. Ist wahrscheinlic Wink h die beste Wink funktionierende Lösung. Dannke
Mit freundlichen Grüßen: GearTechDE

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group