private static void GenerateExerciseAdd (out int number1, out char oper, out int number2, out int result, out ValidQuestions validQuestions) { oper = '+'; validQuestions = ValidQuestions.All; number1 = RandomNumber (addMaximum + 1); number2 = RandomNumber (addMaximum + 1 - number1); result = number1 + number2; }
private static void GenerateExerciseDivide (out int number1, out char oper, out int number2, out int result, out ValidQuestions validQuestions) { oper = ':'; validQuestions = ValidQuestions.All; int len = multiplicationTables.Length; int number = RandomNumber (multiplicationMaximum + 1); int table = multiplicationTables [RandomNumber (len)]; int product = number * table; switch (random.Next (2)) { case 0: // product : table = number number1 = product; number2 = table; result = number; break; case 1: // product : number = table number1 = product; number2 = number; result = table; break; default: throw new ApplicationException (); } if (number1 == 0) validQuestions &= ~ValidQuestions.Number2; if (number2 == 0) validQuestions = ValidQuestions.None; }