|
5 | 5 |
|
6 | 6 | public class Progression { |
7 | 7 | public static void startGame() { |
| 8 | + final int PROGRESSION_LENGTH = 10; |
8 | 9 | String[][] roundsData = new String[Engine.ROUNDS][2]; |
9 | 10 | String description = "What number is missing in the progression?"; |
10 | 11 |
|
11 | 12 | for (int i = 0; i < Engine.ROUNDS; i++) { |
12 | | - int[] progression = getProgression(); |
13 | | - int randHideElement = Utils.generateNumber(0, 9); |
14 | | - String[] progressionWithDots = new String[progression.length]; |
| 13 | + String[] progression = makeProgression( |
| 14 | + Utils.generateNumber(1, 100), |
| 15 | + Utils.generateNumber(1, 10), PROGRESSION_LENGTH); |
| 16 | + int hiddenMemberIndex = Utils.generateNumber(0, 9); |
| 17 | + String answer = progression[hiddenMemberIndex]; |
| 18 | + |
| 19 | + progression[hiddenMemberIndex] = ".."; |
| 20 | + String question = String.join(" ", progression); |
15 | 21 |
|
16 | | - for (int k = 0; k < progression.length; k++) { |
17 | | - if (k == randHideElement) { |
18 | | - progressionWithDots[k] = ".."; |
19 | | - } else { |
20 | | - progressionWithDots[k] = String.valueOf(progression[k]); |
21 | | - } |
22 | | - } |
23 | | - String question = String.join(" ", progressionWithDots); |
24 | 22 | roundsData[i][0] = question; |
25 | | - roundsData[i][1] = String.valueOf(progression[randHideElement]); |
| 23 | + roundsData[i][1] = answer; |
26 | 24 | } |
27 | 25 | Engine.run(description, roundsData); |
28 | 26 | } |
29 | 27 |
|
30 | | - private static int[] getProgression() { |
31 | | - final int arrLength = 10; |
32 | | - int progressionStep = Utils.generateNumber(1, 10); |
33 | | - int firstNum = Utils.generateNumber(1, 100); |
34 | | - |
35 | | - int[] progression = new int[arrLength]; |
36 | | - progression[0] = firstNum; |
37 | | - for (int j = 1; j < progression.length; j++) { |
38 | | - progression[j] = progression[j - 1] + progressionStep; |
| 28 | + private static String[] makeProgression(int first, int step, int length) { |
| 29 | + String[] progression = new String[length]; |
| 30 | + for (int i = 0; i < length; i++) { |
| 31 | + progression[i] = Integer.toString(first + i * step); |
39 | 32 | } |
40 | 33 | return progression; |
41 | 34 | } |
|
0 commit comments