/// <summary>
    /// Reads in normalized distances of the rays.
    /// Each distance is reversed and normalized.
    /// </summary>
    void UpdateInputs()
    {
        float lenght = ConstHolder.UNIT_LINE_OF_SIGHT;

        _distances[(int)Raycast.Direction.Left]            = Normalise(_raycast.GetDistance(Raycast.Direction.Left), lenght);
        _distances[(int)Raycast.Direction.FrontFrontLeft]  = Normalise(_raycast.GetDistance(Raycast.Direction.FrontFrontRight), lenght);
        _distances[(int)Raycast.Direction.FrontLeft]       = Normalise(_raycast.GetDistance(Raycast.Direction.FrontLeft), lenght);
        _distances[(int)Raycast.Direction.Front]           = Normalise(_raycast.GetDistance(Raycast.Direction.Front), lenght);
        _distances[(int)Raycast.Direction.FrontRight]      = Normalise(_raycast.GetDistance(Raycast.Direction.FrontRight), lenght);
        _distances[(int)Raycast.Direction.FrontFrontRight] = Normalise(_raycast.GetDistance(Raycast.Direction.FrontFrontRight), lenght);
        _distances[(int)Raycast.Direction.Right]           = Normalise(_raycast.GetDistance(Raycast.Direction.Right), lenght);
    }
    /// <summary>
    /// Updates inputs for the network from the sensors.
    /// </summary>
    void UpdateInputs()
    {
        List <float> inputs = new List <float>(_neuralNetwork.inputs.Count);

        float lenght = ConstHolder.UNIT_LINE_OF_SIGHT;

        inputs.Add(Normalise(_raycast.GetDistance(Raycast.Direction.Left), lenght));
        inputs.Add(Normalise(_raycast.GetDistance(Raycast.Direction.FrontFrontLeft), lenght));
        inputs.Add(Normalise(_raycast.GetDistance(Raycast.Direction.FrontLeft), lenght));
        inputs.Add(Normalise(_raycast.GetDistance(Raycast.Direction.Front), lenght));
        inputs.Add(Normalise(_raycast.GetDistance(Raycast.Direction.FrontRight), lenght));
        inputs.Add(Normalise(_raycast.GetDistance(Raycast.Direction.FrontFrontRight), lenght));
        inputs.Add(Normalise(_raycast.GetDistance(Raycast.Direction.Right), lenght));

        _neuralNetwork.inputs = inputs;
        _neuralNetwork.Evaluate();
    }