var ticPRELOADTHESE = new Array("shall1","shall2","shall3","shall4","shall5","shall6","shall7","shall8","shall9","shall10","shall11","shall12","shall13","shall14","shall15","win1","win2","win3","win4","win5","tie1","tie2","tie3","tie4","tie5","lose1","lose2","lose3","lose4","lose5","x","o","x_lite","o_lite","ticNEWGAME_on","ticNEWGAME_off","ticQUIT_on","ticQUIT_off");
var ticIMAGECACHE = new Array(37);
for (var ticCOUNTTHIS = 0; ticCOUNTTHIS < 37; ticCOUNTTHIS++) {
ticIMAGECACHE[ticCOUNTTHIS] = new Image();
ticIMAGECACHE[ticCOUNTTHIS].src = "http://pic.oocities.com/images/gadgetfactory/tic/" + ticPRELOADTHESE[ticCOUNTTHIS] + ".gif";
}
var ticGAMESTATE=0; //no interaction with player
var ticNEWSCREEN = new Array(17);
var ticSCREENBOARD = new Array(9);
var ticBOARD = new Array(9);
var ticFORCEDATA = new Array(1,0,1,3,0,0,3,3,1,3,3,1,3,0,0,1,0,1,1,3,3,0,0,3,1,0,1,1,0,1,0,0,3,1,3,3,1,0,1,3,1,3,0,3,0,0,3,1,3,1,0,0,3,1,0,3,0,3,1,3,1,0,1,1,3,0,0,1,3,1,3,0,0,1,1,3,3,1,3,3,0,1,1,0,1,3,3,0,3,3,0,3,3,1,3,3,1,1,0,3,3,0,3,3,1,0,1,1,3,0,3,0,1,1,3,1,3,3,1,3,0,1,1,3,0,3,3,1,3,1,1,0,3,1,3,3,0,3,1,1,0,3,1,3,1,3,3,1,1,3,0,3,0,3,3,0,3,1,3,1,1,0,0,3,0,3,1,1,3,3,1,0,1,1,3,1,3,0,3,3);
var ticFLASHER = 10;
var ticGOESFIRST = 0;
var ticTIMERLOCATION = setTimeout("ticOPENFLASH()", 1000);
// opening flasher
function ticOPENFLASH() {
if ((ticFLASHER / 2) == Math.floor(ticFLASHER / 2)) {
ticUPDATESCREEN(1);
}
else {
ticUPDATESCREEN(0);
}
ticFLASHER--
if (ticFLASHER > 0) {
ticTIMERLOCATION = setTimeout("ticOPENFLASH()", 1000);
}
}
// update the screen
function ticUPDATESCREEN(ticX) {
ticNEWSCREEN = ["pixel_green","pixel_blue","pixel_green","pixel_blue","pixel_green","pixel_blue","pixel_green","pixel_blue","pixel_green","pixel_blue","pixel_green","pixel_blue","pixel_green","pixel_blue","pixel_green","pixel_blue","pixel_green"];
if (ticX==1) ticNEWSCREEN = ["shall1","shall2","shall3","shall4","shall5","pixel_green","shall6","shall7","shall8","shall9","shall10","pixel_green","shall11","shall12","shall13","shall14","shall15"];
if (ticX==2) ticNEWSCREEN = ["pixel_green","pixel_green","pixel_green","pixel_green","pixel_green","pixel_green","win1","win2","win3","win4","win5","pixel_green","pixel_green","pixel_green","pixel_green","pixel_green","pixel_green"];
if (ticX==3) ticNEWSCREEN = ["pixel_green","pixel_green","pixel_green","pixel_green","pixel_green","pixel_green","lose1","lose2","lose3","lose4","lose5","pixel_green","pixel_green","pixel_green","pixel_green","pixel_green","pixel_green"];
if (ticX==4) ticNEWSCREEN = [ticSCREENBOARD[0],"pixel_blue",ticSCREENBOARD[1],"pixel_blue",ticSCREENBOARD[2],"pixel_blue",ticSCREENBOARD[3],"pixel_blue",ticSCREENBOARD[4],"pixel_blue",ticSCREENBOARD[5],"pixel_blue",ticSCREENBOARD[6],"pixel_blue",ticSCREENBOARD[7],"pixel_blue",ticSCREENBOARD[8]];
if (ticX==5) ticNEWSCREEN = ["master1","master2","master3","master4","master5","pixel_green","master6","master7","master8","master9","master10","pixel_green","master11","master12","master13","master14","master15"];
if (ticX==6) ticNEWSCREEN = ["pixel_green","pixel_green","pixel_green","pixel_green","pixel_green","pixel_green","tie1","tie2","tie3","tie4","tie5","pixel_green","pixel_green","pixel_green","pixel_green","pixel_green","pixel_green"];
for (ticX=0; ticX < 17; ticX++) {
if (document.images["tic" + ticX].src != "http://pic.oocities.com/images/gadgetfactory/tic/" + ticNEWSCREEN[ticX] + ".gif") document.images["tic" + ticX].src = "http://pic.oocities.com/images/gadgetfactory/tic/" + ticNEWSCREEN[ticX] + ".gif";
}
}
// start a new game
function ticPLAYGAME() {
ticBOARD = [0,0,0,0,0,0,0,0,0];
clearTimeout(ticTIMERLOCATION);
ticUPDATEBOARD();
if (ticGOESFIRST == 0) {
ticME = "o";
ticYOU = "x";
ticGOESFIRST = 1;
ticGAMESTATE = 20; // YOUR TURN
document.images['ticTURN'].src = "http://pic.oocities.com/images/gadgetfactory/tic/turn1.gif"
ticTIMERLOCATION = setTimeout("ticQUITGAME()", 60000); // IN CASE YOU WERE TEASING
}
else {
ticME = "x";
ticYOU = "o";
ticGOESFIRST = 0;
ticMYTURN()
}
}
//Here's the brain
function ticMYTURN() {
clearTimeout(ticTIMERLOCATION);
ticGAMESTATE = 10; //MY TURN
document.images['ticTURN'].src = "http://pic.oocities.com/images/gadgetfactory/tic/turn0.gif"
setTimeout("ticMAKEMOVE()", 1000);
}
function ticMAKEMOVE() {
ticBESTMOVE = 0;
ticBESTMOVE = ticCHECKWINNINGMOVE(1);
if (ticBESTMOVE == -1) ticBESTMOVE = ticCHECKWINNINGMOVE(2);
//dummy array
if (ticBESTMOVE == -1) {
var ticDUMMY = new Array(4,0,2,6,8,1,3,5,7)
for (ticX = 0; ticX < 9; ticX++) {
if (ticBOARD[ticDUMMY[ticX]] == 0) {
ticBESTMOVE = ticDUMMY[ticX];
break;
}
}
}
//make my move here.
ticBOARD[ticBESTMOVE] = 1;
ticUPDATEBOARD();
if (ticCHECKWINNER(1) == 0) {
if (ticCHECKSTALEMATE() == 1) {
ticUPDATESCREEN(6);
ticGAMESTATE = 1;
ticTIMERLOCATION = setTimeout("ticUPDATESCREEN(4)", 2000);
return;
}
ticGAMESTATE = 20;
document.images['ticTURN'].src = "http://pic.oocities.com/images/gadgetfactory/tic/turn1.gif";
ticTIMERLOCATION = setTimeout("ticQUITGAME()", 60000);
}
else {
ticGAMESTATE = 1;
ticUPDATESCREEN(3);
ticTIMERLOCATION = setTimeout("ticUPDATESCREEN(4)", 2000);
}
}
//look for a possible force win move
function ticFINDFORCE() {
var ticFORCEHERE = -1;
for (ticX = 0; ticX < 20; ticX++) {
ticV = 0;
ticW = 0;
for (ticY = 0; ticY < 9; ticY++) {
if (ticBOARD[ticY] == ticFORCEDATA[(ticX * 9) + ticY]) {
if (ticBOARD[ticY] == 0) ticV++;
if (ticBOARD[ticY] == 1) ticW++;
}
if ((ticFORCEDATA[(ticX * 9) + ticY] == 1) && (ticBOARD[ticY] == 0)) ticTEMPFORCEHERE = ticY;
}
if ((ticV > 1) && (ticW > 1)) {
ticFORCEHERE = ticTEMPFORCEHERE;
}
}
return[ticFORCEHERE];
}
//checkwinner
function ticCHECKWINNER(ticX) {
if ((ticBOARD[0] == ticX) && (ticBOARD[1] == ticX) && (ticBOARD[2] == ticX)) return[1];
else if ((ticBOARD[3] == ticX) && (ticBOARD[4] == ticX) && (ticBOARD[5] == ticX)) return[1];
else if ((ticBOARD[6] == ticX) && (ticBOARD[7] == ticX) && (ticBOARD[8] == ticX)) return[1];
else if ((ticBOARD[0] == ticX) && (ticBOARD[3] == ticX) && (ticBOARD[6] == ticX)) return[1];
else if ((ticBOARD[1] == ticX) && (ticBOARD[4] == ticX) && (ticBOARD[7] == ticX)) return[1];
else if ((ticBOARD[2] == ticX) && (ticBOARD[5] == ticX) && (ticBOARD[8] == ticX)) return[1];
else if ((ticBOARD[0] == ticX) && (ticBOARD[4] == ticX) && (ticBOARD[8] == ticX)) return[1];
else if ((ticBOARD[2] == ticX) && (ticBOARD[4] == ticX) && (ticBOARD[6] == ticX)) return[1];
else return[0];
}
//check for winning move
function ticCHECKWINNINGMOVE(ticX) {
if ((ticBOARD[0] == 0) && (((ticBOARD[3] == ticX) && (ticBOARD[6] == ticX)) || ((ticBOARD[1] == ticX) && (ticBOARD[2] == ticX)) || ((ticBOARD[4] == ticX) && (ticBOARD[8] == ticX)))) return[0];
else if ((ticBOARD[1] == 0) && (((ticBOARD[0] == ticX) && (ticBOARD[2] == ticX)) || ((ticBOARD[4] == ticX) && (ticBOARD[7] == ticX)))) return[1];
else if ((ticBOARD[2] == 0) && (((ticBOARD[0] == ticX) && (ticBOARD[1] == ticX)) || ((ticBOARD[4] == ticX) && (ticBOARD[6] == ticX)) || ((ticBOARD[5] == ticX) && (ticBOARD[7] == ticX)))) return[2];
else if ((ticBOARD[3] == 0) && (((ticBOARD[0] == ticX) && (ticBOARD[6] == ticX)) || ((ticBOARD[4] == ticX) && (ticBOARD[5] == ticX)))) return[3];
else if ((ticBOARD[4] == 0) && (((ticBOARD[0] == ticX) && (ticBOARD[8] == ticX)) || ((ticBOARD[1] == ticX) && (ticBOARD[7] == ticX)) || ((ticBOARD[2] == ticX) && (ticBOARD[6] == ticX)) || ((ticBOARD[3] == ticX) && (ticBOARD[5] == ticX)))) return[4];
else if ((ticBOARD[5] == 0) && (((ticBOARD[2] == ticX) && (ticBOARD[8] == ticX)) || ((ticBOARD[3] == ticX) && (ticBOARD[4] == ticX)))) return[5];
else if ((ticBOARD[6] == 0) && (((ticBOARD[0] == ticX) && (ticBOARD[3] == ticX)) || ((ticBOARD[2] == ticX) && (ticBOARD[4] == ticX)) || ((ticBOARD[7] == ticX) && (ticBOARD[8] == ticX)))) return[6];
else if ((ticBOARD[7] == 0) && (((ticBOARD[1] == ticX) && (ticBOARD[4] == ticX)) || ((ticBOARD[6] == ticX) && (ticBOARD[8] == ticX)))) return[7];
else if ((ticBOARD[8] == 0) && (((ticBOARD[0] == ticX) && (ticBOARD[4] == ticX)) || ((ticBOARD[2] == ticX) && (ticBOARD[5] == ticX)) || ((ticBOARD[6] == ticX) && (ticBOARD[7] == ticX)))) return[8];
else return[-1];
}
//check for a stalemate
function ticCHECKSTALEMATE(){
var ticSTALL = 1
for (ticX = 0; ticX < 9; ticX++){
if (ticBOARD[ticX] == 0) ticSTALL=0;
}
if (ticSTALL == 1);
return[ticSTALL];
}
//click on a square
function ticTACTOE(ticX) {
if (ticGAMESTATE < 10) ticPLAYGAME();
else {
if ((ticGAMESTATE == 20) && (ticBOARD[ticX] == 0)) {
ticBOARD[ticX] = 2;
ticUPDATEBOARD();
if (ticCHECKWINNER(2) == 0) {
if (ticCHECKSTALEMATE() == 1) {
ticUPDATESCREEN(6);
ticGAMESTATE = 1;
ticTIMERLOCATION = setTimeout("ticUPDATESCREEN(4)", 2000);
return;
}
ticMYTURN();
}
else {
ticGAMESTATE = 1;
ticUPDATESCREEN(2);
ticTIMERLOCATION = setTimeout("ticUPDATESCREEN(4)", 2000);
}
}
}
}
//roll on a square
function ticTACON(ticX) {
if ((ticGAMESTATE < 10) && (ticFLASHER < 1)) ticUPDATESCREEN(1);
if ((ticX > -1) && (ticGAMESTATE == 20) && (ticBOARD[ticX/2] == 0)) {
ticSCREENBOARD[ticX / 2] = ticYOU + "_lite";
ticUPDATESCREEN(4);
}
}
//roll off a square
function ticTACOFF(ticX) {
if ((ticGAMESTATE < 10) && (ticFLASHER < 1)) ticUPDATESCREEN(0);
if ((ticX > -1) && (GAMESTATE = 20) && (ticBOARD[ticX/2] == 0)) ticUPDATEBOARD();
}
//copy board to updateboard
function ticUPDATEBOARD() {
for (ticX = 0; ticX < 9; ticX++) {
ticSCREENBOARD[ticX] = "pixel_green"
if (ticBOARD[ticX] == 1) ticSCREENBOARD[ticX] = ticME
if (ticBOARD[ticX] == 2) ticSCREENBOARD[ticX] = ticYOU
}
ticUPDATESCREEN(4);
}
// quit game early
function ticQUITGAME() {
ticGAMESTATE = 1;
ticUPDATESCREEN(3);
ticTIMERLOCATION = setTimeout("ticUPDATESCREEN(4)", 2000);
}
function ticROLLOFFOTHER() {
document.images['ticNEWGAME'].src = "http://pic.oocities.com/images/gadgetfactory/tic/ticNEWGAME_off.gif";
document.images['ticQUIT'].src = "http://pic.oocities.com/images/gadgetfactory/tic/ticQUIT_off.gif";
}
// Roll over on
function ticIMAGEON(ticNEWIMAGE) {
document.images[ticNEWIMAGE].src = "http://pic.oocities.com/images/gadgetfactory/tic/" + ticNEWIMAGE + "_on.gif";
}
document.write('
| | | | | | | | | ');
document.write(' | | | ');
document.write(' | | | | | | | |
| | ');
document.write(' | |
| | ');
document.write(' | |
|
');