// ----- Angleichungen fuer die Parameter var BildAnzahl = BildListe.length; var loaded = 0; var TempListe = new Array(BildAnzahl); var zielfeld = false; var xvon = 0; var yvon = 0; var xnach=2; var ynach=2; 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=210,resizable=yes"); winanl.document.write("Spielanleitung - Tauschpuzzle

"); winanl.document.write("Das Puzzle soll durch paarweisen Austausch von Teilen gelöst werden. "); winanl.document.write("Das erste Teil wird durch einfachen Mausclick ausgewählt. "); winanl.document.write("Das zweite Teil durch den nächsten einfachen Mausclick. "); winanl.document.write("Darauf folgt unmittelbar der Austausch.
 
"); winanl.document.write("Viel Spaß

"); winanl.document.bgColor="#00FFFF"; } // Initialisierung des Puzzles function Laden() { loaded = 1; NeuStart(); } // Karten Tauschen // Tauschpositionen festlegen function Tausche(xpos,ypos){ if (zielfeld == false){ xvon =xpos; yvon=ypos; zielfeld=true; if (positionenausgeben == true){ if (ausgabe == true){ win.document.write(" tausche ("+xvon+"| "+yvon+") "); } } } else{ xnach=xpos; ynach=ypos; zielfeld=false; if (positionenausgeben == true){ if (ausgabe == true){ win.document.write("und ("+xnach+"|"+ynach+")
"); } } window.document.images[(yvon-1)*Spalten+xvon-1].src = TempListe[(ynach-1)*Spalten+xnach-1]; window.document.images[(ynach-1)*Spalten+xnach-1].src =TempListe[(yvon-1)*Spalten+xvon-1]; hilf=TempListe[(yvon-1)*Spalten+xvon-1]; TempListe[(yvon-1)*Spalten+xvon-1]=TempListe[(ynach-1)*Spalten+xnach-1]; TempListe[(ynach-1)*Spalten+xnach-1]=hilf; if (ausgabe == true){ if (ZugZeigen == true){ zugnr=zugnr+1; document.ZugAnzeige.ZugZaehler.value=zugnr; } } } } // 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]; } 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; } ausgabe=false; for (var MischVorgang = 0; MischVorgang < MaxMischen ; MischVorgang++) { xpos = (random (Spalten)) + 1; ypos= (random(Zeilen))+1; Tausche (xpos, ypos); xpos = (random (Spalten)) + 1; ypos= (random(Zeilen))+1; Tausche (xpos, ypos); } 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; } ausgabe=true; } function ZugZeitAnzeige(){ document.write('

'); if (ZugZeigen == true){ document.write('Zug: '); } if (ZeitZeigen == true){ document.write('  Zeit: sec'); } document.write('
'); } // Zufallsgenerator von // Paul Houle // Department of Physics, Cornell University 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); } // -->