Skip to content

Commit d9d9dc4

Browse files
committed
exterminate magic numbers
1 parent beed6f1 commit d9d9dc4

File tree

6 files changed

+32
-18
lines changed

6 files changed

+32
-18
lines changed

app/src/main/java/hexlet/code/games/Calc.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,15 @@ public class Calc {
66
public static void play(Scanner scanner) {
77
Engine.greet(scanner);
88

9+
var randomNumberBound = 50;
10+
var randomOperatorBound = 3;
11+
912
while (Engine.isContinuing()) {
10-
var number1 = Engine.getRandomNumber(50);
11-
var number2 = Engine.getRandomNumber(50);
13+
var number1 = Engine.getRandomNumber(randomNumberBound);
14+
var number2 = Engine.getRandomNumber(randomNumberBound);
1215
char operator;
1316

14-
int correctAnswer = switch (Engine.getRandomNumber(3)) {
17+
int correctAnswer = switch (Engine.getRandomNumber(randomOperatorBound)) {
1518
case 0 -> {
1619
operator = '+';
1720
yield number1 + number2;

app/src/main/java/hexlet/code/games/Engine.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@
66
public class Engine {
77
private static String userName;
88
private static boolean defeated = false;
9-
private static int round = 1;
10-
private static Random randomizer = new Random();
9+
private static int currentRound = 1;
10+
private static final int finalRound = 3;
11+
private static final Random randomizer = new Random();
1112

1213
public static void greet(Scanner scanner) {
1314
System.out.println("Welcome to the Brain Games!");
@@ -17,7 +18,7 @@ public static void greet(Scanner scanner) {
1718
}
1819

1920
public static boolean isContinuing() {
20-
return round <= 3 && !defeated;
21+
return currentRound <= finalRound && !defeated;
2122
}
2223

2324
public static int getRandomNumber(int bound) {
@@ -27,7 +28,7 @@ public static int getRandomNumber(int bound) {
2728
public static void compareAnswers(String userAnswer, String correctAnswer) {
2829
if (userAnswer.equals(correctAnswer)) {
2930
System.out.println("Correct!");
30-
round++;
31+
currentRound++;
3132
} else {
3233
System.out.println("'" + userAnswer + "' is wrong answer ;(. Correct answer was '" + correctAnswer + "'.");
3334
defeated = true;

app/src/main/java/hexlet/code/games/Even.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@
55
public class Even {
66
public static void play(Scanner scanner) {
77
Engine.greet(scanner);
8-
98
System.out.println("Answer 'yes' if the number is even, otherwise answer 'no'.");
109

10+
var randomNumberBound = 100;
11+
1112
while (Engine.isContinuing()) {
12-
var randomNumber = Engine.getRandomNumber(100) + 1; // added 1 to avoid 0
13+
var randomNumber = Engine.getRandomNumber(randomNumberBound) + 1; // added 1 to avoid 0
1314
var correctAnswer = randomNumber % 2 == 0 ? "yes" : "no";
1415

1516
System.out.println("Question: " + randomNumber);

app/src/main/java/hexlet/code/games/GCD.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,11 @@ public static int getGCD(int a, int b) {
1010
public static void play(Scanner scanner) {
1111
Engine.greet(scanner);
1212

13+
var randomNumberBound = 100;
14+
1315
while (Engine.isContinuing()) {
14-
var number1 = Engine.getRandomNumber(100) + 1; // added 1 to avoid 0
15-
var number2 = Engine.getRandomNumber(100) + 1;
16+
var number1 = Engine.getRandomNumber(randomNumberBound) + 1; // added 1 to avoid 0
17+
var number2 = Engine.getRandomNumber(randomNumberBound) + 1;
1618
int correctAnswer = getGCD(number1, number2);
1719

1820
System.out.println("Find the greatest common divisor of given numbers.");

app/src/main/java/hexlet/code/games/Prime.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,12 @@ public static boolean isPrime(int number) {
1919

2020
public static void play(Scanner scanner) {
2121
Engine.greet(scanner);
22-
2322
System.out.println("Answer 'yes' if given number is prime. Otherwise answer 'no'.");
2423

24+
var randomNumberBound = 82; // multiplication table range
25+
2526
while (Engine.isContinuing()) {
26-
var randomNumber = Engine.getRandomNumber(82); // multiplication table range
27+
var randomNumber = Engine.getRandomNumber(randomNumberBound);
2728
var correctAnswer = isPrime(randomNumber) ? "yes" : "no";
2829

2930
System.out.println("Question: " + randomNumber);

app/src/main/java/hexlet/code/games/Progression.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,15 @@
55

66
public class Progression {
77
public static int[] getRandomProgression() {
8-
int[] progression = new int[10];
9-
progression[0] = Engine.getRandomNumber(20);
10-
var step = Engine.getRandomNumber(10) + 1;
8+
var progressionSize = 10;
9+
var randomElementOfProgressionBound = 20;
10+
var randomStepBound = 10;
1111

12-
for (var i = 1; i < 10; i++) {
12+
int[] progression = new int[progressionSize];
13+
progression[0] = Engine.getRandomNumber(randomElementOfProgressionBound);
14+
var step = Engine.getRandomNumber(randomStepBound) + 1;
15+
16+
for (var i = 1; i < progressionSize; i++) {
1317
progression[i] = progression[i - 1] + step;
1418
}
1519

@@ -19,9 +23,11 @@ public static int[] getRandomProgression() {
1923
public static void play(Scanner scanner) {
2024
Engine.greet(scanner);
2125

26+
var randomHiddenValueBound = 10;
27+
2228
while (Engine.isContinuing()) {
2329
int[] progression = getRandomProgression();
24-
var hiddenValue = progression[Engine.getRandomNumber(10)];
30+
var hiddenValue = progression[Engine.getRandomNumber(randomHiddenValueBound)];
2531

2632
var correctAnswer = Integer.toString(hiddenValue);
2733
var progressionForQuestion = Arrays.toString(progression);

0 commit comments

Comments
 (0)