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;
 }