11package hexlet .code .games ;
22
3- import java .util .StringJoiner ;
4-
53public class Progression {
64 private static final int SIZE = 10 ;
75 private static final int SEED_BOUND = 20 ;
86 private static final int STEP_BOUND = 10 ;
9- private static final int INDEX_OF_HIDDEN_ELEMENT_BOUND = 10 ;
7+ private static final int HIDDEN_ELEMENT_INDEX_BOUND = 10 ;
108
11- public static int [] getRandomProgression (int size , int seed , int step ) {
12- int [] progression = new int [size ];
13- progression [ 0 ] = seed ;
9+ public static String [] getRandomProgression (int size , int seed , int step ) {
10+ String [] progression = new String [size ];
11+ var currentNumber = seed ;
1412
15- for (var i = 1 ; i < size ; i ++) {
16- progression [i ] = progression [i - 1 ] + step ;
13+ for (var i = 0 ; i < size ; i ++) {
14+ progression [i ] = Integer .toString (currentNumber );
15+ currentNumber += step ;
1716 }
1817
1918 return progression ;
@@ -28,65 +27,16 @@ public static void start() {
2827 for (var i = 0 ; i < Engine .FINAL_ROUND ; i ++) {
2928 var seed = Engine .getRandomNumber (SEED_BOUND );
3029 var step = Engine .getRandomNumber (STEP_BOUND ) + 1 ;
31- int [] progression = getRandomProgression (SIZE , seed , step );
32- var hiddenElement = progression [Engine .getRandomNumber (INDEX_OF_HIDDEN_ELEMENT_BOUND )];
30+ String [] progression = getRandomProgression (SIZE , seed , step );
3331
34- StringJoiner progressionForQuestion = new StringJoiner (" " );
35- for (int num : progression ) {
36- if (num == hiddenElement ) {
37- progressionForQuestion .add (".." );
38- } else {
39- progressionForQuestion .add (Integer .toString (num ));
40- }
41- }
32+ var hiddenElementIndex = Engine .getRandomNumber (HIDDEN_ELEMENT_INDEX_BOUND );
33+ var hiddenElement = progression [hiddenElementIndex ];
34+ progression [hiddenElementIndex ] = ".." ;
4235
43- questions [i ] = progressionForQuestion . toString ( );
44- correctAnswers [i ] = Integer . toString ( hiddenElement ) ;
36+ questions [i ] = String . join ( " " , progression );
37+ correctAnswers [i ] = hiddenElement ;
4538 }
4639
4740 Engine .play (rules , questions , correctAnswers );
4841 }
4942}
50- // private static final int PROGRESSION_SIZE = 10;
51- // private static final int RANDOM_ELEMENT_OF_PROGRESSION_BOUND = 20;
52- // private static final int RANDOM_STEP_BOUND = 10;
53- // private static final int RANDOM_HIDDEN_ELEMENT_BOUND = 10;
54- //
55- // public static int[] getRandomProgression() {
56- // int[] progression = new int[PROGRESSION_SIZE];
57- // progression[0] = Engine.getRandomNumber(RANDOM_ELEMENT_OF_PROGRESSION_BOUND);
58- // var step = Engine.getRandomNumber(RANDOM_STEP_BOUND) + 1;
59- //
60- // for (var i = 1; i < PROGRESSION_SIZE; i++) {
61- // progression[i] = progression[i - 1] + step;
62- // }
63- //
64- // return progression;
65- // }
66- //
67- // public static void start() {
68- // var rules = "What number is missing in the progression?";
69- //
70- // String[] questions = new String[Engine.FINAL_ROUND];
71- // String[] correctAnswers = new String[Engine.FINAL_ROUND];
72- //
73- // for (var i = 0; i < Engine.FINAL_ROUND; i++) {
74- // int[] progression = getRandomProgression();
75- // var hiddenElement = progression[Engine.getRandomNumber(RANDOM_HIDDEN_ELEMENT_BOUND)];
76- //
77- // StringJoiner progressionForQuestion = new StringJoiner(" ");
78- // for (int num : progression) {
79- // if (num == hiddenElement) {
80- // progressionForQuestion.add("..");
81- // } else {
82- // progressionForQuestion.add(Integer.toString(num));
83- // }
84- // }
85- //
86- // questions[i] = progressionForQuestion.toString();
87- // correctAnswers[i] = Integer.toString(hiddenElement);
88- // }
89- //
90- // Engine.play(rules, questions, correctAnswers);
91- // }
92- //} todo: убрать это всё, когда закончу
0 commit comments