生成坐标列表以表示两个坐标之间的路线

时间:2015-12-30 01:31:45

标签: python

编辑:我问了一个朋友,他找到了一种方法,生成一个可能的方块列表,车队可以从原来的方块移动到并选择一个接近结束坐标,然后生成该方格的列表再次选择最接近的等。

我正在制作一个游戏,其中包括你移动车队。地图基本上是笛卡尔坐标系,坐标是元组(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]

0 个答案:

没有答案