# 🌻 Plants vs. Zombies — Web Edition Полноценная браузерная реализация культовой игры **Plants vs. Zombies** на чистом HTML5 Canvas и Web Audio API (0 внешних JS-фреймворков и библиотек) с серверной частью на Python и SQLite. --- ## 🎮 Особенности игры - **5 Биомов газона:** - ☀️ **День** (Day) — классический газон с падающим солнцем. - 🌙 **Ночь** (Night) — отсутствие солнца с неба, грибы и могилы. - 🏊 **Бассейн** (Pool) — 6 линий, водные дорожки, кувшинки. - 🌫️ **Туман** (Fog) — ночной бассейн со сложной видимостью. - 🏠 **Крыша** (Roof) — наклонные скаты, цветочные горшки и катапульты. - **Режимы игры:** - 🌿 **Кампания (Приключение):** 25 уровней с прогрессией и наградами. - ⚔️ **Выживание (Survival):** бесконечные флаги с нарастающей сложностью. - 🎳 **Боулинг (Wall-nut Bowling):** мини-игра с конвейерной подачей орехов. - 🧠 **Я, Зомби (I, Zombie):** игра за сторону зомби против обороны растений. - 🎲 **Садовый Рогалик (Roguelike):** драфт реликвий, случайные этажи и баффы. - 👑 **Битва с Боссом & Boss Rush:** доктор Зомбосс на боевом роботе Зомботе. - **Пассивные механики и прокачка:** - 🧪 **Сад-Мастерская:** 3-уровневая прокачка растений и 5 пассивных перков. - 🪴 **Дзен-Сад:** выращивание ростков, сбор монет и улитка Стинки. - 📖 **Пригородный Альманах:** справочник всех 13 растений и 8 зомби. - 🏆 **Зал Достижений:** система трофеев и наград. - 🌳 **Древо Мудрости:** прокачка высоты и открытие скрытых чит-кодов. - 🎨 **Темы оформления:** Классическая, Киберпанк, Ретро 8-bit, Зима. - **Серверная часть и профили:** - 👤 **Система аккаунтов и гостевой режим** (SQLite + REST API). - 💾 **Автоматическая синхронизация сохранений** и прогресса на сервере. - 🐛 **Интегрированная система баг-репортов** и обратной связи. - 📱 **PWA:** поддержка автономной игры (Offline Service Worker). --- ## 📁 Структура проекта ```text ├── game/ # Frontend игры │ ├── index.html # Главный HTML-документ │ ├── css/style.css # Стили и адаптивный UI │ ├── js/ │ │ ├── main.js # Точка входа │ │ ├── game.js # Игровой движок (GameEngine) │ │ ├── entities/ # Сущности (растения, зомби, снаряды) │ │ ├── systems/ # Игровые системы (экономика, волны, комбат, сад и т.д.) │ │ └── utils/ # Аудио, тест-API, спрайты │ └── manifest.json # PWA манифест ├── scripts/ # Backend & скрипты │ ├── feedback_server.py # HTTP REST сервер (Auth & Bug Reports) │ ├── db.py # Менеджер SQLite базы данных │ └── test_game.py # Автономный тест-раннер (235+ тестов) ├── nginx/ # Конфигурации Nginx ├── docker-compose.yml # Развертывание Nginx в Docker └── .env.example # Пример переменных окружения ``` --- ## 🚀 Быстрый старт ### Требования - Python 3.10+ - Nginx / Docker (опционально) ### Запуск бэкенда ```bash python3 scripts/feedback_server.py ``` Сервер запустится на порту `8001` и автоматически создаст базу данных `data/pvz.db`. ### Запуск тестов ```bash python3 scripts/test_game.py ``` --- ## 📜 Лицензия Open Source. Создано в рамках проекта Qpid Web Gaming.