diff --git a/lib/pages/practice/PracticeGenerator.dart b/lib/pages/practice/PracticeGenerator.dart new file mode 100644 index 0000000..75ccd51 --- /dev/null +++ b/lib/pages/practice/PracticeGenerator.dart @@ -0,0 +1,5 @@ +abstract class PracticeGenerator { + bool check(int other); + void next(); + String toString(); +} \ No newline at end of file diff --git a/lib/pages/practice/month/MonthPracticeGenerator.dart b/lib/pages/practice/month/MonthPracticeGenerator.dart new file mode 100644 index 0000000..22298c2 --- /dev/null +++ b/lib/pages/practice/month/MonthPracticeGenerator.dart @@ -0,0 +1,24 @@ +import 'dart:math'; + +import 'package:ohthatsa/pages/practice/PracticeGenerator.dart'; +import 'package:ohthatsa/util/Months.dart'; +import 'package:ohthatsa/util/Extensions.dart'; + +class MonthPracticeGenerator extends PracticeGenerator { + final random = Random(); + Month current; + MonthPracticeGenerator(){ + next(); + } + bool check(int value){ + return current.value == value; + } + + void next(){ + current = Months.getFromInt(random.nextInt(Months.length)); + } + + String toString(){ + return current.toString().capitalize(); + } +} \ No newline at end of file diff --git a/lib/pages/practice/month/MonthPracticePage.dart b/lib/pages/practice/month/MonthPracticePage.dart index 451dbd7..13dba73 100644 --- a/lib/pages/practice/month/MonthPracticePage.dart +++ b/lib/pages/practice/month/MonthPracticePage.dart @@ -1,4 +1,6 @@ import 'package:flutter/material.dart'; +import 'package:ohthatsa/pages/practice/PracticeGenerator.dart'; +import 'package:ohthatsa/pages/practice/month/MonthPracticeGenerator.dart'; import 'file:///D:/dev/projects/ohthatsa/lib/pages/practice/PracticeSetup.dart'; import 'package:ohthatsa/util/DayCalculator.dart'; import 'package:ohthatsa/AppDrawer.dart'; @@ -19,8 +21,7 @@ class _MonthPracticeState extends State { int _correct = 0; int _incorrect = 0; bool _showCorrect = true; - static final _random = Random(); - Month _month = Months.getFromInt(_random.nextInt(Months.length)); + static final practiceGenerator = MonthPracticeGenerator(); List answers = List(); Widget getAnswerRow(){ @@ -114,7 +115,7 @@ class _MonthPracticeState extends State { } questions.add( Text( - _month.string.capitalize(), + practiceGenerator.toString(), style: TextStyle( fontSize: 30, ) @@ -251,15 +252,15 @@ class _MonthPracticeState extends State { } void checkMonth(int answer){ - if(answer == _month.value){ + if(practiceGenerator.check(answer)){ _correct += 1; } else { _incorrect += 1; } _count += 1; - answers.add(MonthPracticeAnswer(_month, answer)); + answers.add(MonthPracticeAnswer(practiceGenerator.current, answer)); setState(() => { - _month = Months.getFromInt(_random.nextInt(Months.length)) + practiceGenerator.next() }); if((_startCount - _count) == 0) { showDialog(