JSFiddle - React, Tailwind, and code Playground

by edwardsharp

JavaScript

//pass a representation of tic tac board 
//does this board have a winner? respond yes/no. 

//does not to be valid state.
var board = [
	['O','-','-'],
  ['X','-','X'],
  ['-','X','O']
];

function checkSpace(x,y,z){
	return board[x][y] == z;
}

function checkWin(){
	var wins = {horz: {x:[],o:[]}, vert: {x:[],o:[]}, diag: {x:[],o:[]}}
  for(var i=0; i<3;i++){
    for(var j=0;j<3;j++){
    	//check horz
    	if(checkSpace(i,j,'X')){
        wins.horz.x.push('win!');
      }
      if(checkSpace(i,j,'O')){
        wins.horz.o.push('win!');
      }
      
      // check vertz
      if(checkSpace(j,i,'X')){
        wins.vert.x.push('win!');
      }
      if(checkSpace(j,i,'O')){
        wins.vert.o.push('win!');
      }
      
  /*     if(checkSpace(i,i,'X')){
        wins.diag.x.push('win!');
      }
      if(checkSpace(i,i,'O')){
        wins.diag.o.push('win!');
      } */
      
      /* if(checkSpace(j,j,'X')){
        wins.diag.x.push('win!');
      }
      if(checkSpace(j,j,'O')){
        wins.diag.o.push('win!');
      } */
      
    }
  }
	
  console.log('wins:',wins);
  if(wins.horz.x.length >= 3){
  	return 'win horz X!';
  }
  if(wins.horz.o.length >= 3){
  	return 'win horz O!';
  }
  if(wins.vert.x.length >= 3){
  	return 'win vert X!';
  }
  if(wins.vert.o.length >= 3){
  	return 'win vert O!';
  }
  if(wins.diag.x.length >= 3){
  	return 'win diag X!';
  }
  if(wins.diag.o.length >= 3){
  	return 'win diag O!';
  }
  
  // check diag
 /*  if( checkSpace(0,0,'X') 
    && checkSpace(1,1,'X')
    && checkSpace(2,2,'X')
  ){
    return 'win X! 6';
  }
  
  if( checkSpace(0,0,'O') 
    && checkSpace(1,1,'O')
    && checkSpace(2,2,'O')
  ){
    return 'win O! 6';
  }
  
  if( checkSpace(0,2,'X') 
    && checkSpace(1,1,'X')
    && checkSpace(2,0,'X')
  ){
    return 'win X! 7';
  }
  
  if( checkSpace(0,2,'O') 
    && checkSpace(1,1,'O')
    && checkSpace(2,0,'O')
  ){
    return 'win O! 7';
  }
   */
  return 'no';
  
}

console.log(checkWin());