<!-- 



// -----   Parameter

// Liste mit den Bildern (unbedingt das leer-Bild einbauen, zeilenweise)
BildListe = new Array(
"sardinle.jpg", "sardin0_1.jpg", "sardin0_2.jpg", "sardin0_3.jpg", "sardin0_4.jpg", "sardin0_5.jpg", 
"sardin1_0.jpg", "sardin1_1.jpg", "sardin1_2.jpg", "sardin1_3.jpg", "sardin1_4.jpg", "sardin1_5.jpg", 
"sardin2_0.jpg", "sardin2_1.jpg", "sardin2_2.jpg", "sardin2_3.jpg", "sardin2_4.jpg", "sardin2_5.jpg", 
"sardin3_0.jpg", "sardin3_1.jpg", "sardin3_2.jpg", "sardin3_3.jpg", "sardin3_4.jpg", "sardin3_5.jpg"
);

// Anzahl der Zeilen und Spalten
var Zeilen  = 4;
var Spalten = 6;

// Koordinaten vom LeerBild
var LeerX = 1;
var LeerY = 1;

// Anzahl der Mischvorgaenge
var MaxMischen = 20;

// Anzeige der Zugnr und der Spielzeit
var ZugZeigen=false;
var ZeitZeigen=false;

// -----   Angleichungen fuer die Parameter

var LeerA = LeerX;
var LeerB = LeerY;
var LeerPosistion = ((LeerY - 1) * Spalten) + (LeerX - 1);
var BildAnzahl = BildListe.length;
var loaded = 0;
var TempListe = new Array(BildAnzahl);
var hilf=0;
var ausgabe=true;
var zugnr=0;
var startzeit=new Date();
var jetztzeit=new Date();
var zeita = startzeit.getTime() /1000;
var zeite = jetztzeit.getTime() / 1000;
var zeitdif=Math.floor(zeite-zeita);

// Pruefen ob die Angaben in der BildListe mit den Spalten und zeilen uebereinstimmt

if (BildAnzahl != (Spalten * Zeilen)) {
 alert("Die Anzahl der Spalten und Zeilen stimmt nicht mit der Anzahl der Bilder in der BildListe ueberein!");
}

// -----   Funktionen

// SpielAnleitung
function Anleitung(){
var winanl;
winanl=window.open("","Spielanleitung","width=300,height=230,resizable=yes");
winanl.document.write("<b>Spielanleitung - Schiebepuzzle</b><p>");
winanl.document.write("Das Puzzle soll durch waagrechtes und senkrechtes Verschieben des leeren Feldes gelöst werden. ");
winanl.document.write("Die neue Position des leeren Feldes wird durch einfachen Mausclick bestimmt.<br>");
winanl.document.write("Es können auch mehrere Teile gleichzeitig (in eine Richtung) verschoben werden. ");
winanl.document.write("<br>&nbsp;<br>");
winanl.document.write("Viel Spa&szlig;<p>");
winanl.document.bgColor="#00FFFF";
}

// Initialisierung des Puzzles
function Laden() {
 loaded = 1;
 NeuStart();
}

// Karte Verschieben
function Schiebe( xpos, ypos ) {
 // Abbruch, wenn das LeerBild angeklickt wurde
 if (( xpos == LeerA ) && ( ypos == LeerB ))
 return;
 // Pruefen, ob das Leer-Bild in der selben Zeile liegt
 if (ypos == LeerB) {
  if (ZugZeigen == true){ 
   zugnr=zugnr+1;
   document.ZugAnzeige.ZugZaehler.value=zugnr;
   }
  Leer = ((LeerB-1) * Spalten) + LeerA - 1;
  // Liegt es Links, dann nach rechts schieben
  if (LeerA < xpos) {
	while (LeerA != xpos) {
    TempListe[Leer] = TempListe[Leer+1];
    TempListe[Leer+1] = BildListe[LeerPosistion];
    document.images[Leer].src = TempListe[Leer] ;
    LeerA += 1;
    Leer += 1;
    document.images[Leer].src = TempListe[Leer] ;
   }
  }
  // Liegt es Rechts dann nach links schieben
  else {
   while (LeerA != xpos) {
    TempListe[Leer] = TempListe[Leer-1];
    TempListe[Leer-1] = BildListe[LeerPosistion];
    document.images[Leer].src = TempListe[Leer] ;
    LeerA -= 1;
    Leer -= 1;
    document.images[Leer].src = TempListe[Leer] ;
   }
  }
 }
 else {
  // Pruefen, ob die Karte in der selben Spalte mit dem LeerBild liegt
  if (xpos == LeerA) {
   if (ZugZeigen == true){ 
    zugnr=zugnr+1;
    document.ZugAnzeige.ZugZaehler.value=zugnr;
    }
   Leer = ((LeerB-1) * Spalten) + LeerA - 1;
   // Liegt sie darunter, dann nch oben schieben
   if (LeerB < ypos) {
    while (LeerB != ypos) {
     TempListe[Leer] = TempListe[Leer+Spalten];
     TempListe[Leer+Spalten] = BildListe[LeerPosistion];
     document.images[Leer].src = TempListe[Leer] ;
     LeerB += 1;
     Leer += Spalten;
     document.images[Leer].src = TempListe[Leer] ;
    }
   }
   // liegt sie darueber, dann nach unten schieben
	else {
    while (LeerB != ypos) {
     TempListe[Leer] = TempListe[(Leer-Spalten)];
     TempListe[Leer-Spalten] = BildListe[LeerPosistion];
     document.images[Leer].src = TempListe[Leer] ;
     LeerB -= 1;
     Leer -= Spalten;
     document.images[Leer].src = TempListe[Leer] ;
    }
   }
  }
 }
}

