Zahlen zufällig generieren klappt nicht???
Daniel
- javascript
Hallo zusammen ich poste einfach mal mein bisheriges Script, so ist es wahrscheinlich am Einfachsten zu verstehen!
Das Problem liegt darin, dass irgendwie einfach keine Zufallszahlen generiert werden, sprich alle Werte sind = 0 !!!
var akt_inhalte = new Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
var bool_ha = new Array(false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false);
var akt_frei;
var rdm;
var i;
var zahl;
var j;
function init()
{
mischen();
document.write
(
'<h1><center>Schiebepuzzle Version 0.7a</h1>\
<table width="400" height="400">\
<tr>\
<td class="puzzle" name="0">'+ akt_inhalte[0] +'</td>\
<td class="puzzle" name="1">'+ akt_inhalte[1] +'</td>\
<td class="puzzle" name="2">'+ akt_inhalte[2] +'</td>\
<td class="puzzle" name="3">'+ akt_inhalte[3] +'</td></tr><tr>\
<td class="puzzle" name="4">'+ akt_inhalte[4] +'</td>\
<td class="puzzle" name="5">'+ akt_inhalte[5] +'</td>\
<td class="puzzle" name="6">'+ akt_inhalte[6] +'</td>\
<td class="puzzle" name="7">'+ akt_inhalte[7] +'</td></tr><tr>\
<td class="puzzle" name="8">'+ akt_inhalte[8] +'</td>\
<td class="puzzle" name="9">'+ akt_inhalte[9] +'</td>\
<td class="puzzle" name="10">'+ akt_inhalte[10] +'</td>\
<td class="puzzle" name="11">'+ akt_inhalte[11] +'</td></tr><tr>\
<td class="puzzle" name="12">'+ akt_inhalte[12] +'</td>\
<td class="puzzle" name="13">'+ akt_inhalte[13] +'</td>\
<td class="puzzle" name="14">'+ akt_inhalte[14] +'</td>\
<td class="puzzle" name="15">'+ akt_inhalte[15] +'</td>\
</tr></table>\
</center>');
}
function mischen()
{
rdm = Math.floor(Math.random()*16);
while(i < 16)
{
if (bool_ha[rdm] == false)
{
if (rdm > 0)
{
akt_inhalte[i] = rdm;
}
else
{
akt_inhalte[i] = "";
akt_frei = i;
}
bool_ha[rdm] = true;
i=i+1;
}
else rdm=Math.floor(Math.random()*16);
}
}
danke schonmal!
lg Daniel
Hallo Daniel,
schau dir mal Zufälliges Mischen von Variablen an.
Auf Wiederlesen
Detlef
Hi,
von Detlef G.s Tip abgesehen gibt es bei deinem Beispiel *einige* Problemfälle:
'<h1><center>Schiebepuzzle Version 0.7a</h1>\
unzulässige Verschachtelung
<table width="400" height="400">\
height nicht erlaubt
<td class="puzzle" name="0">'+ akt_inhalte[0] +'</td>\
name nicht erlaubt
Insbesondere letzteres funktioniert nicht browserübergreifend beim Zugriff mit JS!
Gruß, Cybaer
<td class="puzzle" name="0">'+ akt_inhalte[0] +'</td>\
name nicht erlaubt
Und der Wert ist auch nicht erlaubt.
Gunnar
Hi,
<td class="puzzle" name="0">'+ akt_inhalte[0] +'</td>\ name nicht erlaubt
Und der Wert ist auch nicht erlaubt.
Das ergibt sich bereits daraus, daß das Attribut an sich nicht erlaubt ist.
Bei den Elementen, die ein name-Attribut erlauben, ist "0" aber durchaus ein gültiger Wert für dieses name-Attribut.
cu,
Andreas
MudGuard,
Bei den Elementen, die ein name-Attribut erlauben, ist "0" aber durchaus ein gültiger Wert für dieses name-Attribut.
Andreas,
Und ich hatte extra nochmal in die Spec gekuckt. Und gefunden, dass NAME – genau wie ID – mit einem Buchstaben beginnen muss. Hab ich falsch nachgelesen?
Gunnar
Hi,
Und ich hatte extra nochmal in die Spec gekuckt. Und gefunden, dass NAME – genau wie ID – mit einem Buchstaben beginnen muss. Hab ich falsch nachgelesen?
Aber das name-Attribut ist in den meisten Fällen (von meta-Element mal abgesehen) eben nicht vom Typ NAME, sondern vom Typ CDATA. Und für diesen Typ gibt es diese Einschränkung nicht.
Nur weil das Attribut zufällig "name" heißt, ist es noch lange nicht vom Typ NAME.
Folge an dieser Stelle dem Link "cdata" hinter "name" - http://www.w3.org/TR/html401/struct/links.html#adef-name-A
Dann folge etwas weiter unten, bei "Attributes defined elsewhere" dem Link "id" und dort wieder dem Link "name"
Und dann siehst Du, daß Du an unterschiedlichen Stellen landest - wenn Du es nicht glaubst, guck in den Source, wo die beiden Anker sitzen.
Und wenn Du es dann immer noch nicht glaubst, schreib in ein valides Dokument
<a name="0" id="0">bla</a>
rein, und guck Dir genau an, was als fehlerhaft bemängelt wird.
cu,
Andreas
wenn Du es nicht glaubst,
Andreas,
Dir glaub ich doch (fast) alles.
Gunnar
Hi,
Andreas,
Dir glaub ich doch (fast) alles.
Glaub mir, Du solltest mir 100000 Euro überweisen ;-)
cu,
Andreas
Glaub mir, Du solltest mir 100000 Euro überweisen ;-)
Andreas,
Gerne, wenn du deine Glaubwürdigkeit vorher bei jemandem einsetzt, der mir 200000 Euro überweist, kriegste deinen Anteil. ;-)
Gunnar
Hi,
Glaub mir, Du solltest mir 100000 Euro überweisen ;-)
Gerne, wenn du deine Glaubwürdigkeit vorher bei jemandem einsetzt, der mir 200000 Euro überweist, kriegste deinen Anteil. ;-)
Menno ...
cu,
Andreas
Danke schonmal für eure Antworten, leider behandeln sie (bis auf Detlev) nicht das eigentliche Problem!
Normaler weise müsste meine Schleife zum zufälligen Zuweisen von Werten funktionieren, leider finde ich das Problem nicht!
Ich habe auch unter dem anegegebenen Link nachgesehen, leider ist diese Lösung für mein Problem nicht gerade optimal!
mfg
Danke hat sich erledigt, man musste der Zählvariablen i einen Wert zuweisen, also nicht nur:
Var i;
sondern:
Var i = 0;
Man man man für sowas hasse ich JS!!!
mfg