Skip to content
 
 

Repository files navigation

مستندات پروژه بازی Plants vs. Zombies

توضیحات پروژه

این پروژه یک پیاده‌سازی کامل، ساختاریافته و شیءگرا از بازی محبوب Plants vs Zombies با استفاده از زبان برنامه‌نویسی پایتون و کتابخانه Pygame است. هدف اصلی این پروژه بازآفرینی مکانیزم‌های کلیدی بازی‌های دفاع از قلعه (Tower Defense) در یک محیط دسکتاپ ماژولار است تا هم از نظر معماری کد و هم از نظر منطق اجرایی، استانداردهای لازم را رعایت کند.


پیش‌نیازها

برای اجرای موفقیت‌آمیز این بازی بر روی سیستم خود به موارد زیر نیاز دارید:

  • پایتون (نسخه ۳ به بالا)
  • کتابخانه گرافیکی و صوتی Pygame

نحوه نصب پیش‌نیازها

برای نصب کتابخانه Pygame می‌توانید دستور زیر را در ترمینال یا خط فرمان سیستم خود وارد کنید: pip install pygame


نحوه اجرا

برای اجرای برنامه، ترمینال را در پوشه اصلی پروژه باز کرده و دستور زیر را اجرا کنید: python src/main.py


اسکرین‌شات‌هایی از محیط بازی

(تصاویر بازی خود را در پوشه Assets قرار داده و مسیر آن‌ها را در خطوط زیر جایگزین کنید)

محیط اصلی بازی منوی بازی یا شکست/پیروزی


پوشه Assetها و منابع گرافیکی

تمام فایل‌های گرافیکی، تصاویر کارت‌ها، اسپرایت‌های مربوط به گیاهان و زامبی‌ها، آیکون‌ها و فایل‌های صوتی بازی در پوشه 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ها و فایل‌های رابط کاربری.

محیط بازی ۱ محیط بازی ۲ محیط بازی ۳ محیط بازی ۴ محیط بازی ۵ محیط بازی ۶ محیط بازی ۷ محیط بازی ۸ محیط بازی ۹

About

ap_1404-practice_two-AP_1404_PRACTICE_TWO created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages