این پروژه یک پیادهسازی کامل، ساختاریافته و شیءگرا از بازی محبوب Plants vs Zombies با استفاده از زبان برنامهنویسی پایتون و کتابخانه Pygame است. هدف اصلی این پروژه بازآفرینی مکانیزمهای کلیدی بازیهای دفاع از قلعه (Tower Defense) در یک محیط دسکتاپ ماژولار است تا هم از نظر معماری کد و هم از نظر منطق اجرایی، استانداردهای لازم را رعایت کند.
برای اجرای موفقیتآمیز این بازی بر روی سیستم خود به موارد زیر نیاز دارید:
- پایتون (نسخه ۳ به بالا)
- کتابخانه گرافیکی و صوتی Pygame
برای نصب کتابخانه Pygame میتوانید دستور زیر را در ترمینال یا خط فرمان سیستم خود وارد کنید:
pip install pygame
برای اجرای برنامه، ترمینال را در پوشه اصلی پروژه باز کرده و دستور زیر را اجرا کنید:
python src/main.py
(تصاویر بازی خود را در پوشه Assets قرار داده و مسیر آنها را در خطوط زیر جایگزین کنید)
تمام فایلهای گرافیکی، تصاویر کارتها، اسپرایتهای مربوط به گیاهان و زامبیها، آیکونها و فایلهای صوتی بازی در پوشه Assets قرار دارند و به صورت پویا توسط کدهای سیستم رندرینگ مدیریت و بارگذاری میشوند.
- معماری ماژولار و ساختاریافته: تفکیک کامل کدهای مربوط به گیاهان، زامبیها، سیستمهای برخورد و موجودات در پوشه
srcبه صورت فایلهای مجزا. - سیستم مدیریت امواج زامبیها (Wave Manager): کنترل منطق ورود، اسپاون و روند حرکت زامبیها به سمت صفحه بازی و خط دفاعی بازیکن.
- سیستم امتیاز و خورشید (Sun Manager): قابلیت تولید، ردیابی و مدیریت انرژی خورشید برای کاشت و استقرار گیاهان در زمین بازی.
- سیستم کارتها و انتخاب گیاهان: انتخاب و چیدمان کارتها در بالای صفحه برای جایگذاری دفاعی گیاهان در سلولهای زمین بازی.
- گرافیک و رابط کاربری پایه: پیادهسازی صفحات منو، بنر وضعیت بازی و مدیریت المانهای گرافیکی صفحه با استفاده از قابلیتهای Pygame.
برای توسعه و نگهداری بهتر پروژه، ساختار کدهای برنامه به ماژولهای زیر تقسیم شده است:
main.py: نقطه ورود اصلی به برنامه، راهاندازی پنجره بازی و مدیریت حلقه اصلی بازی (Game Loop).board.pyوcell.py: پیادهسازی شبکه (Grid) و خانههای زمین بازی برای مدیریت دقیق موقعیت جایگذاری گیاهان.plant.pyوzombie.py: تعریف کلاسهای پایه و ویژگیهای موجودات بازی شامل میزان جان (HP)، سیستم آسیب و رفتار حرکتی یا دفاعی.sun.py: پیادهسازی منطق تولید امتیاز خورشید و مدیریت کلیک یا جمعآوری آنها.hud.pyوmenu.py: مدیریت نمایشگرهای روی صفحه، وضعیت امتیازات و منوهای هدایتکننده بازی.
- علیاصغر توسلپناهی: پیادهسازی ساختار کلاسها، منطق هسته بازی، سیستم شبکهای زمین بازی (Board) و مدیریت برخوردها.
- علیرضا قراباغی: پیادهسازی سیستم کارتها، مدیریت رندرینگ گرافیکی، هماهنگی Assetها و فایلهای رابط کاربری.










