Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Phili
unregistriert
Alter Hase
Zitat von »"n0_0ne"«
naja, aber ich habe ja mehr als nur ein einziges ereignis, was eintreten kann, deshalb wäre das nicht so toll, wenn ich 1 bis 5000 generieren lasse, und dann die 1 abfrage für das eine ereignis... dann müsste ich ja die restlichen 4999 cases immer noch machen... oder ich lasse es in einer großen if else if else if ..... orgie ausarten, mit denen ich dann eben auch die werte zwischen (beispielsweise) 400 und 4800 direkt abfangen kann...
gibts da keine tolle möglichkeit, mit der man dann auch schnell und einfach ein neues ereignis einbauen kann, ohne alle anderen ändern zu müssen?
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 |
srand(time(NULL)); int x = rand(); if(x ..) { Ereignis1; } x = rand(); if(x ..) { Ereignis2; } |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
bool Wahrscheinlichkeit(int Prozent){ //Prozent sollte von 1-99 sein if(Prozent >= 100) //ne 100%ige wahrscheinlichkeit und größer -> automatisch richtig return true; if(Prozent <= 0) return false; int zahl = rand()% 101 +1; if(zahl <= Prozent) return true; else return false; } |
C-/C++-Quelltext |
|
1 2 3 4 5 |
if(Wahrscheinlichkeit(25) //Wahrscheinlichkeit von 25% do_this(); if(Wahrscheinlichkeit(10) //Wahrscheinlichkeit von 10% do_that(); |
Alter Hase
Zitat von »"Chef-Koch"«
C-/C++-Quelltext
1 2 3 4 5 6 7 8 9 10 11 12 13 14 bool Wahrscheinlichkeit(int Prozent){ //Prozent sollte von 1-99 sein if(Prozent >= 100) //ne 100%ige wahrscheinlichkeit und größer -> automatisch richtig return true; if(Prozent <= 0) return false; int zahl = rand()% 101 +1; if(zahl <= Prozent) return true; else return false; }
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
bool getEventHappened(float propability) { if(propability >= 100.f) return true; if(propability <= 0.f) return false; float randValue = (float)(rand()% 10001) / 100.f; if(randValue <= propability) return true; else return false; } |
Werbeanzeige