Code viewer for Mind: CA686i - Practical 1 A* (C...
// Cloned by Tristan Everitt on 19 Oct 2022 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 ]
{
    let ai = x[0];
    let aj = x[1];
    let ei = x[2];
    let 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));
};