Огнян обнови решението на 12.11.2022 00:37 (преди около 3 години)
Бих използвал protected имена на атрибути като тези, които не използваш извън класа - self._suit
В този случай random_number може да бъде нула, което няма да афектира тестето. Валидно цепене изисква поне една преместена карта.
В този случай random_number може да бъде нула, което няма да афектира тестето. Валидно цепене изисква поне една преместена карта.
Реално можеш да си спестиш временната променлива:
self.cards = self.cards[random_number:] + self.cards[:random_number]
Това можеш да го подадеш директно на горния ред:
self.players = [Player() for _ in range(number_of_players)]
Ако просто върнеш self.players пак изпълняваш условието ;) Все пак random_player може да е нула, което е частен, но валиден случай. Условието казва "произволен играч", защото няма как да дефинирам нищо конкретно без да ти казвам как да си пазиш играчите.
А защо не просто self.deck.cards.extend(player.get_cards())?
Ако се опасяваш, че ще получиш референция към елемента и искаш да го копираш, просто добави [:] отзад и готово.
Тъй като си наследил Game, възползвай се от неговия инициализатор. Нещата, които правиш тук, вече ги има там.

Тъй като си наследил
Game, възползвай се от неговия инициализатор. Нещата, които правиш тук, вече ги има там.