بازی چکرز - پروژه پایتون با Tkinter
♟️ بازی چکرز (دام) - پروژه استراتژیک پایتون
📊 ویژگیهای کلیدی پروژه:
• ♟️ صفحه ۸x۸ با خانههای قهوهای تیره و روشن
• 🔴 مهرههای قرمز (بازیکن ۱) در پایین صفحه
• ⚫ مهرههای مشکی (بازیکن ۲) در بالای صفحه
• 👑 تبدیل سرباز به شاه با رسیدن به انتهای صفحه
• ✨ پرش زنجیرهای (خوردن چند مهره پشت سر هم)
• 🎯 تشخیص حرکتهای مجاز با نقاط سبز
• 📊 شمارش مهرههای هر بازیکن
• 📋 پنل اطلاعات کامل با راهنما
• 🔄 شروع مجدد بازی با یک کلیک
• 🏆 تشخیص برنده با پیام مناسب
• 🎨 رنگبندی حرفهای و جذاب
• ⌨️ کنترل کامل با موس
🔧 مشخصات فنی پروژه:
• زبان برنامهنویسی: Python 3.8+
• کتابخانههای استفاده شده: tkinter, messagebox
• حجم فایل: ۶۲ کیلوبایت
• تعداد خطوط کد: ۸۵۰+ خط کد تمیز و کامنتگذاری شده
• ساختار: برنامهنویسی شیگرا (OOP) با کلاس CheckersGame
• معماری ماژولار با توابع مجزا
• مدیریت خطاهای پیشرفته
🎮 قوانین بازی:
🎨 صفحه بازی:
• ۸x۸ خانه (۶۴ خانه)
• خانههای تیره (#8B4513) محل قرارگیری مهرهها
• خانههای روشن (#DEB887) غیرقابل بازی
• اندازه هر خانه: ۷۰x۷۰ پیکسل
🔴 مهرههای بازیکن ۱ (قرمز):
• سرباز قرمز: #E74C3C
• شاه قرمز: #F39C12 (طلایی)
• شروع: ۱۲ سرباز در ردیفهای ۵،۶،۷
⚫ مهرههای بازیکن ۲ (مشکی):
• سرباز مشکی: #2C3E50 (آبی تیره)
• شاه مشکی: #F1C40F (زرد)
• شروع: ۱۲ سرباز در ردیفهای ۰،۱،۲
📊 سیستم شمارهگذاری مهرهها:
• ۰: خانه خالی
• ۱: سرباز قرمز
• ۲: سرباز مشکی
• ۳: شاه قرمز
• ۴: شاه مشکی
• ۱-: خانه روشن (غیرقابل بازی)
🎯 قوانین حرکت:
👟 حرکت عادی:
• سرباز قرمز: فقط به بالا (ردیف کمتر)
• سرباز مشکی: فقط به پایین (ردیف بیشتر)
• شاه: هر ۴ جهت
• یک خانه به صورت قطری
✨ پرش (خوردن):
• دو خانه به صورت قطری
• وجود مهره حریف در خانه وسط
• خانه مقصد خالی باشد
• اجباری بودن پرش در صورت وجود
👑 تبدیل به شاه:
• سرباز قرمز به ردیف ۰ برسد → شاه قرمز
• سرباز مشکی به ردیف ۷ برسد → شاه مشکی
⛓️ پرش زنجیرهای:
• پس از یک پرش، اگر پرش دیگر ممکن باشد
• ادامه نوبت تا پایان پرشها
💻 نحوه اجرا:
# روش اول: اجرای مستقیم
python checkers.py
# روش دوم: اجرا در محیط مجازی (توصیه شده)
python -m venv venv
source venv/bin/activate # در لینوکس/مک
venv\Scripts\activate # در ویندوز
python checkers.py
📁 ساختار پروژه:
checkers-game/
├── checkers.py # فایل اصلی پروژه
├── README.md
🎨 طراحی بصری:
🖼️ صفحه بازی:
• خانههای تیره و روشن با حاشیه خاکستری
• مهرههای قرمز و مشکی با سایه
• شاهها با تاج طلایی
📊 پنل اطلاعات (سمت راست):
• عنوان "♟️ CHECKERS ♟️" طلایی
• نمایش نوبت با رنگ مهره
• شمارش مهرههای هر بازیکن
• راهنمای کامل با آیکون
• دکمه شروع مجدد قرمز
• وضعیت بازی
🟢 نشانگرها:
• خانه انتخاب شده: حاشیه زرد ضخیم
• حرکتهای مجاز: دایره سبز با هاشور
🎨 پالت رنگی:
• پسزمینه اصلی: #2C3E50 (آبی تیره)
• پنل اطلاعات: #34495E (آبی روشنتر)
• خانه تیره: #8B4513 (قهوهای)
• خانه روشن: #DEB887 (بژ)
• مهره قرمز: #E74C3C
• مهره مشکی: #2C3E50
• شاه قرمز: #F39C12 (طلایی)
• شاه مشکی: #F1C40F (زرد)
• انتخاب: #F1C40F (زرد)
• حرکت مجاز: #2ECC71 (سبز)
• متن راهنما: سفید
⌨️ کنترلهای بازی:
🖱️ کلیک چپ روی مهره: انتخاب مهره
🖱️ کلیک روی خانه سبز: حرکت به آن خانه
🖱️ کلیک روی خانه دیگر: لغو انتخاب
🚀 نحوه بازی:
۱. اجرای برنامه
۲. صفحه بازی با چیدمان استاندارد نمایش داده میشود
۳. نوبت با بازیکن قرمز است
۴. روی مهره خود کلیک کنید:
• خانه انتخاب شده زرد میشود
• حرکتهای مجاز با دایره سبز نمایش داده میشود
۵. روی یکی از خانههای سبز کلیک کنید:
• حرکت عادی: یک خانه قطری
• پرش: دو خانه قطری و حذف مهره حریف
۶. اگر پرش کردید و پرش دیگری ممکن است:
• نوبت شما ادامه مییابد
• میتوانید پرش بعدی را انجام دهید
۷. پس از پایان پرشها، نوبت به حریف میرسد
۸. با رسیدن سرباز به انتهای صفحه:
• سرباز به شاه تبدیل میشود
• شاه میتواند در ۴ جهت حرکت کند
۹. بازی تا جایی ادامه مییابد که:
• همه مهرههای یک بازیکن خورده شوند
• بازیکنی حرکتی نداشته باشد
۱۰. برنده با پیام مناسب اعلام میشود
🔄 منطق بازی:
🎯 تشخیص حرکتهای مجاز:
• بررسی جهتهای حرکت بر اساس نوع مهره
• اولویت با پرشها
• اگر پرش وجود دارد، حرکت عادی مجاز نیست
✨ تشخیص پرش:
• محاسبه خانه میانی
• بررسی وجود مهره حریف
• بررسی خالی بودن خانه مقصد
👑 تبدیل به شاه:
• بررسی رسیدن سرباز قرمز به ردیف ۰
• بررسی رسیدن سرباز مشکی به ردیف ۷
• تغییر مقدار مهره به ۳ یا ۴
⛓️ پرش زنجیرهای:
• ذخیره حالت just_jumped
• محاسبه مجدد حرکتها از مکان جدید
• ادامه نوبت تا پایان پرشها
🏆 تشخیص پایان بازی:
• شمارش مهرههای باقیمانده
• بررسی وجود حرکت برای بازیکن فعلی
• نمایش پیام برنده
⭐ نقاط قوت پروژه:
• کد کاملاً تمیز و کامنتگذاری شده
• رعایت اصول برنامهنویسی شیگرا (OOP)
• قوانین کامل چکرز
• پرش زنجیرهای
• تبدیل به شاه
• پنل اطلاعات حرفهای
• راهنمای کامل داخل بازی
• بدون وابستگی به کتابخانههای خارجی
• قابل اجرا روی ویندوز، لینوکس و مک
• حجم کم و عملکرد عالی
• طراحی جذاب و کاربرپسند
🎯 موارد استفاده:
• بازی دو نفره سرگرمکننده
• یادگیری برنامهنویسی بازی
• پروژه دانشجویی
• آموزش مفاهیم ماتریس و آرایه دوبعدی
• تمرین کار با گرید و مختصات
• آشنایی با الگوریتمهای بازی
📌 نکات فنی:
• استفاده از ماتریس برای ذخیره صفحه
• اعداد برای تشخیص نوع مهره
• تشخیص برخورد با محاسبات مختصات
• محاسبه حرکتهای مجاز با حلقه
• پرش زنجیرهای با flag just_jumped
• بهروزرسانی خودکار شمارندهها
با افتخار از درخت کد
محمدمهدی محمودی
treec.net | mohammadmahdimahmoudi.ir