@@ -8,62 +8,75 @@ import (
88
99func main () {
1010 helper .PrintGreetingMessage ()
11- helper .PrintDifficultyLevel ()
12- var userInput string
13- var selectedLevel int
14-
1511 for {
16- fmt .Printf ("Enter your choice: " )
17- _ , err := fmt .Scanln (& userInput )
18- if err != nil {
19- fmt .Println ("Error reading input, Try again" )
20- continue
12+ helper .PrintDifficultyLevel ()
13+ var userInput string
14+ var selectedLevel int
15+
16+ for {
17+ fmt .Printf ("Enter your choice: " )
18+ _ , err := fmt .Scanln (& userInput )
19+ if err != nil {
20+ fmt .Println ("Error reading input, Try again" )
21+ continue
22+ }
23+ selectedLevel , err = helper .DifficultyLevelValidation (userInput )
24+ if err != nil {
25+ fmt .Println ("Invalid choice, Try again" )
26+ continue
27+ }
28+ break
2129 }
22- selectedLevel , err = helper .DifficultyLevelValidation (userInput )
23- if err != nil {
24- fmt .Println ("Invalid choice, Try again" )
25- continue
30+ helper .PrintGameStartMessage (selectedLevel )
31+ randomNumber := helper .RandomNumberGenerator ()
32+ attempts := 0
33+ chances := helper .GetChancesForLevel (selectedLevel )
34+ for {
35+ fmt .Println ()
36+ fmt .Printf ("Enter your guess: " )
37+ _ , err := fmt .Scanln (& userInput )
38+ if err != nil {
39+ fmt .Println ("Error reading input, Try again" )
40+ continue
41+ }
42+ guessedNumber , err := strconv .Atoi (userInput )
43+ if err != nil {
44+ fmt .Println ("Error reading input, Try again" )
45+ continue
46+ }
47+ // User is not penalize for system errors
48+ attempts ++
49+ chances --
50+ // User is penalized for entering out-of-bounds input
51+ if guessedNumber < 1 || guessedNumber > 100 {
52+ fmt .Println ("Invalid choice, Enter a number between 1 and 100" )
53+ continue
54+ }
55+ if guessedNumber == randomNumber {
56+ fmt .Printf ("Congratulations! You guessed the correct number in %d attempts\n " , attempts )
57+ break
58+ }
59+ if chances > 0 {
60+ if randomNumber < guessedNumber {
61+ fmt .Printf ("Incorrect! The number is less than %d\n " , guessedNumber )
62+ } else {
63+ fmt .Printf ("Incorrect! The number is greater than %d\n " , guessedNumber )
64+ }
65+ continue
66+ } else {
67+ fmt .Println ("Game Over! You have used all the attempts" )
68+ }
69+ break
2670 }
27- break
28- }
29- helper .PrintGameStartMessage (selectedLevel )
30- randomNumber := helper .RandomNumberGenerator ()
31- attempts := 0
32- chances := helper .GetChancesForLevel (selectedLevel )
33- for {
34- fmt .Println ()
35- fmt .Printf ("Enter your guess: " )
71+ fmt .Println ("" )
72+ fmt .Printf ("Would you like to play again? (Y/n): " )
3673 _ , err := fmt .Scanln (& userInput )
3774 if err != nil {
3875 fmt .Println ("Error reading input, Try again" )
3976 continue
4077 }
41- guessedNumber , err := strconv .Atoi (userInput )
42- if err != nil {
43- fmt .Println ("Error reading input, Try again" )
44- continue
45- }
46- // User is not penalize for system errors
47- attempts ++
48- chances --
49- // User is penalized for entering out-of-bounds input
50- if guessedNumber < 1 || guessedNumber > 100 {
51- fmt .Println ("Invalid choice, Enter a number between 1 and 100" )
52- continue
53- }
54- if guessedNumber == randomNumber {
55- fmt .Printf ("Congratulations! You guessed the correct number in %d attempts\n " , attempts )
56- break
57- }
58- if chances > 0 {
59- if randomNumber < guessedNumber {
60- fmt .Printf ("Incorrect! The number is less than %d\n " , guessedNumber )
61- } else {
62- fmt .Printf ("Incorrect! The number is greater than %d\n " , guessedNumber )
63- }
78+ if userInput == "y" || userInput == "Y" {
6479 continue
65- } else {
66- fmt .Println ("Game Over! You have used all the attempts" )
6780 }
6881 break
6982 }
0 commit comments