2048.html
changeset 3 96a50cb300cc
parent 2 11da0a8fabf3
child 4 732aef931a9e
equal deleted inserted replaced
2:11da0a8fabf3 3:96a50cb300cc
   140           cnt--;
   140           cnt--;
   141         }
   141         }
   142       }
   142       }
   143     }
   143     }
   144     /* http://www.reddit.com/r/2048/comments/214njx/highest_possible_score_for_2048_warning_math */
   144     /* http://www.reddit.com/r/2048/comments/214njx/highest_possible_score_for_2048_warning_math */
   145     board.scoreTbl = {"0": 0};
   145     var boardScoreTbl = {"0": 0};
   146     for (var i = 1, exp = 2; i < 16; i++, exp *= 2) {
   146     for (var i = 1, exp = 2; i < 16; i++, exp *= 2) {
   147       board.scoreTbl[exp] = (i-1)*exp;
   147       boardScoreTbl[exp] = (i-1)*exp;
   148     }
   148     }
   149     board.score = function(brd) {
   149     board.score = function(brd) {
   150       var score = 0;
   150       var score = 0;
   151       var max = 0;
   151       var max = 0;
   152       for (var i = 0; i < 4; i++) {
   152       for (var i = 0; i < 4; i++) {
   153         for (var j = 0; j < 4; j++) {
   153         for (var j = 0; j < 4; j++) {
   154           var val = brd[i][j];
   154           var val = brd[i][j];
   155           if (val > 2)
   155           score += boardScoreTbl[val];
   156             score += Math.log2(val) * val;
       
   157           /* score += board.scoreTbl[val]; */
       
   158           if (max < val)
   156           if (max < val)
   159             max = val;
   157             max = val;
   160         }
   158         }
   161       }
   159       }
   162       return {score: score, max: max};
   160       return {score: score, max: max};