Skip to content

Commit 64e6fbf

Browse files
committed
feat: add multiple rounds support
1 parent d73d127 commit 64e6fbf

File tree

1 file changed

+60
-47
lines changed

1 file changed

+60
-47
lines changed

main.go

Lines changed: 60 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -8,62 +8,75 @@ import (
88

99
func 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

Comments
 (0)