Rename brdEngine to brd.
authorOleksandr Gavenko <gavenkoa@gmail.com>
Thu, 02 Jul 2015 01:06:48 +0300
changeset 160 93c44d730198
parent 159 2709c9ff04f0
child 161 ddc36c6cc097
Rename brdEngine to brd.
ai.js
--- a/ai.js	Sun Jun 07 12:30:26 2015 +0300
+++ b/ai.js	Thu Jul 02 01:06:48 2015 +0300
@@ -56,14 +56,14 @@
 ////////////////////////////////////////////////////////////////
 
 /** Blind random AI.
- * @param {Board} brdEngine  board engine from board.js
+ * @param {Board} brd  board engine from board.js
  * @constructor */
-ai.BlindRandom = function(brdEngine) {
-    this.brdEngine = brdEngine;
+ai.BlindRandom = function(brd) {
+    this.brd = brd;
 }
 /** Select best direction for next step. */
 ai.BlindRandom.prototype.analyse = function(brd2d) {
-    var origBrd = new this.brdEngine(brd2d);
+    var origBrd = new this.brd(brd2d);
     while (true) {
         var rnd = Math.floor(Math.random()*4);
         if (origBrd[ai.canFn[rnd]]())
@@ -89,11 +89,11 @@
  */
 
 /** Blind weight random AI.
- * @param {Board} brdEngine  board engine from board.js
+ * @param {Board} brd  board engine from board.js
  * @param {ai.BlindWeightRandom.cfg} cfg  configuration settings
  * @constructor */
-ai.BlindWeightRandom = function(brdEngine, cfg) {
-    this.brdEngine = brdEngine;
+ai.BlindWeightRandom = function(brd, cfg) {
+    this.brd = brd;
     this.cfg = ai.copyObj(ai.BlindWeightRandom.bestCfg);
     ai.copyObj(cfg, this.cfg);
     var total = this.cfg.left + this.cfg.right + this.cfg.up + this.cfg.down;
@@ -104,7 +104,7 @@
 ai.BlindWeightRandom.bestCfg = { left: 1, right: 16, up: 4, down: 8 };
 /** Select best direction for next step. */
 ai.BlindWeightRandom.prototype.analyse = function(brd2d) {
-    var origBrd = new this.brdEngine(brd2d);
+    var origBrd = new this.brd(brd2d);
     while (true) {
         var rnd = Math.random();
         if (rnd < this.threshold1)
@@ -136,11 +136,11 @@
  */
 
 /** Blind cycle AI.
- * @param {Board} brdEngine  board engine from board.js
+ * @param {Board} brd  board engine from board.js
  * @param {ai.BlindCycle.cfg} cfg  configuration settings
  * @constructor */
-ai.BlindCycle = function(brdEngine, cfg) {
-    this.brdEngine = brdEngine;
+ai.BlindCycle = function(brd, cfg) {
+    this.brd = brd;
     this.cfg = cfg || {};
     this.cfg.whilePossible = this.cfg.whilePossible || false;
     this.cfg.clockwise = this.cfg.clockwise || false;
@@ -155,7 +155,7 @@
 }
 /** Select best direction for next step. */
 ai.BlindCycle.prototype.analyse = function(brd2d) {
-    var origBrd = new this.brdEngine(brd2d);
+    var origBrd = new this.brd(brd2d);
     this.prevDir = this.prevDir || 0;
     if (!this.cfg.whilePossible)
         this.prevDir = this.nextDir(this.prevDir);
@@ -190,11 +190,11 @@
  */
 
 /** 1 step deep with * AI.
- * @param {Board} brdEngine  board engine from board.js
+ * @param {Board} brd  board engine from board.js
  * @param {ai.OneStepAhead.cfg} cfg  configuration settings
  * @constructor */
-ai.OneStepAhead = function(brdEngine, cfg) {
-    this.brdEngine = brdEngine;
+ai.OneStepAhead = function(brd, cfg) {
+    this.brd = brd;
     this.cfg = ai.copyObj(ai.OneStepAhead.bestCfg);
     ai.copyObj(cfg, this.cfg);
 }
@@ -216,8 +216,8 @@
 }
 /** Select best direction for next step. */
 ai.OneStepAhead.prototype.analyse = function(brd2d) {
-    var origBrd = new this.brdEngine(brd2d);
-    var nextBrd = new this.brdEngine();
+    var origBrd = new this.brd(brd2d);
+    var nextBrd = new this.brd();
     var maxWeight = -1;
     var bestDir;
     for (var i = 0; i < ai.dirs.length; i++) {
@@ -253,11 +253,11 @@
  */
 
 /** Deep merges AI without random simulation.
- * @param {Board} brdEngine  board engine from board.js
+ * @param {Board} brd  board engine from board.js
  * @param {Object} cfg  configuration settings
  * @constructor */
-ai.StaticDeepMerges = function(brdEngine, cfg) {
-    this.brdEngine = brdEngine;
+ai.StaticDeepMerges = function(brd, cfg) {
+    this.brd = brd;
     this.cfg = ai.copyObj(ai.OneStepAhead.bestCfg);
     ai.copyObj(cfg, this.cfg);
 }
@@ -279,8 +279,8 @@
 }
 /** Select best direction for next step. */
 ai.StaticDeepMerges.prototype.analyse = function(brd2d) {
-    var origBrd = new this.brdEngine(brd2d);
-    var nextBrd = new this.brdEngine();
+    var origBrd = new this.brd(brd2d);
+    var nextBrd = new this.brd();
     var prevScore = -1, nextScore = -1;
     var maxWeight = -1;
     var bestDir;
@@ -305,7 +305,7 @@
 ai.StaticDeepMerges.prototype.evalFn = function(brd) {
     var currScore = brd.score();
     var maxWeight = currScore;
-    var nextBrd = new this.brdEngine();
+    var nextBrd = new this.brd();
     for (var i = 0; i < ai.dirs.length; i++) {
         if (brd[ai.dirs[i]](nextBrd)) {
             var score = nextBrd.score();
@@ -336,11 +336,11 @@
  */
 
 /** N level deep with random simulation.
- * @param {Board} brdEngine  board engine from board.js
+ * @param {Board} brd  board engine from board.js
  * @param {ai.expectimax.cfg} cfg  configuration settings
  * @constructor */
-ai.expectimax = function(brdEngine, cfg) {
-    this.brdEngine = brdEngine;
+ai.expectimax = function(brd, cfg) {
+    this.brd = brd;
     this.cfg = ai.copyObj(ai.expectimax.bestCfg);
     ai.copyObj(cfg, this.cfg);
     if (this.cfg.balance <= 0)
@@ -374,8 +374,8 @@
 /** Select best direction for next step. */
 ai.expectimax.prototype.analyse = function(brd2d) {
     this.brdCache = new ai.brdCache();
-    var origBrd = new this.brdEngine(brd2d);
-    var nextBrd = new this.brdEngine();
+    var origBrd = new this.brd(brd2d);
+    var nextBrd = new this.brd();
     var maxW = -1;
     var bestDir;
     this.cleanup();
@@ -403,8 +403,8 @@
     if (wCached)
         return wCached;
     var wMin = +Infinity;
-    var randBoard = new this.brdEngine();
-    var nextBrd = new this.brdEngine();
+    var randBoard = new this.brd();
+    var nextBrd = new this.brd();
     for (var i = 0; i < 3; i++) {
         for (var j = 0; j < 3; j++) {
             if (brd.get(i, j) === 0) {
@@ -453,25 +453,25 @@
  */
 
 /** N level deep with random simulation.
- * @param {Board} brdEngine  board engine from board.js
+ * @param {Board} brd  board engine from board.js
  * @param {ai.survive.cfg} cfg  configuration settings
  * @constructor */
-ai.survive = function(brdEngine, cfg) {
-    this.brdEngine = brdEngine;
+ai.survive = function(brd, cfg) {
+    this.brd = brd;
     this.cfg = ai.copyObj(ai.survive.bestCfg);
     ai.copyObj(cfg, this.cfg);
     if (this.cfg.freeCells <= 0)
         this.cfg.freeCells = ai.survive.bestCfg.freeCells;
     if (!this.cfg.maxDepth || this.cfg.maxDepth < 0 || 20 <= this.cfg.maxDepth)
         this.cfg.maxDepth = ai.survive.bestCfg.maxDepth;
-    this.cfg.altAI = new ai.StaticDeepMerges(brdEngine, ai.survive.altAICfg);
+    this.cfg.altAI = new ai.StaticDeepMerges(brd, ai.survive.altAICfg);
 }
 ai.survive.bestCfg = {freeCells: 8, maxDepth: 5};
 ai.survive.altAICfg = {scoreCoef: 1, maxValCoef: 0, cornerBonus: 0, edgeBonus: 0, freeBonus: 0, weightThreshold: 0};
 /** Select best direction for next step. */
 ai.survive.prototype.analyse = function(brd2d) {
-    var origBrd = new this.brdEngine(brd2d);
-    var nextBrd = new this.brdEngine();
+    var origBrd = new this.brd(brd2d);
+    var nextBrd = new this.brd();
     var bestW = -2;
     var bestDir;
     var freeCnt = origBrd.freeCnt();
@@ -495,8 +495,8 @@
     if (depth >= this.cfg.maxDepth)
         return 0;
     var wMin = +Infinity;
-    var randBoard = new this.brdEngine();
-    var nextBrd = new this.brdEngine();
+    var randBoard = new this.brd();
+    var nextBrd = new this.brd();
 exit:
     for (var i = 0; i < 3; i++) {
         for (var j = 0; j < 3; j++) {