@State private var targetNumber = Int.random(in: 1...100)
@State private var userGuess = ""
@State private var message = ""
@State private var remainingAttempts = 8
@State private var showConfetti = false
@State private var showBadge = false
func checkGuess() {
guard let guess = Int(userGuess) else {
message = "Please enter a valid number."
return
}
if guess == targetNumber {
message = "Congratulations! You guessed the number \(targetNumber) correctly!"
showConfetti = true
showBadge = true
startOver()
} else if guess < targetNumber {
message = "The number is higher than \(guess). Try again!"
decrementAttempts()
} else {
message = "The number is lower than \(guess). Try again!"
decrementAttempts()
}
}
func decrementAttempts() {
remainingAttempts -= 1
if remainingAttempts <= 0 {
message = "Sorry, you've run out of attempts. The number was \(targetNumber)."
}
}
func startOver() {
targetNumber = Int.random(in: 1...100)
userGuess = ""
message = ""
remainingAttempts = 8
}
}