diff -r 94a4201d27a3 -r ab294e8db00c board.js --- a/board.js Mon Sep 08 02:04:16 2014 +0300 +++ b/board.js Mon Sep 08 17:43:10 2014 +0300 @@ -81,6 +81,14 @@ brd.brd[i][j] = this.brd[i][j]; return brd; } +BoardArr2d.prototype.free = function() { + var cnt = 0; + for (var i = 0; i < 4; i++) + for (var j = 0; j < 4; j++) + if (this.brd[i][j] === 0) + cnt++; + return cnt; +} BoardArr2d.prototype.score = function() { var score = 0; for (var i = 0; i < 4; i++) { @@ -101,6 +109,27 @@ } return max; } +BoardArr2d.prototype.find = function(val) { + var xy = []; + for (var i = 0; i < 4; i++) { + for (var j = 0; j < 4; j++) { + if (this.brd[i][j] === val) + xy.push([i,j]); + } + } + return xy; +} +BoardArr2d.prototype.atEdge = function(val) { + var brd = this.brd; + return (brd[0][0] === val) || (brd[0][1] === val) || (brd[0][2] === val) || (brd[0][3] === val) + || (brd[1][0] === val) || (brd[1][3] === val) + || (brd[2][0] === val) || (brd[2][3] === val) + || (brd[3][0] === val) || (brd[3][1] === val) || (brd[3][2] === val) || (brd[3][3] === val); +} +BoardArr2d.prototype.atCorner = function(val) { + var brd = this.brd; + return (brd[0][0] === val) || (brd[0][3] === val) || (brd[3][0] === val) || (brd[3][3] === val); +} BoardArr2d.prototype.canRight = function() { for (var i = 0; i < 4; i++) {