This commit is contained in:
2026-03-30 16:44:03 +07:00
parent 31e069b311
commit 7f831057ad

View File

@@ -3,34 +3,77 @@ use std::cmp::Ordering;
use std::io; use std::io;
use rand::Rng; use rand::Rng;
// fn main() {
// println!("Guess the number!");
// let secret_number = rand::thread_rng().gen_range(1..=100);
// print!("The secret number is: {secret_number}\n");
// loop {
// println!("Please input your guess.");
// let mut guess = String::new();
// io::stdin()
// .read_line(&mut guess)
// .expect("Failed to read line!");
// let guess: u32 = match guess.trim().parse() {
// Ok(num) => num,
// Err(_) => continue,
// };
// println!("You guessed: {guess}");
// match guess.cmp(&secret_number) {
// Ordering::Less => println!("Too small!"),
// Ordering::Greater => println!("Too big!"),
// Ordering::Equal => {
// println!("You win!");
// break;
// }
// }
// }
// }
fn main() { fn main() {
println!("Guess the number!"); println!("Guess the number!");
let secret_number = rand::thread_rng().gen_range(1..=100);
print!("The secret number is: {secret_number}\n"); // Breaking down the random number generation
let mut rng = rand::thread_rng();
let secret_number = rng.gen_range(1..=100);
println!("The secret number is: {secret_number}");
loop { loop {
println!("Please input your guess."); println!("Please input your guess.");
let mut guess = String::new(); let mut guess_text = String::new();
io::stdin()
.read_line(&mut guess) // Breaking down the IO input
.expect("Failed to read line!"); let stdin = io::stdin();
let guess: u32 = match guess.trim().parse() { stdin.read_line(&mut guess_text).expect("Failed to read line!");
// Breaking down the parsing logic
let trimmed_guess = guess_text.trim();
let parsed_result = trimmed_guess.parse::<u32>();
let guess: u32 = match parsed_result {
Ok(num) => num, Ok(num) => num,
Err(_) => continue, Err(_) => {
println!("Please enter a valid number.");
continue;
}
}; };
println!("You guessed: {guess}"); println!("You guessed: {guess}");
match guess.cmp(&secret_number) { match guess.cmp(&secret_number) {
Ordering::Less => println!("Too small!"), Ordering::Less => println!("Too small!"),
Ordering::Greater => println!("Too big!"), Ordering::Greater => println!("Too big!"),
Ordering::Equal => { Ordering::Equal => {
println!("You win!"); println!("You win!");
break; break;
} }
} }
} }
} }
@@ -44,8 +87,3 @@ fn main() {