Найти в Дзене

Задача 6. Шахматы

Самая первая задача на строки, поэтому вызывающая много вопросов. Давайте читать условие: Из классических ошибок - это верить, что в строке будет действительно 5 символов, потому что помимо введёных пользователем там могут ещё нечитаемые символы. Например, символ перехода на новую строку. Поэтому в этой задаче достаточно делать проверку, что символов не меньше 5 (чтобы случайно не выйти за границы строки). Ещё в задаче явно не указано, что буквы должны быть только заглавные, но это так. А также, надо помнить все 8 вариантов того, как ходит конь. В общем, в задаче много мест, где можно застрять. Давайте считаем входную строку. А также (для дальнейшей простоты) заведём пару строк с перечислением допустимых букв и цифр. Да, проверку можно было бы сделать с помощью регулярных выражений, но ведь это первая задача на строки, думаю, что здесь подразумевались не они. Теперь напишем условие, которое проверяет, что введённая запись корректная. А именно проверим длину строку и принадлежность всех

Самая первая задача на строки, поэтому вызывающая много вопросов. Давайте читать условие:

Условие задачи с сайта acmp.ru
Условие задачи с сайта acmp.ru

Из классических ошибок - это верить, что в строке будет действительно 5 символов, потому что помимо введёных пользователем там могут ещё нечитаемые символы. Например, символ перехода на новую строку. Поэтому в этой задаче достаточно делать проверку, что символов не меньше 5 (чтобы случайно не выйти за границы строки).

Ещё в задаче явно не указано, что буквы должны быть только заглавные, но это так. А также, надо помнить все 8 вариантов того, как ходит конь. В общем, в задаче много мест, где можно застрять.

Давайте считаем входную строку. А также (для дальнейшей простоты) заведём пару строк с перечислением допустимых букв и цифр. Да, проверку можно было бы сделать с помощью регулярных выражений, но ведь это первая задача на строки, думаю, что здесь подразумевались не они.

Ввод данных и задание допустимых множеств букв и цифр
Ввод данных и задание допустимых множеств букв и цифр

Теперь напишем условие, которое проверяет, что введённая запись корректная. А именно проверим длину строку и принадлежность всех символов нужным множествам:

Условие проверки на корректность ввода
Условие проверки на корректность ввода

Если условие выполняется, что сразу выводим ERROR. Если же нет, то надо проверить, что записанный ход - это ход коня:

Проверка на ход коня
Проверка на ход коня

Здесь мы воспользовались хаком, что конь всегда ходит на 1 по одной стороне и на 2 по другой, то есть по теореме Пифагора квадрат длины его хода будет равен 5. А также тем, что никаким другим ходом такого значения не получить. Это позволяет сократить 8 условий на всевозможные ходы коня до одного. Рекомендую это запомнить и использовать, так как задачи на шахматы довольно распространены.

Предыдущий выпуск: Задача 44. Стрелки

Я очень хочу, чтобы мои советы были полезны вам, а для того, чтобы быстрее всех получать новые статьи можно подписаться на мой канал.