Выяснить, что шахматный король за один ход может переместиться с одного заданного поля на другое - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Задание:Pascal ABS Для каждой задачи составить программу, выводящую значение TRUE, если указанное высказывание является истинным, и FALSE, - в противном случае (использовать условный оператор нельзя). Шахматный король за один ход может переместиться с одного заданного поля на другое (каждое поле задано двумя координатами — целыми числами от 1 до 8).

Решение задачи: «Выяснить, что шахматный король за один ход может переместиться с одного заданного поля на другое»

textual
Листинг программы
int  TField::operator - (const TField& Right) const{
     return max(abs(x-Right.x),abs(y-Right.y));
};
bool TBishop::CanMove(const TField& Field){
       return abs(Pos.x-Field.x) == abs(Pos.y-Field.y)
}
bool TRock::CanMove(const TField& Field){
       return Pos.x==Field.x || Pos.y=Field.y;
}
 
bool TQueen::CanMove(const TField& Field){
       return TBishop::CanMove(Field)||TRock::CanMove(Field); 
}
bool TKing::CanMove(const TField& Field){
       return (Field-Pos)==1; 
}

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

  1. Создается класс TField, который представляет поле шахматной доски. У него есть два свойства: x и y, которые представляют координаты поля.
  2. В классе TField определен метод operator-, который возвращает максимальное значение между абсолютным значением разности координат текущего поля и правого. Этот метод используется в классе TKing для определения возможности хода короля.
  3. Создается класс TBishop, который представляет ферзя. У него есть метод CanMove, который проверяет возможность хода ферзя на другое поле. Он использует метод operator- из класса TField для определения расстояния между текущим положением ферзя и другим полем.
  4. Создается класс TRock, который представляет ладью. У него есть метод CanMove, который проверяет возможность хода ладьи на другое поле. Он использует метод operator- из класса TField для определения расстояния между текущим положением ладьи и другим полем.
  5. Создается класс TQueen, который представляет королеву. У него есть метод CanMove, который проверяет возможность хода королевы на другое поле. Он использует методы CanMove из классов TBishop и TRock для определения возможности хода.
  6. Создается класс TKing, который представляет короля. У него есть метод CanMove, который проверяет возможность хода короля на другое поле. Он использует метод operator- из класса TField для определения расстояния между текущим положением короля и другим полем.

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

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