Code viewer for Mind: Complex Mind (clone by AMA...

// Cloned by AMARA on 29 Nov 2020 from Mind "Complex Mind (clone by AMARA) (clone by AMARA)" by AMARA 
// Please leave this clone trail here.
 


// Cloned by AMARA on 27 Nov 2020 from Mind "Complex Mind (clone by AMARA)" by AMARA 
// Please leave this clone trail here.
 


// Cloned by AMARA on 27 Nov 2020 from Mind "Complex Mind" by Starter user 
// Please leave this clone trail here.
 



// =================================================================================================
// Sample Mind for more complex starter World  
// =================================================================================================

// World tells us agent position and enemy position
// World does not tell us of existence of walls
// if return invalid move (not empty square) World just ignores it and we miss a turn 


 

	AB.mind.getAction = function ( x )		// x is an array of [ ai, aj, ei, ej ]
	{  var use_default_brain = true;
	    if(use_default_brain){
		var ai = x[0];
		var aj = x[1];
		var ei = x[2];
		var ej = x[3];

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

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

		 if ( ei < ai ) 	return ( AB.randomPick ( ACTION_RIGHT,	AB.randomPick(ACTION_UP,ACTION_DOWN) 		)); 
		 if ( ei > ai ) 	return ( AB.randomPick ( ACTION_LEFT,	AB.randomPick(ACTION_UP,ACTION_DOWN) 		)); 
 		return  ( AB.randomIntAtoB (0,3) );
 		
	    }
	    
	    else
	    {
	        for(var i=0; i < gridsize; i++)
	        {
	            for(var j=0; j < gridsize; j++ )
	            {
	                if(!grid[i-1][j+1].wall && !grid[i-2][j].wall && !grid[i-1][j-1].wall && ei > ai)
	                {
	                    return ACTION_LEFT;
	                }   
	               
	                if(!grid[i-1][j-1].wall && !grid[i][j-2].wall && !grid[i+1][j-1].wall && ej > aj)
	               {
	                   return ACTION_UP;
	               }
	                        
	               if(grid[i+1][j-1].wall && grid[i+1][j+1].wall && grid[i+2][j].wall && ei < ai)
	               {
	                    return ACTION_RIGHT;             
	               }
	                   
	               return ACTION_DOWN;
	                
	            }
	        }
	        
	    }
	};