تمرين إعادة البناء
Number Guessing Game
أعد كتابة لعبة تخمين رقم بسيطة بقراءة إدخال المستخدم.
rust
~12 دقيقة
مبتدئ
أعد بناء الكود
Rebuild
هذا هو الكود. اكتبه بنفسك.
الكود المرجعي
use std::cmp::Ordering;
use std::io::{self, Write};
use std::time::{SystemTime, UNIX_EPOCH};
fn main() {
let secret = simple_secret_number();
println!("Guess the number from 1 to 100.");
loop {
print!("Your guess: ");
io::stdout().flush().expect("flush prompt");
// اقرأ سطراً من المستخدم — Read one line from the user
let mut input = String::new();
if io::stdin().read_line(&mut input).is_err() {
println!("Could not read input");
continue;
}
let guess: u32 = match input.trim().parse() {
Ok(number) => number,
Err(_) => {
println!("Please type a number");
continue;
}
};
match guess.cmp(&secret) {
Ordering::Less => println!("Too small"),
Ordering::Greater => println!("Too large"),
Ordering::Equal => {
println!("Correct!");
break;
}
}
}
}
fn simple_secret_number() -> u32 {
// استخدم الوقت كبذرة بسيطة — Use time as a simple seed
let nanos = SystemTime::now()
.duration_since(UNIX_EPOCH)
.unwrap_or_default()
.subsec_nanos();
nanos % 100 + 1
}اكتب هنا