// INTERNALS

        private PongANNOutput Internal_RunANN(PongANNInput i_Input)
        {
            float[] inputs = new float[1];
            inputs = applyLogic(i_Input);

            float[]       outputs = m_ANN.Run(inputs);
            PongANNOutput output  = new PongANNOutput();

            output.y_competitor = outputs[0];

            return(output);
        }
        private PongANNOutput Internal_TrainANN(PongANNInput i_Input, PongANNOutput i_DesiredOutput)
        {
            float[] inputs = new float[1];
            inputs = applyLogic(i_Input);

            float[] desiredOutputs = new float[1];
            desiredOutputs[0] = i_DesiredOutput.y_competitor;

            float[] outputs = m_ANN.Run(inputs);
            ANNFunctionLibrary.AdjustWeights(m_ANN, desiredOutputs);

            PongANNOutput output = new PongANNOutput();

            output.y_competitor = outputs[0];
            return(output);
        }