Есть метод
CalculateMoveVariant()
он должен заполнять лист всеми возможными вариантами хода.
Лист:
private List<Cell> _moveVariants = new List<Cell>();
У класса Cell есть поле Vector2 Position ( хранит значение по x, y. Вектора можно складывать и делать все что угодно)
Есть сетка там позиция указана и у каждой клетки есть позиция.
Игрок стоит в клетке с позицией x: 4, y: 4 ( Сетка размером десять на десят, поэтому игрок стоит в самой середине ).
Есть две переменные:
private int _horizontalCellMove;
private int _verticalCellMove;
Они означают на сколько клеток по горизонтали/вертикали может двигатся игрок.
То есть если бы там были значения 1 и 1
То игрок мог бы двигатся на одну клетку по горизонтали вперед/назад и на одну клетку по вертикали вперед/назад.
Как просчитать куда он сможет пойти зная позицию, количество клеток на которое может передвинуться игрок и то что поле не бесконечное?