Add BoardArr2d.prototype.can* functions. Fix typo.
--- 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--) {