Peter Martschnek: Zufall

Ich hätte da ein ziemlich großes Problem...

Und zwar, wie mache ich einen Zufallsgenerator, wenn ich zum Beispiel 10 Variablen habe (string) und mir das script solange durch zufall einen dieser Strings ausgibt, bis ich alle durchhabe?

Dieses Script braucht mein sohn zum lernen von Englisch vokabeln, und ich hab mir gedacht, ich mach ihm eine art "Lern Programm", aber wie gesagt, mir fehlt nur noch der zufallsgenerator!

  1. Ich hätte da ein ziemlich großes Problem...

    Naja ;-)

    Und zwar, wie mache ich einen Zufallsgenerator, wenn ich zum Beispiel 10 Variablen habe (string) und mir das script solange durch zufall einen dieser Strings ausgibt, bis ich alle durchhabe?

    Zufall: http://www.netzwelt.com/selfhtml/javascript/objekte/math.htm#random

    Trotzdem ist dein Problem komplizierter. Du brauchst zwei Arrays eins für die Strings und eins mit dem du markieren kannst, ob du das Wort schon abgefragt hast.

    in etwa so:

    var woerter = new array( ...... );
    var gefragt = new Array ();
    var anzahl = 0;

    function frage()
    {
    if(anzahl == woerter.length) return null;
    var nr = Math.random() * woerter.length;
    while( gefragt[nr] )
    {
    nr = Math.random() * woerter.length;
    }
    anzahl++;
    gefragt[nr] = true;
    return woerter[nr];
    }

    oder so ähnlich

    Struppi.

    1. in etwa so:

      Besser ist es, in der Funktion das Array umzupacken in ein Temporäres mit allen noch nicht gefragten Wörtern, ansonsten dauert die Funktion immer länger .

      function frage()
      {

      var tmp = new array();
      for(var i = 0; i < woerter.length; i++) if(!gefragt[i]) tmp[tmp.length] = woerter[i] + ':' + i;

      var nr = Math.random() * tmp.length;
      gefragt[ tmp[nr].split(':')[1] ] = true;
      return tmp[nr].split(':')[0];
      }

      Immer noch nicht getestet, aber is besser so.

      Struppi.

  2. Hi,

    Und zwar, wie mache ich einen Zufallsgenerator,

    Nur wenige Threads unter Deinem steht, wie ein Zufallsgenerator gemacht wird. Zufall wird sogar im Titel erwähnt.

    Ist es wirklich so schwer, erst mal zu gucken?

    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/