Home
Scripts
Games
   · Battleships
   · BlackJack
   · Zahlen-Puzzle
   · Slotmachine
   · 4 Gewinnt
Referenz
Links
Gäste
Kontakt

< Zahlen-Puzzle >


Ein Zahlen-Puzzle mit WML und WMLScript.

WAP-Standard: 1.1+

puzzle.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="sp1" title="Zahlen-Puzzle" ontimer="puzzle.wmls#init()">
    <timer value="1"/>
    <p>Programm wird geladen ...</p>
  </card>

  <card id="sp2" title="Zahlen-Puzzle">
    <p>
      <small>
      <a href="puzzle.wmls#move(0)">$(a0)</a>&#160;
      <a href="puzzle.wmls#move(1)">$(a1)</a>&#160;
      <a href="puzzle.wmls#move(2)">$(a2)</a>&#160;
      <a href="puzzle.wmls#move(3)">$(a3)</a>&#160;
        &#160;&#160;[$(counter)]
      </small>
    </p>
    <p>
      <small>
      <a href="puzzle.wmls#move(4)">$(a4)</a>&#160;
      <a href="puzzle.wmls#move(5)">$(a5)</a>&#160;
      <a href="puzzle.wmls#move(6)">$(a6)</a>&#160;
      <a href="puzzle.wmls#move(7)">$(a7)</a>
      </small>
    </p>
    <p>
      <small>
      <a href="puzzle.wmls#move(8)">$(a8)</a>&#160;
      <a href="puzzle.wmls#move(9)">$(a9)</a>&#160;
      <a href="puzzle.wmls#move(10)">$(a10)</a>&#160;
      <a href="puzzle.wmls#move(11)">$(a11)</a>
      </small>
    </p>
    <p>
      <small>
      <a href="puzzle.wmls#move(12)">$(a12)</a>&#160;
      <a href="puzzle.wmls#move(13)">$(a13)</a>&#160;
      <a href="puzzle.wmls#move(14)">$(a14)</a>&#160;
      <a href="puzzle.wmls#move(15)">$(a15)</a>
      </small>
    </p>

    <p><a href="puzzle.wml">Neues Spiel</a></p>
  </card>

</wml>

Wenn der WAP-Browser alle Zahlen in gleicher Breite darstellt, kann auf eine Tabelle verzichtet werden. Das spart Code und vor allem Platz (in der Höhe !).
Andererseits könnten Tabellenränder aus Design-Gründen durchaus interessant sein.
Auch die Verwendung kleiner Bildchen im wbmp-Format ist möglich, wirft aber wieder neue Probleme auf (Bildgröße, Abstände).


puzzle.wmls

extern function init() {
  var i, r, x;
  var a = "01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 ~~";

  for(i=0;i<16;i++) {
    r = Lang.random(15-i);
    x = String.elementAt(a,r," ");
    WMLBrowser.setVar("a"+i,x);
    if(i<15) a = String.removeAt(a,r," ");
  }

  WMLBrowser.setVar("counter",0);
  WMLBrowser.go("puzzle.wml#sp2");
}


extern function move(p) {
  var i, j, z = WMLBrowser.getVar("a"+p);

  for(i=-1;i<2;i+=2) {
    for(j=1;j<5;j+=3) {
      if(WMLBrowser.getVar("a"+(p+i*j))=="~~") {
        WMLBrowser.setVar("a"+(p+i*j),z);
        WMLBrowser.setVar("a"+p,"~~");
      }
    }
  }

  var c = WMLBrowser.getVar("counter");
  WMLBrowser.setVar("counter",++c);
  WMLBrowser.go("puzzle.wml#sp2");
}

In der Funktion init() wird per Zufall ein Element aus dem String a herausgegriffen und der ersten Variablen a0 zugeordnet. Anschließend wird das Element in a gelöscht. Diese Prozedur wird fortgesetzt, bis alle Zahlen und das Zeichen für das freie Feld verteilt sind.
Die (i<15) Bedingung war notwendig, da es zum Teil Schwierigkeiten gab, wenn a auf ein Empty-String "" reduziert wurde.

In move() werden die Werte der angeklickten Variablen mit dem von ~~ vertauscht, wenn es möglich ist.


Download  Puzzle.zip (ca. 1,5 kb)




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


Das Zahlen-Puzzle im
WAP-Browser:

Zahlen-Puzzle mit WML und WMLScript

Zahlen-Puzzle mit WML und WMLScript 2

Zahlen-Puzzle mit WML und WMLScript 3


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

www.wmlscript.de/wap

testen.