--- 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++) {