<html>
<head>
<title>tic-tac-toe 2 Spieler</title>
<style>
td {width:50; height:50; font-size:40; text-align:center; }
body {font-size:40;}
input {transform: scale(4);}
</style>
</head>
<body>
<center>Gegen Computer(x): Er beginnt und setzt zufällig, <br>
3x oder 3o in Zeile, Spalte, Diagonale gewinnt<br />
Bei Beginn in Randmitte Gewinn möglich<br>
</center>
<table align="center" id="tblMain" border="1" style="cursor: pointer;">
<tr><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td></tr>
</table><br />
<center><input type="checkbox" id="myCheck" checked></center><br>
<center><div id="meldung"></div></center>
<script language="javascript">
var tz=[[0,0,0],[0,0,0],[0,0,0]];//3X3-Feld für Berechnungen
var z=0; var s=0; var stop=0;//global
z=Math.floor((Math.random() * 3));//computer zieht zuerst
s=Math.floor((Math.random() * 3));
tblMain.rows[z].cells[s].innerHTML="x";//Spieler o
tz[z][s]=5;//Spieler 2
var tbl = document.getElementById("tblMain");//javascript Zugriff auf Tabelle, Ereignisauslösung bei Feldkontakt
for (var i = 0; i < tbl.rows.length; i++) {
for (var j = 0; j < tbl.rows[i].cells.length; j++){
tbl.rows[i].cells[j].onclick = function () {if(this.innerHTML=="" && stop==0)setval(this); };
tbl.rows[i].cells[j].ontouchstart = function () {if(this.innerHTML=="" && stop==0)setval(this); };
}}
function setval(cel) {
stop=0;
{cel.innerHTML="o";tz[cel.parentElement.rowIndex][cel.cellIndex]=2;if(gewinn()=="o"){stop=1;}}
var my=0;//memory, my=1 wäre gesetzt
if(stop==0){
for(i=0;i<3;i++)//x gewinnt prüfen
{
for(j=0;j<3;j++)
{
if(tz[i][j]==0){tz[i][j]=5;if(gewinn()=="x"){tbl.rows[i].cells[j].innerHTML="x";my=1;stop=1;break}else {tz[i][j]=0;}}
}
if(my==1)break;
}
if(my==0)
{
for(i=0;i<3;i++)//o gewinnt verhindern
{
for(j=0;j<3;j++)
{
if(tz[i][j]==0){tz[i][j]=2;if(gewinn()=="o"){tz[i][j]=5;my=1;tbl.rows[i].cells[j].innerHTML="x";my=1;break} else {tz[i][j]=0;}}
}
if(my==1)break;
}
}
if(my==0)
{
do{z=Math.floor((Math.random() * 3));s=Math.floor((Math.random() * 3));//Zufallszug
}while(tz[z][s]!=0)
tbl.rows[z].cells[s].innerHTML="x";tz[z][s]=5;
}
}
}
function gewinn(){//für beide
var meld="";
var zsum=[0,0,0]; var ssum=[0,0,0];
for(var i=0;i<3;i++){
zsum[i]=tz[i][0]+tz[i][1]+tz[i][2];//Zeilensumme
ssum[i]=tz[0][i]+tz[1][i]+tz[2][i];//Spaltensumme
d1sum=tz[0][0]+tz[1][1]+tz[2][2];//Hauptdiagonale
d2sum=tz[2][0]+tz[1][1]+tz[0][2];//Nebendiagonale
if(zsum[i]==6 || ssum[i]==6 || d1sum==6 || d2sum==6)meld="o";
if(meld!="")break;
if(zsum[i]==15 || ssum[i]==15 || d1sum==15 || d2sum==15)meld="x";
if(meld!="")break;
}
return meld;
}
</script>
</body>
</html>