Navazuje na bodování z předchozího PR a přidává podporu více hráčů. Na začátku se zadají jména, hráči se pak střídají po tazích a skóre se sčítá zvlášť pro každého. Součástí jsou i dřív placeholderové akce [h] (hodit znovu) a [k] (ukončit tah) a ošetření bustu a „hot dice“.
Změny
Nové globály
players – jméno hráče → seznam skóre po jednotlivých tazích,
aggr – jméno → celkový součet,
pointer – hráč právě na tahu,
first – první hráč (pro zacyklení pořadí),
h_bool – zda je aktuálně povoleno hodit znovu.
Nová add_players(iter=False) – rekurzivní zadávání jmen na startu hry. První hráč je povinný, [x] ukončí zadávání (až po prvním hráči), ošetřena prázdná a duplicitní jména.
evaluate() rozšířeno
implementace [h] – hodit znovu; povoleno jen po vyhodnocení aspoň jedné bodující kombinace (řízeno h_bool), jinak hláška. Reroll vrací ("count", count, "").
implementace [k] – ukončit tah; uloží score do players[pointer], aktualizuje aggr, vynuluje score a předá tah přes next_player().
vnořená next_player() – posune pointer na dalšího hráče, na konci se zacyklí zpět na first.
nová chyba ER03 pro neplatný vstup.
po bodující kombinaci se nastaví h_bool = False (odemkne reroll).
oprava regexu na raw string r"^\d+$".
game() rozšířeno
výpis „Na tahu je {pointer} ({aggr[pointer]})“,
bust (count != 0): vynuluje skóre tahu a automaticky předá tah dál (přes evaluate("k", …)),
hot dice: count == 0 → reset na 6,
ER03 přidáno do zpracování chybových hlášek + clear() před vstupem.
### Souhrn
Navazuje na bodování z předchozího PR a přidává podporu více hráčů. Na začátku se zadají jména, hráči se pak střídají po tazích a skóre se sčítá zvlášť pro každého. Součástí jsou i dřív placeholderové akce `[h]` (hodit znovu) a `[k]` (ukončit tah) a ošetření bustu a „hot dice“.
### Změny
- **Nové globály**
- `players` – jméno hráče → seznam skóre po jednotlivých tazích,
- `aggr` – jméno → celkový součet,
- `pointer` – hráč právě na tahu,
- `first` – první hráč (pro zacyklení pořadí),
- `h_bool` – zda je aktuálně povoleno hodit znovu.
- **Nová `add_players(iter=False)`** – rekurzivní zadávání jmen na startu hry. První hráč je povinný, `[x]` ukončí zadávání (až po prvním hráči), ošetřena prázdná a duplicitní jména.
- **`evaluate()` rozšířeno**
- implementace **`[h]`** – hodit znovu; povoleno jen po vyhodnocení aspoň jedné bodující kombinace (řízeno `h_bool`), jinak hláška. Reroll vrací `("count", count, "")`.
- implementace **`[k]`** – ukončit tah; uloží `score` do `players[pointer]`, aktualizuje `aggr`, vynuluje `score` a předá tah přes `next_player()`.
- vnořená **`next_player()`** – posune `pointer` na dalšího hráče, na konci se zacyklí zpět na `first`.
- nová chyba **ER03** pro neplatný vstup.
- po bodující kombinaci se nastaví `h_bool = False` (odemkne reroll).
- oprava regexu na raw string `r"^\d+$"`.
- **`game()` rozšířeno**
- výpis „Na tahu je {pointer} ({aggr[pointer]})“,
- **bust** (`count != 0`): vynuluje skóre tahu a automaticky předá tah dál (přes `evaluate("k", …)`),
- **hot dice**: `count == 0` → reset na 6,
- ER03 přidáno do zpracování chybových hlášek + `clear()` před vstupem.
- **`main()`** volá `add_players()` před prvním hodem.
Closes #1, closes #2, closes #5, closes #6.
david-spacil
added this to the v0.1.0 milestone 2026-06-23 22:42:46 +02:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Souhrn
Navazuje na bodování z předchozího PR a přidává podporu více hráčů. Na začátku se zadají jména, hráči se pak střídají po tazích a skóre se sčítá zvlášť pro každého. Součástí jsou i dřív placeholderové akce
[h](hodit znovu) a[k](ukončit tah) a ošetření bustu a „hot dice“.Změny
players– jméno hráče → seznam skóre po jednotlivých tazích,aggr– jméno → celkový součet,pointer– hráč právě na tahu,first– první hráč (pro zacyklení pořadí),h_bool– zda je aktuálně povoleno hodit znovu.add_players(iter=False)– rekurzivní zadávání jmen na startu hry. První hráč je povinný,[x]ukončí zadávání (až po prvním hráči), ošetřena prázdná a duplicitní jména.evaluate()rozšířeno[h]– hodit znovu; povoleno jen po vyhodnocení aspoň jedné bodující kombinace (řízenoh_bool), jinak hláška. Reroll vrací("count", count, "").[k]– ukončit tah; uložíscoredoplayers[pointer], aktualizujeaggr, vynulujescorea předá tah přesnext_player().next_player()– posunepointerna dalšího hráče, na konci se zacyklí zpět nafirst.h_bool = False(odemkne reroll).r"^\d+$".game()rozšířenocount != 0): vynuluje skóre tahu a automaticky předá tah dál (přesevaluate("k", …)),count == 0→ reset na 6,clear()před vstupem.main()voláadd_players()před prvním hodem.Closes #1, closes #2, closes #5, closes #6.