Станимир обнови решението на 15.04.2013 11:32 (преди над 11 години)
# Редакция: Закоментираната част не се отнася до твоето решение:
#
# По-добре си направи изключенията така:
# MyException(Exception):
# pass
# и ги възбуждай така, ако настояваш за съобщение:
# raise MyException('my exceptional message')
Това вече си е за теб:
__str__
може да бъде много по-четима и прегледна.
str.format
е един добър инструмент за постигането на това.
is_game_over
има доволно количество повторения, които могат лесно да се избегнат чрез предварително описване на всички случаи, в който извършваш еднотипни проверки.
Коментарите в метод говорят, че той е зле написан. Неграмотно написаните коментари също говорят доста зле за автора си.
Тук също имаш повторение: if value == 'X': self.deck[position[0]][position[1]] = 1 self.is_game_over() self.next_turn_value = 2 elif value == 'O': self.deck[position[0]][position[1]] = 2 self.is_game_over() self.next_turn_value = 1 Помисли как да го избегнеш.
Ако си дефинирам изключенията, по начина по който, ти предлагаш
MyException(Exception): pass
получавам
Traceback (most recent call last): File "/Users/stanimirnikolov/Dropbox/Documents/FMI/Python/Fourth homework/make-file.py", line 1, in import solution File "/Users/stanimirnikolov/Dropbox/Documents/FMI/Python/Fourth homework/solution.py", line 4 InvalidValue(Exception): ^ SyntaxError: invalid syntax
Така че не мисля, че е много добра идея...
Извинявам се. Явно съм гледал друго решение като съм почвал да пиша коментар към твоето(тази част точно ми се наложи да я copy-paste-вам на доста места). Объркването е по моя вина. Нямаш проблем с дефинирането на изключенията. Като изключим това, останалото си е за твоето решения.
Отново: извинявам се за объркването.