Написать программу, определяющую возможность перемещения белой шашки - Pascal
Формулировка задачи:
Абсолютно не понимаю эту задачу:Как известно, для игры в шашки можно использовать шахматную доску, в которой горизонтальные строки обозначаются цифрами от 1 до 8, считая снизу вверх, а вертикальные столбцы - буквами латинского алфавита: a,b,c,d,e,f,g,h.
Для начинающих играть в шашки часто задают такую задачу: размещают белую шашку на доске и просят определить, сможет ли эта шашка попасть в заданную клетку, делая ходы по правилам и не превращая ее в дамку.
По правилам белая шашка ходит по черным полям по диагонали вверх.
Требуется написать программу, определяющую возможность перемещения белой шашки из одной заданной клетки в другую заданную клетку.
Формат входных данных: В единственной строке входного файла записаны в шахматной нотации: клетка, где стоит шашка, затем через пробел клетка, куда шашка должна попасть. Начальная и конечная клетки не совпадают.
Формат выходных данных: Выведите слово YES, если шашка может попасть из начальной клетки в конечную, и слово NO - в противном случае...
input3.txt | output3.txt |
a1 b2 | YES |
b2 a1 | NO |
Решение задачи: «Написать программу, определяющую возможность перемещения белой шашки»
textual
Листинг программы
const NoYes: array [Boolean] of String[3] = ('NO','YES'); var a: String; begin Assign(input,'input3.txt'); Reset(input); Assign(output,'output3.txt'); Reset(output); ReadLn(a); WriteLn(NoYes[ (a[1] in ['a'..'h']) and (a[2] in ['1'..'8']) and (a[4] in ['a'..'h']) and (a[5] in ['1'..'8']) and Odd(Ord(a[1])-Ord('a')+Ord(a[2])-Ord('0')) and (Abs(Ord(a[4])-Ord(a[1]))<=Ord(a[5])-Ord(a[2]))]); end.
Объяснение кода листинга программы
- Создается константа
NoYes
, которая представляет собой массив из двух строк (NO
иYES
). - Переменная
a
инициализируется значениемinput3.txt
. - Переменная
output
инициализируется значениемoutput3.txt
. - Чтение строки из файла
input3.txt
с помощью функцииReadLn
. - Запись строки
NoYes
в файлoutput3.txt
с помощью функцииWriteLn
. - Выполняется сравнение для определения возможности перемещения белой шашки:
- Проверка, что символы на позициях 1 и 2 в строке
a
находятся в диапазоне от 'a' до 'h'. - Проверка, что символы на позициях 4 и 5 в строке
a
находятся в диапазоне от 'a' до 'h'. - Проверка, что разница между порядковыми номерами символов на позициях 1 и 4 меньше или равна разнице между порядковыми номерами символов на позициях 2 и 5.
- Проверка, что символы на позициях 1 и 2 в строке
- Код завершается без выполнения каких-либо дополнительных действий.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д