public override Question Generate(int? seed = null) { Random rnd; if (seed == null) { rnd = new Random(System.DateTime.Now.Millisecond); } else { rnd = new Random(seed.GetValueOrDefault()); } int xAns = rnd.Next(-10, 10); int yAns = rnd.Next(-10, 10); internalOneEquationGenerator q1; internalOneEquationGenerator q2 = new internalOneEquationGenerator(); string qs1; string qs2 = q2.Generate(xAns, yAns, rnd.Next()); do { q1 = new internalOneEquationGenerator(); qs1 = q1.Generate(xAns, yAns, rnd.Next()); } while (EquationLeftTotal(q1, xAns, yAns) == EquationLeftTotal(q2, xAns, yAns)); string qStr = qs1 + Environment.NewLine + qs2 ; List<string> ansList = new List<string>(); ansList.Add("(" + xAns + ", " + yAns + ")"); ansList.Add("(" + (xAns + rnd.Next(-10, 10)) + ", " + (yAns + rnd.Next(-10, 10)) + ")"); ansList.Add("(" + (xAns + rnd.Next(-10, 10)) + ", " + (yAns + rnd.Next(-10, 10)) + ")"); ansList.Add("(" + (xAns + rnd.Next(-10, 10)) + ", " + (yAns + rnd.Next(-10, 10)) + ")"); return new Question(qStr, ansList, ansList[0]); }
private int EquationLeftTotal(internalOneEquationGenerator q,int xAns,int yAns) { int LeftTotal = 0; for (int i = 0; i < q.LeftTerms.Count; i++) { LeftTotal += q.LeftTerms[i].GetValue(xAns, yAns); } return LeftTotal; }