stats: síň slávy a kariérní statistiky
- rekordy: nejvyšší tah, nejvyšší konečné skóre, nejrychlejší výhra - kariéra: počet her, výher, úspěšnost, průměrné pořadí, průměr na tah a kolikrát koho postihlo vynulování - do statistik jdou jen dohrané hry, nedohrané a opuštěné se ignorují - celkové skóre počítá SQL stejným pravidlem jako core.Game.totals(), tedy součet tahů po posledním vynulování; testem ověřeno, že se obě cesty shodují - vědomě chybí celkový součet bodů napříč hrami — cílové skóre je u každé hry jiné, metrika by odměňovala jen toho, kdo hrál nejvíc - README se spuštěním a přehledem modulů Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
bcbbede258
commit
d7c63cf98b
9 files changed
+474
-1
No files matched your search
@@ -0,0 +1,56 @@
|
||||
# Počitadlo v kostkách
|
||||
|
||||
Doprovod k fyzickým kostkám: **telefon zapisuje skóre, notebook ukazuje
|
||||
zápisník** a hry se pamatují mezi večery.
|
||||
|
||||
Hráči se napříč hrami poznávají podle jména — Adam ze středečního večera je
|
||||
ten samý Adam jako z minulého měsíce. Žádné účty, žádná hesla.
|
||||
|
||||
## Spuštění
|
||||
|
||||
```bash
|
||||
python -m venv .venv
|
||||
.venv/bin/pip install -r requirements.txt
|
||||
.venv/bin/python web.py
|
||||
```
|
||||
|
||||
Server vypíše adresu, na které poslouchá. Na notebooku otevři `/board`,
|
||||
naskenuj QR kód telefonem a hraj.
|
||||
|
||||
| Proměnná | K čemu je | Výchozí |
|
||||
|---|---|---|
|
||||
| `DICE_DB` | soubor s databází | `dice.db` |
|
||||
| `DICE_PORT` | port | `8000` |
|
||||
| `DICE_HOST` | adresa v QR kódu, když ji nemá hledat sám | zjistí se za běhu |
|
||||
|
||||
Počítá se s domácí sítí — appka nemá přihlašování a kdokoli na stejné WiFi
|
||||
může zapisovat.
|
||||
|
||||
## Pravidla
|
||||
|
||||
Skóre se zadává ručně po tazích, hází se doopravdy. Tři nulové tahy za sebou
|
||||
vynulují hráči skóre; indikátor `x` / `xx` ukazuje, jak blízko k tomu je.
|
||||
Vítěz se vyhlašuje až po dokončeném kole, aby měli všichni stejný počet tahů —
|
||||
při remíze na prvním místě se hraje dál.
|
||||
|
||||
## Co kde je
|
||||
|
||||
| Soubor | Role |
|
||||
|---|---|
|
||||
| `core.py` | pravidla hry, žádný vstup ani výstup |
|
||||
| `storage.py` | SQLite: hráči, hry, tahy |
|
||||
| `stats.py` | síň slávy a kariérní statistiky |
|
||||
| `web.py` | Flask aplikace |
|
||||
| `dice.py` | totéž v terminálu, bez ukládání |
|
||||
|
||||
Terminálová verze zůstává funkční jako záloha:
|
||||
|
||||
```bash
|
||||
.venv/bin/python dice.py
|
||||
```
|
||||
|
||||
## Testy
|
||||
|
||||
```bash
|
||||
.venv/bin/python -m pytest tests/ -v
|
||||
```
|
||||
Reference in new issue
Block a user