پروژه: بازی حدس عدد
پروژه عملی: بازی حدس عدد با حلقه، شرط و الگوریتم دودویی.
پروژه ۲: بازی حدس عدد
کامپیوتر عددی انتخاب میکند، بازیکن حدس میزند، برنامه راهنمایی میکند (بزرگتر/کوچکتر) تا پیدا شود!
عدد تصادفی در جاوا
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) — در مقابل حدس تصادفی!
نکات آموزشی
- حلقه با شرط مرکب:
low <= high && attempts < max - الگوریتم دودویی: کارایی O(log n)
- شبیهسازی: تست منطق بدون ورودی تعاملی
پیشنهاد توسعه
- سطح سختی (بازههای مختلف)
- محدودیت تعداد تلاش
- امتیازدهی بر اساس سرعت
- ورودی واقعی با Scanner (روی سیستم)
این مبحث بخشی از دوره آموزش کامل جاوا است.