Zufallsgenerator

Ok hier der Quelltext:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Neue Seite 2</title>
<base target="RUnten">
<script type="text/javascript" language="javascript">
<!--

var sc = 10; // Anzahl der anzuzeigenden Texte
var s = new Array(sc); // String-Variable

// Die Anzahl der Texte muss mit dem Zahlen-Wert der Variablen 'sc' übereinstimmen
// Die verschiedenen Texte werden entsprechend durchnumeriert...
// ... wobei bei '0' begonnen wird.

s[0] = "Wissen ist Macht!";
s[1] = "Reden ist Silber, schweigen ist Gold";
s[2] = "Nichts ist sicher, ausser dass ich weiss, dass nichts sicher ist";
s[3] = "Take it easy, mann";
s[4] = "Ja was soll denn das?";
s[5] = "Aller guten Dinge sind drei";
s[6] = "Die dümmsten Bauern finden die grössten Kartoffeln";
s[7] = ", Drugs and Rock'n Roll";
s[8] = "Hastalavista Baby!";
s[9] = "Es gibt immer wieder solche, die es ganz genau wissen wollen.";


function pickRandom(range) {
if (Math.random)
return Math.round(Math.random() * (range-1));
else {
var now = new Date();
return (now.getTime() / 1000) % range;
}
}

// Im folgenden Code-Abschnitt kannst Du beliebig HTML einsetzen...
// ... um die Text-Anzeige zu formatieren.

var choice = pickRandom(sc);
document.writeln("<TABLE ALIGN=CENTER><TR><TD>" +
"<BLOCKQUOTE><H3>" + s[choice] +
"<" + "/H3><" + "/BLOCKQUOTE>" +
"<" + "/TD><" + "/TR><" + "/TABLE>");
//-->
</script>
</head>

<body>

</body>

</html>
 
Lotto? Zahl?

Ich sehe nur zehn Zufallstexte...

Soll das später auch so auf der Seite ausgegeben werden?


Btw.: Dein Nick ist grausig: Banned ist eine "Funktion", ein Zustand, aber kein Nick, also sag mal einen (am besten mehr, falls welche vergeben sind) vernünftigen Nick, damit das in der Datenbank geändert werden kann!
 
Schneller:-)

Anhand der Tatsache, dass du das Ergebnis per "writeln" in die Seite schreibst, geh ich mal davon aus, dass diese zufälligen Zeichenketten jeweils beim Laden der Seite erzeugt werden sollen.
Wenn dem so ist, musst du einen Cookie setzen, da bisherige Variablen beim Neuladen der Seite verloren gehen.
Code:
<html>
<head>
<title>Titel</title>
<script type="text/javascript">
<!--
var s = new Array();
s[0] = "Wissen ist Macht!";
s[1] = "Reden ist Silber, schweigen ist Gold";
s[2] = "Nichts ist sicher, ausser dass ich weiss, dass nichts sicher ist";
s[3] = "Take it easy, mann";
s[4] = "Ja was soll denn das?";
s[5] = "Aller guten Dinge sind drei";
s[6] = "Die dümmsten Bauern finden die grössten Kartoffeln";
s[7] = ", Drugs and Rock'n Roll";
s[8] = "Hastalavista Baby!";
s[9] = "Es gibt immer wieder solche, die es ganz genau wissen wollen.";


function kekskruemel()
{
kruemel=''
xP=new Date();xP=new Date(xP.getTime()+86400000);xP=xP.toGMTString();
if(document.cookie)
	{
	kruemel=document.cookie;
	kruemel=kruemel.replace(/^Keks.?/,'');
	kruemel=kruemel.split('#');
	}
if(kruemel=='')
	{
	kruemel=s;
	}
Zufall=Math.floor(Math.random() * (kruemel.length-1));
torte=new Array();kakao='';
for(i=0;i<kruemel.length;++i)
	{
	if(i!=Zufall){torte[torte.length]=kruemel[i];}
	else{kakao=kruemel[i];}
	}
document.cookie='Keks='+torte.join('#')+';expires='+xP+';';
return(kakao);
}
//-->
</script>
</head>
<body>
<script type="text/javascript">
<!--
document.write(kekskruemel());
//-->
</script>
</body>
</html>
Bei ersten Seitenaufruf werden alle Sätze in einem Cookie gespeichert.
Aus diesem Cookie wird dann ein Satz zufällig ausgewählt und in die Seite geschrieben...wobei er gleichzeitig aus dem Cookie entfernt wird. Ist der Cookie leer, wird er wieder neu aufgefüllt und das Spiel geht von vorne los :)
Das dürfte bis zu ca.100 Sätzen funktionieren, da die Grösse eines Cookies auf ca.4kB beschränkt ist.
 
Hallo,

wenn du nicht die Sätze in das Cookie schreibst sondern den Index des aktuellen Satzes und nur dieses Speicherst kannst du knapp 1000 Sätze in einem Cookie verwalten (grob Überschlagen). Wenn du sogar nur einen Binärwert speicherst (0=noch unbenutzt, 1 = schon benutzt) kannst du mit 4kb sogar 4096 Sätze verwalten weil du keine Trennzeichen berücksichtigen musst ;)

aber das alles nur mal so nebenbei...

bye
 
Zurück