// Start is called before the first frame update
    void Start()
    {
        rand = new System.Random();
        DifficultySetting  = DificultyEnum.Low;
        XAxisValue         = -0.41f;
        EquationBlocks     = new List <GameObject>();
        SphereForward      = RightHandSphere.transform.TransformDirection(Vector3.forward);
        touchDistance      = 0.005f;
        IsQuestionEmpty    = true;
        AntiBlockTextValue = AntiText.GetComponent <TextMeshProUGUI>();
        TimeValue          = GameObject.Find("TimeValue");
        TimeValuePro       = TimeValue.GetComponent <TextMeshProUGUI>();
        BlocksMadeValue    = GameObject.Find("AntValue");
        BlocksMadeValuePro = BlocksMadeValue.GetComponent <TextMeshProUGUI>();
        MistakesValue      = GameObject.Find("MistakesValue");
        MistakesValuePro   = MistakesValue.GetComponent <TextMeshProUGUI>();
        CorrectValue       = GameObject.Find("CorrectValue");
        CorrectValuePro    = CorrectValue.GetComponent <TextMeshProUGUI>();

        //RandomProblem(DifficultySetting);
    }
    private void RandomProblem(DificultyEnum dificulty)
    {
        float xaxit                  = 0;
        int   mathsymbolcap          = 0;
        int   maxcoefficientcap      = 0;
        int   maxsolveforvariablecap = 0;

        if (dificulty == DificultyEnum.Low)
        {
            mathsymbolcap          = 2;
            maxcoefficientcap      = 9;
            maxsolveforvariablecap = 3;
            // Create the first block which will be just a variable x,y,z

            //Set the first block as a symbol according to enum
            SolveForVariables sfv = new SolveForVariables();
            MathSymbolVarEnum sym = new MathSymbolVarEnum();
            EndOfEquation     end = new EndOfEquation();
            GenerateBlock(sfv, maxsolveforvariablecap, 0, 0.0f, EquationBlockPrefab, EquationContainer);
            //Create a second block and have a math symbol like + or -
            GenerateBlock(sym, mathsymbolcap, 0, 0.11f, EquationBlockPrefab, EquationContainer);
            //Create constant on its own
            GenerateBlock(null, mathsymbolcap, 0, 0.11f, EquationBlockPrefab, EquationContainer);
            //add equal sign for end of equation
            GenerateBlock(end, 1, 0, 0.18f, EquationBlockPrefab, EquationContainer);
            GenerateBlock(null, mathsymbolcap, 0, 0.18f, EquationBlockPrefab, EquationContainer);
            UpdateGoalText(SolveForBoard);
            EquationBlocks[EquationBlocks.Count - 1].GetComponent <EQCscript>().isSolutionBlock = true;
        }
        else if (dificulty == DificultyEnum.Medium)
        {
        }
        else if (dificulty == DificultyEnum.Hard)
        {
        }
        else
        {
            Debug.Log("Difficulty not set");
        }
    }