/// <summary> /// Calculate the result of an expression /// </summary> /// <param name="operation"></param> /// <param name="number1"></param> /// <param name="number2"></param> /// <param name="matchResult">True: Result will be exact, False: Result can be differente of the real result</param> /// <returns></returns> public float GetResult(OperationsEnum operation, int number1, int number2, bool matchResult) { switch (operation) { case OperationsEnum.Addition: return(matchResult == true ? number1 + number2 : Randomize.GenerateRandomNumber() + Randomize.GenerateRandomNumber()); case OperationsEnum.Subtraction: return(matchResult == true ? number1 - number2 : Randomize.GenerateRandomNumber() - Randomize.GenerateRandomNumber()); case OperationsEnum.Multiplication: return(matchResult == true ? number1 * number2 : Randomize.GenerateRandomNumber() *Randomize.GenerateRandomNumber()); case OperationsEnum.Division: return(matchResult == true ? number1 / number2 : Randomize.GenerateRandomNumber() / Randomize.GenerateRandomNumber()); } return(0f); }
/// <summary> /// Create new math challenge /// </summary> /// <returns>Return a new math challenge</returns> public MathProblem CreateProblem() { this.number1 = Randomize.GenerateRandomNumber(); this.number2 = Randomize.GenerateRandomNumber(); this.operation = Randomize.GenerateRandomOperation(); this.expression = $"{number1} {GetSymbol(this.operation)} {number2}"; this.result = GetResult(this.operation, this.number1, this.number2, true); this.possibleResult = GetResult(this.operation, this.number1, this.number2, Randomize.GenerateRandomBoolean()); this.isAnswered = false; this.playersInMatch = _IScore.GetScore().Select(x => x.playerName).ToList(); return(this); }