پروژه: بازی حدس عدد

پروژه عملی: بازی حدس عدد با حلقه، شرط و الگوریتم دودویی.

پروژه ۲: بازی حدس عدد

کامپیوتر عددی انتخاب می‌کند، بازیکن حدس می‌زند، برنامه راهنمایی می‌کند (بزرگتر/کوچکتر) تا پیدا شود!

عدد تصادفی در جاوا

import java.util.Random;

Random random = new Random();
int target = random.nextInt(100) + 1;   ← عددی بین ۱ تا ۱۰۰

منطق بازی

static int playGuessGame(int target, int maxAttempts) {
    int attempts = 0;

    // شبیه‌سازی بازیکن با جستجوی دودویی
    int low = 1, high = 100;

    while (low <= high && attempts < maxAttempts) {
        int guess = (low + high) / 2;   ← وسط بازه
        attempts++;

        if (guess == target) {
            return attempts;   ← پیدا شد!
        } else if (guess < target) {
            low = guess + 1;   ← نیمه بالایی
        } else {
            high = guess - 1;  ← نیمه پایینی
        }
    }
    return -1;   ← پیدا نشد
}

جستجوی دودویی — بازیکن هوشمند

بهترین راهبرد: همیشه وسط بازه را حدس بزنیم:

هدف = ۴۲

حدس ۵۰ → بزرگتر! (بازه: ۱-۴۹)
حدس ۲۵ → کوچکتر! (بازه: ۲۶-۴۹)
حدس ۳۷ → کوچکتر! (بازه: ۳۸-۴۹)
حدس ۴۳ → بزرگتر! (بازه: ۳۸-۴۲)
حدس ۴۰ → کوچکتر! (بازه: ۴۱-۴۲)
حدس ۴۱ → کوچکتر! (بازه: ۴۲-۴۲)
حدس ۴۲ → پیدا شد! 🎉 (۷ تلاش)
جستجوی دودویی عدد ۱ تا ۱۰۰ را حداکثر در ۷ تلاش پیدا می‌کند (log₂ 100 ≈ 7) — در مقابل حدس تصادفی!

نکات آموزشی

پیشنهاد توسعه

این مبحث بخشی از دوره آموزش کامل جاوا است.

ابزارهای مرتبط