@@ -7,14 +7,22 @@ public class Progression {
77 private static final int MIN_LENGTH = 5 ;
88 private static final int MAX_LENGTH = 10 ;
99
10+ private static int [] generateProgression (int length , int start , int step ) {
11+ int [] numbers = new int [length ];
12+ numbers [0 ] = start ;
13+ for (int i = 1 ; i < length ; i ++) {
14+ numbers [i ] = numbers [i - 1 ] + step ;
15+ }
16+ return numbers ;
17+ }
18+
1019 private static String [] getQuestionAndAnswer () {
1120 int randomLength = Utils .getRandomNumber (MIN_LENGTH , MAX_LENGTH );
12- int [] numbers = new int [randomLength ];
13- int diff = Utils .getRandomNumber ();
14- numbers [0 ] = Utils .getRandomNumber ();
15- for (int i = 1 ; i < randomLength ; i ++) {
16- numbers [i ] = numbers [i - 1 ] + diff ;
17- }
21+ int step = Utils .getRandomNumber ();
22+ int startNumber = Utils .getRandomNumber ();
23+
24+ int [] numbers = generateProgression (randomLength , startNumber , step );
25+
1826 int randomIndex = Utils .getRandomNumber (0 , randomLength - 1 );
1927 String correctAnswer = String .valueOf (numbers [randomIndex ]);
2028 numbers [randomIndex ] = -1 ;
@@ -25,12 +33,8 @@ private static String[] getQuestionAndAnswer() {
2533 return new String [] {question .trim (), correctAnswer };
2634 }
2735
28- public static void gameProgression () {
36+ public static void playProgression () {
2937 String exercise = "What number is missing in the progression?" ;
30- String [][] questionAndAnswer = new String [Engine .getCountOfRounds ()][2 ];
31- for (int i = 0 ; i < Engine .getCountOfRounds (); i ++) {
32- questionAndAnswer [i ] = getQuestionAndAnswer ();
33- }
34- Engine .gameEngine (exercise , questionAndAnswer );
38+ Engine .runGame (exercise , Progression ::getQuestionAndAnswer );
3539 }
3640}
0 commit comments