https://gramywplanszowki.pl/storage/games/1171/files/amazonki-instrukcja.pdf
Prototyp gry online zgodny ze specyfikacją:
- 3-10 graczy
- 2 drużyny: Grabieżcy i Amazonki
- maks. 4 rundy
- mechanika klucza i losowego odkrywania kart
- widoczność kart per gracz
- drużyny losowane z puli ról przy starcie gry
- Lobby z kodem pokoju (tworzenie/dołączanie)
- Synchronizacja stanu gry przez Cloud Firestore
- Rozkład kart zgodny z tabelą dla 3-10 graczy
- Losowanie drużyn z puli zależnej od liczby graczy
- Odkrywanie losowej karty wskazanego gracza przy przekazaniu klucza
- Automatyczne kończenie rund i przetasowanie nieodkrytych kart
- Warunki zwycięstwa zgodnie z dokumentem
| Gracze | Amazonki | Grabieżcy |
|---|---|---|
| 3 | 2 | 2 |
| 4 | 2 | 3 |
| 5 | 2 | 3 |
| 6 | 2 | 4 |
| 7 | 3 | 5 |
| 8 | 3 | 6 |
| 9 | 3 | 6 |
| 10 | 4 | 7 |
Jeśli pula ról ma więcej kart niż liczba graczy, nadmiarowa rola pozostaje nieużyta.
- Utwórz projekt w Firebase Console.
- Włącz Authentication i metodę Anonymous.
- Włącz Cloud Firestore (tryb produkcyjny lub testowy).
- Skopiuj konfigurację web app z Firebase i wklej do pliku app.js w obiekcie FIREBASE_CONFIG.
Wklej jako reguły Firestore:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /rooms/{roomId} {
allow read, write: if request.auth != null;
match /players/{playerId} {
allow read, write: if request.auth != null;
}
}
}
}To są reguły prototypowe. Do produkcji warto dodać dodatkową walidację pól i ról hosta.
Ponieważ to statyczna strona z modułami ES, użyj prostego serwera HTTP:
- Otwórz terminal w folderze projektu.
- Uruchom:
npx serve .- Otwórz adres z terminala (zwykle http://localhost:3000).
- Utwórz repozytorium i wypchnij pliki.
- W ustawieniach repo:
- Settings -> Pages
- Source: Deploy from a branch
- Branch: main (root)
- Po publikacji aplikacja będzie działać jako statyczna strona, a backendem zostaje Firebase.
- index.html - UI aplikacji
- styles.css - styl i responsywność
- app.js - logika gry + Firebase
- README.md - instrukcja uruchomienia
GitHub Pages hostuje tylko frontend. Stan gry, synchronizacja i dane są w Firestore.