diff options
Diffstat (limited to 'rust/guessing_game/src/main.rs')
| -rw-r--r-- | rust/guessing_game/src/main.rs | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/rust/guessing_game/src/main.rs b/rust/guessing_game/src/main.rs index 7c6fea3..8e038a8 100644 --- a/rust/guessing_game/src/main.rs +++ b/rust/guessing_game/src/main.rs @@ -1,25 +1,33 @@ -use rand::Rng; use std::cmp::Ordering; use std::io; +use rand::Rng; + fn main() { - println!("Guess the number!"); + println!("Guess the number"); let secret_number = rand::thread_rng().gen_range(1..=100); + let mut tries = 10; loop { - println!("Please input your guess."); - let mut guess = String::new(); + if tries == 0 { + println!("You guessed wrong for the last time... You LOSE!"); + break; + } + println!("Please input your guess: "); + let mut guess = String::new(); io::stdin() - .read_line(&mut guess) // Returns a 'Result' type + .read_line(&mut guess) .expect("Failed to read line"); - // /- Returns a Result type let guess: u32 = match guess.trim().parse() { - Ok(num) => num, - Err(_) => continue, + Ok(n) => n, + Err(_) => { + println!("Invalid guess... Please type a number..."); + continue; + }, }; println!("You guessed: {guess}"); @@ -30,7 +38,11 @@ fn main() { Ordering::Equal => { println!("You win!"); break; - } // Code block executed if match hits ::Equal - }; + }, + } + + tries -= 1; + println!("Attempts left: {tries}"); } + return; } |
