// Cloned by Joe Ninety on 4 Nov 2021 from Mind "Complex Mind (clone by Nuno Correia) (clone by Nuno Correia) (clone by Joe Ninety) (clone by Joe Ninety) (clone by Joe Ninety) (clone by Joe Ninety)" by Joe Ninety
// Please leave this clone trail here.
// Cloned by Joe Ninety on 4 Nov 2021 from Mind "Complex Mind (clone by Nuno Correia) (clone by Nuno Correia) (clone by Joe Ninety) (clone by Joe Ninety) (clone by Joe Ninety)" by Joe Ninety
// Please leave this clone trail here.
// Cloned by Joe Ninety on 4 Nov 2021 from Mind "Complex Mind (clone by Nuno Correia) (clone by Nuno Correia) (clone by Joe Ninety) (clone by Joe Ninety)" by Joe Ninety
// Please leave this clone trail here.
// Cloned by Joe Ninety on 4 Nov 2021 from Mind "Complex Mind (clone by Nuno Correia) (clone by Nuno Correia) (clone by Joe Ninety)" by Joe Ninety
// Please leave this clone trail here.
// Cloned by Joe Ninety on 4 Nov 2021 from Mind "Complex Mind (clone by Nuno Correia) (clone by Nuno Correia)" by Nuno Correia
// Please leave this clone trail here.
// Cloned by Nuno Correia on 4 Nov 2021 from Mind "Complex Mind (clone by Nuno Correia)" by Nuno Correia
// Please leave this clone trail here.
// Cloned by Nuno Correia on 4 Nov 2021 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 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) );
};