Поиск по объекта координатам
Всем привет. Помогите, пожалуйста решить задачу. Дано прямоугольное поле. По периметру поля расположены кнопки (квадраты одинаковой известной величины.) В центре поля по горизонтали разрыв (пустая зона). Кнопки проиндексированы от 1 до x начиная с левого верхнего угла. Нужно описать алгоритм (формулой), который получает координаты точки, и на выходе возвращает индекс кнопки, которой принадлежит точка, либо не возвращает ничего если точка находится в пустой зоне. Желательно не использовать массив, и вообще не хранить нигде координаты кнопок, а решить именно формулой. Откуда считать координаты не важно.
Желательно меньше кода и больше формул. Никак не могу решить. Помогите, пожалуйста
Ответы (1 шт):
Не знаю как тут формулой обойтись. Нумерация кнопок не регулярная:
import math
w = 1200
h = 700
cell_w = w / 12
cell_h = h / 7
x, y = map(int, input().split())
cx = math.floor(x / cell_w)
cy = math.floor(y / cell_h)
map_ = {k: i for i, k in enumerate((
(0, 0), (1, 0), (2, 0), (3, 0), (8, 0), (9, 0), (10, 0), (11, 0),
(11, 1), (11, 2), (11, 3), (11, 4), (11, 5), (11, 6),
(10, 6), (9, 6), (8, 6), (3, 6), (2, 6), (1, 6), (0, 6),
(1, 5), (1, 4), (1, 3), (1, 2), (1, 1)
), start=1)}
print(map_.get((cx, cy)))