ربات «حدس عدد» با پایتون

ربات «حدس عدد» با پایتون

امروز می‌خوایم با هم یک ربات تلگرامی بازی جذاب بسازیم: **ربات حدس عدد!**

admin

ربات «حدس عدد» با پایتون

🤖 ربات تلگرامی بازی حدس عدد

امروز می‌خوایم با هم یک ربات تلگرامی بازی جذاب بسازیم: ربات حدس عدد!

روال بازی خیلی ساده‌ست؛ ربات یک عدد تصادفی بین ۱ تا ۱۰۰ انتخاب می‌کنه و کاربر باید اون رو حدس بزنه. ربات هم با راهنمایی‌های «برو بالاتر ⬆️» یا «بیا پایین‌تر ⬇️» کاربر رو به سمت جواب درست هدایت می‌کنه.

این پروژه برای یادگیری منطق شرط‌ها (if/else)، حلقه‌ها، کار با کتابخانه‌های پایتون و مدیریت حافظه کاربران عالیه! 🚀


📋 پیش‌نیازها

قبل از شروع کدنویسی، مطمئن شو این موارد رو داری:

  1. Python 3.8 یا بالاتر
  2. کتابخانه pyTelegramBotAPI
  3. توکن ربات از BotFather

🎯 گام اول: گرفتن توکن از BotFather

  1. در تلگرام به @BotFather پیام بده.
  2. دستور /newbot را ارسال کن.
  3. یک نام (مثلاً بازی حدس عدد) و یک نام کاربری (مثلاً my_guess_number_bot) انتخاب کن.
  4. توکن اختصاصی که دریافت می‌کنی را کپی و ذخیره کن.

📦 گام دوم: نصب کتابخانه

ترمینال یا CMD را باز کن و دستور زیر را اجرا کن:

pip install pyTelegramBotAPI

💻 گام سوم: کدنویسی ربات

یک فایل جدید به نام guess_bot.py بساز و کد زیر را داخل آن قرار بده:

import random
import telebot

# 🔑 توکن دریافتی از BotFather
TOKEN = "YOUR_BOT_TOKEN_HERE"

bot = telebot.TeleBot(TOKEN)

# 🧠 ذخیره اطلاعات بازی هر کاربر
user_games = {}

# -------------------------------
# شروع بازی
# -------------------------------
@bot.message_handler(commands=["start", "game"])
def start_game(message):
    chat_id = message.chat.id

    # انتخاب عدد تصادفی
    secret_number = random.randint(1, 100)
    user_games[chat_id] = secret_number

    welcome_msg = (
        f"سلام {message.from_user.first_name}! 👋\n\n"
        "به بازی حدس عدد خوش اومدی! 🎲\n\n"
        "من یک عدد بین ۱ تا ۱۰۰ انتخاب کردم.\n"
        "عدد مورد نظرت رو برام بفرست. 🔢"
    )

    bot.send_message(chat_id, welcome_msg)


# -------------------------------
# پردازش حدس کاربر
# -------------------------------
@bot.message_handler(func=lambda message: True)
def process_guess(message):
    chat_id = message.chat.id

    # آیا بازی شروع شده؟
    if chat_id not in user_games:
        bot.reply_to(
            message,
            "هنوز بازی را شروع نکردی!\nبرای شروع دستور /start یا /game را ارسال کن."
        )
        return

    # بررسی ورودی عددی
    if not message.text.isdigit():
        bot.reply_to(
            message,
            "لطفاً فقط یک عدد صحیح وارد کن. 🔢"
        )
        return

    user_guess = int(message.text)
    secret_number = user_games[chat_id]

    if user_guess < secret_number:
        bot.reply_to(message, "⬆️ برو بالاتر!")
    elif user_guess > secret_number:
        bot.reply_to(message, "⬇️ بیا پایین‌تر!")
    else:
        bot.reply_to(
            message,
            (
                f"🎉 آفرین! درست حدس زدی.\n\n"
                f"عدد من **{secret_number}** بود.\n\n"
                "برای شروع بازی جدید دستور /start را بزن."
            ),
            parse_mode="Markdown"
        )

        # حذف اطلاعات بازی
        del user_games[chat_id]


# -------------------------------
# اجرای ربات
# -------------------------------
print("ربات با موفقیت اجرا شد...")

bot.infinity_polling()

⚠️ نکته مهم: عبارت YOUR_BOT_TOKEN_HERE را با توکن واقعی ربات خودت جایگزین کن.


🔍 گام چهارم: تحلیل کد

import random

از کتابخانه استاندارد پایتون برای تولید اعداد تصادفی استفاده می‌کنیم.

user_games = {}

این دیکشنری اطلاعات بازی هر کاربر را جداگانه نگه می‌دارد، بنابراین چندین کاربر می‌توانند هم‌زمان بازی کنند.

random.randint(1, 100)

یک عدد تصادفی بین ۱ تا ۱۰۰ تولید می‌کند.

message.text.isdigit()

بررسی می‌کند که کاربر فقط عدد ارسال کرده باشد.

نکته: این تابع فقط اعداد انگلیسی را تشخیص می‌دهد. اگر بخواهی اعداد فارسی نیز پذیرفته شوند باید ابتدا آن‌ها را به اعداد انگلیسی تبدیل کنی.

del user_games[chat_id]

بعد از اینکه کاربر برنده شد، اطلاعات بازی او حذف می‌شود تا بتواند بازی جدیدی را شروع کند.


🚀 گام پنجم: اجرا و تست

در ترمینال دستور زیر را اجرا کن:

python guess_bot.py

سپس:

  1. وارد ربات خودت در تلگرام شو.
  2. دستور /start را ارسال کن.
  3. شروع به حدس زدن عدد کن! 🎯

🌟 ایده‌هایی برای توسعه

می‌توانی امکانات زیر را به ربات اضافه کنی:

  • ⏱️ محدود کردن تعداد حدس‌ها (مثلاً ۱۰ فرصت)
  • 🏆 ساخت جدول امتیازات (Leaderboard)
  • 📊 نمایش تعداد حدس‌های کاربر
  • 🎮 انتخاب سطح سختی (۱ تا ۵۰، ۱ تا ۱۰۰، ۱ تا ۱۰۰۰)
  • 💾 ذخیره رکوردها در فایل یا پایگاه داده
  • ☁️ استقرار روی سرور برای اجرای ۲۴ ساعته (مانند telerun.ir)

💡 جمع‌بندی

در این آموزش یاد گرفتی چگونه با استفاده از پایتون و کتابخانه pyTelegramBotAPI یک ربات بازی حدس عدد بسازی.

در طول این پروژه با مفاهیم زیر آشنا شدی:

  • شرط‌ها (if / elif / else)
  • دیکشنری‌ها (dict)
  • توابع
  • تولید اعداد تصادفی
  • مدیریت وضعیت کاربران
  • ساخت ربات تلگرام

حالا می‌توانی این پروژه را توسعه بدهی و امکانات جذاب‌تری به آن اضافه کنی.

موفق باشی و از برنامه‌نویسی لذت ببر! 🚀

درباره مدرس

admin
کاربر پلتفرم تله‌ران

نظرات

برای ارسال نظر باید وارد شوید.