File tree Expand file tree Collapse file tree 4 files changed +60
-14
lines changed
app/src/main/java/hexlet/code Expand file tree Collapse file tree 4 files changed +60
-14
lines changed Original file line number Diff line number Diff line change 22
33import java .util .Scanner ;
44import hexlet .code .games .Even ;
5+ import hexlet .code .games .Calc ;
56
67public class App {
78 public static void main (String [] args ) {
@@ -10,19 +11,16 @@ public static void main(String[] args) {
1011 System .out .println ("Please enter the game number and press Enter." );
1112 System .out .println ("1 - Greet" );
1213 System .out .println ("2 - Even" );
14+ System .out .println ("3 - Calc" );
1315 System .out .println ("0 - Exit" );
1416 System .out .print ("Your choice: " );
1517 var userChoice = scanner .next ();
1618
1719 switch (userChoice ) {
18- case "1" :
19- Cli .greetUser (scanner );
20- break ;
21- case "2" :
22- Even .play (scanner );
23- break ;
24- default :
25- return ;
20+ case "1" -> Cli .greetUser (scanner );
21+ case "2" -> Even .play (scanner );
22+ case "3" -> Calc .play (scanner );
23+ default -> scanner .close ();
2624 }
2725 }
2826}
Original file line number Diff line number Diff line change 1+ package hexlet .code .games ;
2+
3+ import java .util .Scanner ;
4+
5+ public class Calc {
6+ public static void play (Scanner scanner ) {
7+ Engine .greet (scanner );
8+
9+ while (Engine .isContinuing ()) {
10+ var number1 = Engine .getRandomNumber (50 );
11+ var number2 = Engine .getRandomNumber (50 );
12+ char operator ;
13+
14+ Integer correctAnswer = switch (Engine .getRandomNumber (3 )) {
15+ case 0 -> {
16+ operator = '+' ;
17+ yield number1 + number2 ;
18+ }
19+ case 1 -> {
20+ operator = '-' ;
21+ yield number1 - number2 ;
22+ }
23+ default -> {
24+ operator = '*' ;
25+ // balancing difficulty
26+ number2 = number2 / 2 ;
27+ number1 = number1 / 2 ;
28+ yield number1 * (number2 );
29+ }
30+ };
31+
32+ System .out .println ("What is the result of the expression?" );
33+ System .out .println ("Question: " + number1 + " " + operator + " " + number2 );
34+ System .out .print ("Your answer: " );
35+ var userAnswer = scanner .next ();
36+
37+ Engine .compareAnswers (userAnswer , Integer .toString (correctAnswer ));
38+ }
39+
40+ Engine .end (scanner );
41+ }
42+ }
Original file line number Diff line number Diff line change 11package hexlet .code .games ;
22
3+ import java .util .Random ;
34import java .util .Scanner ;
45
5- public class Game {
6+ public class Engine {
67 private static String userName ;
78 private static boolean defeated = false ;
89 private static int round = 1 ;
10+ private static Random randomizer = new Random ();
911
1012 public static void greet (Scanner scanner ) {
1113 System .out .println ("Welcome to the Brain Games!" );
@@ -18,6 +20,10 @@ public static boolean isContinuing() {
1820 return round <= 3 && !defeated ;
1921 }
2022
23+ public static int getRandomNumber (int bound ) {
24+ return randomizer .nextInt (bound );
25+ }
26+
2127 public static void compareAnswers (String userAnswer , String correctAnswer ) {
2228 if (userAnswer .equals (correctAnswer )) {
2329 System .out .println ("Correct!" );
Original file line number Diff line number Diff line change 44
55public class Even {
66 public static void play (Scanner scanner ) {
7- Game .greet (scanner );
7+ Engine .greet (scanner );
88
99 System .out .println ("Answer 'yes' if the number is even, otherwise answer 'no'." );
1010
11- while (Game .isContinuing ()) {
12- var randomNumber = Game .getRandomNumber ();
11+ while (Engine .isContinuing ()) {
12+ var randomNumber = Engine .getRandomNumber (100 ) + 1 ; // added 1 to avoid 0 and keep equal chances
1313 var correctAnswer = randomNumber % 2 == 0 ? "yes" : "no" ;
1414
1515 System .out .println ("Question: " + randomNumber );
1616 System .out .print ("Your answer: " );
1717 var userAnswer = scanner .next ();
1818
19- Game .compareAnswers (userAnswer , correctAnswer );
19+ Engine .compareAnswers (userAnswer , correctAnswer );
2020 }
2121
22- Game .end (scanner );
22+ Engine .end (scanner );
2323 }
2424}
You can’t perform that action at this time.
0 commit comments