refactor: převod rekurze na smyčky v game() a add_players() #12
Reference in New Issue
Block a user
Delete Branch "fix/loop"
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
Nahrazuje rekurzivní „volej sám sebe pro další krok“ v
game()aadd_players()iterativnímiwhilesmyčkami. Chování zůstává stejné, ale zásobník volání už neroste s délkou hry → odpadá rizikoRecursionErroru dlouhých partií. Při refaktoruadd_players()je navíc doplněna validace číselného vstupu u finálního skóre.Změny
game()– tělo zabaleno dowhile True. Rekurzivní volánígame(data)odstraněna; následující stav se přenáší přesdatado další iterace. Terminační větve ("win"a neznámá zpráva) ukončenybreakem.add_players()– přepsáno z rekurze na třiwhilesmyčky: (1) povinný první hráč, (2) další hráči až do[x], (3) finální skóre. Odpadl parametriter.globalzúženo napointer, first, final_score(doplayers/aggrse jen přidávají klíče, rebinding není potřeba).try/except ValueError) a dotaz se zopakuje, místo aby program spadl.Closes #11.