private static double Calculate(int number1 = 0, Enums.MathOperation operation = Enums.MathOperation.Addition, int number2 = 0) { double result = 0; if (operation == Enums.MathOperation.Addition) { result = number1 + number2; } if (operation == Enums.MathOperation.Substraction) { result = number1 - number2; } if (operation == Enums.MathOperation.Multiplication) { result = number1 * number2; } if (operation == Enums.MathOperation.Division) { result = number1 / number2; } return(result); }
/// <summary> /// GenerateNumber /// </summary> /// <param name="level"></param> /// <param name="operation"></param> /// <returns></returns> public static Number Generate_2NumbersOperationResult(Enums.Level level, Enums.MathOperation operation) { int randomNumber1 = 0; int randomNumber2 = 0; string strRandomNumber1 = ""; string strRandomNumber2 = ""; // + - * / Enums.MathOperation randomOperation = GetRandomOperation(1, 4); operation = Settings.paramMathOperation; if (operation == Enums.MathOperation.Random) { operation = randomOperation; } if (level == Enums.Level.Level1) { //int randomNumber1 = GetRandomValueLength(level); //int randomNumber2 = GetRandomValueLength(level); randomNumber1 = GetRandomValue(0, 10); Thread.Sleep(10); randomNumber2 = GetRandomValue(0, 10); } else if (level == Enums.Level.Level2) { randomNumber1 = GetRandomValue(0, 100); Thread.Sleep(10); randomNumber2 = GetRandomValue(0, 100); } else if (level == Enums.Level.Level3) { randomNumber1 = GetRandomValue(0, 1000); Thread.Sleep(10); randomNumber2 = GetRandomValue(0, 1000); } else if (level == Enums.Level.Level4) { randomNumber1 = GetRandomValue(0, 10000); Thread.Sleep(10); randomNumber2 = GetRandomValue(0, 100); } else if (level == Enums.Level.Level5) { randomNumber1 = GetRandomValue(0, 1000000); Thread.Sleep(10); randomNumber2 = GetRandomValue(0, 1000000); } else if (level == Enums.Level.Level6) { randomNumber1 = GetRandomValue(0, 10000); Thread.Sleep(10); randomNumber2 = GetRandomValue(0, 100); strRandomNumber2 = string.Format("Math.{0}({1})", GetRandomMathFunctionWith1Parameter().ToString(), randomNumber2); } else if (level == Enums.Level.Level7) { randomNumber1 = GetRandomValue(0, 10000); Thread.Sleep(10); randomNumber2 = GetRandomValue(0, 100); int randomNumber3 = GetRandomValueLength(3); strRandomNumber2 = string.Format("Math.{0}({1} , {2})", GetRandomMathFunctionWith1Parameter().ToString(), randomNumber2, randomNumber3); } if (strRandomNumber1 == "") { strRandomNumber1 = randomNumber1.ToString(); } if (strRandomNumber2 == "") { strRandomNumber2 = randomNumber2.ToString(); } // Never DIVIDE BY 0 if ((randomNumber2 == 0) && (operation == Enums.MathOperation.Division)) { randomNumber2 = 1; } Number number = new Number(); number = FillNumber(level, randomNumber1, operation, randomNumber2, strRandomNumber1, strRandomNumber2); return(number); }
private static Number FillNumber(Enums.Level level, int randomNumber1, Enums.MathOperation operation, int randomNumber2, string strRandomNumber1, string strRandomNumber2)//, double result) { //double result = Calculate(randomNumber1, operation, randomNumber2); // CALCULATE string formula = string.Format("{0} {1} {2}", strRandomNumber1, ConvertEnums.ConvertMathOperation(operation), strRandomNumber2); double result = CalculateMathFormula(formula); //.Replace(" ","")); //if (result.Equals(double.NaN)) // result = 0.00; Number number = new Number(); if (result.Equals(double.NaN)) { string strError = "ERROR"; number.ID = 0; number.Number_1 = randomNumber1; number.Number_1_French = strError; number.Number_1_English = strError; number.Number_1_Italian = strError; number.Number_1_Spanish = strError; number.Number_1_Portuguese = strError; number.Number_1_German = strError; number.Number_operation = operation; number.Number_2 = randomNumber2; number.Number_2_French = strError; number.Number_2_English = strError; number.Number_2_Italian = strError; number.Number_2_Spanish = strError; number.Number_2_Portuguese = strError; number.Number_2_German = strError; number.Number_result = result; number.Number_result_French = strError; number.Number_result_English = strError; number.Number_result_Italian = strError; number.Number_result_Spanish = strError; number.Number_result_Portuguese = strError; number.Number_result_German = strError; number.Number_equation_LessOrGreaterOrEqual = (strRandomNumber1 + " ? " + strRandomNumber2); number.Number_result_LessOrGreaterOrEqual = strError; number.Number_equation = string.Format("{0} {1} {2} = ?", strRandomNumber1, ConvertEnums.ConvertMathOperation(operation), strRandomNumber2); number.Number_equation_French = string.Format("{0} {1} {2} = ?", number.Number_1_French, ConvertEnums.ConvertMathOperation_French(operation), number.Number_2_French); number.Number_equation_English = string.Format("{0} {1} {2} = ?", number.Number_1_English, ConvertEnums.ConvertMathOperation_English(operation), number.Number_2_English); number.Number_equation_Italian = string.Format("{0} {1} {2} = ?", number.Number_1_Italian, ConvertEnums.ConvertMathOperation_Italian(operation), number.Number_2_Italian); number.Number_equation_Spanish = string.Format("{0} {1} {2} = ?", number.Number_1_Spanish, ConvertEnums.ConvertMathOperation_Spanish(operation), number.Number_2_Spanish); number.Number_equation_Portuguese = string.Format("{0} {1} {2} = ?", number.Number_1_Portuguese, ConvertEnums.ConvertMathOperation_Portuguese(operation), number.Number_2_Portuguese); number.Number_equation_German = string.Format("{0} {1} {2} = ?", number.Number_1_German, ConvertEnums.ConvertMathOperation_German(operation), number.Number_2_German); } else { number.ID = 0; number.Number_1 = randomNumber1; number.Number_1_French = NumberToWord.NumberToWords_French(randomNumber1); number.Number_1_English = NumberToWord.NumberToWords_English(randomNumber1); number.Number_1_Italian = NumberToWord.NumberToWords_Italian(randomNumber1); number.Number_1_Spanish = NumberToWord.NumberToWords_Spanish(randomNumber1); number.Number_1_Portuguese = NumberToWord.NumberToWords_Portuguese(randomNumber1); number.Number_1_German = NumberToWord.NumberToWords_German(randomNumber1); number.Number_operation = operation; number.Number_2 = randomNumber2; number.Number_2_French = NumberToWord.NumberToWords_French(randomNumber2); number.Number_2_English = NumberToWord.NumberToWords_English(randomNumber2); number.Number_2_Italian = NumberToWord.NumberToWords_Italian(randomNumber2); number.Number_2_Spanish = NumberToWord.NumberToWords_Spanish(randomNumber2); number.Number_2_Portuguese = NumberToWord.NumberToWords_Portuguese(randomNumber2); number.Number_2_German = NumberToWord.NumberToWords_German(randomNumber2); number.Number_result = result; number.Number_result_French = NumberToWord.NumberToWords_French(result); number.Number_result_English = NumberToWord.NumberToWords_English((int)result); number.Number_result_Italian = NumberToWord.NumberToWords_Italian(result); number.Number_result_Spanish = NumberToWord.NumberToWords_Spanish(result); number.Number_result_Portuguese = NumberToWord.NumberToWords_Portuguese(result); number.Number_result_German = NumberToWord.NumberToWords_German(result); number.Number_equation_LessOrGreaterOrEqual = (strRandomNumber1 + " ? " + strRandomNumber2); string strResultGreaterOrLessThan = ""; if (number.Number_1 > number.Number_2) { strResultGreaterOrLessThan = ">"; } else if (number.Number_1 < number.Number_2) { strResultGreaterOrLessThan = "<"; } else if (number.Number_1 == number.Number_2) { strResultGreaterOrLessThan = "="; } number.Number_result_LessOrGreaterOrEqual = strResultGreaterOrLessThan; number.Number_equation = string.Format("{0} {1} {2} = ?", strRandomNumber1, ConvertEnums.ConvertMathOperation(operation), strRandomNumber2); number.Number_equation_French = string.Format("{0} {1} {2} = ?", number.Number_1_French, ConvertEnums.ConvertMathOperation_French(operation), number.Number_2_French); number.Number_equation_English = string.Format("{0} {1} {2} = ?", number.Number_1_English, ConvertEnums.ConvertMathOperation_English(operation), number.Number_2_English); number.Number_equation_Italian = string.Format("{0} {1} {2} = ?", number.Number_1_Italian, ConvertEnums.ConvertMathOperation_Italian(operation), number.Number_2_Italian); number.Number_equation_Spanish = string.Format("{0} {1} {2} = ?", number.Number_1_Spanish, ConvertEnums.ConvertMathOperation_Spanish(operation), number.Number_2_Spanish); number.Number_equation_Portuguese = string.Format("{0} {1} {2} = ?", number.Number_1_Portuguese, ConvertEnums.ConvertMathOperation_Portuguese(operation), number.Number_2_Portuguese); number.Number_equation_German = string.Format("{0} {1} {2} = ?", number.Number_1_German, ConvertEnums.ConvertMathOperation_German(operation), number.Number_2_German); } return(number); }