Advertisement
kstoyanov

08. Tic-Tac-Toe

Sep 18th, 2020
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve(input) {
  2.   const arr = [
  3.     [false, false, false],
  4.     [false, false, false],
  5.     [false, false, false],
  6.   ];
  7.   let player = 'X';
  8.  
  9.   for (const line of input) {
  10.     [currRow, currCol] = line.split(' ').map(Number);
  11.  
  12.     if (arr[currRow][currCol] !== false) {
  13.       console.log('This place is already taken. Please choose another!');
  14.       continue;
  15.     }
  16.  
  17.     arr[currRow][currCol] = player;
  18.  
  19.    
  20.     for (let i = 0; i < 3; i++) {
  21.       if (
  22.         arr[i][0] === player
  23.                 && arr[i][1] === player
  24.                 && arr[i][2] === player
  25.       ) {
  26.         console.log(`Player ${player} wins!`);
  27.         printMatrix();
  28.         return;
  29.       } if (
  30.         arr[0][i] === player
  31.                 && arr[1][i] === player
  32.                 && arr[2][i] === player
  33.       ) {
  34.         console.log(`Player ${player} wins!`);
  35.         printMatrix();
  36.         return;
  37.       }
  38.     }
  39.  
  40.    
  41.     if (
  42.       arr[0][0] === player
  43.             && arr[1][1] === player
  44.             && arr[2][2] === player
  45.     ) {
  46.       console.log(`Player ${player} wins!`);
  47.       printMatrix();
  48.       return;
  49.     }
  50.  
  51.    
  52.     if (
  53.       arr[0][2] === player
  54.             && arr[1][1] === player
  55.             && arr[2][0] === player
  56.     ) {
  57.       console.log(`Player ${player} wins!`);
  58.       printMatrix();
  59.       return;
  60.     }
  61.  
  62.     let theresFalse = false;
  63.  
  64.     for (let row = 0; row < arr.length; row++) {
  65.       if (arr[row].includes(false)) {
  66.         theresFalse = true;
  67.       }
  68.     }
  69.  
  70.     if (!theresFalse) {
  71.       console.log('The game ended! Nobody wins :(');
  72.       printMatrix();
  73.       return;
  74.     }
  75.  
  76.     player = player === 'X' ? 'O' : 'X';
  77.   }
  78.  
  79.   function printMatrix() {
  80.     for (let row = 0; row < arr.length; row++) {
  81.       console.log(arr[row].join('\t'));
  82.     }
  83.   }
  84. }
  85.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement