Решение на Морски шах от Нели Хатева
Резултати
- 6 точки от тестове
- 0 бонус точки
- 6 точки общо
- 8 успешни тест(а)
- 0 неуспешни тест(а)
Код
Лог от изпълнението
........ ---------------------------------------------------------------------- Ran 8 tests in 0.097s OK
История (9 версии и 5 коментара)
Нели обнови решението на 08.04.2013 16:35 (преди над 11 години)
Нели обнови решението на 08.04.2013 16:39 (преди над 11 години)
по-добрата практика е съобщението при изключение е да се подава като аргумент:
raise NotYourTurn("It's not your turn!")
Ако наследяваш Exception не е нужно да добавяш message
атрибут. Неговия конструктор има атрибут args
и str(exception)
връща първият аргумент подаден на конструктора.
Накратко -- по-добре направи изключенията си така:
class NotYourTurn(Exception):
pass
и ги извиквай както ти показах.
Изпускаш случаи, в които играч е победител.
Също изпускаш един от случаите, когато би трябвало да възбудиш изключение.
Помисли дали не можеш да направиш метода __str__
чрез форматиране на низ(ове).
Нели обнови решението на 09.04.2013 00:45 (преди над 11 години)
Нели обнови решението на 09.04.2013 01:06 (преди над 11 години)
Нели обнови решението на 09.04.2013 01:20 (преди над 11 години)
Нели обнови решението на 10.04.2013 17:19 (преди над 11 години)
Провери си формата на __str__
Нели обнови решението на 15.04.2013 00:17 (преди над 11 години)
Оправих го, но май е променено от началното, което е доста кофти.
Само отбелязвам:
1) "\n{border}{}{border}{}{border}{}{border} A B C \n".format(*line[::-1], border=dashes)
2) В wins
имаш не малко повторения, които лесно можеш да избегнеш като направиш някаква абстракция по тройка_победни_полета
.