private void SelectNewDirectionToMove()
    {
        GetPossibleDirections();

        if (_monsterDirection.NewDirectionIsObvious())
        {
            return;
        }

        _monsterDirection.GenerateDirectionPossibilities();


        if (IsPlayerAtTheSide())
        {
            var playerSide      = FindThePlayerSide();
            var playerDirection = TransformVectorToDirection(playerSide);
            _monsterDirection.UpdateTheDirectionPossibilities(playerDirection);
        }

        _monsterDirection.SetRandomTargetPosition();
    }