Решение на Шахматни фенове от Кристиан Какалов
Към профила на Кристиан Какалов
Резултати
- 7 точки от тестове
- 0 бонус точки
- 7 точки общо
- 12 успешни тест(а)
- 5 неуспешни тест(а)
Код
Лог от изпълнението
....FF......FEE.. ====================================================================== ERROR: test_basic_arithmetic (test.TestChessScore) Test additiona and subtraction of ChessScores. ---------------------------------------------------------------------- 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: 'ChessScore' object has no attribute '_ChessScore__score' ====================================================================== ERROR: test_comparison (test.TestChessScore) Test correct comparison on a pair of scores. ---------------------------------------------------------------------- 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: 'ChessScore' object has no attribute '_ChessScore__score' ====================================================================== FAIL: 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 AssertionError: 4 is not an instance of <class 'solution.ChessScore'> ====================================================================== FAIL: 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 AssertionError: None != 'K' ====================================================================== FAIL: 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 AssertionError: 4 is not an instance of <class 'solution.ChessScore'> ---------------------------------------------------------------------- Ran 17 tests in 0.175s FAILED (failures=3, errors=2)
История (3 версии и 13 коментара)
Кристиан обнови решението на 23.11.2022 15:23 (преди почти 2 години)
Трябва да е kingS
- една буква ще ти коства няколко теста.
pawns
са само пешките. Може би искаш да кажеш pieces_values
.
<невалиден коментар>
Главна е. Спрямо другите букви изглежда по-малка.
Да, не знам защо речих, че е малка. Моя грешка.
Моля не слагай интервали преди скобите.
Реално погледнато това не ти трябва. Един pass
в класа е достатъчно.
Смятам, че една долна черта е достатъчно. https://fmi.py-bg.net/tips/2
По-добре if not self.__validate_num_of_kings():
.
А и като цяло, ако сравняваш с True/False
, прави се с is
, а не с ==
.
Малко аритметични операции могат да ти спестят тази логика. Хинт: вземи координатите на двата царя като tuple(x, y) и тогава изчисли вектора м/у тях.
Можеш да направиш проверката и в ofiginal_fen
, за да не циклиш.
И тук е по-лесно да обходиш original_fen
, за да спестиш един цикъл.
score += pawns_values.get(char, 0)
- нулата е това, която ще вземеш, ако такъв ключ няма, така че можеш да се възползваш.
<невалиден коментар>
Главна е. Спрямо другите букви изглежда по-малка.
Да, не знам защо речих, че е малка. Моя грешка.