<!-- Begin to Hide Script

//   cjohnson@morris.com



   // initialize turn, win array and decision array

var count = 0;

var won = new Array(9);

   for (m = 0 ; m <= 8 ; m++) {

      won[m] = m;

   }

var play = new Array(9);

   play[0] = 3;  // Corner

   play[2] = 3;  // Corner

   play[6] = 3;  // Corner

   play[8] = 3;  // Corner

   play[1] = 3;  // Side

   play[3] = 3;  // Side

   play[5] = 3;  // Side

   play[7] = 3;  // Side

   play[4] = 5;  // Middle



   // initialize button array

buttons = new Array(4);

for (m=0; m < 4; m++) {

   buttons[m] = new Image();

   }



   // load the empty cell, lit cell, x and o buttons

buttons[0].src = "emp.gif";

buttons[1].src = "lit.gif";

buttons[2].src = "x.gif";

buttons[3].src = "o.gif";



//*** lights empty cells when cursor passes over them

function alter( imix ) {



   // won't light cell if already selected

   if(document.images[imix].src == buttons[2].src || document.images[imix].src == buttons[3].src) return;

   

   // otherwise - lights cell on entry and unlights on exit

   if(document.images[imix].src == buttons[1].src) {

      document.images[imix].src = buttons[0].src;

   } else {

      document.images[imix].src = buttons[1].src;

   }

}



//*** places x or o in cell based on whose turn it is;

function select( sq ) {



   // keeps track of whether x or o is selecting cell

   turn = count % 2;

   turn += 2;



   // prevents selection of already selected cell and selects cell

   if(document.images[sq].src == buttons[2].src || document.images[sq].src == buttons[3].src) {

      return;

   } else {

      document.images[sq].src = buttons[turn].src;



      // checks for winner

      winner(sq , turn);



      // updates decision array

      if(!(count % 2)) {

        updateplay(sq, 1);

      }



      // updates turn cell if no winner

      if(turn == 3) {turn = 2; } else { turn = 3; }

      document.images[9].src = buttons[turn].src;

      count++;



      //is it the computer's turn

      if(count % 2){

        compturn();

      }

      }

}



//*** keeps track of board array and checks for winners

function winner (index , pl) {

   won[index] = pl*7;



   // top row

   if ((won[0] == won[1]) && (won[0] == won[2])) displaywinner(pl);

   // top left diagonal

   if ((won[0] == won[4]) && (won[0] == won[8])) displaywinner(pl);

   // left column

   if ((won[0] == won[3]) && (won[0] == won[6])) displaywinner(pl);

   // middle column

   if ((won[1] == won[4]) && (won[1] == won[7])) displaywinner(pl);

   // middle row

   if ((won[3] == won[4]) && (won[3] == won[5])) displaywinner(pl);

   // right column

   if ((won[2] == won[5]) && (won[2] == won[8])) displaywinner(pl);

   // bottom left diagonal

   if ((won[6] == won[4]) && (won[6] == won[2])) displaywinner(pl);

   // bottom row

   if ((won[6] == won[7]) && (won[6] == won[8])) displaywinner(pl);

}



//*** lights cells of board to indicate who won

function displaywinner ( player ) {

   if ( player == 3 ) {

      for (m = 0; m <= 8; m++) {

         document.images[m].src = buttons[3].src;

      }

      return;

   } else {

      for (m = 0; m <= 8; m++) {

         document.images[m].src = buttons[2].src;

      }

      return;

   }

}



//*** clears board for another game and resets important variables

function clear () {

   for (m = 0 ; m <= 8; m++) {

      document.images[m].src = buttons[0].src;

      won[m] = m;

   }

   document.images[9].src = buttons[2].src;

   count = 0;

   play[0] = 3;  // Corner

   play[2] = 3;  // Corner

   play[6] = 3;  // Corner

   play[8] = 3;  // Corner

   play[1] = 2;  // Side

   play[3] = 2;  // Side

   play[5] = 2;  // Side

   play[7] = 2;  // Side

   play[4] = 4;  // Middle



}



//*** allows for a turn to be skipped or for o to start first

function swap () {

   if (count % 2 == 0) {

      document.images[9].src = buttons[3].src;

   } else {

      document.images[9].src = buttons[2].src;

   }

   count++;

   compturn();

}



//*** lets the computer play

function compturn() {

  var biggest= -1;

  var index= -1;

  

  for(i=0; i<9; i++){

    if(play[i] > biggest) {

      biggest = play[i];

      index = i;

    }

  }



  updateplay(index, -1);

  select(index);

}



//*** updates decision array play

function updateplay( index , adjust) {

  if(adjust == -1){

    var cencor = -3;

  } else {

    var cencor = 1;

  }



  if(index == 0) {

  changeplay(0, 0);

  changeplay(1, adjust);

  changeplay(2, adjust);

  changeplay(3, adjust);

  changeplay(6, adjust);

  changeplay(4, adjust);

  changeplay(8, adjust);

  return;

  } else

  if(index == 1) {

  changeplay(1, 0);

  changeplay(0, adjust);

  changeplay(2, adjust);

  changeplay(4, adjust);

  changeplay(7, adjust);

  return;

  } else

  if(index == 2) {

  changeplay(2, 0);

  changeplay(0, adjust);

  changeplay(1, adjust);

  changeplay(4, adjust);

  changeplay(5, adjust);

  changeplay(6, adjust);

  changeplay(8, adjust);

  return;

  } else

  if(index == 3) {

  changeplay(3, 0);

  changeplay(0, adjust);

  changeplay(4, adjust);

  changeplay(5, adjust);

  changeplay(6, adjust);

  return;

  } else

  if(index == 4) {

  changeplay(4, 0);

  changeplay(0, cencor);

  changeplay(1, adjust);

  changeplay(2, cencor);

  changeplay(3, adjust);

  changeplay(5, adjust);

  changeplay(6, cencor);

  changeplay(7, adjust);

  changeplay(8, cencor);

  return;

  } else

  if(index == 5) {

  changeplay(5, 0);

  changeplay(3, adjust);

  changeplay(4, adjust);

  changeplay(2, adjust);

  changeplay(8, adjust);

  return;

  } else

  if(index == 6) {

  changeplay(6, 0);

  changeplay(0, adjust);

  changeplay(3, adjust);

  changeplay(4, adjust);

  changeplay(2, adjust);

  changeplay(7, adjust);

  changeplay(8, adjust);

  return;

  } else

  if(index == 7) {

  changeplay(7, 0);

  changeplay(1, adjust);

  changeplay(4, adjust);

  changeplay(6, adjust);

  changeplay(8, adjust);

  return;

  } else

  if(index == 8) {

  changeplay(8, 0);

  changeplay(0, adjust);

  changeplay(2, adjust);

  changeplay(4, adjust);

  changeplay(5, adjust);

  changeplay(6, adjust);

  changeplay(7, adjust);

  return;

  }

}



//*** changes values of decision cells unless they equal 0

function changeplay( index, value ) {



  if (play[index] == 0) {

  } else {

  if( value == 0) {

    play[index] = value;

  } else {

    play[index] = play[index] + value;

  }

  }

}



//  close the comment tag and finish hiding the script from old browsers -->


