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 } |