Add BoardArr2d.prototype.can* functions. Fix typo.
authorOleksandr Gavenko <gavenkoa@gmail.com>
Sun, 07 Sep 2014 00:18:35 +0300
changeset 9 961eff57a23f
parent 8 395195ae7daf
child 10 70ece7f758a0
Add BoardArr2d.prototype.can* functions. Fix typo.
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--) {