Advertisement
ToastyStoemp

4 in a row

Aug 12th, 2015
267
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var grid = [
  2.   ['.', '.', '.', '.', '.', '.', '.'],
  3.   ['.', '.', '.', '.', '.', '.', '.'],
  4.   ['.', '.', '.', '.', '.', '.', '.'],
  5.   ['.', '.', '.', '.', '.', '.', '.'],
  6.   ['.', '.', '.', '.', '.', '.', '.'],
  7.   ['.', '.', '.', '.', '.', '.', '.']
  8. ];
  9.  
  10. var currentPlayer = 'X';
  11.  
  12. function checkWin() {
  13.     //Horizontal check
  14.     for (var i = 0; i < grid.length; i++)
  15.         for (var j = 0; j < grid[i].length - 3; j++)
  16.             if (grid[i][j] != '.')
  17.                 if (grid[i][j] == grid[i][j + 1] && grid[i][j + 1] == grid[i][j + 2] && grid[i][j + 2] == grid[i][j + 3])
  18.                     return grid[i][j];
  19.  
  20.     //Vertical check
  21.     for (var i = 0; i < grid[0].length; i++)
  22.         for (var j = 0; j < grid.length - 3; j++)
  23.             if (grid[j][i] != '.')
  24.                 if (grid[j][i] == grid[j + 1][i] && grid[j + 1][i] == grid[j + 2][i] && grid[j + 2][i] == grid[j + 3][i])
  25.                     return grid[j][i];
  26.  
  27.     //Diagonal check from top left to bottom right \
  28.     for (var i = 0; i < grid.length - 3; i++)
  29.         for (var j = 0; j < grid[0].length - 3; j++)
  30.             if (grid[i][j] != '.')
  31.                 if (grid[i][j] == grid[i + 1][j + 1] && grid[i + 1][j + 1] == grid[i + 2][j + 2] && grid[i + 2][j + 2] == grid[i + 3][j + 3])
  32.                     return grid[i][j];
  33.  
  34.     //Diagonal check from top right to bottom left /
  35.     for (var i = 0; i < grid.length - 3; i++)
  36.         for (var j = 3; j < grid[0].length; j++)
  37.             if (grid[i][j] != '.')
  38.                 if (grid[i][j] == grid[i + 1][j - 1] && grid[i + 1][j - 1] == grid[i + 2][j - 2] && grid[i + 2][j - 2] == grid[i + 3][j - 3])
  39.                     return grid[i][j];
  40.  
  41.     return '.'; //No one won;
  42. };
  43.  
  44. function placeToken(row) {
  45.     var line = 0;
  46.     while (line < grid.length - 1 && grid[line + 1][row] == '.') {
  47.         line++;
  48.     }
  49.     grid[line][row] = currentPlayer;
  50.     swapPlayer();
  51.     displayGrid();
  52. };
  53.  
  54. function swapPlayer() {
  55.     if (currentPlayer == 'X')
  56.         currentPlayer = 'O';
  57.     else
  58.         currentPlayer = 'X';
  59. }
  60.  
  61. function displayGrid() {
  62.     for (var i = 0; i < grid.length; i++)
  63.         console.log(grid[i]);
  64. }
  65.  
  66. while (checkWin() == '.') {
  67.     placeToken(prompt('EnterRow'));
  68.     console.log(checkWin());
  69. }
  70.  
  71. alert(checkWin());
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement