Puzzle in JavaScript

Mit einfachen Übungsaufgaben sollen die Grundstrukturen der Programmierung erlernt werden (Iteration, Alternative, Rekursion, Felder) Komplexere Übungsaufgaben vermitteln außerdem Inhalte aus Mathematik und Informatik (Algorithmen, Datenstrukturen, Codierung). Implementierung eines Planspiels
Implementierung der Simulation in Javasript.
Implementierung eines einfachen Fuzzy Controllers
Einführung selfhtml Einführung HTML Fenster,  Layer, HTML generieren
Copyright:  Holzbaur, Aalen, E-Mail an Verfasser

Puzzle

Schrittzähler:
hüpfen:tauschen:

Sie können die Bilder hin- und her-schieben. Klicken Sie auf dasjenige Bild, das Sie bewegen wollen. Es tauscht seinen Platz mit dem leeren Block. Machen Sie das so lange, bis sich eine richtige Landschaft ergibt. Wenn Sie Tauschen wählen, wechselt das angeklickte Objekt seinen Platz mit dem linken Nachbarn. Sie können Puzzle und Zähler rücksetzen.
 

so gehts

 
Funktion Quelle in head und body Erläuterung
Das Puzzle und seine Darstellung <table CELLSPACING=0 CELLPADDING=0 COLS=7 WIDTH="678" BGCOLOR="#CCCCCC" >
<tr>
<td><img NAME="smily10" onMouseDown="schiebe(0)" height=113 width=113></td>
<td><img NAME="smily11" onMouseDown="schiebe(1)" height=113 width=113></td>
<td><img NAME="smily12" onMouseDown="schiebe(2)" height=113 width=113></td>
<td><img NAME="smily13" onMouseDown="schiebe(3)" height=113 width=113></td>
<td><img NAME="smily14" onMouseDown="schiebe(4)" height=113 width=113></td>
<td><img NAME="smily15" onMouseDown="schiebe(5)" height=113 width=113></td>
<td><img NAME="smily16" onMouseDown="schiebe(6)" height=113 width=113></td>
</tr>
</table>
schiebe() wird durch anklicken der Bilder aufgerufen
Verschieben oder Tauschen function schiebe(n){
  if (art == "h" )
    {
     smily[leer]=smily[n];
     smily[n]= "leer.jpg";
     leer = n
     anzeigen()
     document.f.c.value ++
    }
    else if ( n > 0 )
    {
      smilypuffer =smily[n];
      smily[n]=  smily[n-1]
      smily[n-1]= smilypuffer;
      if (leer == n) { leer = n-1 } else if (leer==n-1) leer = n;
      anzeigen()
      document.f.c.value ++
     }
     else alert ("nicht zulässige Wahl")
}
Die Inhalte von n und leer werden getauscht. 
Die Inhalte von n und n-1 werden getauscht. leer muß mitgeführt werden, falls der Benutzer wieder in die andere Art wechseln will.
Initialisierung mit den Bildern function init(){
 smily[0] = "alb2.jpg";
 smily[1] = "alb5.jpg";
 smily[2] = "alb1.jpg";
 smily[3] = "alb4.jpg";
 smily[4] = "alb6.jpg";
 smily[5] = "alb3.jpg";
 smily[6]=  "leer.jpg";
 leer = 6;
 document.f.c.value =0;
 anzeigen();
}
Die Elemente des Arrays werden mit den jpg-Bilden belegt.
Darstellung durch Zuordnung der Quellen function anzeigen()
{
document.smily10.src=smily[0];
document.smily11.src=smily[1];
document.smily12.src=smily[2];
document.smily13.src=smily[3];
document.smily14.src=smily[4];
document.smily15.src=smily[5];
document.smily16.src=smily[6];
}
Die Bilder der Quellen werden mit den Elemnten des Array belegt.
Schittzähler,  und Auswahl der Art Schrittzähler:<form name="f"><input type="text" name="c" size=3 value= 0>
hüpfen:<input type="radio" name="r" onClick="setzeh()">
tauschen:<input type="radio" name="r" onClick="setzes()" ></form>
art = "h"
function setzeh() {art="h"};
function setzes() {art="s"};
art gibt an, ob
h - üpfen oder
s - chieben angesagt ist
Initialisierung der Werte <script language= JavaScript>
   init();
   document.f.r.value="0";
</script>
Im body nach der Definition des Formulars.
Erklärung und Rücksetzen Sie können die Bilder hin- und her-schieben. Klicken Sie auf dasjenige
Bild, das Sie bewegen wollen. Es tauscht seinen Platz mit dem leeren Block.
Machen Sie das so lange, bis sich eine richtige Landschaft ergibt. Wenn
Sie Tauschen wählen, wechselt das angeklickte Objekt seinen Platz mit dem
linken Nachbarn. Sie können Puzzle und Zähler
<a href="javascript: init()">rücksetzen</a>.
href auf die function