Даны координаты (целые от 1 до 8) двух полей шахматной доски. Определить, может ли конь...

0 голосов
130 просмотров

Даны координаты (целые от 1 до 8) двух полей шахматной доски.
Определить, может ли конь за один ход перейти с одного из этих полей на
другое.


Информатика (18 баллов) | 130 просмотров
Дан 1 ответ
0 голосов

Так как язык не указан, пишу на C++
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#include
using namespace std;
void getN(int &n) {
 bool flag;
 do {
  flag = false;
  cin >> n;
  if (n > 8 || n < 1) {
   cout << "Неправильное число! Повторите ввод: ";<br>   flag = true;
  }
 }
 while (flag);
}
bool canIGo(int x1, int y1, int x2, int y2) {
 int dx, dy;
 dx = abs(x1 - x2);
 dy = abs(y1 - y2);
 return (dx == 2 && dy == 1)||(dx == 1 && dy == 2);
}
int main() {
 setlocale(LC_ALL, "Russian");
 int x1, y1, x2, y2;
 cout << "Координаты первой точки через пробел: ";<br> getN(x1); getN(y1);
 cout << "Координаты второй точки через пробел: ";<br> getN(x2); getN(y2);
 cout << ((canIGo(x1, y1, x2, y2)) ? "Можно!" : "Нельзя!") << endl;<br> system("pause");
 return 0;
}

(6.9k баллов)
0

Спасибо, но забыл указать, нужен Паскаль