Выкладываю немного исправленный в соответствии с
предложением Lihgt класс Knight. Если Вы уже начали писать свои классы, то после импорта этого исправления ничего не испортится, просто Вы получите небольшую дополнительную возможность в функции canMove().