Advertisement
Liliana797979

tik tak toe - js advanced

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