Итак, краткий контекст: я пишу сим для игры под названием iso-path, и она имеет гексагональную сетку.
Вы можете проверить, что я уже сделал, нажав здесь
Любая ячейка может перемещаться в соседние ячейки.
![the hexagonal grid](https://i.stack.imgur.com/prEE7.png)
Так в коде:
var board = "4567654";
canMove(5, 0); // true
canMove(5, 1); // true
canMove(5, 4); // true
canMove(5, 7); // false
Если фигура находится в начале ряда, она может телепортироваться до конца горизонтально и наоборот.
canMove(22, 27); // true
![enter image description here](https://i.stack.imgur.com/HY6L6.png)
Я мог бы легко жестко закодировать соседей, но я хочу сделать это процедурно, чтобы я мог изменить конфигурацию платы, и функция будет работать программно.
Доска всегда начинается с числа, увеличивается до секунды и снова уменьшается, например, так:
4567654 (standard)
3456543
1234321
567898765
Доска всегда шестиугольная.