В С++
Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит 8: первое число — номер вертикали (при счете слева направо), второе — номер горизонтали (при счете снизу вверх). Даны натуральные числа a, b, c, d, e, f, каждое из которых не превосходит 8. Записать выражение, проверяющее возможность, при которой белая фигура, расположенная на поле (a, b), может одним ходом пойти на поле (e, f), не попав при этом под удар черной фигуры, находящейся на поле (c, d). Сочетание белой и черной фигуры ферзь и ферзь.
Answers & Comments
#include <iostream>
using namespace std;
int main()
{
int a, b, c, d, e, f;
cin >> a >> b >> c >> d >> e >> f;
int flag = 0;
int k = 1;
if (a == e)
{
flag = 1;
}
if (b == f)
{
flag = 1;
}
else
{
while (k < 8)
{
if (a + k == e and b + k == f) flag = 1;
if (a + k == e and b - k == f) flag = 1;
if (a - k == e and b + k == f) flag = 1;
if (a - k == e and b - k == f) flag = 1;
k ++;
}
}
k = 1;
if (c == e)
{
flag = 0;
}
if (d == f)
{
flag = 0;
}
else
{
while (k < 8)
{
if (c + k == e and d + k == f) flag = 0;
if (c + k == e and d - k == f) flag = 0;
if (c - k == e and d + k == f) flag = 0;
if (c - k == e and d - k == f) flag = 0;
k ++;
}
}
if (flag == 1) cout << "Возможно";
if (flag == 0) cout << "Невозможно";
}