Я хочу реализовать игру жизни в разных топологиях, это то, что у меня есть, когда сетка сделана Torus / Toroidal,
val x0 = ( x1 - 1 + width) % width;
val x2 = ( x1 + 1) % width;
val y0 = ( y1 - 1 + height) % height;
val y2 = ( y1 + 1) % height;
val result = List(getIndex(x0, y0), getIndex(x0, y1), getIndex(x0, y2), getIndex(x1, y0),
getIndex(x1, y2),getIndex(x2, y0), getIndex(x2, y1), getIndex(x2, y2))
Теперь я хочу найти соседей, когда сделаю сетку цилиндрической как в горизонтальном, так и в вертикальном формате. Есть идеи, как рассчитать соседей для обеих этих проблем?
![Топология игры в жизнь [closed] TheFAQ.ru](https://thefaq.ru/wp-content/uploads/2023/01/logo-250.png)