Ю2.24

Задача: На шахматной доске стоят черный король и три белые ладьи (ладья бьет по горизонтали и вертикали). Проверить, не находится ли король под боем, а если есть угроза, то от кого именно.

x y x1 y1 x2 y2 x3 y3
3 6 1 1 3 7 2 5 Угроза от второй ладьи
1 2 7 8 4 6 3 6 Угрозы нет
1 2 5 4 3 7 1 2 Ошибка
Введем координаты каждой фигуры на шахматной доске от 1 до 8 (использовать отрицательные или дробные числа не имеет смысла). Проверим совпадает ли хотя бы один из координат короля с координатой хотя бы одной ладьи. Если, да то выводим соответствующее сообщение, если нет то выведем, что угрозы нет.

Код программы на Java:

 

Related Images:

5 thoughts on “Ю2.24

  1. Последний тест (все координаты равны нулю) вообще некорректен, т.к.
    1) Координаты от 1 до 8 (0 неверная координата),
    2) король и все 3 ладьи стоят в одной клетке, что невозможно.

    Наверное и в программе желательно проверить бы входные данные на корректность.

    • Исправил. Теперь если две фигуры стоят в одной клетке, то программа выдает ошибку.

  2. « if (((x!=x1) & (y!=y1)) | ((x!=x2) & (y!=y2)) | ((x!=x3) & (y!=y3)) | ((x1!=x2) & (y1!=y2)) | ((x1!=x3) & (y1!=y3)) | ((x2!=x3) & (y2!=y3)))»

    странное условие, может имеются в виду логические И и ИЛИ (&& ||) или точно поразрядные? И все равно, Вы наверное имели в виду, что или координата по x отличается у короля и первой ладьи или по y, то же для второй и т.д.
    т.е. if ( ((x!=x1) || (y!=y1)) && ... )

Добавить комментарий