/* Public interface methods */ public QuizGame(ProblemWritter problemWritter) { this.Rand = new Random(); this.IsStarted = false; this.ProblemWritter = problemWritter; this.QuestionTypeList = GetQuestionKindList(problemWritter); // Abstract Implementation }
public static List<IQuestion> getListOfAllKinds(ProblemWritter pw) { var kinds = new List<IQuestion>(); kinds.Add(new Summation(pw)); kinds.Add(new Substraction(pw)); kinds.Add(new DoubleMult(pw)); kinds.Add(new Multiplication(pw)); return kinds; }
/* Public interface methods */ public MathQuizGame(ProblemWritter pw) : base(pw) { SetDefaultParameterValues(); InitializeTimer(); // Assigning behavior through events; this.AnsweredCorrectly += IncreaseScore; this.AnsweredCorrectly += AddTime; this.AnsweredWrong += DecreaseScore; }
protected abstract List<IQuestion> GetQuestionKindList(ProblemWritter pw);
public Summation(ProblemWritter problemWritter) : base(problemWritter) { }
public Substraction(ProblemWritter problemWritter) : base(problemWritter) { }
public Multiplication(ProblemWritter problemWritter) : base(problemWritter) { }
public DoubleMult(ProblemWritter problemWritter) : base(problemWritter) { }
/* Abstract method implementation */ protected override List<IQuestion> GetQuestionKindList(ProblemWritter pw) { return MathProblemFactory.getListOfAllKinds(pw); }
public MathProblem(ProblemWritter problemWritter) { this.ProblemWritter = problemWritter; Rand = new Random(); }