--- a/board.js Thu Sep 25 01:10:01 2014 +0300
+++ b/board.js Thu Sep 25 02:05:48 2014 +0300
@@ -119,6 +119,26 @@
}
/** Compare boards. */
BoardArr2d.prototype.equals = BoardArr2d.prototype.equals_unrolled;
+BoardArr2d.prototype.compress = function() {
+ var brd = this.brd;
+ var h1 = brd[0][0];
+ h1 = (h1 << 4) | brd[0][1];
+ h1 = (h1 << 4) | brd[0][2];
+ h1 = (h1 << 4) | brd[0][3];
+ h1 = (h1 << 4) | brd[1][0];
+ h1 = (h1 << 4) | brd[1][1];
+ h1 = (h1 << 4) | brd[1][2];
+ h1 = (h1 << 4) | brd[1][3];
+ var h2 = brd[2][0];
+ h2 = (h2 << 4) | brd[2][1];
+ h2 = (h2 << 4) | brd[2][2];
+ h2 = (h2 << 4) | brd[2][3];
+ h2 = (h2 << 4) | brd[3][0];
+ h2 = (h2 << 4) | brd[3][1];
+ h2 = (h2 << 4) | brd[3][2];
+ h2 = (h2 << 4) | brd[3][3];
+ return [h1, h2];
+}
/* Return and optionally fill 2d board. */
BoardArr2d.prototype.exportTo = function(brd) {
@@ -812,6 +832,26 @@
&& self.db == brd.db && self.dc == brd.dc
&& self.bb == brd.bb && self.bc == brd.bc && self.cb == brd.cb && self.cc == brd.cc;
};
+BoardObj.prototype.compress = function() {
+ var brd = this.brd;
+ var h1 = brd.aa;
+ h1 = (h1 << 4) | brd.ab;
+ h1 = (h1 << 4) | brd.ac;
+ h1 = (h1 << 4) | brd.ad;
+ h1 = (h1 << 4) | brd.ba;
+ h1 = (h1 << 4) | brd.bb;
+ h1 = (h1 << 4) | brd.bc;
+ h1 = (h1 << 4) | brd.bd;
+ var h2 = brd.ca;
+ h2 = (h2 << 4) | brd.cb;
+ h2 = (h2 << 4) | brd.cc;
+ h2 = (h2 << 4) | brd.cd;
+ h2 = (h2 << 4) | brd.da;
+ h2 = (h2 << 4) | brd.db;
+ h2 = (h2 << 4) | brd.dc;
+ h2 = (h2 << 4) | brd.dd;
+ return [h1, h2];
+}
BoardObj.prototype.copy = function(brd) {
var self = this.brd;
if ( ! brd) {