// Die BildListe in die temporaere Liste kopieren
function ZurueckSetzen() {
 for (var i = 0; i < BildAnzahl; i++) {
  TempListe[i] = BildListe[i];
 }
}

// Zeit anzeigen
function ZeitAnzeigen(){
 jetztzeit=new Date();
 zeite=jetztzeit.getTime() / 1000;
 zeitdif=Math.floor(zeite-zeita);
 document.ZugAnzeige.SpielZeit.value=zeitdif;
 window.setTimeout('ZeitAnzeigen()',500);
}

// Neustart-Routine
function NeuStart() {
 // Laden der Bildliste in die Dokumentbilder
 for (var i = 0; i < BildAnzahl; i++){
  document.images[i].src = BildListe[i];
  TempListe[i] = BildListe[i];
 }
// ZurueckSetzen();
 LeerA = LeerX;
 LeerB = LeerY;
if (ZeitZeigen == true){
 startzeit=new Date();
 zeita=startzeit.getTime() / 1000;
 zeitdif=0;
 document.ZugAnzeige.SpielZeit.value=zeitdif;
 window.setTimeout('ZeitAnzeigen()',500);
}
if (ZugZeigen == true){
 zugnr=0;
 document.ZugAnzeige.ZugZaehler.value=zugnr;
}
}

ZurueckSetzen();

function Mischen() {
// Abbruch, wenn das Spiel nicht geladen wurde
 if (loaded == 0) {
  return;
 }
 var Temp;
 for (var MischVorgang = 0; MischVorgang < MaxMischen ; MischVorgang++) {
  // Mal horizontal ein wenig herumschieben
  Temp = LeerA;
  while ( Temp == LeerA) {
   Temp = (random (Spalten)) + 1;
  }
  Schiebe (Temp, LeerB);
  // und mal vertikal ein wenig schieben
  Temp = LeerB;
  while (Temp == LeerB) {
   Temp = (random (Zeilen)) + 1;
  }
  Schiebe (LeerA, Temp);
 }
if (ZeitZeigen == true){
 startzeit=new Date();
 zeita=startzeit.getTime() / 1000;
 zeitdif=0;
 document.ZugAnzeige.SpielZeit.value=zeitdif;
 window.setTimeout('ZeitAnzeigen()',500);
}
if (ZugZeigen == true){
 zugnr=0;
 document.ZugAnzeige.ZugZaehler.value=zugnr;
}
}

function ZugZeitAnzeige(){
 document.write('<center><form name="ZugAnzeige"><font face="arial,helvetica">');
if (ZugZeigen == true){
 document.write('Zug: <input type="text" name="ZugZaehler" size="3" value="0"  readonly>');
}
if (ZeitZeigen == true){
document.write('&nbsp;&nbsp;Zeit: <input type="text" name="SpielZeit" size="3" value="0" readonly> sec');
}
document.write('</font></form></center>');
}

// 

today=new Date();
jran=today.getTime();
function rnd() {
	ia=9301;
	ic=49297;
	im=233280;
	jran = (jran*ia+ic) % im;
	return jran/(im*1.0);
	}

function random(number) {
	return Math.floor(rnd()*number);
	}

// -->
