AzLearn

تمرين إعادة البناء

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
}
اكتب هنا