Wörter in zufällige Reihenfolge

niknaim

Grünschnabel
Hallo,
ich möchte gerne 10 Wörter in zufällige Reihenfolge in einem Text ausgeben.

Wenn jetzt z.B. jedes Wort einen Buchstaben zugewiesen bekommt, kann ich diese ja hintereinander in mein Textfeld "text" setzten durch:

a = "eins";
b = "zwei";
text = a+b;

Aber wie bekomme ich die jetzt zufällig in eine Reihenfolge. Ich sitzte jetzt seit 3 Stunden vor dem Rechner und suche in Foren, finde aber keine entspechende Hilfe. Vielleicht hat jemand von einen Plan, wie das realisieren könnte.

Gruss und Danke vorab
Niklas
 
Hi und willkommen im Forum,

meinst Du so etwas?
Code:
var words = new Array("eins", "zwei", "drei", "vier", "fünf");

while (words.length > 0) {
    textfeld.text += words.splice(int(Math.random() * words.length), 1);
}

Gruß
.
 
Zuletzt bearbeitet:
Hallo Tobias, Danke für Deine Antwort.
Vermutlich ja. Bei Deinem Beispiel soll z.B. "fünf drei eins vier zwei" rauskommen. Habe Dein Script mal eingefügt auf die Hauptzeitleiste aber leider tut sich nichts. Was mache ich falsch?

Gruss
 
Hi,

1. Ich habe versehentlich den zweiten Parameter der slice-Methode vergessen (Anzahl der zu extrahierenden Zeichen.

2. wenn Du zwischen den Worten Leerzeichen einfügen willst, müsste der Code so lauten:
Code:
var words = new Array("eins", "zwei", "drei", "vier", "fünf");

while (words.length > 0) {
	var a = words.splice(int(Math.random() * words.length), 1);
	textfeld.text += (words.length > 0)? a + " " : a;
}

3. Achte darauf, dass Dein dynamisches Textfeld auch den richtigen Instanznamen (hier: "textfeld") trägt.

Gruß
.
 
ja genau, das war das problem, der name des Textfeldes. Vielen Dank,
aber wie bekomme ich jetzt auch zusätzlich einen zufälligen Absatz darein. Den Punkt habe ich auch schon reinbekommen. Nur soll ab und zu nach dem "Ende vom Satz" ein Absatz erscheinen. Einfach nur <br> eingeben funktioniert nicht.

Gruss Niklas
 
ja, super, funktioniert.
jetzt möchte ich vor jen Absatz einen Punkt setzten, so als wäre der Satz zu ende.
Habe ""."&chr(13)" ausprobiert, aber dann ist der Absatz weg.
Zu guter letzt noch 2 Fragen:
1.wie bekomme ich einen Doppelten Absatz/Zeilensprung hin "chr(13)&chr(13)" funktioniert leider nicht.
Ich möchte, dass die ersten 3 Wörter fett erscheinen. Gibt es da ne Möglichkeit mit ne Schleife das hinzubekommen.

Gruss und Danke, ich hoffe ich beanspruche Dich nicht all zu sehr.

Niklas
 
Hi,

Strings werden nicht mit dem Operator "&" (bool'sche AND-Verknüpfung) verknüpft, sondern mit "+":
Code:
var words = new Array("." + chr(13), chr(13) + chr(13));

Gruß
.
 
Zurück