Вычисление маршрута между двумя клетками, различение «наземных» и «водных» клеток - PullRequest
0 голосов
/ 04 апреля 2020

Карта мира

Я использую Excel и VBA для D & D и создал карту мира, разделяющую ресурсы между различными ячейками. Я использую это, чтобы вычислить расстояние между городами и ресурсами, чтобы я мог рассчитать цену за фунт ресурса.

Чтобы найти расстояние между двумя точками (ресурсом и городом) Я использую эту формулу:

=SQRT(([@ROW]-$C$2)^2+([@COLUMN]-$D$2)^2)

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

Однако мне нужно go сделать еще один шаг и у меня есть средство, чтобы определить, движется ли гипотенуза по водным плиткам или по земле.

1 Ответ

1 голос
/ 04 апреля 2020

Вам нужна функция, которая дает вам список клеток вдоль вашей гипотенузы. Затем вы проверяете каждую ячейку, чтобы определить, является ли это землей или водой.

Шаг 1: Определите наибольшее расстояние по вертикали или горизонтали

Шаг 2: Разделите наименьшее расстояние на наибольшее расстояние. Это отношение - расстояние, которое вы перемещаете в наименьшем направлении для каждой единицы наибольшего.

Шаг 3: выполните a для l oop x до y, шаг 1 для наибольшего расстояния. для каждой итерации l oop кумулятивно добавьте отношение от 2 к начальной позиции наименьшего. Получить ссылку на ячейку из текущего наибольшего плюс (целое + 1) часть начального плюс совокупное расстояние перемещения в направлении самого короткого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...