internal Question.MultiplicationQuestion generateQuestion(MultiplicationConstraints constraint) { int totalNumbers = 0; if (2 == constraint.MaxTotalNumbers) { totalNumbers = 2; } else { totalNumbers = PeanutButter.RandomGenerators.RandomValueGen.GetRandomInt(2, constraint.MaxTotalNumbers); } Question.MultiplicationQuestion q = new Question.MultiplicationQuestion(); int totalNumberGenerated = 0; while (true) { int number = PeanutButter.RandomGenerators.RandomValueGen.GetRandomInt((int)constraint.MinNumber, (int)constraint.MaxNumber); q.Numbers.Add(new Question.SignedNumber() { SortOrder = totalNumberGenerated, Number = number }); totalNumberGenerated++; if (totalNumberGenerated >= totalNumbers) { break; } } return(q); }
bool constraintPasses(MultiplicationConstraints constraint, Logic.Question.IQuestion q) { decimal score = getScore(q); return(score <= constraint.MaxScore || score >= constraint.MinScore); }