@dmitriyivvvv

Как найти внутренний квадрат в квадрате?

Добрый день! Задался таким вопросом: допустим у нас имеется поле например 6x6 = 36 ячеек.
И имеется "внутренний квадрат" размером 5x5 = 25 ячеек. Так вот как найти этот внутренний квадрат при клике на одну из ячеек поля? Все ячейки хранятся в массиве. Допустим я кликаю по ячейке "21"(клик всегда будет расцениваться как центр внутреннего квадрата, и длина стороны внутреннего квадрата всегда будет нечетной) 5bb37c85c2fb1690014346.png
И мой внутренний квадрат будет [7,8,9,10,11,13,14,15,16,17,19,20,21,22,23,25,26,27,28,29,31,32,33,34,35];
Больше примеров:
5bb37dc71ed4c659372551.png
Если я кликаю по ячейке под индексом 0, то внутренним квадратом будет [0,1,2,6,7,8,12,13,14], а если по ячейке под индексом 35 то [21,22,23,27,28,29,33,34,35];
Как такое реализовать на js, мб имеется какой то алгоритм или формула?
p.s. на рисунках клик обведен красным, внутренний квадрат черным.
  • Вопрос задан
  • 352 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
При известных размерах поля можно вычислить координаты элемента на основе его индекса:

строка = floor(индекс / количество столбцов)
столбец = индекс % количество столбцов

Ну а при клике надо взять все элементы, чьи координаты отличаются от координат кликнутого элемента не более чем на какое-то определённое значение (в данном случае 2 - т.к. сторона квадрата 5, floor(5 / 2)).

Заценить живьём.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы