summaryrefslogtreecommitdiff
path: root/rust/guessing_game
diff options
context:
space:
mode:
Diffstat (limited to 'rust/guessing_game')
-rw-r--r--rust/guessing_game/src/main.rs32
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;
}