Весела обнови решението на 29.11.2022 14:36 (преди почти 2 години)
По-добре е тази функция да е в класа, който я използва.
Моля използвай snake_case
за имена на променливи.
Можеш просто да обходиш само първия и последния ред, вместо да проверяваш индексите в последствие.
for line in rows[0] + rows[-1]
Очаква се тези методи да връщаш ChessScore
обект, а не интеджер.
Тук би било по-изчистено да използвам get_white_score и get_black_score, но реших да използвам предефинираните оператори
По-удачно би било, да. Освен това, добра идея е предварително да присвоиш в атрибут на инстанциите самите ChessScore
обекти, за да не се налага да ги инициализираш при всяко използване на метод. Имайки ги като атрибути на инстанцията, просто ги сравняваш. Те самите вече са подготвени за сравнение, поради изискванията на задачата.
Можеш да използваш isalpha
, което ще замени както not isdigit
, така и replace('/', '')
.
Бих дефинирал един речник предварително, базиран на самия fen, за да мога тук просто да потърся ключ, съвпадащ с pos
. Реално този речник би ти свършил чудесна работа и за останалите методи.
Хммм, ако искаш това, защо просто не кръсти sum_of_scores
като __int__
?
Тук би било по-изчистено да използвам get_white_score и get_black_score, но реших да използвам предефинираните оператори
По-удачно би било, да. Освен това, добра идея е предварително да присвоиш в атрибут на инстанциите самите
ChessScore
обекти, за да не се налага да ги инициализираш при всяко използване на метод. Имайки ги като атрибути на инстанцията, просто ги сравняваш. Те самите вече са подготвени за сравнение, поради изискванията на задачата.Бих дефинирал един речник предварително, базиран на самия fen, за да мога тук просто да потърся ключ, съвпадащ с
pos
. Реално този речник би ти свършил чудесна работа и за останалите методи.Сетих се малко късно за този тип речник, чак когато разписвах тази функция, но съм съгласна, че може да се дефинира по-рано и да се използва на други места.