Quellcode
<SCRIPT type="text/javascript">
var X1 = new Image;
X1.src = 'X1.gif';
var X2 = new Image;
X2.src = 'X2.gif';
var X3 = new Image;
X3.src = 'X3.gif';
var X4 = new Image;
X4.src = 'X4.gif';
var X5 = new Image;
X5.src = 'X5.gif';
var X6 = new Image;
X6.src = 'X6.gif';
var X7 = new Image;
X7.src = 'X7.gif';
var O1 = new Image;
O1.src = 'O1.gif';
var O2 = new Image;
O2.src = 'O2.gif';
var O3 = new Image;
O3.src = 'O3.gif';
var O4 = new Image;
O4.src = 'O4.gif';
var O5 = new Image;
O5.src = 'O5.gif';
var O6 = new Image;
O6.src = 'O6.gif';
var O7 = new Image;
O7.src = 'O7.gif';
var leer = new Image;
leer.src = 'leer.gif'; var i,j,k; var temp; var gewonnen; var gesetzt; var Fertig,Xreihe,Oreihe; var verhindern = new Array();
var gewinnen = new Array(); var alternate = 1; var Spielfeld = new Array(); function init()
{
for (i = 0; i < 10; i++)
{
Spielfeld[i] = [0,0];
} Spielfeld[0][0] = 1;
gewonnen = 0; Xreihe = 1;
Oreihe = 1;
Fertig = 0;
for (i = 0; i < verhindern.length; i++)
{
verhindern.pop();
}
for (i = 0; i < gewinnen.length; i++)
{
gewinnen.pop();
}
for (i = 0; i < 9; i++)
{
window.document.images[("Z" + i)].src = leer.src;
} if (!(alternate % 2)) Computerzug(); if (!document.layers) document.out.neu.style.visibility = 'hidden';
} function setzen(Zelle,welches)
{ Fertig++; i = eval(welches + 'reihe'); switch (Zelle)
{
case 1:
i *= 2;
break;
case 2:
i *= 3;
break;
case 3:
i *= 5;
break;
case 4:
i *= 7;
break;
case 5:
i *= 11;
break;
case 6:
i *= 13;
break;
case 7:
i *= 17;
break;
case 8:
i *= 19;
break;
case 9:
i *= 23;
break;
}
if (welches == 'X') Xreihe = i;
else Oreihe = i; Spielfeld[Zelle][1] = welches; Antizipation(Zelle,welches); welches += Math.ceil((Math.random() * 1000) % 7);
window.document.images[('Z' + Zelle)].src = eval(welches).src; Spielfeld[Zelle][0] = 1;
gesetzt = 1;
} function checkWin(Spieler)
{
temp = eval(Spieler + 'reihe'); if (!(temp % 30) || !(temp % 1001) || !(temp % 7429) || !(temp % 238) ||
!(temp % 627) || !(temp % 1495) || !(temp % 506) || !(temp % 935))
{ if (!document.layers) document.out.neu.style.visibility = 'visible';
return 'gewonnen';
}
else return 'nix';
} function kreuz(hier)
{ if (gewonnen != 'gewonnen')
{ if (!Spielfeld[hier][0])
{
setzen(hier,'X'); gewonnen = checkWin('X'); if (gewonnen == 'gewonnen') document.out.scoreX.value++; else if (Fertig < 9)
{
Computerzug(hier);
gewonnen = checkWin('O');
if (gewonnen == 'gewonnen') document.out.scoreO.value++;
}
else if (!document.layers) document.out.neu.style.visibility = 'visible';
}
}
} function Computerzug(hier)
{
gesetzt = 0;
do
{ if (!gesetzt && (gewinnen.length > 0))
{
for (i = 0; i < gewinnen.length; i++)
{ if (!Spielfeld[(gewinnen[i])][0]) setzen (gewinnen[i],'O');
if (gesetzt) break;
} while (gewinnen.length > 0)
{
gewinnen.pop();
}
} if (!gesetzt && (verhindern.length > 0))
{
for (i = 0; i < verhindern.length; i++)
{
if (!Spielfeld[(verhindern[i])][0]) setzen (verhindern[i],'O');
if (gesetzt) break;
}
while (verhindern.length > 0)
{
verhindern.pop();
}
} if (!gesetzt)
{
temp = Math.ceil((Math.random() * 1000) % 9);
if (!Spielfeld[temp][0])
{
setzen(temp,'O');
}
}
if (Fertig == 9 && !document.layers) document.out.neu.style.visibility = 'visible';
}
while (!gesetzt)} function Antizipation(Feld,Spieler)
{
switch(parseInt(Feld))
{
case 1:
schauen(1,Spieler);
schauen(4,Spieler);
schauen(7,Spieler);
break;
case 2:
schauen(1,Spieler);
schauen(5,Spieler);
break;
case 3:
schauen(1,Spieler);
schauen(6,Spieler);
schauen(8,Spieler);
break;
case 4:
schauen(2,Spieler);
schauen(4,Spieler);
break;
case 5:
schauen(2,Spieler);
schauen(5,Spieler);
schauen(7,Spieler);
schauen(8,Spieler);
break;
case 6:
schauen(2,Spieler);
schauen(6,Spieler);
break;
case 7:
schauen(3,Spieler);
schauen(4,Spieler);
schauen(8,Spieler);
break;
case 8:
schauen(3,Spieler);
schauen(5,Spieler);
break;
case 9:
schauen(3,Spieler);
schauen(6,Spieler);
schauen(7,Spieler);
break;
}
} function schauen(Reihe,Spieler)
{
switch(Reihe)
{
case 1:
merke(1,2,3,Spieler);
break;
case 2:
merke(4,5,6,Spieler);
break;
case 3:
merke(7,8,9,Spieler);
break;
case 4:
merke(1,4,7,Spieler);
break;
case 5:
merke(2,5,8,Spieler);
break;
case 6:
merke(3,6,9,Spieler);
break;
case 7:
merke(1,5,9,Spieler);
break;
case 8:
merke(3,5,7,Spieler);
break;
}
} function merke(a,b,c,Spieler)
{
k = 0;
i = 0;
if ((Spielfeld[a][1] == Spielfeld[b][1]) && (Spielfeld[a][1] == Spieler)) k = c;
if ((Spielfeld[b][1] == Spielfeld[c][1]) && (Spielfeld[b][1] == Spieler)) k = a;
if ((Spielfeld[c][1] == Spielfeld[a][1]) && (Spielfeld[c][1] == Spieler)) k = b;
if (k)
{
if (Spieler == 'X')
{
verhindern[i] = k;
i++;
}
else
{
gewinnen[i] = k;
i++;
}
}
}
</SCRIPT> <FORM name="out" action=""> <INPUT type="text" name="scoreX" value="0" size="1"> <INPUT type="text" name="scoreO" value="0" size="1"> <INPUT type="button" onClick="alternate++; init()" name="neu" value="New Game">
</FORM> <TABLE>
<TR>
<TD>
<A href="javascript:kreuz(1)">
<img src="leer.gif" alt="" name="Z1" border="0">
</A>
</TD>
<TD>
<A href="javascript:kreuz(2)">
<img src="leer.gif" alt="" name="Z2" border="0">
</A>
</TD>
<TD>
<A href="javascript:kreuz(3)">
<img src="leer.gif" alt="" name="Z3" border="0">
</A>
</TD>
</TR>
<TR>
<TD>
<A href="javascript:kreuz(4)">
<img src="leer.gif" alt="" name="Z4" border="0">
</A>
</TD>
<TD>
<A href="javascript:kreuz(5)">
<img src="leer.gif" alt="" name="Z5" border="0">
</A>
</TD>
<TD>
<A href="javascript:kreuz(6)">
<img src="leer.gif" alt="" name="Z6" border="0">
</A>
</TD>
</TR>
<TR>
<TD>
<A href="javascript:kreuz(7)">
<img src="leer.gif" alt="" name="Z7" border="0">
</A>
</TD>
<TD>
<A href="javascript:kreuz(8)">
<img src="leer.gif" alt="" name="Z8" border="0">
</A>
</TD>
<TD>
<A href="javascript:kreuz(9)">
<img src="leer.gif" alt="" name="Z9" border="0">
</A>
</TD>
</TR>
</TABLE> <SCRIPT type="text/javascript">
init();
</SCRIPT> |