|
1 | 1 | package hexlet.code.games; |
2 | 2 |
|
3 | 3 | import hexlet.code.Engine; |
| 4 | +import hexlet.code.utils.Utils; |
4 | 5 |
|
5 | 6 | public class ProgressionGame { |
6 | | - static final int MAX_NUMBERS_LENGTH = 9; |
| 7 | + static final int MAX_NUMBERS_LENGTH = 10; |
7 | 8 | static final int MAX_NUMBER_VALUE = 100; |
8 | 9 | static final int MAX_STEP_VALUE = 10; |
9 | 10 | static final int MIN_STEP_VALUE = 1; |
10 | 11 | static final int COLUMN_INDEX = 3; |
11 | 12 | static final int ROW_INDEX = 2; |
12 | 13 |
|
13 | | - public static String getProgressionAndQuestion(int[] numbers, int startNumber, int step, int hiddenNumberIndex) { |
14 | | - StringBuilder printNumbers = new StringBuilder("Question:"); |
| 14 | + public static String[] getProgression(int progressionLength, int startNumber, int step) { |
| 15 | + //StringBuilder printNumbers = new StringBuilder(); |
| 16 | + String[] numbers = new String[progressionLength]; |
15 | 17 | for (int j = 0; j < numbers.length; j++) { |
16 | | - numbers[j] = startNumber + j * step; |
17 | | - if (j == hiddenNumberIndex) { |
18 | | - printNumbers.append(" .."); |
19 | | - } else { |
20 | | - printNumbers.append(" ").append(numbers[j]); |
21 | | - } |
| 18 | + numbers[j] = Integer.toString(startNumber + j * step); |
22 | 19 | } |
23 | | - return printNumbers.toString(); |
| 20 | + return numbers; |
24 | 21 | } |
25 | 22 |
|
26 | 23 | public static void progressionGame() { |
27 | 24 | String gameRules = "What number is missing in the progression?"; |
28 | 25 | String[][] questionsAndAnswers = new String[COLUMN_INDEX][ROW_INDEX]; |
29 | 26 | for (int i = 0; i < Engine.NUMBER_OF_GAMES; i++) { |
30 | | - int[] numbers = new int[MAX_NUMBERS_LENGTH]; |
31 | | - int startNumber = (int) (Math.random() * MAX_NUMBER_VALUE); |
32 | | - int step = (int) (Math.random() * MAX_STEP_VALUE + MIN_STEP_VALUE); |
33 | | - int hiddenNumberIndex = (int) (Math.random() * numbers.length); |
34 | | - questionsAndAnswers[i][0] = getProgressionAndQuestion(numbers, startNumber, step, hiddenNumberIndex); |
35 | | - questionsAndAnswers[i][1] = Integer.toString(numbers[hiddenNumberIndex]); |
| 27 | + int startNumber = Utils.generateNumber(0, MAX_NUMBER_VALUE); |
| 28 | + int step = Utils.generateNumber(MIN_STEP_VALUE, MAX_STEP_VALUE); |
| 29 | + String[] numbers = getProgression(MAX_NUMBERS_LENGTH, startNumber, step); |
| 30 | + int hiddenNumberIndex = Utils.generateNumber(0, numbers.length); |
| 31 | + questionsAndAnswers[i][0] = String.join(" ", numbers).replace(numbers[hiddenNumberIndex], ".."); |
| 32 | + questionsAndAnswers[i][1] = numbers[hiddenNumberIndex]; |
36 | 33 | } |
37 | 34 | Engine.gameRun(gameRules, questionsAndAnswers); |
38 | 35 | } |
|
0 commit comments