Решение на Шахматни фенове от Стоян Михайлов
Резултати
- 6 точки от тестове
 - 0 бонус точки
 - 6 точки общо
 
- 11 успешни тест(а)
 - 6 неуспешни тест(а)
 
Код
Лог от изпълнението
..EEEEE.....E....
======================================================================
ERROR: test_black_is_winning (test.TestChessPosition)
Test black_is_winning.
----------------------------------------------------------------------
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
solution.ChessException: kings
======================================================================
ERROR: test_get_black_score (test.TestChessPosition)
Test get_black_score.
----------------------------------------------------------------------
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
solution.ChessException: kings
======================================================================
ERROR: test_get_white_score (test.TestChessPosition)
Test get_white_score.
----------------------------------------------------------------------
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
solution.ChessException: kings
======================================================================
ERROR: test_getitem (test.TestChessPosition)
Test getitem functionality.
----------------------------------------------------------------------
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: string index out of range
======================================================================
ERROR: test_is_equal (test.TestChessPosition)
Test is_equal.
----------------------------------------------------------------------
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
solution.ChessException: kings
======================================================================
ERROR: test_white_is_winning (test.TestChessPosition)
Test white_is_winning.
----------------------------------------------------------------------
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
solution.ChessException: kings
----------------------------------------------------------------------
Ran 17 tests in 0.168s
FAILED (errors=6)
История (3 версии и 7 коментара)
Стоян обнови решението на 29.11.2022 00:57 (преди почти 3 години)
Можеш да минеш и само с един pass в тялото на класа, защото този инициализатор реално не прави нищо.
get може да върне нула, при липсващ ключ - self.score = sum(map(lambda x: points_per_figure.get(x, 0), self.allowed_figures))
Не слагай долни черти в края не методите си. Това е сигнатура, резервирана за builtin дъндър методите. Ти можеш да слага една или две за твоите методи. В конкретният случай е по-добре 1.
https://fmi.py-bg.net/tips/2
f.islower() or f.isupper() == f.isalpha()
Моля опитай се да не дефинираш магически числа като тези. Или ги вземи динамично, или ги дефинирай в константи, които подсказват смисъла зад тях.
Това намирам за излишно. Можеш да приложиш същите методи и върху стринг, не е нужно да е списък.
По-добре да се направи с 'p' in first_row_figures, за да избегнеш антипатърна except-pass.
