Daniel: Zahlen zufällig generieren klappt nicht???

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

  1. Hallo Daniel,

    schau dir mal Zufälliges Mischen von Variablen an.

    Auf Wiederlesen
    Detlef

    --
    - Wissen ist gut
    - Können ist besser
    - aber das Beste und Interessanteste ist der Weg dahin!
  2. 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

    --
    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
    1. <td class="puzzle" name="0">'+ akt_inhalte[0] +'</td>\

      name nicht erlaubt

      Und der Wert ist auch nicht erlaubt.
      Gunnar

      --
      "Nobody wins unless everybody wins." (Bruce Springsteen)
      1. 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

        --
        Warum nennt sich Andreas hier MudGuard?
        Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
        1. 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

          --
          "Nobody wins unless everybody wins." (Bruce Springsteen)
          1. 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

            --
            Warum nennt sich Andreas hier MudGuard?
            Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
            1. wenn Du es nicht glaubst,

              Andreas,
              Dir glaub ich doch (fast) alles.
              Gunnar

              --
              "Nobody wins unless everybody wins." (Bruce Springsteen)
              1. Hi,

                Andreas,
                Dir glaub ich doch (fast) alles.

                Glaub mir, Du solltest mir 100000 Euro überweisen ;-)

                cu,
                Andreas

                --
                Warum nennt sich Andreas hier MudGuard?
                Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
                1. 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

                  --
                  "Nobody wins unless everybody wins." (Bruce Springsteen)
                  1. 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

                    --
                    Warum nennt sich Andreas hier MudGuard?
                    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
  3. 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

  4. 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