我正在制作一个游戏,其中包括你移动车队。地图基本上是笛卡尔坐标系,坐标是元组(X,Y)。 我需要的是找到一种方法来确定车队经过的扇区,因为一个只有一个起点和选定的终点,以后能够改变那些扇区的相应值来模拟战争迷雾。
我尝试围绕两个点创建一个正方形,然后创建所有可能的Y和X坐标(X / Y_movement_coords_loc)的列表。 现在的问题是找到通过这个方块的最短路线,但我不能找出一个公式,因为有很多可能性和我尝试的包括一个分裂,通常导致分数或除以0.我都不是可以使用。
y_per_x_coord = len(y_movement_coords_loc) / len(x_movement_coords_loc)
此外,现在的代码,由于一些莫名其妙的原因挂起在
for x_index in range(len(x_movement_coords_loc)):
循环,它进入if子句,追加到列表但是5次中有3次未到达res_index_list,我用print打印。 有谁可以帮助我解决我的问题? 提前谢谢。
x_movement_loc = old_coord_loc[0] - new_coord_loc[0]
y_movement_loc = old_coord_loc[1] - new_coord_loc[1]
x_movement_coords_loc = []
y_movement_coords_loc = []
moved_tiles_coords = []
negative_movement = 1
if x_movement_loc < 0:
x_movement_loc *= -1
negative_movement = -1
if y_movement_loc < 0:
y_movement_loc *= -1
negative_movement = -1
for u in range(x_movement_loc):
x_movement_coords_loc.append(old_coord_loc[0] + (u * negative_movement))
for u in range(y_movement_loc):
y_movement_coords_loc.append(old_coord_loc[1] + (u * negative_movement))
counter = 0
y_per_x_coord = len(y_movement_coords_loc) / len(x_movement_coords_loc)
for x_index in range(len(x_movement_coords_loc)):
for y_index in range(y_per_x_coord):
moved_tiles_coords.append((x_movement_coords_loc[x_index], y_movement_coords_loc[y_index + counter]))
counter += y_per_x_coord
if (x_movement_coords_loc[x_index], y_movement_coords_loc[counter]) != new_coord_loc:
moved_tiles_coords.append((x_movement_coords_loc[x_index], y_movement_coords_loc[counter]))
res_index_list = [1, 3, 5, 7, 9]