
В С++ Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит
8: первое число — номер вертикали (при счете слева направо), второе — номер горизонтали (при счете снизу вверх). Даны натуральные числа a, b, c, d, e, f, каждое из которых не превосходит 8. Записать выражение, проверяющее возможность, при которой белая фигура, расположенная на поле (a, b), может одним ходом пойти на поле (e, f), не попав при этом под удар черной фигуры, находящейся на поле (c, d). Сочетание белой и черной фигуры ферзь и ферзь.

Ответы на вопрос

#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 << "Невозможно";
}



Для проверки возможности хода белой фигуры (ферзя) с поля (a, b) на поле (e, f), не попав при этом под удар черной фигуры (ферзя) на поле (c, d), можно использовать следующее выражение:
((a == e) || (b == f) || (abs(a - e) == abs(b - f))) && !((a == c) && (b == d))
В этом выражении используются следующие условия: - Первое условие ((a == e) || (b == f) || (abs(a - e) == abs(b - f))) проверяет, что фигура может двигаться по вертикали, горизонтали или диагонали. - Второе условие !((a == c) && (b == d)) проверяет, что фигура не находится на поле (c, d), где находится черная фигура.
Таким образом, если выражение истинно, то белая фигура может сделать ход с поля (a, b) на поле (e, f), не попав при этом под удар черной фигуры на поле (c, d).
Пример кода на языке Python, демонстрирующий использование этого выражения:
```python a = int(input("Введите номер вертикали для поля (a, b): ")) b = int(input("Введите номер горизонтали для поля (a, b): ")) c = int(input("Введите номер вертикали для поля (c, d): ")) d = int(input("Введите номер горизонтали для поля (c, d): ")) e = int(input("Введите номер вертикали для поля (e, f): ")) f = int(input("Введите номер горизонтали для поля (e, f): "))
if ((a == e) or (b == f) or (abs(a - e) == abs(b - f))) and not ((a == c) and (b == d)): print("Белая фигура может сделать ход с поля (", a, ",", b, ") на поле (", e, ",", f, ")") else: print("Белая фигура не может сделать ход с поля (", a, ",", b, ") на поле (", e, ",", f, ")") ```
Пожалуйста, обратите внимание, что в этом примере кода используется функция `input()` для ввода значений с клавиатуры. Вы можете изменить этот код, чтобы использовать конкретные значения для переменных a, b, c, d, e и f, если это необходимо.
Надеюсь, это поможет! Если у вас возникнут еще вопросы, пожалуйста, дайте мне знать.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili