This is my tic-tac-toe
save it with a ".hta" file extension
<html><head>
<title>Tictactoe</title>
<script language=jscript>
b1=" ";
b2=" ";
b3=" ";
b4=" ";
b5=" ";
b6=" ";
b7=" ";
b8=" ";
b9=" ";
aiturn=0;
err=0;
win=0;
lose=0;
tie=0;
turnval=0;
function go(x)
{
switch(x)
{
case 1:
if( b1=="x" || b1=="o" )
{
err=1
break;
}
else
b1="x";
break;
case 2:
if( b2=="x" || b2=="o" )
{
err=1
break;
}
else
b2="x";
break;
case 3:
if( b3=="x" || b3=="o" )
{
err=1
break;
}
else
b3="x";
break;
case 4:
if( b4=="x" || b4=="o" )
{
err=1
break;
}
else
b4="x";
break;
case 5:
if( b5=="x" || b5=="o" )
{
err=1
break;
}
else
b5="x";
break;
case 6:
if( b6=="x" || b6=="o" )
{
err=1
break;
}
else
b6="x";
break;
case 7:
if( b7=="x" || b7=="o" )
{
err=1
break;
}
else
b7="x";
break;
case 8:
if( b8=="x" || b8=="o" )
{
err=1
break;
}
else
b8="x";
break;
case 9:
if( b9=="x" || b9=="o" )
{
err=1
break;
}
else
b9="x";
break;
}
if(err==1)
{//nothing
err=0;
}
else
{
plot();
ai();
plot();
}
}
function plot()
{
a1.innerText=b1;
a2.innerText=b2;
a3.innerText=b3;
a4.innerText=b4;
a5.innerText=b5;
a6.innerText=b6;
a7.innerText=b7;
a8.innerText=b8;
a9.innerText=b9;
if( b1=="x" && b4=="x" && b7=="x" || b1=="x" && b5=="x" && b9=="x" || b1=="x" && b2=="x" && b3=="x" || b2=="x" && b5=="x" && b8=="x" || b3=="x" && b5=="x" && b7=="x" || b3=="x" && b6=="x" && b9=="x" || b4=="x" && b5=="x" && b6=="x" || b7=="x" && b8=="x" && b9=="x")
{
window.alert("You won the game!");
win++;
reset();
}
if( b1=="o" && b4=="o" && b7=="o" || b1=="o" && b5=="o" && b9=="o" || b1=="o" && b2=="o" && b3=="o" || b2=="o" && b5=="o" && b8=="o" || b3=="o" && b5=="o" && b7=="o" || b3=="o" && b6=="o" && b9=="o" || b4=="o" && b5=="o" && b6=="o" || b7=="o" && b8=="o" && b9=="o")
{
window.alert("You lose the game!");
lose++
reset();
}
if( b1!=" " && b2!=" " && b3!=" " && b4!=" " && b5!=" " && b6!=" " && b7!=" " && b8!=" " && b9!=" " )
{
window.alert("Tie!")
tie++
reset();
}
stats.value=":: Win "+win+", Lose "+lose+", Tie "+tie;
}
function ai()
{
y=1
switch(y)
{
case 1:
///////////////////////////////////////
//attack 147
if( b1=="o" && b4=="o" && b7==" " )
{ b7="o"; break;}
if( b4=="o" && b7=="o" && b1==" " )
{ b1="o"; break;}
if( b1=="o" && b7=="o" && b4==" " )
{ b4="o"; break;}
//159
if( b1=="o" && b5=="o" && b9==" " )
{ b9="o"; break;}
if( b5=="o" && b9=="o" && b1==" " )
{ b1="o"; break;}
if( b1=="o" && b9=="o" && b5==" " )
{ b5="o"; break;}
//123
if( b1=="o" && b2=="o" && b3==" " )
{ b3="o"; break;}
if( b2=="o" && b3=="o" && b1==" " )
{ b1="o"; break;}
if( b1=="o" && b3=="o" && b2==" " )
{ b2="o"; break;}
//258
if( b2=="o" && b5=="o" && b8==" " )
{ b8="o"; break;}
if( b5=="o" && b8=="o" && b2==" " )
{ b2="o"; break;}
if( b2=="o" && b8=="o" && b5==" " )
{ b5="o"; break;}
//357
if( b3=="o" && b5=="o" && b7==" " )
{ b7="o"; break;}
if( b5=="o" && b7=="o" && b3==" " )
{ b3="o"; break;}
if( b3=="o" && b7=="o" && b5==" " )
{ b5="o"; break;}
//369
if( b3=="o" && b6=="o" && b9==" " )
{ b9="o"; break;}
if( b6=="o" && b9=="o" && b3==" " )
{ b3="o"; break;}
if( b3=="o" && b9=="o" && b6==" " )
{ b6="o"; break;}
//456
if( b4=="o" && b5=="o" && b6==" " )
{ b6="o"; break;}
if( b5=="o" && b6=="o" && b4==" " )
{ b4="o"; break;}
if( b4=="o" && b6=="o" && b5==" " )
{ b5="o"; break;}
//789
if( b7=="o" && b8=="o" && b9==" " )
{ b9="o"; break;}
if( b8=="o" && b9=="o" && b7==" " )
{ b7="o"; break;}
if( b7=="o" && b9=="o" && b8==" " )
{ b8="o"; break;}
///////////////////////////////////////////
///////////////////////////////////////////
//defend 147
if( b1=="x" && b4=="x" && b7==" " )
{ b7="o"; break;}
if( b4=="x" && b7=="x" && b1==" " )
{ b1="o"; break;}
if( b1=="x" && b7=="x" && b4==" " )
{ b4="o"; break;}
//159
if( b1=="x" && b5=="x" && b9==" " )
{ b9="o"; break;}
if( b5=="x" && b9=="x" && b1==" " )
{ b1="o"; break;}
if( b1=="x" && b9=="x" && b5==" " )
{ b5="o"; break;}
//123
if( b1=="x" && b2=="x" && b3==" " )
{ b3="o"; break;}
if( b2=="x" && b3=="x" && b1==" " )
{ b1="o"; break;}
if( b1=="x" && b3=="x" && b2==" " )
{ b2="o"; break;}
//258
if( b2=="x" && b5=="x" && b8==" " )
{ b8="o"; break;}
if( b5=="x" && b8=="x" && b2==" " )
{ b2="o"; break;}
if( b2=="x" && b8=="x" && b5==" " )
{ b5="o"; break;}
//357
if( b3=="x" && b5=="x" && b7==" " )
{ b7="o"; break;}
if( b5=="x" && b7=="x" && b3==" " )
{ b3="o"; break;}
if( b3=="x" && b7=="x" && b5==" " )
{ b5="o"; break;}
//369
if( b3=="x" && b6=="x" && b9==" " )
{ b9="o"; break;}
if( b6=="x" && b9=="x" && b3==" " )
{ b3="o"; break;}
if( b3=="x" && b9=="x" && b6==" " )
{ b6="o"; break;}
//456
if( b4=="x" && b5=="x" && b6==" " )
{ b6="o"; break;}
if( b5=="x" && b6=="x" && b4==" " )
{ b4="o"; break;}
if( b4=="x" && b6=="x" && b5==" " )
{ b5="o"; break;}
//789
if( b7=="x" && b8=="x" && b9==" " )
{ b9="o"; break;}
if( b8=="x" && b9=="x" && b7==" " )
{ b7="o"; break;}
if( b7=="x" && b9=="x" && b8==" " )
{ b8="o"; break;}
if( b5==" " )
{ b5="o"; break;}
//do first
if( b1==" " && b2==" " && b3==" " && b5=="x" )
{ b3="o"; break;}
//moveon
//123
if( b1=="o" && b2==" " && b3==" " && b5=="x" )
{ b2="o"; break;}
if( b1==" " && b2=="o" && b3==" " && b5=="x" )
{ b3="o"; break;}
if( b1==" " && b2==" " && b3=="o" && b5=="x" )
{ b1="o"; break;}
//147
if( b1=="o" && b4==" " && b7==" " && b5=="x" )
{ b4="o"; break;}
if( b1==" " && b4=="o" && b7==" " && b5=="x" )
{ b7="o"; break;}
if( b1==" " && b4==" " && b7=="o" && b5=="x" )
{ b1="o"; break;}
//789
if( b7=="o" && b8==" " && b9==" " && b5=="x" )
{ b8="o"; break;}
if( b7==" " && b8=="o" && b9==" " && b5=="x" )
{ b9="o"; break;}
if( b7==" " && b8==" " && b9=="o" && b5=="x" )
{ b7="o"; break;}
//369
if( b3=="o" && b6==" " && b9==" " && b5=="x" )
{ b6="o"; break;}
if( b3==" " && b6=="o" && b9==" " && b5=="x" )
{ b9="o"; break;}
if( b3==" " && b6==" " && b9=="o" && b5=="x" )
{ b3="o"; break;}
randtic();
}
}
function reset()
{
window.resizeTo(350,350)
b1=" ";
b2=" ";
b3=" ";
b4=" ";
b5=" ";
b6=" ";
b7=" ";
b8=" ";
b9=" ";
plot();
}
function randtic()
{
random = Math.floor(Math.random()*9);
switch(random)
{
case 1:
if( b1=="x" || b1=="o" )
{
randtic();
}
else
b1="o";
break;
case 2:
if( b2=="x" || b2=="o" )
{
randtic();
}
else
b2="o";
break;
case 3:
if( b3=="x" || b3=="o" )
{
randtic();
}
else
b3="o";
break;
case 4:
if( b4=="x" || b4=="o" )
{
randtic();
}
else
b4="o";
break;
case 5:
if( b5=="x" || b5=="o" )
{
randtic();
}
else
b5="o";
break;
case 6:
if( b6=="x" || b6=="o" )
{
randtic();
}
else
b6="o";
break;
case 7:
if( b7=="x" || b7=="o" )
{
randtic();
}
else
b7="o";
break;
case 8:
if( b8=="x" || b8=="o" )
{
randtic();
}
else
b8="o";
break;
case 9:
if( b9=="x" || b9=="o" )
{
randtic();
}
else
b9="o";
break;
default:
randtic();
}
}
</script>
</head>
<body bgcolor=black onload="reset();" scroll="no" oncontextmenu="return false;" onselectstart="return false;">
<p>
<input type=text name=stats size=36 value=":: Win 0, Lose 0, Tie 0" ID=Text1><input type=button value=" reset " onclick="reset();" ID=Button1>
</p>
<table cellSpacing=1 cellPadding=1 width=300 border=5>
<tr>
<td onclick=go(1)><center><font face=arial color="white" size="10px" id=a1 ></font></center></td>
<td onclick=go(2)><center><font face=arial color="white" size="10px" id=a2 ></font></center></td>
<td onclick=go(3)><center><font face=arial color="white" size="10px" id=a3 ></font></center></td></tr>
<tr>
<td onclick=go(4)><center><font face=arial color="white" size="10px" id=a4 ></font></center></td>
<td onclick=go(5)><center><font face=arial color="white" size="10px"id=a5 ></font></center></td>
<td onclick=go(6)><center><font face=arial color="white" size="10px" id=a6 ></font></center></td></tr>
<tr>
<td onclick=go(7) ><center><font face=arial color="white" size="10px" id=a7 ></font></center></td>
<td onclick=go(

><center><font face=arial color="white" size="10px" id=a8 ></font></center></td>
<td onclick=go(9) ><center><font face=arial color="white" size="10px" id=a9 ></font></center></td></tr></table>
<br><br>
</body></html>