Zurück   Flashforum > Flash > ActionScript > ActionScript 2

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 24-09-2011, 03:55   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2011
Beiträge: 5
Random generiert manche Werte häufiger als andere

hallo ich bin der neue

ich habe vor eine aufsammel-funktion in ein spiel einzubauen, die zuerst einen zufallswert generiert und dann,
entsprechend diesem wert, ein bestimmtes item aus einem array (item_database_ar) liest und
dieses dann in das inventar (inventar_ar) pushed. das klappt alles super, bis auf die tatsache,
dass einige items nur halb so oft aufgesammelt werden wie andere.

hier mal der code:

PHP-Code:
var inventar_ar = new Array();
var 
item_database_ar = new Array();
item_database_ar[0] = "Tannenzapfen"// erscheint halb so oft
item_database_ar[1] = "Heiltrank";
item_database_ar[2] = "Manatrank";
item_database_ar[3] = "Peitsche";// erscheint halb so oft 
auf dem button zum einsammeln:
PHP-Code:
on(release){
    
rnd=Math.round(Math.random()*(item_database_ar.length-1));
    
trace(rnd); // spuckt 0, 1, 2 oder 3 aus
    
inventar_ar.push(item_database_ar[rnd]);

nach einigen durchläufen sieht mein geöffnetes inventar im spiel dann zb. so aus:
Heiltrank x 103
Manatrank x 93
Peitsche x 50
Tannenzapfen x 52

ich hab mir, hier im forum, schon einige andere beispiele zum generieren von zufallszahlen angeschaut,
kann aber irgendwie nicht erkennen, wo mein denkfehler liegt.
weiß jemand was ich falsch mache?

mfg
splejx ist offline   Mit Zitat antworten
Alt 24-09-2011, 13:28   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
willkomen im flachforum!

ersetze Math.round durch int oder Math.floor bzw. addiere noch .5 dazu.
durch das kaufmännische runden dürfte der erste und letzte wert seltener benutzt werden.

das gesetz der grossen zahlen gilt erst ab GROOOOOOSSE zahlenmengen ;-)
und Math.random ist ausgewogen.
teste noch ein paar mal, es sollten immer andere werte scheinbar öffters vorkommen als andere.

du kannst dir denken, das da schon hinz und kunz sturm gelaufen wären, wenn da was nicht stimmen würde.

ansonsten, mach dir deine eigenen zufallszahlen: http://www.seibsprogrammladen.de/fra...rithmen/Zufall
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (24-09-2011 um 13:37 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 24-09-2011, 13:42   #3 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
In Code sähe hgseibs Aussage so aus:
PHP-Code:
var rnd:Number Math.floor(Math.random() * item_database_ar.length); 
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist offline   Mit Zitat antworten
Alt 24-09-2011, 18:12   #4 (permalink)
Neuer User
 
Registriert seit: Sep 2011
Beiträge: 5
mit...
PHP-Code:
var rnd:Number Math.floor(Math.random() * item_database_ar.length); 
...ist jetzt alles ausgewogen. mal überwiegt das eine item, mal das andere, genau so wie es sein soll.

vielen dank euch beiden!
splejx ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
CDATA - andere Verarbeitung von Flash wenn XML generiert ? kamiKC Flash MX 2004 4 27-10-2005 16:47
Bug ? attachMovie, manche gehen, manche nicht *verzweifel* MF_ Flash MX 2004 1 04-07-2004 01:38
variablen andere Werte als trace anzeigt lernenOhneEnde ActionScript 1 1 15-06-2004 17:22
Werte von Variabeln vergleichen und andere Probleme sebsch@home ActionScript 1 2 10-01-2003 08:58
Werte aus Arrays als String an andere übergeben Dummer:Junge ActionScript 1 1 22-11-2002 13:59


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:34 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele