Написать программу, определяющую возможность перемещения белой шашки - 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.

Объяснение кода листинга программы

  1. Создается константа NoYes, которая представляет собой массив из двух строк (NO и YES).
  2. Переменная a инициализируется значением input3.txt.
  3. Переменная output инициализируется значением output3.txt.
  4. Чтение строки из файла input3.txt с помощью функции ReadLn.
  5. Запись строки NoYes в файл output3.txt с помощью функции WriteLn.
  6. Выполняется сравнение для определения возможности перемещения белой шашки:
    • Проверка, что символы на позициях 1 и 2 в строке a находятся в диапазоне от 'a' до 'h'.
    • Проверка, что символы на позициях 4 и 5 в строке a находятся в диапазоне от 'a' до 'h'.
    • Проверка, что разница между порядковыми номерами символов на позициях 1 и 4 меньше или равна разнице между порядковыми номерами символов на позициях 2 и 5.
  7. Код завершается без выполнения каких-либо дополнительных действий.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.8 из 5
Похожие ответы