# Pixel Gamble

[![Python](https://img.shields.io/badge/Python-3.8+-blue.svg)](https://python.org)
[![Pygame](https://img.shields.io/badge/Pygame-2.0+-green.svg)](https://pygame.org)
[![License](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

## Описание проекта

Pixel Gamble — это полнофункциональная 2D action-RPG игра, разработанная на Python с использованием библиотеки Pygame. Проект демонстрирует реализацию классических игровых механик в современной объектно-ориентированной архитектуре.

## Ключевые особенности

### Игровые механики
- **Система боя**: Реализован динамический боевой процесс с различными типами атак
- **ИИ противников**: Интеллектуальные противники с различными поведенческими паттернами  
- **Система прогрессии**: Механика получения опыта и развития персонажа
- **Физика столкновений**: Точная система коллизий с оптимизированными хитбоксами

### Техническая архитектура
- **Модульная структура**: Четкое разделение логики игры по компонентам
- **Система камеры**: Следящая камера с плавным движением
- **Карты уровней**: CSV-основанная система генерации игрового мира
- **Аудиосистема**: Интегрированное воспроизведение звуковых эффектов

## Технологический стек

- **Язык программирования**: Python 3.8+
- **Игровой движок**: Pygame 2.0+
- **Управление ресурсами**: CSV для уровней, PNG для графики
- **Архитектурный паттерн**: Entity-Component-System (ECS)

## Структура проекта

```
pixel_gamble/
├── code/
│   ├── main.py          # Точка входа в приложение
│   ├── game.py          # Основной игровой цикл
│   ├── level.py         # Логика уровней и камеры
│   ├── player.py        # Класс игрока
│   ├── enemy.py         # Система противников
│   ├── entity.py        # Базовый класс сущностей
│   └── data.py          # Конфигурация и утилиты
├── data/
│   ├── map/             # CSV файлы карт
│   ├── textures/        # Графические ресурсы
│   └── audio/           # Звуковые файлы
└── requirements.txt     # Зависимости проекта
```

## Установка и запуск

### Требования к системе
- Python 3.8 или выше
- Pygame 2.0+

### Процесс установки

1. **Клонирование репозитория**:
```bash
git clone https://github.com/DeevEV/pixel_gamble.git
cd pixel_gamble
```

2. **Установка зависимостей**:
```bash
pip install -r requirements.txt
```

3. **Запуск игры**:
```bash
cd code
python main.py
```

## Управление

- **W, A, S, D** — Перемещение персонажа
- **ЛКМ** — Атака
- **ESC** — Выход из игры

## Архитектурные решения

### Система сущностей
Игра построена на базовом классе `Entity`, обеспечивающем унифицированный интерфейс для всех игровых объектов с поддержкой:
- Движения и физики
- Анимационной системы
- Обработки столкновений

### Управление ресурсами
- CSV-файлы для описания структуры уровней
- Модульная система загрузки графических ресурсов
- Централизованное управление игровыми данными

### Производительность
- Оптимизированная система рендеринга с сортировкой по глубине
- Эффективная обработка столкновений
- Управление памятью через группы спрайтов Pygame

## Возможности расширения

Проект спроектирован с учетом масштабируемости:
- Легкое добавление новых типов противников
- Расширяемая система оружия
- Модульная архитектура уровней
- Гибкая система анимаций

## Лицензия

Этот проект распространяется под лицензией MIT.

## Контакты разработчика

**Деев Егор Викторович** - Backend Developer  
- GitHub: [@EDeev](https://github.com/EDeev)
- Email: egor@deev.space
- Telegram: [@Egor_Deev](https://t.me/Egor_Deev)

---

<div align="center">
  <sub>Проект создан в рамках изучения игровой разработки и демонстрации навыков программирования на Python.</sub>
  <p><sub>Создано с ❤️ от вашего дорогого - deev.space ©</sub></p>
</div>
