Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 15-11-2005, 21:49   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Beiträge: 5
Anfängerfrage zu Arrays

Hallo,
gibt es eine Möglichkeit die Elemte eines Arrays zufällig anzuordnen?
Danke!
fraufuchs ist offline   Mit Zitat antworten
Alt 15-11-2005, 22:39   #2 (permalink)
meistens harmlos
 
Benutzerbild von rena
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 17.643
Als eigenen Befehl im Sinne von array.zufaelliganordnen(); nicht.
Aber über die Suchfunktion mit der Suchwortkombination "array mischen" o.ä. dürftest du einige Ansätze finden, wie sich das bewerkstelligen läßt.

Ein mögliches Grundprinzip:
Einen neuen Array definieren und dann in einer Schleife
- eine zufällige Stelle aus dem alten Array auswählen
- den Wert derselben in den neuen schreiben
- die zufällige Stelle aus dem alten Array löschen.

Gruß
Rena
__________________
www.rena-hermann.de

The angels have the phone box

Geändert von rena (15-11-2005 um 22:44 Uhr)
rena ist offline   Mit Zitat antworten
Alt 16-11-2005, 00:44   #3 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
Array mischen - Array Mixer

So ich habs mal umgesetzt.
Scheint soweit zu klappen.
PHP-Code:
var arr1:Array = [123456];
var 
arr2:Array = new Array();
trace("Array 1: "+arr1);
//
function arrMischen(laenge):Void {
    var 
wert:Number Math.ceil(Math.random()*laenge-1);
    
arr2.push(arr1[wert]);
    
arr1.splice(wert1);
}
//
for (var 0i<6i++) {
    
arrMischen(arr1.length);
}
trace("Array 2: "+arr2+"\n"+"-----------------------"); 
__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------
thebiz ist offline   Mit Zitat antworten
Alt 16-11-2005, 00:56   #4 (permalink)
Neuer User
 
Benutzerbild von :: RK ::
 
Registriert seit: Jan 2002
Ort: Umgebung Stuttgart
Beiträge: 5.412
hi,

so wärs dann noch angenehmer
PHP-Code:
var arr1:Array = [123456];
var 
arr2:Array = new Array();
trace("Array 1: "+arr1);
//
function arrMischen(laenge):Void {
for (var 
0i<laengei++) {
    var 
wert:Number Math.ceil(Math.random()*laenge-1);
    
arr2.push(arr1[wert]);
    
arr1.splice(wert1);
}
}
//
arrMischen(arr1.length);
trace("Array 2: "+arr2+"\n"+"-----------------------"); 
__________________
Das Glück im Leben hängt von den guten Gedanken ab, die man hat.

Easing_Equations / Flash Kontaktformular / FlashPlugin W3C konform / Nützliche Beiträge zu FAQs
:: RK :: ist offline   Mit Zitat antworten
Alt 16-11-2005, 14:39   #5 (permalink)
Neuer User
 
Registriert seit: Nov 2005
Beiträge: 5
Vielen, vielen Dank erstmal!
Die Syntax hat nicht ganz gepasst, wahrscheinlich weil ich Flash MX habe (?)
Bei mir siehts jetzt so aus und klappt super!

PHP-Code:
var arr1 = new Array (123456); 
var 
arr2 = new Array(); 
trace("Array 1: "+arr1); 
// 
arrMischen = function (laenge){ 
    var 
wert Math.ceil(Math.random()*laenge-1); 
    
arr2.push(arr1[wert]); 
    
arr1.splice(wert1); 

// 
for (var 0i<6i++) { 
    
arrMischen(arr1.length); 

trace("Array 2: "+arr2+"\n"+"-----------------------"); 
fraufuchs ist offline   Mit Zitat antworten
Alt 16-11-2005, 21:42   #6 (permalink)
Neuer User
 
Benutzerbild von :: RK ::
 
Registriert seit: Jan 2002
Ort: Umgebung Stuttgart
Beiträge: 5.412
dann machs aber lieber so:
PHP-Code:
var arr1= [123456];
var 
arr2= new Array();
trace("Array 1: "+arr1);
//
function arrMischen(laenge):Void {
for (var 
0i<laengei++) {
    var 
wertMath.ceil(Math.random()*laenge-1);
    
arr2.push(arr1[wert]);
    
arr1.splice(wert1);
}
}
//
arrMischen(arr1.length);
trace("Array 2: "+arr2+"\n"+"-----------------------"); 
__________________
Das Glück im Leben hängt von den guten Gedanken ab, die man hat.

Easing_Equations / Flash Kontaktformular / FlashPlugin W3C konform / Nützliche Beiträge zu FAQs
:: RK :: ist offline   Mit Zitat antworten
Alt 12-12-2005, 22:19   #7 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
Ich denke so ist es am Besten:

PHP-Code:
var arr0:Array = [123456789"a""b""c"];


function 
arrMischen(wen):Array {
    var 
laenge:Number wen.length;
    var 
arr1:Array = wen.concat();
    var 
arr2:Array = [];
    for (var 
0i<laengei++) {
        var 
wert:Number Math.floor(Math.random()*arr1.length);
        
arr2.push(arr1[wert]);
        
arr1.splice(wert1);
    }
    return 
arr2;
}


trace(arr0);
trace(arrMischen(arr0)); 
__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------

Geändert von thebiz (12-12-2005 um 22:29 Uhr)
thebiz 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 08:52 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele