feature: multiplayer – registrace hráčů, střídání tahů a agregace skóre #9
Reference in New Issue
Block a user
Delete Branch "feature/hraci"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
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.