![]() |
VBA Zahlenraten
Hallo Leute
Ich bin in einer Informatikerlehre als Applikationsentwickler und habe die Aufgabe ein Zahlenratenspiel zu programmieren in VBA. Code:
Sub Zahlenraten() Und es muss doch auch gehen ohne so viele If Abfragen? Im Internet habe ich viele Musterlösungen gefunden, aber ich möchte nicht einfach eine kopieren. Grüsse David |
wie funktioniert denn der zufalszahlen generator? ich nehmen mal an, das ist hier die methode rnd. allgemein, kann man zufallszahlengeneratoren einen so genannten "seed" übergeben. wenn man ein und den selben zufallsgenerator 2 mal mit dem gleichen seed aufruft, kommt auch die gleiche zahl raus. also guck am besten mal in die dokumentation dieser funktion, da gibt bestimmt was, was die systemzeit oder sowas als seed benutzt.
edit: wenn du es gar nicht hinbekommst, schreib den zufallsgenerator einfach selber. hier ist mal ein linear kongruenter in c++. die zeilen in denen prev_rnd vorkommt, sorgen hier dafür, dass wenn man den generator ohne übergabeparameter mehrmals hintereinander ausführt, er trotzdem unterschiedliche zufallszahlen liefert. was aber nur dann funktioniert, wenn das programm in der zwischenzeit nicht beendet/ neu gestartet wird. ich tippe mal, dass der zufallsgenerator in vba ähnlich programmiert ist, und er deshalb immer mit einem speziefischem seed, in meinem fall der 0, anfängt, wenn man ihm nichts übergibt. Code:
int rnd(int x = 0){ Code:
i = Int((100 - 0 + 1) * Rnd()/10000. + 0) |
Bevor du das erste Mal Rnd verwendest, musst du genau einmal Randomize aufrufen.
|
So funzt es (hier mit nem CommandButton)... ohne Randomize ist der erste Zufall immer 71 und ohne 'Exit Sub' wird's ne Endlosschleife...
Und hier dasselbe quasi mit Versuchsauswertung... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:12 Uhr. |
Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.