470 ai.survive.altAICfg = {scoreCoef: 1, maxValCoef: 0, cornerBonus: 0, edgeBonus: 0, freeBonus: 0, weightThreshold: 0}; |
470 ai.survive.altAICfg = {scoreCoef: 1, maxValCoef: 0, cornerBonus: 0, edgeBonus: 0, freeBonus: 0, weightThreshold: 0}; |
471 /** Select best direction for next step. */ |
471 /** Select best direction for next step. */ |
472 ai.survive.prototype.analyse = function(brd2d) { |
472 ai.survive.prototype.analyse = function(brd2d) { |
473 var origBrd = new this.brdEngine(brd2d); |
473 var origBrd = new this.brdEngine(brd2d); |
474 var nextBrd = new this.brdEngine(); |
474 var nextBrd = new this.brdEngine(); |
475 var bestW = -1; |
475 var bestW = -2; |
476 var bestDir; |
476 var bestDir; |
477 var freeCnt = origBrd.freeCnt(); |
477 var freeCnt = origBrd.freeCnt(); |
478 if (freeCnt >= this.cfg.freeCells) |
478 if (freeCnt >= this.cfg.freeCells) |
479 return this.cfg.altAI.analyse(brd2d); |
479 return this.cfg.altAI.analyse(brd2d); |
480 for (var i = 0; i < ai.dirs.length; i++) { |
480 for (var i = 0; i < ai.dirs.length; i++) { |
481 var dir = ai.dirs[i]; |
481 var dir = ai.dirs[i]; |
482 if (origBrd[dir](nextBrd)) { |
482 if (origBrd[dir](nextBrd)) { |
483 var w = this.evalFn(nextBrd, 1); |
483 var w = this.evalFn(nextBrd, 1); |
484 console.log("dir: %s, w: %d", dir, w); |
|
485 if (w > bestW) { |
484 if (w > bestW) { |
486 bestW = w; |
485 bestW = w; |
487 bestDir = dir; |
486 bestDir = dir; |
488 } |
487 } |
489 } |
488 } |