1. Создал двухмерный массив startPosition
var startPosition = [
  ['','',''],
  ['','',''],
  ['','','']
];
, 2. Ввел понятия преимущественные позиции
var advantagePosition = [
  [3,2,3],
  [2,4,2],
  [3,2,3]
];
,
3. Описал чередования ходов(потом уже добавил проверку на возможность хода)
var player = 1;
var move = function(j,k){
  if(startPosition[j][k] !== ''){
    console.log('ячейка уже занята!');
  }
  else if(player++ % 2){
    startPosition[j][k] = 'X';
  }
  else{
    startPosition[j][k] = 'O';
  }
  return true;
};
var render = function(){
  for(var i=0; i<3; i++){
    console.log(startPosition[i]);
  }
};
4. Протестировал
(function(){
  render();
  move(1,1); //первый ход
  render();
  move(0,0); //второй ход
  move(0,0); //сообщение об ошибке
  move(0,0); //сообщение об ошибке
  render();
  move(2,2);
  render();
})();
Получилось
["", "", ""]
["", "", ""]
["", "", ""]
["", "", ""]
["", "X", ""]
["", "", ""]
"ячейка уже занята!"
"ячейка уже занята!"
["O", "", ""]
["", "X", ""]
["", "", ""]
["O", "", ""]
["", "X", ""]
["", "", "X"]
5. 
Не знаю как описать победу, может кто нибудь подскажет?