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

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

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

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

نیازمندی‌ها

  1. عدد تصادفی بین ۱ تا ۱۰۰
  2. حدس‌های آماده (شبیه‌سازی بازیکن)
  3. راهنمایی: «بزرگتر» یا «کوچکتر»
  4. شمارش تلاش‌ها و اعلام پیروزی

عدد تصادفی در Go

import "math/rand"

rand.Intn(100)        ← ۰ تا ۹۹
rand.Intn(100) + 1    ← ۱ تا ۱۰۰ ✓

منطق بازی

target := rand.Intn(100) + 1
attempts := 0

for _, guess := range guesses {
    attempts++

    switch {
    case guess < target:
        fmt.Println("بزرگتر!")
    case guess > target:
        fmt.Println("کوچکتر!")
    default:
        fmt.Println("آفرین! پیدا شد")
    }
}

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

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

low, high := 1, 100

for {
    guess := (low + high) / 2   ← وسط بازه

    if guess == target {
        break   ← پیدا شد!
    } else if guess < target {
        low = guess + 1   ← نیمه بالایی
    } else {
        high = guess - 1  ← نیمه پایینی
    }
}
جستجوی دودویی عدد ۱ تا ۱۰۰ را حداکثر در ۷ تلاش پیدا می‌کند (log₂ 100 ≈ 7) — در مقابل حدس تصادفی که میانگین ~۵۰ تلاش!

ساختار پروژه

func playGuessGame(target, maxAttempts int) int
    ← تعداد تلاش را برمی‌گرداند

func binarySearchGuess(target int) int
    ← بازی با راهبرد دودویی

نکات آموزشی

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

تبریک! با پایان این پروژه، دوره کامل Go را به پایان رساندید! 🐹🎉

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

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