MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame^] | 1 | FUNKTION: |
| 2 | int random(int n) |
| 3 | |
| 4 | ARGUMENTE: |
| 5 | n: Zahlen-Bereich aus dem gewaehlt werden soll. |
| 6 | |
| 7 | BESCHREIBUNG: |
| 8 | Gibt eine zufaellige Zahl im Bereich von 0..(n-1) zurueck. |
| 9 | |
| 10 | BEMERKUNGEN: |
| 11 | Der Nachteil der Zufaelligkeit (ueber grosse Zahlen) ist, dass wenn |
| 12 | viele Zahlen in einem kleinen Bereich in kurzer Zeit generiert |
| 13 | werden, einige Zahlen sehr viel haeufiger auftreten als andere. |
| 14 | |
| 15 | Es sei nochmal darauf hingewiesen, dass der Bereich immer bei 0 |
| 16 | und NICHT bei 1 anfaengt. Ein random(10) geht also nicht von |
| 17 | 1..10 sondern von 0..9! |
| 18 | |
| 19 | BEISPIELE: |
| 20 | // Einfache Abfrage z.B. aus der HitFunc einer Waffe: |
| 21 | |
| 22 | if(random(101) >= 70) return random(11); |
| 23 | else return 0; |
| 24 | |
| 25 | // Spieler soll in einen zufaellig ausgewaehlten Raum gemovt |
| 26 | // werden: |
| 27 | |
| 28 | string *dest = ({ "raum1","raum2","raum3","raum4","raum5" }); |
| 29 | this_player()->move(dest[random(sizeof(dest))],M_GO|M_NOCHECK); |
| 30 | |
| 31 | // Es soll eine zufaellige Meldung ausgegeben werden: |
| 32 | |
| 33 | tell_object(this_player(), |
| 34 | ({ "Es knackt.\n", "Dir ist kalt.\n", "Du schwitzt.\n", |
| 35 | "Du bekommst Angst.\n", "Hinter Dir knackt es im Gebuesch.\n", |
| 36 | "Ein kuehler Wind kommt auf.\n" })[random(6)]); |
| 37 | |
| 38 | Wie man sieht, gibt es fuer random() viele schoene Einsatz- |
| 39 | moeglichkeiten. Wobei letzteres Beispiel ueber AddRoomMessage |
| 40 | (fuer Raeume) viel einfacher umzusetzen ist. |
| 41 | |
| 42 | 7.Aug 2007 Gloinson |