بازی Hangman - دار زدن - پروژه پایتون با Tkinter
🔗 بازی Hangman (دار زدن) - پروژه سرگرمکننده پایتون
📊 ویژگیهای کلیدی پروژه:
• 🎮 ۵ دستهبندی مختلف کلمات فارسی (حیوانات، میوهها، کشورها، مشاغل، ورزشها)
• 🎨 رسم پویای آدمک روی دار بر اساس تعداد اشتباهات
• ⌨️ دکمههای حروف فارسی با طراحی زیبا
• ❤️ ۶ تلاش برای حدس کلمه
• 🏆 سیستم امتیازدهی (+۱۰ امتیاز برای هر برد)
• 📊 شمارش تعداد بازیهای انجام شده
• 🔄 قابلیت انتخاب دستهبندی دلخواه
• 🎯 نمایش کلمه با خط تیره (_)
• 📝 نمایش حروف حدس زده شده
• ✅ تشخیص حروف درست و غلط
• 🚫 غیرفعال شدن حروف تکراری
• 🔁 امکان شروع بازی جدید
• 📖 راهنمای کامل بازی
• 🎨 تم تیره حرفهای
🔧 مشخصات فنی پروژه:
• زبان برنامهنویسی: Python 3.8+
• کتابخانههای استفاده شده: tkinter, random
• حجم فایل: ۲۸ کیلوبایت
• تعداد خطوط کد: ۳۵۰+ خط کد تمیز و کامنتگذاری شده
• ساختار: برنامهنویسی شیگرا (OOP) با کلاس HangmanGame
• معماری ماژولار با توابع مجزا
• مدیریت خطاهای پیشرفته
📚 دستهبندیهای کلمات:
🐕 حیوانات (۱۰ کلمه):
شیر، پلنگ، فیل، زرافه، کرگدن، گرگ، روباه، خرگوش، سگ، گربه
🍎 میوهها (۱۰ کلمه):
سیب، پرتقال، موز، انگور، هندوانه، انار، گیلاس، هلو، خیار، گوجه
🌍 کشورها (۱۰ کلمه):
ایران، آلمان، فرانسه، ایتالیا، اسپانیا، ژاپن، چین، هند، کانادا، برزیل
👨💼 مشاغل (۱۰ کلمه):
پزشک، مهندس، معلم، وکیل، نجار، نقاش، راننده، آشپز، خیاط، گلکار
⚽ ورزشها (۱۰ کلمه):
فوتبال، والیبال، بسکتبال، تنیس، شنا، دوچرخه، کشتی، بوکس، کاراته، ژیمناستیک
💻 نحوه اجرا:
# روش اول: اجرای مستقیم
python hangman_game.py
# روش دوم: اجرا در محیط مجازی (توصیه شده)
python -m venv venv
source venv/bin/activate # در لینوکس/مک
venv\Scripts\activate # در ویندوز
python hangman_game.py
📁 ساختار پروژه:
hangman-game/
├── hangman_game.py # فایل اصلی پروژه
├── README.md
🎨 طراحی بصری:
🔷 هدر:
• آیکون 🔗 (چوبه دار)
• عنوان HANGMAN با رنگ سبز نئون
• آیکون 🧑 (آدمک)
📊 پنل اطلاعات:
• 📋 دستهبندی (کمبوباکس با ۵ گزینه)
• 🏆 امتیاز با رنگ فیروزهای
• 🎮 تعداد بازیها با رنگ نارنجی
• ❤️ تلاشهای باقیمانده با رنگ قرمز
🎨 پنل دار (Hangman):
• کانواس برای رسم چوبه دار
• رسم آدمک به صورت مرحلهای:
- مرحله ۱: سر
- مرحله ۲: بدن
- مرحله ۳: دست چپ
- مرحله ۴: دست راست
- مرحله ۵: پای چپ
- مرحله ۶: پای راست (باخت)
📝 پنل کلمه:
• نمایش کلمه با فونت درشت
• حروف حدس زده شده در جای خود
• خط تیره برای حروف حدس زده نشده
🔤 پنل حروف:
• ۳۲ حرف فارسی در ۴ ردیف
• دکمههای ۱۶x۱۶ با فونت درشت
• غیرفعال شدن حروف پس از حدس
• تغییر رنگ دکمههای استفاده شده
🎮 پنل کنترل:
• 🔄 کلمه جدید (آبی)
• ❓ راهنما (خاکستری)
• 🔄 ریست امتیاز (خاکستری)
📋 نوار وضعیت:
• وضعیت بازی (پیامهای راهنما)
• نمایش حروف حدس زده شده
🎨 پالت رنگی:
• پسزمینه اصلی: #0a0a0f (مشکی)
• کارتها: #1a1a24 (مشکی روشن)
• دکمهها: #2a2a35 (خاکستری تیره)
• دکمه غیرفعال: #4a4a55 (خاکستری)
• اکنت سبز: #00ff88 (عنوان)
• اکنت فیروزهای: #4ecdc4 (امتیاز)
• اکنت نارنجی: #ff9f43 (تعداد بازی)
• اکنت قرمز: #ff6b6b (آدمک)
• متن اصلی: #ffffff (سفید)
• متن ثانویه: #a0a0b0 (خاکستری)
🔧 ویژگیهای فنی:
🖌️ رسم آدمک:
• استفاده از Canvas برای رسم
• رسم چوبه دار ثابت
• رسم آدمک مرحلهای بر اساس remaining_attempts
• رنگ قهوهای برای چوب (#8B4513)
• رنگ قرمز برای آدمک (#FF6B6B)
⌨️ مدیریت حروف:
• ۳۲ حرف فارسی در آرایه ۴×۸
• دیکشنری برای نگهداری دکمهها
• غیرفعال کردن حروف تکراری
• نمایش حروف حدس زده در نوار وضعیت
🎯 منطق بازی:
• انتخاب تصادفی کلمه از دستهبندی
• نمایش کلمه با لیست display_word
• ذخیره حروف حدس زده در set
• کاهش attempts با هر حدس غلط
• بررسی win/lost بعد از هر حدس
🏆 امتیازدهی:
• +۱۰ امتیاز برای هر برد
• شمارش تعداد بازیها
• امکان ریست امتیاز
🚀 نحوه بازی:
۱. اجرای برنامه
۲. دستهبندی مورد نظر را انتخاب کنید (حیوانات، میوهها، کشورها، مشاغل، ورزشها)
۳. روی دکمه "🔄 کلمه جدید" کلیک کنید
۴. یک حرف را از صفحه کلید انتخاب کنید
۵. اگر حرف در کلمه باشد:
• در جای خود نمایش داده میشود
• پیام "✅ حرف درست است!" نمایش داده میشود
۶. اگر حرف در کلمه نباشد:
• یک بخش از آدمک کشیده میشود
• تعداد تلاشها کاهش مییابد
• پیام "❌ حرف غلط!" نمایش داده میشود
۷. بازی را ادامه دهید تا:
• تمام حروف را حدس بزنید (🎉 برد)
• آدمک کامل شود (😢 باخت)
📋 پیامهای بازی:
🎉 برد:
• نمایش پیام تبریک
• "+۱۰ امتیاز برای تو"
• نمایش کلمه کامل
😢 باخت:
• نمایش کلمه اصلی
• پیام تشویق برای تلاش مجدد
✅ حرف درست:
• "✅ حرف درست است!" (رنگ سبز)
❌ حرف غلط:
• "❌ حرف غلط! X تلاش باقیست" (رنگ قرمز)
🎮 کلمه جدید:
• انتخاب کلمه جدید از همان دستهبندی
• ریست attempts به ۶
• فعال کردن دکمهها
⭐ نقاط قوت پروژه:
• کد کاملاً تمیز و کامنتگذاری شده
• رعایت اصول برنامهنویسی شیگرا (OOP)
• ۵ دستهبندی مختلف با ۵۰ کلمه فارسی
• رسم پویای آدمک با Canvas
• رابط کاربری جذاب و رنگارنگ
• سیستم امتیازدهی انگیزشی
• بدون وابستگی به کتابخانههای خارجی
• قابل اجرا روی ویندوز، لینوکس و مک
• حجم کم و عملکرد سریع
• طراحی مدرن با تم تیره
• مناسب برای یادگیری مفاهیم بازیسازی
🎯 موارد استفاده:
• سرگرمی و تمرین لغات فارسی
• یادگیری برنامهنویسی بازی
• پروژه دانشجویی
• آموزش مفاهیم حلقه و شرط
• تمرین کار با Canvas در Tkinter
📌 نکات فنی:
• استفاده از random.choice برای انتخاب کلمه
• نمایش کلمه با لیست و join
• ذخیره حروف حدس زده در set
• رسم آدمک با Canvas primitive shapes
• تغییر وضعیت دکمهها با config
با افتخار از درخت کد
محمدمهدی محمودی
treec.net | mohammadmahdimahmoudi.ir