Как выбрать соседние плитки на доске 5 на 5 (6 на 6, не важно)? Делаю задание, стоит задача отобрать все соседние клетки для доски 5 на 5Сначала просто отбираю всех соседей// Вертикальные соседи
$nord = $blockIdFromClick - $n;
$south = $blockIdFromClick + $n;
// Горизонтальные
$west = $blockIdFromClick - 1;
$east = $blockIdFromClick + 1;
// По диагонали (из правого верхнего угла)
$nordEast = $blockIdFromClick - ($n-1);
$southWest = $blockIdFromClick + ($n-1);
// По диагонали (из левого верхнего угла)
$nordWest = $blockIdFromClick - ($n+1);
$southEast = $blockIdFromClick + ($n+1)
Как быть с клетками по краям ? Есть ли какой алгоритм?
А то приходит в голову только сравнение остатка от деления числа на разрядность сетки (в данном случае 5) :)

21 Авг 2019 в 06:07
189 +1
0
Ответы
1

Да, можно использовать остаток от деления для определения клеток по краям доски. Например, для доски 5 на 5:

Вертикальные соседи:

Для верхнего ряда: не учитывать клетки с индексами $n и меньшеДля нижнего ряда: не учитывать клетки с индексами больше $n^2 - $n

Горизонтальные соседи:

Для левого столбца: не учитывать клетки с индексами кратными $nДля правого столбца: не учитывать клетки с индексами кратными $n + 1

Диагональные соседи:

Для верхнего левого угла: не учитывать клетки с индексами $n-1 и меньшеДля верхнего правого угла: не учитывать клетки с индексами кратными $n + 1Для нижнего левого угла: не учитывать клетки с индексами $n^2 - $n и меньшеДля нижнего правого угла: не учитывать клетки с индексами больше $n^2

Таким образом, используя остаток от деления, можно определить правильно соседние клетки на краях доски.

20 Апр в 13:23
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 493 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир