Есть ответ 👍

Требуется определить, бьет ли ферзь, стоящий на клетке с указанными координатами (номер строки и номер столбца), фигуру, стоящую на другой указанной клетке. входные данные вводятся четыре числа: координаты ферзя и координаты другой фигуры. координаты - целые числа в интервале от 1 до 8. выходные данные требуетсявывести слово yes, если ферзь может побить фигуру за 1 ход, в противном случае вывести слово no на python'е

284
390
Посмотреть ответы 2

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

madoleh
4,6(50 оценок)

#coding: utf-8 # python 3.x ''' вводятся четыре числа: xa, ya: координаты ферзя xb, yb: координаты другой фигуры координаты - целые числа в интервале от 1 до 8. вывод - булево значение: сможет ли ферзь побить фигуру за 1 ход. ''' def hits(xa, ya, xb, yb) -> bool:         '''         проверка аргументов.         '''         args = (xa, ya, xb, yb)         if any([not 1 < = z < = 8 for z in args]):                 raise valueerror("неверные координаты! ")         '''         на одной прямой.         '''         if xa == xb or ya == yb:                 return true         '''         северо-западная диагональ.         '''         x_nw, y_nw = xa, ya         while x_nw > 1 and y_nw > 1:                 x_nw -= 1                 y_nw -= 1                 if x_nw == xb and y_nw == yb:                         return true         '''         юго-восточная диагональ.         '''         x_se, y_se = xa, ya         while x_se < 8 and y_se < 8:                 x_se += 1                 y_se += 1                 if x_se == xb and y_se == yb:                         return true         '''         юго-западная диагональ.         '''         x_sw, y_sw = xa, ya         while x_sw > 1 and y_se < 8:                 x_sw -= 1                 y_sw += 1                 if x_sw == xb and y_sw == yb:                         return true         '''         северо-восточная диагональ.         '''         x_ne, y_ne = xa, ya         while x_ne < 8 and y_se > 1:                 x_ne += 1                 y_ne -= 1                 if x_ne == xb and y_ne == yb:                         return true         return false # если не бьет inp = [int(x) for x in ()] if hits(*inp):         print('yes') else:         print('no')

5243 гигабайта будет

Объяснение:

5242880 : 1024 : 1024 = 5243

Популярно: Информатика