Javaskript Zufallsgenerator Wörter mischen

Ich möchte die Wörter verschiedener Sätze mischen („0a 0b 0c“ zu „0c 0a 0b“ usw.)
Leider habe ich irgendwo noch einen Fehler.
Wer kann helfen?

var wort="";
var words=new Array();
var shaked=new Array();

wort=„0a 0b 0c“;
words[0] = wort;
shaked[0] = wort;

wort=„1a 1b 1c“;
words[1] = wort;
shaked[1] = wort;
.
.
.

var hjsGemischtersatz;
var hjsDummi;
var hjsZufall;
var hjsSatz;
var hjsZaehler;
var hjsbis;

for (f=0;f
hjsGemischtersatz="";
hjsZaehler = 0;
Woerter = hjsSatz.split(" ");
hjsbis = woerter.length;
alert (hjsbis, „Programm kommt nicht hierhin“);

while (hjsbis > 1){

hjsZufall = (parseInt(Math.random()*Woerter.length));

hjsGemischtersatz = hjsGemischtersatz + Woerter[hjsZufall];

hjsDummi = „“;
for (hjsZaehler=0;hjsZaehler

Ich möchte die Wörter verschiedener Sätze mischen („0a 0b 0c“
zu „0c 0a 0b“ usw.)
Leider habe ich irgendwo noch einen Fehler.

wo wird denn lines gesetzt?

for (f=0;f

Hallo,

Ich möchte die Wörter verschiedener Sätze mischen („0a 0b 0c“
zu „0c 0a 0b“ usw.)
Leider habe ich irgendwo noch einen Fehler.
Wer kann helfen?

Ich habe Deinen Quelltext ehrlich gesagt nicht
so richtig verstanden, weil u.a. Dinge benutzt
werden, die nirgends definiert sind und weil
er eine Komplizierthjeit aufweist, die das
beschriebene Problem um mehrere Größenordnungen
übersteig.

Ich vermute eben mal, was Du machen willst und
illustriere das durch folgenden Quelltext.
Wenn es etwas anderes ist, was Du vorhattest,
kannst Du ja noch mal präzisieren :wink:
function array_shuffle( array ) {
for(var i=array.length-1; i>0; i–) {
var k = Math.floor( i * Math.random() );
var t = array[i];
array[i] = array[k], array[k] = t;
}
return array;
}

function mische_worte(satz) {
return array_shuffle( satz.split( /\s+/ ) ).join(’ ');
}

window.onload = function() {
var show = document.getElementById(‚ausgabe‘);
var satz = ‚0a 0b 0c‘;
show.innerHTML = satz + ‚<br />‘ + mische_worte(satz);
}
[hier kommt das Ergebnis hin]

Grüße

CMБ

wo wird denn lines gesetzt?

Hier das komplette Programm (mit dem eingearbeiteten Vorschlag von Semjon wobei auch dort der gemischte Satz noch nicht angezeigt wird (Unter ):

Satz-Anagram

Satz-Anagramme

>>> Tiere raten

var wort="";
var words=new Array();
var shaked=new Array();
var sound=new Array();

wort=„Der Affe frisst Bananen.“;
words[0] = wort;
shaked[0] = wort;
sound[0]= „affe.wav“;

wort=„1a 1b 1c“;
words[1] = wort;
shaked[1] = wort;
sound[1]= „elefant.wav“;

wort=„2a 2b 2c“;
words[2] = wort;
shaked[2] = wort;
sound[2]= „forelle.wav“;

wort=„3a 3b 3c“;
words[3] = wort;
shaked[3] = wort;
sound[3]= „giraffe.wav“;

wort=„4a 4b 4c“;
words[4] = wort;
shaked[4] = wort;
sound[4]= „kaenguru.wav“;

wort=„5a 5b 5c“;
words[5] = wort;
shaked[5] = wort;
sound[5]= „kamel.wav“;

wort=„6a 6b 6c“;
words[6] = wort;
shaked[6] = wort;
sound[6]= „kaninchen.wav“;

wort=„7a 7b 7c“;
words[7] = wort;
shaked[7] = wort;
sound[7]= „krokodil.wav“;

wort=„8a 8b 8c“;
words[8] = wort;
shaked[8] = wort;
sound[8]= „nashorn.wav“;

wort=„9a 9b 9c“;
words[9] = wort;
shaked[9] = wort;
sound[9]= „seehund.wav“;

var randoms=new Array();
var i,j,k;
var flag=false;
var lines=10;
var spacer=„grafik/spacer.gif“;
var is_true=„grafik/true.gif“;
var is_false=„grafik/false.gif“;
var image_index=0;

//Zufällige Aufgabe auswählen
for (i=0;i<lines;i++) {
while (flag==false) {
flag=true;
j=Math.floor(Math.random()*words.length);
for (k=0;k<randoms.length;k++)
if (randoms[k]==j) flag=false;
}//ende while
randoms[i]=j;
flag=false;
}//ende for i

<!-- Hans-Jürgens Routine -->
var hjsSatz;
var Woerter;

for (f=0;f<lines;f++) {
//ein Satz wird nach hjsSatz zwischengespeichert
hjsSatz=shaked[f];
//die Wörter des Satzes werden in einem Array abgelegt
woerter = hjsSatz.split(" ");

// Die Wörter werden gemischt
for(var si=woerter.length-1; si>0; si–) {
var sk = Math.floor( si * Math.random() );
var st = woerter[si];
woerter[si] = woerter[sk], woerter[sk] = st;
}

//Die Wörter des Arrays werden in hjssatz wieder zusammengefügt
hjssatz=""
for(var si=1, woerter.length) {
hjsSatz=hjsSatz + woerter[si] + " ";
}
//Der zusammengefügte Satz wird wieder übergeben
shaked[f] = hjsSatz;
}//ende for f

function write_lines() {
for (i=0;i<lines;i++) {
document.writeln("<tr><td><img onMouseover=„JS_Prozedur('sound/“

+sound[randoms[i]] +"’)" src=„grafik/speaker.gif“>   <td><input type=„text“

value=""+shaked[randoms[i]]+"" readonly></td></td><td><input type=„text“

value=""></td><td><img src=„grafik/false.gif“ width=„20px“ height=„20px“></td></tr>")
}//ende for
}//ende function

function check() {
flag1=true;
for (i=0;i<lines;i++) {

if (document.shake.elements[(2*i+1)].value==words[randoms[i]])

document.images[image_index+i+i+1].src=is_true;
else {
document.images[image_index+i+i+1].src=is_false;
flag1=false;
}
}
if (flag1==true) {
//alert(„BRAVO, du hast alles richtig!“);
//location.href=„words2.htm“;
var continue_test=confirm(„BRAVO, du hast alles richtig! Anderes Arbeitsblatt?“);
if(continue_test==true) location.href=„ia-start.htm“;

}
}

Schreiben Sie die vertauschten Worte in der richtigen Reihenfolge zu
einem korrekten Satz!

(Wenn Smiley lacht, ist der Satz richtig geschrieben)

write_lines()

.

wo wird denn lines gesetzt?

Hier das komplette Programm

da sind eine reihe syntaxfehler drin. lass dir die fehler entsprechend anzeigen: javascriptkonsole in firefox&co resp. links unten das gelbe ausrufungszeichen im internetextplorer.

die zeile:
for(var si=1, woerter.length) {

muss irgendwie so aussehen:
for(var si=1;si

Hallo,

Hier das komplette Programm (mit dem eingearbeiteten Vorschlag
von Semjon wobei auch dort der gemischte Satz noch nicht
angezeigt wird (Unter ):

Du solltest erstmal *klar und deutlich* hier
formulieren, *was Du überhaupt machen willst*,
denn das geht aus Deinem „Programm“ nicht so
richtig hervor.

Es wäre daher hilfreich, in Ruhe und *ausführlich*
(+verständlich) aufzuschreiben, was genau beab-
sichtigt wird – ohne die geringste Rücksicht auf
irgendwelche Javascript-Quelltexte. Nur schönen
Text :wink:

Grüße

CMБ