board.js
changeset 20 ab294e8db00c
parent 14 9b49e710f5a7
child 22 b041338d7e88
equal deleted inserted replaced
19:94a4201d27a3 20:ab294e8db00c
    79     for (var i = 0; i < 4; i++)
    79     for (var i = 0; i < 4; i++)
    80         for (var j = 0; j < 4; j++)
    80         for (var j = 0; j < 4; j++)
    81             brd.brd[i][j] = this.brd[i][j];
    81             brd.brd[i][j] = this.brd[i][j];
    82     return brd;
    82     return brd;
    83 }
    83 }
       
    84 BoardArr2d.prototype.free = function() {
       
    85     var cnt = 0;
       
    86     for (var i = 0; i < 4; i++)
       
    87         for (var j = 0; j < 4; j++)
       
    88             if (this.brd[i][j] === 0)
       
    89                 cnt++;
       
    90     return cnt;
       
    91 }
    84 BoardArr2d.prototype.score = function() {
    92 BoardArr2d.prototype.score = function() {
    85     var score = 0;
    93     var score = 0;
    86     for (var i = 0; i < 4; i++) {
    94     for (var i = 0; i < 4; i++) {
    87         for (var j = 0; j < 4; j++) {
    95         for (var j = 0; j < 4; j++) {
    88             var v = this.brd[i][j];
    96             var v = this.brd[i][j];
    98         for (var j = 0; j < 4; j++) {
   106         for (var j = 0; j < 4; j++) {
    99             max = Math.max(max, this.brd[i][j]);
   107             max = Math.max(max, this.brd[i][j]);
   100         }
   108         }
   101     }
   109     }
   102     return max;
   110     return max;
       
   111 }
       
   112 BoardArr2d.prototype.find = function(val) {
       
   113     var xy = [];
       
   114     for (var i = 0; i < 4; i++) {
       
   115         for (var j = 0; j < 4; j++) {
       
   116             if (this.brd[i][j] === val)
       
   117             xy.push([i,j]);
       
   118         }
       
   119     }
       
   120     return xy;
       
   121 }
       
   122 BoardArr2d.prototype.atEdge = function(val) {
       
   123     var brd = this.brd;
       
   124     return (brd[0][0] === val) || (brd[0][1] === val) || (brd[0][2] === val) || (brd[0][3] === val)
       
   125         || (brd[1][0] === val) || (brd[1][3] === val)
       
   126         || (brd[2][0] === val) || (brd[2][3] === val)
       
   127         || (brd[3][0] === val) || (brd[3][1] === val) || (brd[3][2] === val) || (brd[3][3] === val);
       
   128 }
       
   129 BoardArr2d.prototype.atCorner = function(val) {
       
   130     var brd = this.brd;
       
   131     return (brd[0][0] === val) || (brd[0][3] === val) || (brd[3][0] === val) || (brd[3][3] === val);
   103 }
   132 }
   104 
   133 
   105 BoardArr2d.prototype.canRight = function() {
   134 BoardArr2d.prototype.canRight = function() {
   106     for (var i = 0; i < 4; i++) {
   135     for (var i = 0; i < 4; i++) {
   107         var f0 = this.brd[i][0], f1 = this.brd[i][1], f2 = this.brd[i][2], f3 = this.brd[i][3];
   136         var f0 = this.brd[i][0], f1 = this.brd[i][1], f2 = this.brd[i][2], f3 = this.brd[i][3];