# 🎮 Neon Ping-Pong Game

Nowoczesna gra ping-pong z neonowym stylem, zaprojektowana do obsługi setek tysięcy graczy.

## 📁 Struktura Projektu

```
ping-pong/
├── index.php              # Główny plik HTML + PHP
├── sounds/                # Pliki dźwiękowe
│   ├── 1.mp3             # Dźwięk zderzenia #1
│   ├── 2.mp3             # Dźwięk zderzenia #2
│   ├── 3.mp3             # Dźwięk zderzenia #3
│   ├── 4.mp3             # Dźwięk zderzenia #4
│   ├── 5.mp3             # Dźwięk zderzenia #5
│   ├── won.mp3           # Dźwięk wygranej
│   └── gameOver.mp3      # Dźwięk przegranej
└── js/                    # Moduły JavaScript
    ├── game.js           # Główna logika gry
    ├── bot-ai.js         # AI bota (3 poziomy trudności)
    ├── audio-manager.js  # Zarządzanie dźwiękami
    └── ui-manager.js     # Zarządzanie interfejsem
```

## 🎯 Funkcje

### Dostępne:
- ✅ **Tryb Bot - Łatwy**: Graj przeciwko AI na łatwym poziomie
- ✅ **Neonowy design**: Ciemny motyw z efektami świetlnymi
- ✅ **System punktacji**: Pierwsza strona do 10 punktów wygrywa
- ✅ **Efekty dźwiękowe**: Losowe dźwięki przy zderzeniach
- ✅ **Płynne animacje**: Nowoczesny wygląd i odczucia

### W przygotowaniu:
- 🚧 **Tryb Online**: Graj przeciwko innym graczom przez internet
- 🚧 **Tryb Bot - Średni**: AI na średnim poziomie trudności
- 🚧 **Tryb Bot - Trudny**: AI na trudnym poziomie trudności

## 🔧 Architektura Modułowa

### `game.js` - Główna Logika Gry
```javascript
class PingPongGame {
    - Zarządza główną pętlą gry
    - Obsługuje kolizje i fizykę
    - Renderuje elementy gry (paletki, piłka, siatka)
    - Śledzi wynik
}
```

### `bot-ai.js` - Sztuczna Inteligencja
```javascript
class BotAI {
    - 3 poziomy trudności (easy, medium, hard)
    - Predykcja ruchu piłki (dla wyższych poziomów)
    - Konfigurowalna prędkość i accuracy
    - Opóźnienie reakcji dla realizmu
}
```

### `audio-manager.js` - Menedżer Dźwięków
```javascript
class AudioManager {
    - Odtwarzanie losowych dźwięków zderzeń
    - Dźwięki wygranej/przegranej
    - Kontrola głośności (efekty/muzyka)
    - Cache audio dla lepszej wydajności
}
```

### `ui-manager.js` - Menedżer Interfejsu
```javascript
class UIManager {
    - Zarządzanie menu (główne, wybór trudności)
    - Modalne okna (wygrana, przegrana, "w przygotowaniu")
    - Aktualizacja wyniku
    - Przełączanie widoków
}
```

## 🎮 Sterowanie

- **W** lub **Strzałka w górę**: Ruch paletki w górę
- **S** lub **Strzałka w dół**: Ruch paletki w dół

## 🚀 Skalowalność

Struktura jest przygotowana na:
- **Tryb online**: Dodaj moduł `network-manager.js` do obsługi WebSocket
- **Ranking**: Dodaj moduł `leaderboard.js` do śledzenia najlepszych wyników
- **Więcej poziomów trudności**: Łatwa konfiguracja w `bot-ai.js`
- **Power-upy**: Dodaj moduł `powerups.js` dla dodatkowych funkcji
- **Tournamnety**: System turniejów dla wielu graczy

## 📝 Dodawanie Nowych Funkcji

### Dodanie nowego poziomu trudności bota:
```javascript
// W bot-ai.js
botAI.setCustomDifficulty('expert', {
    speed: 9,
    reactionDelay: 2,
    accuracy: 0.98,
    predictionEnabled: true,
    predictionStrength: 0.95
});
```

### Dodanie nowego dźwięku:
```javascript
// W audio-manager.js
audioManager.playSound('newSound.mp3', 0.5);
```

## 🔊 Instalacja Dźwięków

Dodaj następujące pliki do folderu `sounds/`:
1. `1.mp3` - `5.mp3`: Krótkie dźwięki zderzeń (0.1-0.3s)
2. `won.mp3`: Dźwięk wygranej (~2-3s)
3. `gameOver.mp3`: Dźwięk przegranej (~2-3s)

## 🌐 Przyszły Tryb Online

Struktura przygotowana na implementację:
```javascript
// Przyszły network-manager.js
class NetworkManager {
    - WebSocket połączenie z serwerem
    - Synchronizacja stanu gry
    - Matchmaking
    - Chat między graczami
}
```

## 💡 Performance

- Modułowa architektura = łatwiejsze debugowanie
- Separacja logiki = lepsze cache przeglądarki
- Gotowe na load balancing dla trybu online
- Optymalizacja dla wielu równoczesnych sesji

## 📞 Kontakt

kontakt: wspolpraca@togethere.cloud
