次のコードを見てください
namespace Funny
{
class QuesionsAndAnswers
{
private double firstNumber;
private double secondNumber;
private double userAnswer;
private double computerAnswer;
private string operators;
private bool answerCorrect;
private bool enableDouble;
private double[] listOfNumbers;
private string[] listOfOperators;
private Random randomizer;
private static QuesionsAndAnswers qa;
private QuesionsAndAnswers()
{
randomizer = new Random();
listOfNumbers = new double[] { 1,2,3,4,5,6,7,8,9 };
listOfOperators = new string[] { "+", "-", "*", "/" };
}
public static QuesionsAndAnswers getQuesionsandAnswersInstance()
{
if (qa == null)
qa = new QuesionsAndAnswers();
return qa;
}
public string generateQuestions()
{
string result = "";
operators = listOfOperators[randomizer.Next(listOfOperators.Length)];
firstNumber = listOfNumbers[randomizer.Next(listOfNumbers.Length)];
secondNumber = listOfNumbers[randomizer.Next(listOfNumbers.Length)];
if ((operators.Equals("/")) && (enableDouble == false))
{
while (firstNumber % secondNumber == 0)
{
firstNumber = listOfNumbers[randomizer.Next(listOfNumbers.Length)];
}
result = firstNumber + operators + secondNumber;
}
else if (operators.Equals("-") && (firstNumber<secondNumber))
{
while (firstNumber > secondNumber)
{
firstNumber = listOfNumbers[randomizer.Next(listOfNumbers.Length)];
secondNumber = listOfNumbers[randomizer.Next(listOfNumbers.Length)];
}
result = firstNumber + operators + secondNumber;
}
return result;
}
public void setDoubleAnswers(bool check)
{
enableDouble = check;
}
}
}
ここでは、generateQuestions() メソッドで、いくつかの数学の問題を生成しようとしています。
If operator in "-" and if firstNumber < secondNumber, then 番号 (最初の番号と 2 番目の番号) を再生成して、答えがマイナス値にならないようにする必要があります。
And, if the operator is "/" and the boolean value is false, it should regenerate numbers again to make sure the the answer (which means the calculation, for an example 2/1 = 2) doesn't contain any floating points (which means it should not generate questions like 2/3, because the answer contains floating points).
In my attempt, both above are not happening. It still generates unexpected answers or, sometimes nothing. Why is that? Please help
Please note, I am a Java developer and this is my first major C# project.