• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Zufällige Bilderauswahl

ArSeN

New member
Hallo leute! Ich habe da mal ein kleines Problem. :rolleyes:

Also... ich habe eine bestimmte Anzahl von bildern, die heissen immer 01.jpg 02.jpg etc.pp. und das geht so maximal bis 30 oderso, die Anzahl kriege ich per parameter übergeben, und jetzt will ich davon zufällig welche auswählen und dann die Namen davon in ein array schreiben. Das an sich ist ja nicht schwer und geht soweit auch ganz gut. Das Problem bei der Sache ist nur, dass natürlich zwei mal das gleiche Bild kommen könnte, was ich aber wie ihr euch sicher denken könnt gerne vermeiden würde. Ich hab bisher schon folgenden Code:

Code:
    // Choosing random images  ---  UNDER CONSTRUCTION  ---
    img = new Array();
    for(int x = 0; x < 6; x++) {
      num = Math.round(math.random() * this.pics);
      if (img.indexOf(num) != -1) {
        img[x] = num;
      }
      else {
        document.write("number " + num + "scipped cause its already on position " + img.indexOf(num));
        i--;
      }
    }

Dabei zeigt er mir jetzt aber nen Fehler an und ich hab absolut kein Plan was daran falsch sein soll, kA obs an der logik liegt oder ich irgend'ne rückgabe falsch auswerte oderso aber ich denke Ihr Pros könnt mir da sicher weiterhelfen :D

Also dann! Danke im Voraus schonmal! Bis denächst!

ArSeN
 
Moin!

In Deinem Schnipsel sind mehrere offensichtliche Fehler. Hier ein Beispiel, wie Du eine Zufallsreihenfolge ohne doppelte Einträge hinbekommst:
PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Zufalls-Array ohne Duplikate</title>
<script type="text/javascript">
<!--
var txtArr=new Array('blah1','blah2','blah3','blah4','blah5','blah6','blah7','blah8','blah9','blah10');
var schonDrin=new Array();
var zufallsArr=new Array();
function checkArr(no){
for (var i=0;i<schonDrin.length;i++){
if(schonDrin[i]==no){
return false;
}
}
return true;
}
while (schonDrin.length<txtArr.length){
no=Math.floor(Math.random()*txtArr.length)
if(checkArr(no)){
schonDrin[schonDrin.length]=no;
zufallsArr[zufallsArr.length]=txtArr[no];
}
}
alert(zufallsArr);
//-->
</script>
</head>
<body>
</body>
</html>
Ahoi - Pit
 
Zurück
Oben