

<!--

var offset = 1;  //Anzahl der Bilder in der HTML-Seite _vor_ dem ersten Memory-Bild
var noi = 20;  //Anzahl der Memory-Felder; muß gerade sein!
//                          muß mit Tabelle im Body uebereinstimmen!

var prefix = "cl"; //Prefix der Bilddatei
var endung = ".gif";  //in den Anfuehrungszeichen muß die Endung der Grafikdateien stehen.

var deckblatt = "rueckseite.gif"  //Name der Deckblattdatei;
//muß unten im HTML-Teil fuer jede Tabellenzelle angegeben werden

// Die Bilddateien werden so zusammengesetzt: prefix + (Nummer von 0 bis noi-1) + endung
// Bsp: I0.gif (i + 0 +.gif)
// Die Zaehlung beginnt mit 0!

//----------------------------------Ab hier keine Anpassungen mehr------------

var piclist = new Array(noi/2); //Bildarray
var f = new Array(noi); //Anordnung

visible = -1; //Symbol-Nummer aufgedeckte Karte
pos = -1;  //Position vorletzte aufgedeckte Karte
pos2 = -1;  //Position letzte aufgedeckte Karte

cs = 0;  //0 wenn keine Karte aufgedeckt, 1 wenn 1 aufgedeckt
win = new Array(noi/2);
moves = 0; // Anzahl der Spielzuege

pair = true; //War vorher Paerchen?

//init();

function name_pic (id) {
nameid = id - 1;
namestring = "memory" + nameid;
return namestring;
}

function init () {
//alert("init()");
load_images();
init_game();
//  kette = "";
//  for (i=0;i<noi;i++) {
//  	kette = kette + " " + f[i];
//  }
//  alert("Belegung" + kette);
}

function load_images() {
//  alert("load_images()");
for (n=0;n<(noi/2);n++) {
piclist[n] = new Image();
//   alert("piclist["+ n + "] als Imageobjekt erzeugt.");
piclist[n].src = prefix + n + endung;
}
}

function init_game() {
moves = 0;
pair = true;
visible = -1;
pos = -1;
pos2 = -1;
cs = 0;
win = new Array(noi/2);

for (i=0;i<(noi/2);i++) {
win[i] = false;
}

for (k=0;k<noi;k++) { //Deckblatt
document [name_pic(k+offset)].src = deckblatt;
}

//Der schwierige Teil

for (j=0;j<noi;j++) { //Init Array
f[j] = -1;
}

for (m=0;m<noi;m++) { //Finde Platz fuer Motiv m
spos = 0;
steps = 0;
p = zufall(noi);
while (p>steps) {
spos++;
if (spos==noi) {  //Turn-around
spos = spos - noi;
}
if (f[spos] == -1) {
steps++;
}
}
f[spos] = m;
}
for (m=0;m<noi;m++) { //In Paerchen konvertieren
f[m] = f[m] % (noi/2);
}
}

//Ist hier vorbei!!

function zufall(n) { //Zufall zwischen 1 und n-1
return Math.ceil(Math.random()*(n-1));
}

function aufdecken(i) {
if (win[f[i]] != true) {  //Wenn nicht auf schon gefundene Karte geklickt, mach ueberhaupt etwas
if (cs == 0) { //Erste Karte wird aufgedeckt
if ((i != pos2) && (i != pos)) { //Wenn nicht auf erste oder zweite Karte geklickt
if (pair == false) {
document [name_pic(pos+offset)].src = deckblatt; //Alte Karten zudecken
document [name_pic(pos2+offset)].src = deckblatt;
}
// alert("piclist["+ f[i] + "] als Imageobjekt erzeugt.");
document [name_pic(i+offset)].src = piclist[(f[i])].src;
pos = i;
pos2 = -1;
visible = f[i];
cs = 1;
}
}
else {  //Zweite Karte wird aufgedeckt
if ((i != pos2) && (i != pos)) { //Wenn nicht auf dieselbe Karte geklickt
document [name_pic(i+offset)].src = piclist[(f[i])].src;
moves++;
pos2 = i;
cs = 0;
pair = false;
if (f[i] == visible) {  //Paerchen gefunden
win[visible] = true;
goal = true;
pair = true; //Nicht wieder zudecken
for (n=0;n<noi/2;n++) {  //Auf Sieg testen
if (win[n] == false) {
goal = false;
}
}
if (goal == true) {


newWindow = window.open ('', 'newWin','height=200,width=200,scrollbars=auto')
newWindow.document.write("<html><HEAD><link href='main.css' rel='stylesheet' type='text/css'><TITLE>Gewonnen</TITLE></HEAD><BODY BGCOLOR='gray' link=white text=white><font color='white'><big>Gewonnen!</big><p> Du hast " + moves + " mal geraten. <P><a href=javascript:window.close(self)><b>[ Fenster schließen! ]</b></a>");
newWindow.document.write("</body></html>");
newWindow.document.close ()




// init_game();


}
}
else { //Kein Paerchen gefunden
}
}
}
}
}
//-->

 
// alert(" \n \nGewonnen! \nDu hast " + moves + " mal geraten.\n ");

