protected override DirectionEnum GetDirection(FoodMatrix eatMatrix,
Membrane[,] creatures, Point position, Random random)
{
var points = CommonMethods.GetPoints(position);
var state = new Dictionary<int, int>();
foreach (var point in points)
{
var direction = DirectionEx.DirectionByPointsWithNumber(position, point);
if (CommonMethods.IsValidAndFree(point, creatures))
state.Add(direction, eatMatrix.HasOneBite(point) ? 4 : 3);
if (!CommonMethods.IsValid(point, eatMatrix.Length, eatMatrix.Height))
state.Add(direction, 1);
else
if (!CommonMethods.IsFree(point, creatures))
state.Add(direction, 2);
}
var result = _executor.Execute(CommandsForGetDirection, new MyExecutorToolset(random, state));
return DirectionEx.DirectionByNumber(int.Parse(result));
}