ربات «حدس عدد» با پایتون
🤖 ربات تلگرامی بازی حدس عدد
امروز میخوایم با هم یک ربات تلگرامی بازی جذاب بسازیم: ربات حدس عدد!
روال بازی خیلی سادهست؛ ربات یک عدد تصادفی بین ۱ تا ۱۰۰ انتخاب میکنه و کاربر باید اون رو حدس بزنه. ربات هم با راهنماییهای «برو بالاتر ⬆️» یا «بیا پایینتر ⬇️» کاربر رو به سمت جواب درست هدایت میکنه.
این پروژه برای یادگیری منطق شرطها (if/else)، حلقهها، کار با کتابخانههای پایتون و مدیریت حافظه کاربران عالیه! 🚀
📋 پیشنیازها
قبل از شروع کدنویسی، مطمئن شو این موارد رو داری:
- Python 3.8 یا بالاتر
- کتابخانه pyTelegramBotAPI
- توکن ربات از BotFather
🎯 گام اول: گرفتن توکن از BotFather
- در تلگرام به
@BotFatherپیام بده. - دستور
/newbotرا ارسال کن. - یک نام (مثلاً بازی حدس عدد) و یک نام کاربری (مثلاً
my_guess_number_bot) انتخاب کن. - توکن اختصاصی که دریافت میکنی را کپی و ذخیره کن.
📦 گام دوم: نصب کتابخانه
ترمینال یا 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
سپس:
- وارد ربات خودت در تلگرام شو.
- دستور
/startرا ارسال کن. - شروع به حدس زدن عدد کن! 🎯
🌟 ایدههایی برای توسعه
میتوانی امکانات زیر را به ربات اضافه کنی:
- ⏱️ محدود کردن تعداد حدسها (مثلاً ۱۰ فرصت)
- 🏆 ساخت جدول امتیازات (Leaderboard)
- 📊 نمایش تعداد حدسهای کاربر
- 🎮 انتخاب سطح سختی (۱ تا ۵۰، ۱ تا ۱۰۰، ۱ تا ۱۰۰۰)
- 💾 ذخیره رکوردها در فایل یا پایگاه داده
- ☁️ استقرار روی سرور برای اجرای ۲۴ ساعته (مانند telerun.ir)
💡 جمعبندی
در این آموزش یاد گرفتی چگونه با استفاده از پایتون و کتابخانه pyTelegramBotAPI یک ربات بازی حدس عدد بسازی.
در طول این پروژه با مفاهیم زیر آشنا شدی:
- شرطها (
if / elif / else) - دیکشنریها (
dict) - توابع
- تولید اعداد تصادفی
- مدیریت وضعیت کاربران
- ساخت ربات تلگرام
حالا میتوانی این پروژه را توسعه بدهی و امکانات جذابتری به آن اضافه کنی.
موفق باشی و از برنامهنویسی لذت ببر! 🚀
