Решение на От ливадите до Лас Вегас (и назад) от Веселина Велкова
Към профила на Веселина Велкова
Резултати
- 7 точки от тестове
- 0 бонус точки
- 7 точки общо
- 10 успешни тест(а)
- 5 неуспешни тест(а)
Код
Лог от изпълнението
.E......EEE...E ====================================================================== ERROR: test_correct_direction_and_players_deal (test.TestBelot) Test dealing with correct direction and players. ---------------------------------------------------------------------- Traceback (most recent call last): File "/storage/deedee/data/rails/pyfmi-2022/releases/20221115154139/lib/language/python/runner.py", line 67, in thread raise result AttributeError: 'Deck' object has no attribute 'pop' ====================================================================== ERROR: test_collecting_cards_before_dealing (test.TestGame) Test collecting the cards before a new deal. ---------------------------------------------------------------------- Traceback (most recent call last): File "/storage/deedee/data/rails/pyfmi-2022/releases/20221115154139/lib/language/python/runner.py", line 67, in thread raise result AttributeError: 'Deck' object has no attribute 'pop' ====================================================================== ERROR: test_dealing_ltr (test.TestGame) Test dealing the cards left to right. ---------------------------------------------------------------------- Traceback (most recent call last): File "/storage/deedee/data/rails/pyfmi-2022/releases/20221115154139/lib/language/python/runner.py", line 67, in thread raise result AttributeError: 'Deck' object has no attribute 'pop' ====================================================================== ERROR: test_dealing_rtl (test.TestGame) Test dealing the cards right to left. ---------------------------------------------------------------------- Traceback (most recent call last): File "/storage/deedee/data/rails/pyfmi-2022/releases/20221115154139/lib/language/python/runner.py", line 67, in thread raise result IndexError: tuple index out of range ====================================================================== ERROR: test_correct_direction_and_players_deal (test.TestPoker) Test dealing with correct direction and players. ---------------------------------------------------------------------- Traceback (most recent call last): File "/storage/deedee/data/rails/pyfmi-2022/releases/20221115154139/lib/language/python/runner.py", line 67, in thread raise result AttributeError: 'Deck' object has no attribute 'pop' ---------------------------------------------------------------------- Ran 15 tests in 0.168s FAILED (errors=5)
История (3 версии и 9 коментара)
Веселина обнови решението на 15.11.2022 08:18 (преди над 2 години)
Бих използвал protected имена на атрибути като тези, които не използваш извън класа - self._suit
Знам, че някои линтери се оплакват от това, но спокойно можеш да сложиш този празен list
горе вместо None
.
Ще е по-четимо, ако извадиш двата списъка и ги дефинираш на отделни редове.
Ако предварително определиш списъка с всички карти, които трябва да инициализираш, няма да е нужно да обхождаш картите два пъти (един път да ги създадеш и още един път да ги филтрираш). И така работи, така че просто препоръка.
self.filtered_deck = self.filtered_deck[number:] + self.filtered_deck[:number]
прави същото.
Защо пък private
? Реално не е private, а дори да е, не виждам защо това трябва да е част от името. Просто deck
е по-добре.
self.private_deck.extend(list_of_cards)
прави същото.
Не е нужно при всяко питане за играчи да ги генерираш наново. Нужно е, обаче, да ги генерираш автоматично при инстанциране. Явно не си разбрала условието напълно. Този метод се използва, за да можем ние да видим играчите ти, а не за да ги създадем.
player
ще бъде конкретен играч от тип Player
, а не индекс. Не можеш да слайсваш с него.
Бих използвал protected имена на атрибути като тези, които не използваш извън класа -
self._suit
Ако предварително определиш списъка с всички карти, които трябва да инициализираш, няма да е нужно да обхождаш картите два пъти (един път да ги създадеш и още един път да ги филтрираш). И така работи, така че просто препоръка.
Не е нужно при всяко питане за играчи да ги генерираш наново. Нужно е, обаче, да ги генерираш автоматично при инстанциране. Явно не си разбрала условието напълно. Този метод се използва, за да можем ние да видим играчите ти, а не за да ги създадем.