Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 05-12-2006, 13:43   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2006
Beiträge: 56
Assoziatives Array per zufall mischen

Hi all,

Ich habe ein Array das Beispielsweise so aufgebaut ist:

Fragenkatalog[1]["Frage1"] //"1+1=?"
Fragenkatalog[1]["Frage2"] //"1*1=?"
Fragenkatalog[1]["Frage3"] //"1-1=?"
Fragenkatalog[2]["Frage1"] //"Übersetzen Sie Blitz nach Englisch"
Fragenkatalog[2]["Frage2"] //"Wer hat America entdeckt?"
Fragenkatalog[3]["Frage1"] //"Wer wurde 1954 Weltmeister"
Fragenkatalog[3]["Frage2"] //"Wer wurde 1974 Weltmeister"

Wie kann man nun 1,2,3 tauschen damit z.B. Fragenkatalog[2]["Frage2"] anstatt
Wer hat America entdeckt?" entweder "1*1=?" oder "Wer wurde 1974 Weltmeister" zugeordnet bekommt.

Was leider nicht korrekt funktioniert sind diese beiden alogrithmen

for (var j=0;j<arr.length;j++) arr.push(arr.splice(random(arr.length),1));

oder

for (var j=0;j<arr.length;j++) arr.push(arr.splice(random(arr.length)));

vielen Dank für eure Hilfe, Dary
Dary ist offline   Mit Zitat antworten
Alt 05-12-2006, 14:28   #2 (permalink)
Flashbitch
 
Benutzerbild von X-Tender
 
Registriert seit: Oct 2003
Ort: Hannover
Beiträge: 279
Warum packst du den inhalt von A nicht eine variabe Z un dann inhalt von B nach A und Z nach B .... ?? Wen ndu nur Tauschen willst
__________________
Fuchtelworld
X-Tender ist offline   Mit Zitat antworten
Alt 05-12-2006, 14:49   #3 (permalink)
angry > always
 
Benutzerbild von ingohill
 
Registriert seit: Jul 2001
Ort: NRW
Beiträge: 1.635
ActionScript:
  1. /************************************************************************************************ prototype:mischen
  2. *
  3. * erstellt den array prototype mischen
  4. *
  5. ***********************************************************************************************/
  6.  
  7. Array.prototype.mischen = function () {
  8.     var rndTemp = new Array();
  9.     var temp    = new Array();
  10.     var i;
  11.     var j;
  12.     for (var i=0; i<this.length; i++) {
  13.         rndTemp[i] = i;
  14.     }
  15.    
  16.     for (var i=0; i<this.length; i++) {
  17.         pos = Math.floor(Math.random() * (rndTemp.length - .01));
  18.         temp[i] = this[rndTemp[pos]];
  19.         rndTemp.splice(pos, 1);
  20.     }
  21.    
  22.     for (var i=0; i<this.length; i++) {
  23.         this[i] = temp[i];
  24.     }
  25. }
  26. Fragenkatalog[1].mischen();
-ingo
__________________

on air: caliban | neaera | heaven shall burn | hatebreed | the agony scene
ingohill ist offline   Mit Zitat antworten
Alt 05-12-2006, 15:03   #4 (permalink)
Neuer User
 
Registriert seit: Nov 2006
Beiträge: 56
danke =)

werds gleich mal probieren

LG Dary
Dary ist offline   Mit Zitat antworten
Alt 05-12-2006, 22:26   #5 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.321
flash hat keine assoziativen arrays. was da so aussieht als ob ist vom type object. ist aber egal, weil hier sowieso nur ein 'normales' array gemischt werden muss und das geht mit einer befehlszeile.
Code:
Fragenkatalog = [];
Fragenkatalog.push({frage1:"1+1=?", frage2:"1*1=?", frage3:"1-1=?"});
Fragenkatalog.push({frage1:"2.1", frage2:"2.2", frage3:"2.3"});
Fragenkatalog.push({frage1:"3.1", frage2:"3.2", frage3:"3.3"});
Fragenkatalog.push({frage1:"4.1", frage2:"4.2", frage3:"4.3"});
Fragenkatalog.push({frage1:"5.1", frage2:"5.2", frage3:"5.3"});
//
//
Fragenkatalog.sort(function () {return random(3)-1;});
//
//
trace(Fragenkatalog[0].frage1);
trace(Fragenkatalog[1].frage2);
trace(Fragenkatalog[2].frage3);
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (05-12-2006 um 22:44 Uhr)
hgseib 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



Alle Zeitangaben in WEZ +1. Es ist jetzt 13:37 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele