board.js
changeset 20 ab294e8db00c
parent 14 9b49e710f5a7
child 22 b041338d7e88
--- 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++) {