Home
Scripts
   · Countdown
   · Formulare
   · Globus
   · Lotterie
   · Passwort
   · Primzahlen
   · Ticker
   · Url-Eingabe
   · Wochentag
Games
Referenz
Links
Gäste
Kontakt

< Lotterie 3 >


Zufallszahlen mit WMLScript erzeugen, einzeln ausgeben und sortieren.

WAP-Standard: 1.1+

Lotterie 1: Einfache Ausgabe
Lotterie 2: Mit Eingabemöglichkeit.


lotterie3.wml

<?xml version="1.0"?> 
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
      "http://www.wapforum.org/DTD/wml_1.1.xml">
 
<wml>

  <card id="c1" title="Lotterie 3">
    <p>
      <a href="lotterie3.wmls#L()">Los</a>
    </p>
  </card>

  <card id="c2" title="$(h)">
    <onevent type="ontimer">
      <go href="lotterie3.wmls#A('$(z)',$(t))"/>
    </onevent>
    <timer value="10"/>
    <p>$(z0) $(z1) $(z2) $(z3) $(z4) $(z5)
      <br/>$(z6)
    </p>
  </card>

  <card id="c3" title="Fertig !">
    <p>$(z0) $(z1) $(z2) $(z3) $(z4) $(z5)
      <br/>$(z6)
    </p>
    <p>
      <a href="lotterie3.wmls#L()">Los</a>
    </p>
  </card>

</wml>

Card c1 in lotterie3.wml startet mit dem Aufruf der Funktion L() die Animation. Card c2 zeigt sie an und Card c3 präsentiert das fertige Ergebnis.


lotterie3.wmls

extern function L() {
  //Alte Variablen löschen:
  WMLBrowser.newContext();

  var i,r,k,z,lz = "1";
  for(i=2;i<50;i++) lz += "_"+i;
  // i, r und k sind Hilfsvariablen.
  // z ist das Array für die gezogenen Zahlen.
  // lz = "1_2_3_..._49" ist das Array der Lotterie-Zahlen. 

  //Zahlen ziehen
  for(i=0;i<7;i++) {
    r = Lang.random(48-i);
    if(i>0) z += "_"+val(lz,r);
    else z = val(lz,r);
    lz = String.removeAt(lz,r,"_");
  }

  //Array z dem WMLBrowser bekannt machen
  WMLBrowser.setVar("z",z);

  //Ebenso die neue Überschrift
  WMLBrowser.setVar("h","Ziehung ...");

  //Array z sowie 0 für den Zähler t an die Funktion A() übergeben
  A(z,0);
}


//Mit rep() wird im Array a der i-te Wert durch v ersetzt.
function rep(a,i,v) {
  return String.replaceAt(a,v,i,"_");
}

//Mit val() wird im Array a der i-te Wert ausgelesen.
function val(a,i) {
  return Lang.parseInt(String.elementAt(a,i,"_"));
}


//Animations-Funktion
extern function A(z,t) {
  //Die ersten sechs Zahlen
  if(t<6) WMLBrowser.setVar("z"+t,val(z,t));
  //Zusatzzahl
  else if(t==6) WMLBrowser.setVar("z6", "Zusatzzahl: " + val(z,6));
  //Sortieren
  else if(t==7) {
    var i,k,x;
    for(i=0;i<5;i++) {
      for(k=i+1;k<6;k++) {
        if(val(z,i)>val(z,k)) {
          x = val(z,i);
          z = rep(z,i,val(z,k));
          z = rep(z,k,x);
        }
      }
    }

    //Ergebnis und neue Überschrift
    for(i=0;i<6;i++) WMLBrowser.setVar("z"+i,val(z,i));
    WMLBrowser.setVar("h", "Sortieren ...");
  }

  //Zähler pro Aufruf um eins erhöhen
  WMLBrowser.setVar("t",++t);

  //Solange Animation läuft zur Card c2 zurück
  if(t<9) WMLBrowser.go("lotterie3.wml#c2");

  //Fertiges Ergebnis in Card c3 anzeigen
  else WMLBrowser.go("lotterie3.wml#c3");
}

Zeitlich gesteuert wird der Ablauf der Animation über den Zähler t, der in der Funktion L() mit dem Wert 0 initialisiert wurde und nun ständig zwischen der Funktion A() und Card c2 hin und her wandert, und gegebenenfalls erhöht wird.
Auch z muss jedesmal neu an das Script übergeben werden (könnte alternativ auch mit WMLBrowser.getVar("z") angefordert werden).
Mit Leerzeichen statt Unterstrichen als Seperatoren gab es überings Probleme in einigen Browsern.


Download  Lotterie.zip (Versionen 1-3 ca. 4 kb)




Copyright © 2002-2003 by wmlscript.de - Alle Rechte vorbehalten
Impressum | Datenschutz | eMail


Die Lotterie-Animation im WAP-Browser:

Auf Card c2 läuft die Ausgabe ...

Lotterie-Zahlen mit WML und WMLScript - Animation 1


...

Lotterie-Zahlen mit WML und WMLScript - Animation 2


... und wird sortiert.

Lotterie-Zahlen mit WML und WMLScript - Sortieren


Card c3 zeigt das fertige Ergebnis an.

Lotterie-Zahlen mit WML und WMLScript - Fertig


Alle angebotenen Scripts können Sie mit einem WAP- und WMLScript-fähigen Entgerät auf

www.wmlscript.de/wap

testen.