<!--
/* Beginn Script Memory-Spiel */
/* (Copyleft) 2007 - 2009 by webmaster of http://www.attac-thueringen.de */

<!-- // Memory-Spiel
var iKartenanzahl;
var iZeilen = 5;                     // Zeilenanzahl
var iSpalten = 5;        // Spaltenanzahl
var iLogofeld = 12;      // Nr. des Feldes, welches kein Spielfeld sein soll (z. B. für Logo)
var bZusatzfeld = (iLogofeld ? 1 : 0);
var iSpielfelder = (iZeilen*iSpalten) - bZusatzfeld; // muß eine gerade Zahl sein!
                        // alle Feldindizes ab [0]:
var pBilderfeld = new Array(iSpielfelder/2 + bZusatzfeld); // Bildauswahl aus den verfügbaren Bildern
var pKartenfeld = new Array(iSpielfelder + bZusatzfeld);

var sDeckblatt = 'deckblatt.jpg';  // Bilddatei des Deckblattes

var karte;
var karte1;
var karte2;
var iZug = 0;
var iZuganzahl = 0;
var iVersuch = 0;
var iPunkte = 0;
var iPaare = 0;
var bAnswer = true; // Vorinitialisierung zur Fehlervermeidung nach Spielende

function _memoryspiel(anzahl) // Übergabeparameter: Anzahl der auswählbaren Karten (<zahl>.jpg)
{
        var gleich;
        var i=0;
        var j;
        var pos=0;
        var s;
         var z;
         iKartenanzahl = anzahl;
         _ladeKarten();
        window.location.href = "index.html#TOP"; // Monitor soll Spielfläche voll zeigen
        // 1. Kartenmatrix schreiben:
        document.write('<table border="0" cellspacing="0" cellpadding="3">');
        for (z = 0; z < iZeilen; z++)
        {
                 document.write('<tr>');
                 for (s = 0; s < iSpalten; s++)
                 {
                         if( iLogofeld == (z*iSpalten + s) )
                         { // Logofeld füllen
                         document.write('<td align="center" valign="middle" width="100" height="100"><img src="logo.jpg" alt="Logo (kein Spielfeld!)" title="Logo (kein Spielfeld!)" height="100" width="100" border="0"><\/td>');
                         }
                         else
                         { // Spielfelder füllen
                         document.write('<td align="center" valign="middle" width="100" height="100"><a href="javascript:zug('+pos+')"><img id="'+pos+'" src="'+sDeckblatt+'" alt="" title="Paarweise aufdecken!" height="100" width="100" name="'+pos+'" style="border:2px ridge #FF4500;"><\/a><\/td>'); // Rand: FF4500=orangered
                         pos++;
                         }
                 }
                 document.write('<\/tr>');
        }
        document.write('<\/table>');
        // 2. Karten aus dem Bilderpool zuweisen (Wertebereich: 1.jpg ... <xy>.jpg):
        i=0;
        while (i < iSpielfelder)
        {
                gleich = 0;
                pBilderfeld[i] = Math.round(Math.random()*iKartenanzahl);
                if (pBilderfeld[i] == 0) pBilderfeld[i] = 1;
                if (i > 0)
                {
                    for (j=0; j < i; j++)
                    {
                        if (pBilderfeld[i] == pBilderfeld[j])
                         { // Bild bereits ausgewählt
                                 gleich=1;
                                 break;
                         }
                    }
                }
                if (gleich != 1) i++;
         } // Ende while(i < iSpielfelder)
        // 3. Oben ausgewählte Karten paarweise zufällig auslegen:
        i=0;
        while (i < iSpielfelder)
        {
                gleich = 0;
                j = Math.round(Math.random()*((iSpielfelder/2)-1));
                pKartenfeld[i] = pBilderfeld[j];
                if (i > 0)
                {
                        for (j=0; j < i; j++)
                        {
                                if (pKartenfeld[i] == pKartenfeld[j])
                                   if (gleich++ == 2) break;
                        }
                }
                if (gleich < 2) i++;
        } // Ende while (i < iSpielfelder)
}

function zug(nr)
{
        if (pKartenfeld[nr] != -1)
        {
                iZug++;
                karte = pKartenfeld[nr];
                 switch (iZug)
                 {
                 case 1:
                        if (iVersuch == 1)        iVersuch = 0;
                        else
                         {
                                 if (iVersuch == 2)
                                {
                                        aendern(karte1, sDeckblatt);
                                        aendern(karte2, sDeckblatt);
                                        iVersuch = 0;
                                 }
                        }
                        karte1 = nr;
                         break;
                case 2:
                        iZuganzahl++;
                        if (nr != karte1)
                        {
                           iZug = 0;
                           karte2 = nr;
                           iPunkte--;
                           if (pKartenfeld[nr] == pKartenfeld[karte1])
                           {
                                   iPunkte = iPunkte + 2;
                                iPaare++;
                                pKartenfeld[nr] = -1;
                                pKartenfeld[karte1] = -1;
                                iVersuch = 1;
                                if (iPaare == iSpielfelder/2)
                                {
                                   anzeige();
                                   aendern(nr, karte + '.jpg');
                                    if (iPunkte >= 0)
                                      switch (iPunkte)
                                        {
                                        case iSpielfelder/2: bAnswer = confirm("Volle Punktzahl! Einfach unglaublich!\nNochmal?");
                                                                   break;
                                        case 0: bAnswer = confirm("Ausgeglichen!\nNochmal?"); break;
                                        case 1: bAnswer = confirm("1 Punkt ist schon gut!\nNochmal?"); break;
                                        default: bAnswer = confirm(iPunkte+" Punkte! Glückwunsch!\nNochmal?"); break;
                                         }
                                   else
                                      switch (iPunkte)
                                        {
                                        case -1: case -2: case -3: case -4:
                                        case -5: bAnswer = confirm(iPunkte+" Punkte erreicht.\nNochmal?"); break;
                                        default: bAnswer = confirm(iPunkte+" Punkte. Das geht besser!\nNochmal?"); break;
                                         }
                                    if (bAnswer) window.location.reload(); // OK-Button gedrueckt; Achtung: window.location.href = "index.html#TOP"; funktioniert nicht wie gewünscht!
                                    }
                                }
                                else iVersuch = 2;
                        }
                        else        // zu: if (nr != karte1)
                        {
                                alert("Dieses Feld ist schon ausgewählt!");
                                iZug = 1;
                        }
                         break;
                default: break;
                 }
                aendern(nr, karte + '.jpg');
                anzeige();
        }
        else if (bAnswer) alert("Dieses Feld wurde bereits aufgedeckt!");
}

function aendern(position, bildname)
{
        document.getElementById(position).src = bildname;
}

function anzeige()
{
        document.memory.punktanzeige.value = iPunkte;
        document.memory.zuganzeige.value = iZuganzahl;
}

function _memorykarten()
{
        document.write('<span class="mittel">Derzeit sind <\/span>'+iKartenanzahl+'<span class="mittel"> Karten im Spiel.<\/span>'+'<br><br>');
        return iKartenanzahl;
}

function _ladeKarten()
{ // Karten in den Cache laden
        var i;
        if (document.images) {
           ladeKarte = new Image();
            for (i=1; i <= iKartenanzahl; i++)
            ladeKarte.src = i+'.jpg';
            //ladeKarte.onLoad=_fertig(i+'.jpg'); // Nur für Testzwecke!
        }
}
// Für Testzwecke:
function _fertig(sTemp)
{ // Tips siehe: >http://articles.techrepublic.com.com/5100-22-5214317.html
        alert(sTemp);
}

/* Ende Script Bildergalerie */
// end hide -->
