ai.js
changeset 140 438fd8c3c3ca
parent 139 4dde63ac0bb4
child 147 d4f9433e30b9
equal deleted inserted replaced
139:4dde63ac0bb4 140:438fd8c3c3ca
   393         return this.weight(brd);
   393         return this.weight(brd);
   394     var wCached = this.brdCache.get(brd);
   394     var wCached = this.brdCache.get(brd);
   395     if (wCached)
   395     if (wCached)
   396         return wCached;
   396         return wCached;
   397     var wMin = +Infinity;
   397     var wMin = +Infinity;
       
   398     var randBoard = new this.brdEngine();
       
   399     var nextBrd = new this.brdEngine();
   398     for (var i = 0; i < 3; i++) {
   400     for (var i = 0; i < 3; i++) {
   399         for (var j = 0; j < 3; j++) {
   401         for (var j = 0; j < 3; j++) {
   400             if (brd.get(i, j) === 0) {
   402             if (brd.get(i, j) === 0) {
   401                 var randBoard = brd.copy();
   403                 brd.copy(randBoard);
   402                 randBoard.set(i, j, 1);
   404                 randBoard.set(i, j, 1);
   403                 var nextBrd = new this.brdEngine();
       
   404                 var wMax2 = 0;
   405                 var wMax2 = 0;
   405                 for (var diri = 0; diri < ai.dirs.length; diri++) {
   406                 for (var diri = 0; diri < ai.dirs.length; diri++) {
   406                     if (randBoard[ai.dirs[diri]](nextBrd))
   407                     if (randBoard[ai.dirs[diri]](nextBrd))
   407                         wMax2 = Math.max(wMax2, this.evalFn(nextBrd, depth+1));
   408                         wMax2 = Math.max(wMax2, this.evalFn(nextBrd, depth+1));
   408                 }
   409                 }