Advertisement
Guest User

Untitled

a guest
Apr 24th, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     function Board(rows, cols) {
  2.       this.rows = rows;
  3.       this.cols = cols;
  4.       this.elements = [];
  5.     }
  6.  
  7.     Board.prototype.createBoard = function () {
  8.       var board = document.createElement('div');
  9.       board.className = "board";
  10.  
  11.       for (var i = 0; i < this.rows; i++) {
  12.         var row = document.createElement('div');
  13.         row.className = "row";
  14.  
  15.         for (var j = 0; j < this.cols; j++) {
  16.           var element = document.createElement('div');
  17.           element.className = "element";
  18.           row.appendChild(element);
  19.           this.elements.push(element);
  20.         }
  21.  
  22.         board.appendChild(row);
  23.       }
  24.  
  25.       document.body.appendChild(board);
  26.     };
  27.  
  28.     Board.prototype.watchMove = function (callback) {
  29.       for (var index in this.elements) {
  30.         this.elements[index].addEventListener('click', callback)
  31.       }
  32.     };
  33.  
  34.     Board.prototype.getElements = function () {
  35.       return this.elements;
  36.     };
  37.  
  38.     function SimpleAI(board) {
  39.       this.board = board;
  40.     }
  41.  
  42.     SimpleAI.prototype.handleMove = function () {
  43.       var elements = this.board.getElements();
  44.  
  45.       for (var i = 0; i < elements.length; i++) {
  46.         if (elements[i].innerHTML === "") {
  47.           elements[i].innerHTML = "O";
  48.           break;
  49.         }
  50.       }
  51.     };
  52.  
  53.     var board = new Board(3, 3);
  54.     board.createBoard();
  55.  
  56.     var simpleAI = new SimpleAI(board);
  57.     var aiMoveCallback = simpleAI.handleMove.bind(simpleAI);
  58.     var playerMoveCallback = function (e) {e.target.innerHTML = 'X';};
  59.  
  60.     board.watchMove(playerMoveCallback);
  61.     board.watchMove(aiMoveCallback);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement