Den ersten Zufallswert in einer Variablen speichern und den zweiten solange aus der Funktion holen, bis er nicht gleich dem ersten ist.
also beim 2. Ermitteln in etwa...
var oldNum = myNum;
while(oldNum==myNum) {
myNum=rand(4);
}
wahrscheinlich geht auch:
while(oldNum==(myNum=rand(4));
Dein Code erscheint aber generell noch ein bißchen "optimierungsbedürftig".
Erste Anregung: statt der 4 if Abfragen reicht ein
document.write("<img src='bild" + (i+1) + ".jpg'>");
Gruß aus Wien!
Hallo,
in 2 Zellen einer Tabelle stelle ich Bilder dar, die per Zufall ausgewählt werden (siehe Code weiter untern).
Das funzt gut, hat aber den Haken, dass die Darstellung des gleichen Bildes in beiden Zellen nicht ausgeschlossen wird.
Wie ist das Script abzuaendern, um Doppeldarstellungen des gleichen Bildes zu verhindern?
Gruesse,
Nico
Code
<table>
<tr>
<td>
<script>
today=new Date();
jran=today.getTime();
function rnd() {
ia=9301;
ic=49297;
im=233280;
jran = (jran*ia+ic) % im;
return jran/(im*1.0);
};
function rand(number) {
return Math.ceil(rnd()*number);
};
document.write("<CENTER>");
for(i=1;i<=1;i++) {
myNum=(rand(4));
if(myNum == 1) document.write("<img src='bild2.jpg'>");
if(myNum == 2) document.write("<img src='bild3.jpg'>");
if(myNum == 3) document.write("<img src='bild4.jpg'>");
if(myNum == 4) document.write("<img src='bild5.jpg'>");
else {
document.write();
}
};
document.write("</CENTER>");
</script>
</td>
<td>
...das gleiche nochmal ....
</td>
</tr>
</table>