togethere.cloud/public_html/disciplines/ping-pong/README.md

145 lines
4.3 KiB
Markdown

# 🎮 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