Code viewer for Mind: Dungeon Complex Mind

//Clone of ComplexMind for dungeon world
//mind has visibility of entire grid through getGrid function
//mind avoids (ei,ej)
//mind can see the goal (gi, gj), but doesn't path towards it
 
function randomPick ( a, b )
{
 if ( randomBoolean() ) 
  return a;
 else
  return b;
}

function Mind() { 


//--- public functions / interface / API ----------------------------------------------------------
    
	this.newRun = function()
	{
	};

	this.endRun = function()
	{
	};



	this.getAction = function ( x )		// x is an array of [ ai, aj, ei, ej, getGrid()->[GRID_BLANK, GRID_WALL, GRID_MAZE, GRID_GOAL, GRID] ]
	{ 
		var ai = x[0];
		var aj = x[1];
		var ei = x[2];
		var ej = x[3];
		var gi = x[4];
		var gj = x[5];
		var gridInfo = x[6]()
		var GRID_BLANK = gridInfo[0]
		var GRID_WALL = gridInfo[1];
		var GRID_MAZE = gridInfo[2]
		var GRID_GOAL = gridInfo[3]
		var GRID = gridInfo[4]

		// if strictly move away, will get stuck at wall, so introduce randomness 

		 if ( ej < aj ) 	return ( randomPick ( ACTION_UP,	randomPick(ACTION_RIGHT,ACTION_LEFT) 	)); 
		 if ( ej > aj ) 	return ( randomPick ( ACTION_DOWN,	randomPick(ACTION_RIGHT,ACTION_LEFT) 	)); 

		 if ( ei < ai ) 	return ( randomPick ( ACTION_RIGHT,	randomPick(ACTION_UP,ACTION_DOWN) 		)); 
		 if ( ei > ai ) 	return ( randomPick ( ACTION_LEFT,	randomPick(ACTION_UP,ACTION_DOWN) 		)); 

 		return  ( randomintAtoB (0,3) );
	};



}