diff -r 395195ae7daf -r 961eff57a23f board.js --- a/board.js Sat Sep 06 22:59:23 2014 +0300 +++ b/board.js Sun Sep 07 00:18:35 2014 +0300 @@ -36,9 +36,6 @@ brd.brd[i] = this.brd[i]; return brd; } -BoardArr.prototype.show = function(fn) { -BoardArr.prototype.shiftLeft = function(brd) { -} @@ -78,6 +75,55 @@ return brd; } +BoardArr2d.prototype.canRight = function() { + for (var i = 0; i < 4; i++) { + var f0 = this.brd[i][0], f1 = this.brd[i][1], f2 = this.brd[i][2], f3 = this.brd[i][3]; + if (f2 > 0 && (f2 === f3 || f3 === 0)) + return true; + if (f1 > 0 && (f1 === f2 || f2 === 0)) + return true; + if (f0 > 0 && (f0 === f1 || f1 === 0)) + return true; + } + return false; +} +BoardArr2d.prototype.canLeft = function() { + for (var i = 0; i < 4; i++) { + var f0 = this.brd[i][0], f1 = this.brd[i][1], f2 = this.brd[i][2], f3 = this.brd[i][3]; + if (f1 > 0 && (f1 === f0 || f0 === 0)) + return true; + if (f2 > 0 && (f2 === f1 || f1 === 0)) + return true; + if (f3 > 0 && (f3 === f2 || f2 === 0)) + return true; + } + return false; +} +BoardArr2d.prototype.canUp = function() { + for (var j = 0; j < 4; j++) { + var f0 = this.brd[0][j], f1 = this.brd[1][j], f2 = this.brd[2][j], f3 = this.brd[3][j]; + if (f1 > 0 && (f1 === f0 || f0 === 0)) + return true; + if (f2 > 0 && (f2 === f1 || f1 === 0)) + return true; + if (f3 > 0 && (f3 === f2 || f2 === 0)) + return true; + } + return false; +} +BoardArr2d.prototype.canDown = function() { + for (var j = 0; j < 4; j++) { + var f0 = this.brd[0][j], f1 = this.brd[1][j], f2 = this.brd[2][j], f3 = this.brd[3][j]; + if (f2 > 0 && (f2 === f3 || f3 === 0)) + return true; + if (f1 > 0 && (f1 === f2 || f2 === 0)) + return true; + if (f0 > 0 && (f0 === f1 || f1 === 0)) + return true; + } + return false; +} + BoardArr2d.prototype.shiftLeft_unrolled = function(brd) { var from = this.brd, to = brd.brd; for (var i = 3; i >= 0; i--) {