feature: bodování hodů a interaktivní herní smyčka #7
Reference in New Issue
Block a user
Delete Branch "feature/vyber-kostek"
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
Původní program jen hodil 6 kostkami a vypsal je. Tento PR z toho dělá hratelnou hru v kostky s bodováním – po každém hodu si hráč vybírá kostky k ponechání, ty se vyhodnotí podle bodovací tabulky a pokračuje se výběrem dalších ze zbývajících kostek.
Změny
hodnoty.csv– bodovací tabulka (kombinace → body), načítá se při startu do slovníkuhodnoty. Pokrývá jednotlivé kostky (1 = 100, 5 = 50), N-tice stejných hodnot (tři 1 = 1000 … šest 1 = 8000) a postupky (12345 = 750, 123456 = 1500).throw(count) -> strvrací spojený řetězec (např."351264"), doplněny type hinty.show_throw(throw: str)si vstup interně rozloží na znaky a vykreslí stejný „pretty“ výpis jako dřív.evaluate(inp, count, throw)– zpracování tahu hráče:^\d+$), kontrola počtu (ER01) a rozsahu pozic (ER02),pick) a zbývající (old_throw),eval_score()do globálníhoscore,game().check_value(throw)– zjišťuje, zda hod obsahuje aspoň jednu bodovatelnou kombinaci.game()→game(data: tuple)– přepsáno na stavový automat:("count", count, throw)= běžný tah (vygeneruj/zobraz hod, zeptej se na akci),("msg", kód, …)= chybová hláška + opakování vstupu.main()startuje hru jako("count", 6, "").typing.Any,re,csv.Closes #3, closes #4