From 9ba047c80828ea775a5511b34b7c8a4210ba375b Mon Sep 17 00:00:00 2001 From: Aaron Johnon Date: Wed, 16 Apr 2025 01:23:39 -0500 Subject: [PATCH] Adjusted game-over condition to be handled better, which was required after adjusting the inital guess counter to start at 1 instead of 0 --- src/main.rs | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/main.rs b/src/main.rs index 8f56607..da49e52 100644 --- a/src/main.rs +++ b/src/main.rs @@ -25,7 +25,7 @@ fn main() { println!("\n{BLD}Guess the number!{RST}\n"); // Guess counter - let mut gcount: u8 = 0; + let mut gcount: u8 = 1; let secret_number: u8 = rand::thread_rng().gen_range(MIN..=MAX); println!("Please type in your guess ({}-{}):", MIN, MAX); @@ -52,22 +52,13 @@ fn main() { } let guess: u8 = match guess.trim().parse() { - Ok(num) if num >= MIN && num <= MAX => { - if gcount < 255 { - gcount += 1; - } else { - println!("{BLD}GAME OVER!\n{RED}You've run out of guesses!{RST}"); - std::process::exit(13); - } - num - }, + Ok(num) if num >= MIN && num <= MAX => num, _ => { println!("Invalid input! Guess a number between {BLD}{}{RST} and {BLD}{}{RST}.", MIN, MAX); continue; }, }; - //println!("You guessed: {}", guess); if guess == 69 { println!("{BLD}Nice!{RST}"); } @@ -76,9 +67,18 @@ fn main() { Ordering::Less => println!("Too {YLW}small{RST}!"), Ordering::Greater => println!("Too {RED}big{RST}!"), Ordering::Equal => { - println!("{GRN}You've won!{RST}\nYou used {BLD}{}{RST} guesses!", gcount); + let mut plural: &str = ""; + if gcount > 1 { + plural = "es"; + } + println!("{GRN}You've won!{RST}\nYou needed {BLD}{}{RST} guess{} to win!", gcount, plural); break; } } + if gcount == u8::MAX { + println!("{BLD}GAME OVER!\n{RED}You've run out of guesses!{RST}"); + std::process::exit(13); + } + gcount += 1; } }