Решение на Шахматни фенове от Адриана Атанасова
Обратно към всички решения
Към профила на Адриана Атанасова
Резултати
- 6 точки от тестове
- 0 бонус точки
- 6 точки общо
- 10 успешни тест(а)
- 7 неуспешни тест(а)
Код
Лог от изпълнението
..EEEEE.E...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
TypeError: 'ChessPosition' object is not subscriptable
======================================================================
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_len (test.TestChessPosition)
Test number of pieces for a position.
----------------------------------------------------------------------
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
TypeError: object of type 'ChessPosition' has no len()
======================================================================
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.161s
FAILED (errors=7)
История (1 версия и 7 коментара)
Адриана обнови решението на 25.11.2022 18:07 (преди почти 2 години)
Бих извадил валидацията в отделен метод, дори няколко отделни. Инициализаторът ти е доста претрупан в момента.
x.len()
не е същото катоlen(x)
. Този метод не имплементира синтаксиса, който търсим.Не е нужно да обхошдаш речник. Просто се опитай да вземеш стойността с
.get
или използвайin
, за да провериш дали има такъв ключ.Тук предполагам се опитваш да имплементираш синтаксис от вида
x['E2']
. Убеди се, че работи. Това, което ти очакваш с този метод, е да извикамx.pos('E2')
, което е различно.Очаква се този метод да връща обект от тип
ChessScore
, а ти връщаш integer.По-добре сетни
ChessScore
за белите и черните като атрибути на текущия клса, за да не се налага да го изчисляваш и реинициализираш при всяко извикване на тези функции.ChessScore(self.figures)
инициализира нов обект, копие на текушия, при всяко извикване на функцията. Очаквамint(self)
да дава същия резултат.